Imported Upstream version 3.10.1 upstream/3.10.1
authorJinWang An <jinwang.an@samsung.com>
Wed, 18 Jan 2023 06:01:36 +0000 (15:01 +0900)
committerJinWang An <jinwang.an@samsung.com>
Wed, 18 Jan 2023 06:01:36 +0000 (15:01 +0900)
487 files changed:
Doc/c-api/call.rst
Doc/c-api/gcsupport.rst
Doc/c-api/init_config.rst
Doc/c-api/iter.rst
Doc/c-api/typeobj.rst
Doc/data/python3.10.abi
Doc/extending/extending.rst
Doc/extending/newtypes.rst
Doc/faq/design.rst
Doc/faq/library.rst
Doc/faq/programming.rst
Doc/glossary.rst
Doc/howto/descriptor.rst
Doc/howto/functional.rst
Doc/howto/logging-cookbook.rst
Doc/includes/sqlite3/text_factory.py
Doc/library/__main__.rst
Doc/library/ast.rst
Doc/library/asyncio-eventloop.rst
Doc/library/asyncio-future.rst
Doc/library/asyncio-stream.rst
Doc/library/asyncio-task.rst
Doc/library/base64.rst
Doc/library/collections.abc.rst
Doc/library/collections.rst
Doc/library/contextlib.rst
Doc/library/contextvars.rst
Doc/library/copy.rst
Doc/library/dataclasses.rst
Doc/library/datetime.rst
Doc/library/enum.rst
Doc/library/exceptions.rst
Doc/library/fileinput.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.metadata.rst
Doc/library/importlib.rst
Doc/library/ipaddress.rst
Doc/library/json.rst
Doc/library/keyword.rst
Doc/library/logging.rst
Doc/library/multiprocessing.rst
Doc/library/multiprocessing.shared_memory.rst
Doc/library/os.rst
Doc/library/random.rst
Doc/library/re.rst
Doc/library/socket.rst
Doc/library/sqlite3.rst
Doc/library/ssl.rst
Doc/library/stdtypes.rst
Doc/library/sys.rst
Doc/library/sysconfig.rst
Doc/library/test.rst
Doc/library/types.rst
Doc/library/typing.rst
Doc/library/unittest.rst
Doc/library/urllib.parse.rst
Doc/library/weakref.rst
Doc/library/xml.dom.minidom.rst
Doc/reference/compound_stmts.rst
Doc/reference/datamodel.rst
Doc/reference/executionmodel.rst
Doc/reference/expressions.rst
Doc/reference/lexical_analysis.rst
Doc/requirements.txt
Doc/tools/rstlint.py
Doc/tools/susp-ignored.csv
Doc/tutorial/controlflow.rst
Doc/tutorial/floatingpoint.rst
Doc/tutorial/introduction.rst
Doc/using/configure.rst
Doc/whatsnew/3.10.rst
Doc/whatsnew/3.9.rst
Grammar/python.gram
Include/Python.h
Include/abstract.h
Include/cpython/dictobject.h
Include/cpython/initconfig.h
Include/cpython/pyerrors.h
Include/cpython/pystate.h
Include/cpython/pytime.h
Include/cpython/unicodeobject.h
Include/internal/pycore_object.h
Include/internal/pycore_traceback.h
Include/object.h
Include/patchlevel.h
Lib/argparse.py
Lib/asyncio/events.py
Lib/asyncio/locks.py
Lib/asyncio/tasks.py
Lib/asyncio/unix_events.py
Lib/bz2.py
Lib/compileall.py
Lib/concurrent/futures/process.py
Lib/concurrent/futures/thread.py
Lib/contextlib.py
Lib/copy.py
Lib/ctypes/_aix.py
Lib/ctypes/test/test_structures.py
Lib/dataclasses.py
Lib/difflib.py
Lib/dis.py
Lib/distutils/ccompiler.py
Lib/distutils/command/install.py
Lib/distutils/tests/test_bdist_rpm.py
Lib/distutils/unixccompiler.py
Lib/doctest.py
Lib/email/_parseaddr.py
Lib/email/errors.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/enum.py
Lib/gzip.py
Lib/html/parser.py
Lib/http/client.py
Lib/idlelib/ChangeLog
Lib/idlelib/autocomplete.py
Lib/idlelib/help_about.py
Lib/idlelib/idle_test/htest.py
Lib/idlelib/idle_test/mock_tk.py
Lib/idlelib/idle_test/test_autocomplete.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/importlib/__init__.py
Lib/importlib/_adapters.py
Lib/importlib/metadata/__init__.py
Lib/inspect.py
Lib/json/tool.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/lzma.py
Lib/mimetypes.py
Lib/pickle.py
Lib/platform.py
Lib/pprint.py
Lib/py_compile.py
Lib/pydoc_data/topics.py
Lib/sqlite3/__init__.py
Lib/sqlite3/test/dbapi.py
Lib/statistics.py
Lib/sysconfig.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/refleak.py
Lib/test/libregrtest/setup.py
Lib/test/lock_tests.py
Lib/test/pickletester.py
Lib/test/support/__init__.py
Lib/test/support/import_helper.py
Lib/test/support/threading_helper.py
Lib/test/test__xxsubinterpreters.py
Lib/test/test_argparse.py
Lib/test/test_array.py [changed mode: 0644->0755]
Lib/test/test_ast.py
Lib/test/test_asyncgen.py
Lib/test/test_asyncio/test_locks.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_code.py
Lib/test/test_codecs.py
Lib/test/test_collections.py
Lib/test/test_compile.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_copy.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_deque.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_enum.py
Lib/test/test_exceptions.py
Lib/test/test_fcntl.py
Lib/test/test_file.py
Lib/test/test_filecmp.py
Lib/test/test_fileio.py
Lib/test/test_fstring.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_generators.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/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_itertools.py
Lib/test/test_json/test_speedups.py
Lib/test/test_json/test_tool.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_os.py
Lib/test/test_ossaudiodev.py
Lib/test/test_pathlib.py
Lib/test/test_pdb.py
Lib/test/test_peepholer.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_queue.py
Lib/test/test_raise.py
Lib/test/test_readline.py
Lib/test/test_resource.py
Lib/test/test_sax.py
Lib/test/test_scope.py
Lib/test/test_selectors.py
Lib/test/test_set.py
Lib/test/test_shelve.py
Lib/test/test_socket.py
Lib/test/test_ssl.py
Lib/test/test_statistics.py
Lib/test/test_strftime.py
Lib/test/test_subprocess.py
Lib/test/test_support.py
Lib/test/test_syntax.py
Lib/test/test_sys.py
Lib/test/test_tarfile.py
Lib/test/test_tcl.py
Lib/test/test_tempfile.py
Lib/test/test_thread.py
Lib/test/test_threading.py
Lib/test/test_threading_local.py
Lib/test/test_threadsignals.py
Lib/test/test_time.py
Lib/test/test_timeout.py
Lib/test/test_tk.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_types.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_weakset.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_xml_etree_c.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_messagebox.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/traceback.py
Lib/turtle.py
Lib/types.py
Lib/typing.py
Lib/unittest/async_case.py
Lib/unittest/case.py
Lib/unittest/mock.py
Lib/unittest/test/test_assertions.py
Lib/unittest/test/test_async_case.py
Lib/unittest/test/test_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/zipimport.py
Lib/zoneinfo/_zoneinfo.py
Mac/BuildScript/build-installer.py
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
Misc/stable_abi.txt
Modules/_asynciomodule.c
Modules/_codecsmodule.c
Modules/_cryptmodule.c
Modules/_csv.c
Modules/_ctypes/callproc.c
Modules/_ctypes/cfield.c
Modules/_ctypes/ctypes.h
Modules/_decimal/tests/bench.py
Modules/_decimal/tests/deccheck.py
Modules/_decimal/tests/formathelper.py
Modules/_elementtree.c
Modules/_io/bufferedio.c
Modules/_pickle.c
Modules/_sqlite/connection.c
Modules/_sqlite/module.c
Modules/_sre.c
Modules/_testcapimodule.c
Modules/_testmultiphase.c
Modules/_threadmodule.c
Modules/_tkinter.c
Modules/_tracemalloc.c
Modules/_zoneinfo.c
Modules/clinic/_codecsmodule.c.h
Modules/clinic/signalmodule.c.h
Modules/expat/xmlparse.c
Modules/expat/xmltok.c
Modules/gc_weakref.txt
Modules/getbuildinfo.c
Modules/getpath.c
Modules/makesetup
Modules/mathmodule.c
Modules/posixmodule.c
Modules/posixmodule.h
Modules/pyexpat.c
Modules/sha1module.c
Modules/signalmodule.c
Modules/socketmodule.c
Modules/syslogmodule.c
Modules/zlibmodule.c
Objects/abstract.c
Objects/descrobject.c
Objects/floatobject.c
Objects/frameobject.c
Objects/genericaliasobject.c
Objects/listobject.c
Objects/listsort.txt
Objects/obmalloc.c
Objects/setobject.c
Objects/typeobject.c
Objects/unicodeobject.c
PC/getpathp.c
PC/launcher.c
PC/layout/support/appxmanifest.py
PC/pylauncher.rc
PC/pyshellext.rc
PC/python_exe.rc
PC/python_nt.rc
PC/pythonw_exe.rc
PC/sqlite3.rc
PCbuild/Directory.Build.props [new file with mode: 0644]
PCbuild/Directory.Build.targets [new file with mode: 0644]
PCbuild/get_external.py
PCbuild/get_externals.bat
PCbuild/lib.pyproj
PCbuild/python.props
PCbuild/pythoncore.vcxproj
PCbuild/tcltk.props
Parser/parser.c
Parser/pegen.c
Parser/pegen.h
Parser/pegen_errors.c [new file with mode: 0644]
Parser/string_parser.c
Parser/tokenizer.c
Parser/tokenizer.h
Programs/_testembed.c
Python/ceval.c
Python/compile.c
Python/dynload_hpux.c
Python/errors.c
Python/fileutils.c
Python/import.c
Python/importdl.c
Python/importlib.h
Python/importlib_external.h
Python/importlib_zipimport.h
Python/initconfig.c
Python/pathconfig.c
Python/pystate.c
Python/pythonrun.c
Python/stdlib_module_names.h
Python/suggestions.c
Python/thread_pthread.h
Python/traceback.c
README.rst
Tools/c-analyzer/c_analyzer/__main__.py
Tools/c-analyzer/c_analyzer/info.py
Tools/c-analyzer/c_common/logging.py
Tools/c-analyzer/c_common/strutil.py
Tools/c-analyzer/c_common/tables.py
Tools/c-analyzer/c_parser/info.py
Tools/c-analyzer/c_parser/parser/__init__.py
Tools/c-analyzer/c_parser/preprocessor/__init__.py
Tools/c-analyzer/cpython/__main__.py
Tools/c-analyzer/cpython/ignored.tsv
Tools/peg_generator/pegen/c_generator.py
Tools/peg_generator/pegen/first_sets.py
Tools/peg_generator/pegen/grammar_parser.py
Tools/peg_generator/pegen/python_generator.py
Tools/peg_generator/scripts/download_pypi_packages.py
Tools/pynche/ColorDB.py
Tools/scripts/dutree.doc
Tools/scripts/generate_stdlib_module_names.py
Tools/scripts/pep384_macrocheck.py
Tools/scripts/smelly.py
Tools/scripts/stable_abi.py
Tools/ssl/multissltests.py
aclocal.m4
config.guess
config.sub
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 4bd2fb3837a1a05ef6b766d818e72b89b949d3af..8c90d1e8991c1007a6f9f6d90177cde212dc38c4 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 fe5b83aa8dc95add4dd0e4b0f898c46485c5e41e..c037f19ce64f319d0de231384259b4ce42f282a2 100644 (file)
@@ -22,7 +22,7 @@ There are two kinds of configuration:
 * The :ref:`Isolated Configuration <init-isolated-conf>` can be used to embed
   Python into an application. It isolates Python from the system. For example,
   environments variables are ignored, the LC_CTYPE locale is left unchanged and
-  no signal handler is registred.
+  no signal handler is registered.
 
 The :c:func:`Py_RunMain` function can be used to write a customized Python
 program.
@@ -696,7 +696,7 @@ PyConfig
       * Otherwise, use the :term:`locale encoding`:
         ``nl_langinfo(CODESET)`` result.
 
-      At Python statup, the encoding name is normalized to the Python codec
+      At Python startup, the encoding name is normalized to the Python codec
       name. For example, ``"ANSI_X3.4-1968"`` is replaced with ``"ascii"``.
 
       See also the :c:member:`~PyConfig.filesystem_errors` member.
index f7106f4ef09906e9f0355b30b2da2f4fccf665a5..3e388bb917a0295486623940f1600fc15b65b16b 100644 (file)
@@ -9,8 +9,8 @@ There are two functions specifically for working with iterators.
 
 .. c:function:: int PyIter_Check(PyObject *o)
 
-   Return non-zero if the object *o* supports the iterator protocol, and ``0``
-   otherwise.  This function always succeeds.
+   Return non-zero if the object *o* can be safely passed to
+   :c:func:`PyIter_Next`, and ``0`` otherwise.  This function always succeeds.
 
 .. c:function:: int PyAIter_Check(PyObject *o)
 
@@ -21,10 +21,11 @@ There are two functions specifically for working with iterators.
 
 .. c:function:: PyObject* PyIter_Next(PyObject *o)
 
-   Return the next value from the iteration *o*.  The object must be an iterator
-   (it is up to the caller to check this).  If there are no remaining values,
-   returns ``NULL`` with no exception set.  If an error occurs while retrieving
-   the item, returns ``NULL`` and passes along the exception.
+   Return the next value from the iterator *o*.  The object must be an iterator
+   according to :c:func:`PyIter_Check` (it is up to the caller to check this).
+   If there are no remaining values, returns ``NULL`` with no exception set.
+   If an error occurs while retrieving the item, returns ``NULL`` and passes
+   along the exception.
 
 To write a loop which iterates over an iterator, the C code should look
 something like this::
index b642835a480db64881e01466b71f110a36bafeff..e491c26f981b5f14e42755af912fc013c046aff8 100644 (file)
@@ -668,6 +668,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
@@ -1508,9 +1520,9 @@ and :c:type:`PyType_Type` effectively act as defaults.)
 
 .. c:member:: getiterfunc PyTypeObject.tp_iter
 
-   An optional pointer to a function that returns an iterator for the object.  Its
-   presence normally signals that the instances of this type are iterable (although
-   sequences may be iterable without this function).
+   An optional pointer to a function that returns an :term:`iterator` for the
+   object.  Its presence normally signals that the instances of this type are
+   :term:`iterable` (although sequences may be iterable without this function).
 
    This function has the same signature as :c:func:`PyObject_GetIter`::
 
@@ -1523,8 +1535,8 @@ and :c:type:`PyType_Type` effectively act as defaults.)
 
 .. c:member:: iternextfunc PyTypeObject.tp_iternext
 
-   An optional pointer to a function that returns the next item in an iterator.
-   The signature is::
+   An optional pointer to a function that returns the next item in an
+   :term:`iterator`. The signature is::
 
       PyObject *tp_iternext(PyObject *self);
 
@@ -2416,8 +2428,8 @@ Async Object Structures
 
       PyObject *am_await(PyObject *self);
 
-   The returned object must be an iterator, i.e. :c:func:`PyIter_Check` must
-   return ``1`` for it.
+   The returned object must be an :term:`iterator`, i.e. :c:func:`PyIter_Check`
+   must return ``1`` for it.
 
    This slot may be set to ``NULL`` if an object is not an :term:`awaitable`.
 
index 1dca3e1c2e3de8022759292f6aef4547767d79ca..94dcf74411b4b0f0266abc264793e4bb20f70e00 100644 (file)
     <elf-symbol name='_PyGen_Finalize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyGen_SetStopIterationValue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyImport_AcquireLock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_PyImport_FindExtensionObject' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyImport_FixupBuiltin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyImport_FixupExtensionObject' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyImport_GetModuleId' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <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='310' 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-4'/>
+    <qualified-type-def type-id='type-id-3' const='yes' id='type-id-5'/>
 
-    <array-type-def dimensions='1' type-id='type-id-4' size-in-bits='infinite' id='type-id-5'>
-      <subrange length='infinite' id='type-id-6'/>
+    <array-type-def dimensions='1' type-id='type-id-5' size-in-bits='infinite' id='type-id-6'>
+      <subrange length='infinite' id='type-id-7'/>
 
     </array-type-def>
-    <qualified-type-def type-id='type-id-5' const='yes' id='type-id-7'/>
-    <var-decl name='_PyParser_TokenNames' type-id='type-id-7' mangled-name='_PyParser_TokenNames' visibility='default' filepath='./Include/token.h' line='88' column='1' elf-symbol-id='_PyParser_TokenNames'/>
-    <type-decl name='int' size-in-bits='32' id='type-id-8'/>
+    <qualified-type-def type-id='type-id-6' const='yes' id='type-id-8'/>
+    <var-decl name='_PyParser_TokenNames' type-id='type-id-8' mangled-name='_PyParser_TokenNames' visibility='default' filepath='./Include/token.h' line='88' column='1' elf-symbol-id='_PyParser_TokenNames'/>
+    <type-decl name='int' size-in-bits='32' id='type-id-9'/>
     <function-decl name='PyToken_ThreeChars' mangled-name='PyToken_ThreeChars' filepath='Parser/token.c' line='194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyToken_ThreeChars'>
-      <parameter type-id='type-id-8' name='c1' filepath='Parser/token.c' line='194' column='1'/>
-      <parameter type-id='type-id-8' name='c2' filepath='Parser/token.c' line='194' column='1'/>
-      <parameter type-id='type-id-8' name='c3' filepath='Parser/token.c' line='194' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='c1' filepath='Parser/token.c' line='194' column='1'/>
+      <parameter type-id='type-id-9' name='c2' filepath='Parser/token.c' line='194' column='1'/>
+      <parameter type-id='type-id-9' name='c3' filepath='Parser/token.c' line='194' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyToken_TwoChars' mangled-name='PyToken_TwoChars' filepath='Parser/token.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyToken_TwoChars'>
-      <parameter type-id='type-id-8' name='c1' filepath='Parser/token.c' line='110' column='1'/>
-      <parameter type-id='type-id-8' name='c2' filepath='Parser/token.c' line='110' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='c1' filepath='Parser/token.c' line='110' column='1'/>
+      <parameter type-id='type-id-9' name='c2' filepath='Parser/token.c' line='110' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyToken_OneChar' mangled-name='PyToken_OneChar' filepath='Parser/token.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyToken_OneChar'>
-      <parameter type-id='type-id-8' name='c1' filepath='Parser/token.c' line='79' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='c1' filepath='Parser/token.c' line='79' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/pegen.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyAST_Name' mangled-name='_PyAST_Name' filepath='./Include/internal/pycore_ast.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_asdl_expr_seq_new' mangled-name='_Py_asdl_expr_seq_new' filepath='./Include/internal/pycore_ast.h' line='74' 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='_PyAST_Call' mangled-name='_PyAST_Call' filepath='./Include/internal/pycore_ast.h' line='755' 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='447' 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/internal/pycore_pyarena.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </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='PyUnicode_DecodeUTF8' mangled-name='PyUnicode_DecodeUTF8' filepath='./Include/unicodeobject.h' line='454' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_TypeIgnore' mangled-name='_PyAST_TypeIgnore' filepath='./Include/internal/pycore_ast.h' line='835' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_asdl_type_ignore_seq_new' mangled-name='_Py_asdl_type_ignore_seq_new' filepath='./Include/internal/pycore_ast.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Module' mangled-name='_PyAST_Module' filepath='./Include/internal/pycore_ast.h' line='628' 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/string_parser.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/string_parser.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/string_parser.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='45' 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/string_parser.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Constant' mangled-name='_PyAST_Constant' filepath='./Include/internal/pycore_ast.h' line='763' 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/string_parser.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/string_parser.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='_Py_asdl_keyword_seq_new' mangled-name='_Py_asdl_keyword_seq_new' filepath='./Include/internal/pycore_ast.h' line='111' 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='./Include/internal/pycore_pyarena.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_ClassDef' mangled-name='_PyAST_ClassDef' filepath='./Include/internal/pycore_ast.h' line='644' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_FunctionDef' mangled-name='_PyAST_FunctionDef' filepath='./Include/internal/pycore_ast.h' line='634' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_AsyncFunctionDef' mangled-name='_PyAST_AsyncFunctionDef' filepath='./Include/internal/pycore_ast.h' line='639' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_asdl_arg_seq_new' mangled-name='_Py_asdl_arg_seq_new' filepath='./Include/internal/pycore_ast.h' line='104' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_arguments' mangled-name='_PyAST_arguments' filepath='./Include/internal/pycore_ast.h' line='794' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_asdl_generic_seq_new' mangled-name='_Py_asdl_generic_seq_new' filepath='./Include/internal/pycore_asdl.h' line='47' 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='42' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_arg' mangled-name='_PyAST_arg' filepath='./Include/internal/pycore_ast.h' line='798' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_asdl_pattern_seq_new' mangled-name='_Py_asdl_pattern_seq_new' filepath='./Include/internal/pycore_ast.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_List' mangled-name='_PyAST_List' filepath='./Include/internal/pycore_ast.h' line='778' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Tuple' mangled-name='_PyAST_Tuple' filepath='./Include/internal/pycore_ast.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Attribute' mangled-name='_PyAST_Attribute' filepath='./Include/internal/pycore_ast.h' line='766' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Subscript' mangled-name='_PyAST_Subscript' filepath='./Include/internal/pycore_ast.h' line='769' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Starred' mangled-name='_PyAST_Starred' filepath='./Include/internal/pycore_ast.h' line='772' 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/internal/pycore_asdl.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_asdl_identifier_seq_new' mangled-name='_Py_asdl_identifier_seq_new' filepath='./Include/internal/pycore_asdl.h' line='48' 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='264' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_alias' mangled-name='_PyAST_alias' filepath='./Include/internal/pycore_ast.h' line='804' 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='742' 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='34' 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/tokenizer.h' line='90' 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/tokenizer.h' line='93' 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/tokenizer.h' line='89' 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/tokenizer.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_CompareWithASCIIString' mangled-name='PyUnicode_CompareWithASCIIString' filepath='./Include/unicodeobject.h' line='996' 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='35' 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='PyMem_Calloc' mangled-name='PyMem_Calloc' 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='PyMem_Free' mangled-name='PyMem_Free' filepath='./Include/pymem.h' line='55' 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='156' 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='205' 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='204' 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='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='PyBytes_AsStringAndSize' mangled-name='PyBytes_AsStringAndSize' filepath='./Include/bytesobject.h' line='54' 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='PyMem_Realloc' mangled-name='PyMem_Realloc' 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='__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/tokenizer.h' line='94' 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='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='__builtin_memcpy' mangled-name='memcpy' 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='PyErr_ProgramTextObject' mangled-name='PyErr_ProgramTextObject' filepath='./Include/cpython/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='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='266' 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='169' 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='271' 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='47' 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='36' 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='299' 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='_PyPegen_parse' mangled-name='_PyPegen_parse' filepath='Parser/pegen.h' line='332' 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='_PyPegen_expect_token' mangled-name='_PyPegen_expect_token' filepath='Parser/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_singleton_seq' mangled-name='_PyPegen_singleton_seq' filepath='Parser/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='_PyPegen_insert_memo' mangled-name='_PyPegen_insert_memo' filepath='Parser/pegen.h' line='122' 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.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_seq_append_to_end' mangled-name='_PyPegen_seq_append_to_end' filepath='Parser/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='_PyAST_FunctionType' mangled-name='_PyAST_FunctionType' filepath='./Include/internal/pycore_ast.h' line='632' 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.h' line='295' 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.h' line='281' 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.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_lookahead_with_int' mangled-name='_PyPegen_lookahead_with_int' filepath='Parser/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_class_def_decorators' mangled-name='_PyPegen_class_def_decorators' filepath='Parser/pegen.h' line='282' 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.h' line='136' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_While' mangled-name='_PyAST_While' filepath='./Include/internal/pycore_ast.h' line='670' 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.h' line='142' 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.h' line='137' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Match' mangled-name='_PyAST_Match' filepath='./Include/internal/pycore_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='_PyPegen_expect_soft_keyword' mangled-name='_PyPegen_expect_soft_keyword' filepath='Parser/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='_PyAST_Pass' mangled-name='_PyAST_Pass' filepath='./Include/internal/pycore_ast.h' line='705' 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.h' line='255' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Interactive' mangled-name='_PyAST_Interactive' filepath='./Include/internal/pycore_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='_PyAST_Expression' mangled-name='_PyAST_Expression' filepath='./Include/internal/pycore_ast.h' line='631' 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.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_IfExp' mangled-name='_PyAST_IfExp' filepath='./Include/internal/pycore_ast.h' line='726' 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.h' line='124' 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.h' line='138' 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.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_soft_keyword_token' mangled-name='_PyPegen_soft_keyword_token' filepath='Parser/pegen.h' line='135' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_comprehension' mangled-name='_PyAST_comprehension' filepath='./Include/internal/pycore_ast.h' line='787' 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.h' line='267' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_NamedExpr' mangled-name='_PyAST_NamedExpr' filepath='./Include/internal/pycore_ast.h' line='714' 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.h' line='141' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_key_pattern_pair' mangled-name='_PyPegen_key_pattern_pair' filepath='Parser/pegen.h' line='271' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_MatchAs' mangled-name='_PyAST_MatchAs' filepath='./Include/internal/pycore_ast.h' line='829' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_lookahead_with_name' mangled-name='_PyPegen_lookahead_with_name' filepath='Parser/pegen.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_match_case' mangled-name='_PyAST_match_case' filepath='./Include/internal/pycore_ast.h' line='809' 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.h' line='303' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_seq_last_item' mangled-name='_PyPegen_seq_last_item' filepath='Parser/pegen.h' line='149' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_check_legacy_stmt' mangled-name='_PyPegen_check_legacy_stmt' filepath='Parser/pegen.h' line='294' 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.h' line='123' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_keyword' mangled-name='_PyAST_keyword' filepath='./Include/internal/pycore_ast.h' line='801' 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.h' line='283' 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.h' line='292' 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.h' line='286' 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.h' line='285' 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.h' line='284' 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.h' line='328' 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.h' line='327' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_YieldFrom' mangled-name='_PyAST_YieldFrom' filepath='./Include/internal/pycore_ast.h' line='750' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Yield' mangled-name='_PyAST_Yield' filepath='./Include/internal/pycore_ast.h' line='748' 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.h' line='268' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_GeneratorExp' mangled-name='_PyAST_GeneratorExp' filepath='./Include/internal/pycore_ast.h' line='743' 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.h' line='289' 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.h' line='139' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_ListComp' mangled-name='_PyAST_ListComp' filepath='./Include/internal/pycore_ast.h' line='734' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_SetComp' mangled-name='_PyAST_SetComp' filepath='./Include/internal/pycore_ast.h' line='737' 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.h' line='270' 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.h' line='269' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Dict' mangled-name='_PyAST_Dict' filepath='./Include/internal/pycore_ast.h' line='729' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Set' mangled-name='_PyAST_Set' filepath='./Include/internal/pycore_ast.h' line='732' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_DictComp' mangled-name='_PyAST_DictComp' filepath='./Include/internal/pycore_ast.h' line='740' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Slice' mangled-name='_PyAST_Slice' filepath='./Include/internal/pycore_ast.h' line='784' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Await' mangled-name='_PyAST_Await' filepath='./Include/internal/pycore_ast.h' line='746' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_UnaryOp' mangled-name='_PyAST_UnaryOp' filepath='./Include/internal/pycore_ast.h' line='720' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_BinOp' mangled-name='_PyAST_BinOp' filepath='./Include/internal/pycore_ast.h' line='717' 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.h' line='264' 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.h' line='293' 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.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_get_cmpops' mangled-name='_PyPegen_get_cmpops' filepath='Parser/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='_PyAST_Compare' mangled-name='_PyAST_Compare' filepath='./Include/internal/pycore_ast.h' line='752' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_BoolOp' mangled-name='_PyAST_BoolOp' filepath='./Include/internal/pycore_ast.h' line='711' 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.h' line='274' 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.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_slash_with_default' mangled-name='_PyPegen_slash_with_default' filepath='Parser/pegen.h' line='275' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Lambda' mangled-name='_PyAST_Lambda' filepath='./Include/internal/pycore_ast.h' line='723' 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.h' line='279' 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.h' line='277' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_expect_forced_token' mangled-name='_PyPegen_expect_forced_token' filepath='Parser/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_add_type_comment_to_arg' mangled-name='_PyPegen_add_type_comment_to_arg' filepath='Parser/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='_PyPegen_new_type_comment' mangled-name='_PyPegen_new_type_comment' filepath='Parser/pegen.h' line='208' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_patterns' mangled-name='_PyPegen_get_patterns' filepath='Parser/pegen.h' line='273' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_pattern_keys' mangled-name='_PyPegen_get_pattern_keys' filepath='Parser/pegen.h' line='272' 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.h' line='263' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_MatchClass' mangled-name='_PyAST_MatchClass' filepath='./Include/internal/pycore_ast.h' line='823' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_seq_first_item' mangled-name='_PyPegen_seq_first_item' filepath='Parser/pegen.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_MatchMapping' mangled-name='_PyAST_MatchMapping' filepath='./Include/internal/pycore_ast.h' line='819' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_MatchStar' mangled-name='_PyAST_MatchStar' filepath='./Include/internal/pycore_ast.h' line='827' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_lookahead_with_string' mangled-name='_PyPegen_lookahead_with_string' filepath='Parser/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_ensure_real' mangled-name='_PyPegen_ensure_real' filepath='Parser/pegen.h' line='291' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_ensure_imaginary' mangled-name='_PyPegen_ensure_imaginary' filepath='Parser/pegen.h' line='290' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_MatchOr' mangled-name='_PyAST_MatchOr' filepath='./Include/internal/pycore_ast.h' line='832' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_MatchValue' mangled-name='_PyAST_MatchValue' filepath='./Include/internal/pycore_ast.h' line='811' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_MatchSingleton' mangled-name='_PyAST_MatchSingleton' filepath='./Include/internal/pycore_ast.h' line='813' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_MatchSequence' mangled-name='_PyAST_MatchSequence' filepath='./Include/internal/pycore_ast.h' line='816' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Try' mangled-name='_PyAST_Try' filepath='./Include/internal/pycore_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='_PyAST_ExceptHandler' mangled-name='_PyAST_ExceptHandler' filepath='./Include/internal/pycore_ast.h' line='790' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_withitem' mangled-name='_PyAST_withitem' filepath='./Include/internal/pycore_ast.h' line='807' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_With' mangled-name='_PyAST_With' filepath='./Include/internal/pycore_ast.h' line='676' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_AsyncWith' mangled-name='_PyAST_AsyncWith' filepath='./Include/internal/pycore_ast.h' line='679' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_For' mangled-name='_PyAST_For' filepath='./Include/internal/pycore_ast.h' line='662' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_AsyncFor' mangled-name='_PyAST_AsyncFor' filepath='./Include/internal/pycore_ast.h' line='666' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_If' mangled-name='_PyAST_If' filepath='./Include/internal/pycore_ast.h' line='673' 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.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_alias_for_star' mangled-name='_PyPegen_alias_for_star' filepath='Parser/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_count_dots' mangled-name='_PyPegen_seq_count_dots' filepath='Parser/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='_PyAST_ImportFrom' mangled-name='_PyAST_ImportFrom' filepath='./Include/internal/pycore_ast.h' line='695' 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.h' line='280' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_AnnAssign' mangled-name='_PyAST_AnnAssign' filepath='./Include/internal/pycore_ast.h' line='659' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Assign' mangled-name='_PyAST_Assign' filepath='./Include/internal/pycore_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='_PyAST_AugAssign' mangled-name='_PyAST_AugAssign' filepath='./Include/internal/pycore_ast.h' line='656' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Expr' mangled-name='_PyAST_Expr' filepath='./Include/internal/pycore_ast.h' line='703' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Break' mangled-name='_PyAST_Break' filepath='./Include/internal/pycore_ast.h' line='707' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Continue' mangled-name='_PyAST_Continue' filepath='./Include/internal/pycore_ast.h' line='709' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Return' mangled-name='_PyAST_Return' filepath='./Include/internal/pycore_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='_PyAST_Raise' mangled-name='_PyAST_Raise' filepath='./Include/internal/pycore_ast.h' line='685' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Import' mangled-name='_PyAST_Import' filepath='./Include/internal/pycore_ast.h' line='693' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Delete' mangled-name='_PyAST_Delete' filepath='./Include/internal/pycore_ast.h' line='651' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Assert' mangled-name='_PyAST_Assert' filepath='./Include/internal/pycore_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='_PyAST_Global' mangled-name='_PyAST_Global' filepath='./Include/internal/pycore_ast.h' line='698' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Nonlocal' mangled-name='_PyAST_Nonlocal' filepath='./Include/internal/pycore_ast.h' line='700' 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.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_raise_error_known_location' mangled-name='_PyPegen_raise_error_known_location' filepath='Parser/pegen.h' line='143' 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/string_parser.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyAST_JoinedStr' mangled-name='_PyAST_JoinedStr' filepath='./Include/internal/pycore_ast.h' line='761' 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='460' 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='835' 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.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_run_parser' mangled-name='_PyPegen_run_parser' filepath='Parser/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='_PyPegen_Parser_Free' mangled-name='_PyPegen_Parser_Free' filepath='Parser/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='_PyAST_FormattedValue' mangled-name='_PyAST_FormattedValue' filepath='./Include/internal/pycore_ast.h' line='758' 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='212' 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='847' 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.h' line='248' 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/peg_api.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PySys_Audit' mangled-name='PySys_Audit' 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>
+    <function-decl name='_PyPegen_run_parser_from_file_pointer' mangled-name='_PyPegen_run_parser_from_file_pointer' filepath='Parser/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='_PyPegen_run_parser_from_string' mangled-name='_PyPegen_run_parser_from_string' filepath='Parser/pegen.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='Parser/myreadline.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_ts' size-in-bits='2240' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='62' column='1' id='type-id-9'>
+    <class-decl name='_ts' size-in-bits='2240' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='62' column='1' id='type-id-10'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prev' type-id='type-id-10' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
+        <var-decl name='prev' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='./Include/cpython/pystate.h' line='66' column='1'/>
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='66' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='interp' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='67' column='1'/>
+        <var-decl name='interp' type-id='type-id-12' visibility='default' filepath='./Include/cpython/pystate.h' line='67' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='frame' type-id='type-id-12' visibility='default' filepath='./Include/cpython/pystate.h' line='70' column='1'/>
+        <var-decl name='frame' type-id='type-id-13' visibility='default' filepath='./Include/cpython/pystate.h' line='70' 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='71' column='1'/>
+        <var-decl name='recursion_depth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='recursion_headroom' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='72' column='1'/>
+        <var-decl name='recursion_headroom' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='72' 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='73' column='1'/>
+        <var-decl name='stackcheck_counter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='73' 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='78' column='1'/>
+        <var-decl name='tracing' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='78' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='cframe' type-id='type-id-13' visibility='default' filepath='./Include/cpython/pystate.h' line='82' column='1'/>
+        <var-decl name='cframe' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='c_profilefunc' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='84' column='1'/>
+        <var-decl name='c_profilefunc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='84' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='c_tracefunc' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='85' column='1'/>
+        <var-decl name='c_tracefunc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='85' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='c_profileobj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
+        <var-decl name='c_profileobj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='c_traceobj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='87' column='1'/>
+        <var-decl name='c_traceobj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='87' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='curexc_type' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
+        <var-decl name='curexc_type' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='curexc_value' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='91' column='1'/>
+        <var-decl name='curexc_value' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='91' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='curexc_traceback' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
+        <var-decl name='curexc_traceback' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='exc_state' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
+        <var-decl name='exc_state' type-id='type-id-17' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='exc_info' type-id='type-id-17' visibility='default' filepath='./Include/cpython/pystate.h' line='101' column='1'/>
+        <var-decl name='exc_info' type-id='type-id-18' visibility='default' filepath='./Include/cpython/pystate.h' line='101' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='103' column='1'/>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='103' 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='105' column='1'/>
+        <var-decl name='gilstate_counter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='105' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='async_exc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='107' column='1'/>
+        <var-decl name='async_exc' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='107' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='thread_id' type-id='type-id-18' visibility='default' filepath='./Include/cpython/pystate.h' line='108' column='1'/>
+        <var-decl name='thread_id' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='108' 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='110' column='1'/>
+        <var-decl name='trash_delete_nesting' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='110' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='trash_delete_later' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='111' column='1'/>
+        <var-decl name='trash_delete_later' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='111' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='on_delete' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='136' column='1'/>
+        <var-decl name='on_delete' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='136' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='on_delete_data' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
+        <var-decl name='on_delete_data' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='137' 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='139' column='1'/>
+        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='139' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='async_gen_firstiter' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='141' column='1'/>
+        <var-decl name='async_gen_firstiter' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='141' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='async_gen_finalizer' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='142' column='1'/>
+        <var-decl name='async_gen_finalizer' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='142' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='context' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='144' column='1'/>
+        <var-decl name='context' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='144' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='context_ver' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='145' column='1'/>
+        <var-decl name='context_ver' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='145' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='id' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='148' column='1'/>
+        <var-decl name='id' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='148' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2112'>
-        <var-decl name='root_cframe' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='150' column='1'/>
+        <var-decl name='root_cframe' type-id='type-id-23' visibility='default' filepath='./Include/cpython/pystate.h' line='150' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-10'/>
-    <class-decl name='_is' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-23'/>
-    <typedef-decl name='PyInterpreterState' type-id='type-id-23' filepath='./Include/pystate.h' line='22' column='1' id='type-id-24'/>
-    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-11'/>
-    <class-decl name='_frame' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-25'/>
-    <typedef-decl name='PyFrameObject' type-id='type-id-25' filepath='./Include/pyframe.h' line='12' column='1' id='type-id-26'/>
-    <pointer-type-def type-id='type-id-26' size-in-bits='64' id='type-id-12'/>
-    <class-decl name='_cframe' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='32' column='1' id='type-id-27'>
+    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
+    <class-decl name='_is' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-24'/>
+    <typedef-decl name='PyInterpreterState' type-id='type-id-24' filepath='./Include/pystate.h' line='22' column='1' id='type-id-25'/>
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-12'/>
+    <class-decl name='_frame' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-26'/>
+    <typedef-decl name='PyFrameObject' type-id='type-id-26' filepath='./Include/pyframe.h' line='12' column='1' id='type-id-27'/>
+    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-13'/>
+    <class-decl name='_cframe' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='32' column='1' id='type-id-28'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='use_tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='43' column='1'/>
+        <var-decl name='use_tracing' type-id='type-id-9' 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='previous' type-id='type-id-28' visibility='default' filepath='./Include/cpython/pystate.h' line='44' column='1'/>
+        <var-decl name='previous' type-id='type-id-29' visibility='default' filepath='./Include/cpython/pystate.h' line='44' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-28'/>
-    <typedef-decl name='CFrame' type-id='type-id-27' filepath='./Include/cpython/pystate.h' line='45' column='1' id='type-id-22'/>
-    <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-13'/>
-    <class-decl name='_object' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/object.h' line='105' column='1' id='type-id-29'>
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-29'/>
+    <typedef-decl name='CFrame' type-id='type-id-28' filepath='./Include/cpython/pystate.h' line='45' column='1' id='type-id-23'/>
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-14'/>
+    <class-decl name='_object' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/object.h' line='105' column='1' id='type-id-30'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_refcnt' type-id='type-id-30' visibility='default' filepath='./Include/object.h' line='107' column='1'/>
+        <var-decl name='ob_refcnt' type-id='type-id-31' 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-31' visibility='default' filepath='./Include/object.h' line='108' column='1'/>
+        <var-decl name='ob_type' type-id='type-id-32' visibility='default' filepath='./Include/object.h' line='108' column='1'/>
       </data-member>
     </class-decl>
-    <type-decl name='long int' size-in-bits='64' id='type-id-32'/>
-    <typedef-decl name='__ssize_t' type-id='type-id-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='193' column='1' id='type-id-33'/>
-    <typedef-decl name='ssize_t' type-id='type-id-33' filepath='/usr/include/stdio.h' line='77' column='1' id='type-id-34'/>
-    <typedef-decl name='Py_ssize_t' type-id='type-id-34' filepath='./Include/pyport.h' line='107' column='1' id='type-id-30'/>
-    <class-decl name='_typeobject' size-in-bits='3264' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='191' column='1' id='type-id-35'>
+    <type-decl name='long int' size-in-bits='64' id='type-id-33'/>
+    <typedef-decl name='__ssize_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='193' column='1' id='type-id-34'/>
+    <typedef-decl name='ssize_t' type-id='type-id-34' filepath='/usr/include/stdio.h' line='77' column='1' id='type-id-35'/>
+    <typedef-decl name='Py_ssize_t' type-id='type-id-35' filepath='./Include/pyport.h' line='107' column='1' id='type-id-31'/>
+    <class-decl name='_typeobject' size-in-bits='3264' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='191' column='1' id='type-id-36'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-36' visibility='default' filepath='./Include/cpython/object.h' line='192' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-37' visibility='default' filepath='./Include/cpython/object.h' line='192' 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='193' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='tp_basicsize' type-id='type-id-30' visibility='default' filepath='./Include/cpython/object.h' line='194' column='1'/>
+        <var-decl name='tp_basicsize' type-id='type-id-31' visibility='default' filepath='./Include/cpython/object.h' line='194' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='tp_itemsize' type-id='type-id-30' visibility='default' filepath='./Include/cpython/object.h' line='194' column='1'/>
+        <var-decl name='tp_itemsize' type-id='type-id-31' visibility='default' filepath='./Include/cpython/object.h' line='194' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='tp_dealloc' type-id='type-id-37' visibility='default' filepath='./Include/cpython/object.h' line='198' column='1'/>
+        <var-decl name='tp_dealloc' type-id='type-id-38' visibility='default' filepath='./Include/cpython/object.h' line='198' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='tp_vectorcall_offset' type-id='type-id-30' visibility='default' filepath='./Include/cpython/object.h' line='199' column='1'/>
+        <var-decl name='tp_vectorcall_offset' type-id='type-id-31' visibility='default' filepath='./Include/cpython/object.h' line='199' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='tp_getattr' type-id='type-id-38' visibility='default' filepath='./Include/cpython/object.h' line='200' column='1'/>
+        <var-decl name='tp_getattr' type-id='type-id-39' visibility='default' filepath='./Include/cpython/object.h' line='200' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='tp_setattr' type-id='type-id-39' visibility='default' filepath='./Include/cpython/object.h' line='201' column='1'/>
+        <var-decl name='tp_setattr' type-id='type-id-40' visibility='default' filepath='./Include/cpython/object.h' line='201' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='tp_as_async' type-id='type-id-40' visibility='default' filepath='./Include/cpython/object.h' line='202' column='1'/>
+        <var-decl name='tp_as_async' type-id='type-id-41' visibility='default' filepath='./Include/cpython/object.h' line='202' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='tp_repr' type-id='type-id-41' visibility='default' filepath='./Include/cpython/object.h' line='204' column='1'/>
+        <var-decl name='tp_repr' type-id='type-id-42' visibility='default' filepath='./Include/cpython/object.h' line='204' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='tp_as_number' type-id='type-id-42' visibility='default' filepath='./Include/cpython/object.h' line='208' column='1'/>
+        <var-decl name='tp_as_number' type-id='type-id-43' visibility='default' filepath='./Include/cpython/object.h' line='208' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='tp_as_sequence' type-id='type-id-43' visibility='default' filepath='./Include/cpython/object.h' line='209' column='1'/>
+        <var-decl name='tp_as_sequence' type-id='type-id-44' visibility='default' filepath='./Include/cpython/object.h' line='209' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='tp_as_mapping' type-id='type-id-44' visibility='default' filepath='./Include/cpython/object.h' line='210' column='1'/>
+        <var-decl name='tp_as_mapping' type-id='type-id-45' visibility='default' filepath='./Include/cpython/object.h' line='210' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='tp_hash' type-id='type-id-45' visibility='default' filepath='./Include/cpython/object.h' line='214' column='1'/>
+        <var-decl name='tp_hash' type-id='type-id-46' visibility='default' filepath='./Include/cpython/object.h' line='214' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='tp_call' type-id='type-id-46' visibility='default' filepath='./Include/cpython/object.h' line='215' column='1'/>
+        <var-decl name='tp_call' type-id='type-id-47' visibility='default' filepath='./Include/cpython/object.h' line='215' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='tp_str' type-id='type-id-41' visibility='default' filepath='./Include/cpython/object.h' line='216' column='1'/>
+        <var-decl name='tp_str' type-id='type-id-42' visibility='default' filepath='./Include/cpython/object.h' line='216' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='tp_getattro' type-id='type-id-47' visibility='default' filepath='./Include/cpython/object.h' line='217' column='1'/>
+        <var-decl name='tp_getattro' type-id='type-id-48' visibility='default' filepath='./Include/cpython/object.h' line='217' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='tp_setattro' type-id='type-id-48' visibility='default' filepath='./Include/cpython/object.h' line='218' column='1'/>
+        <var-decl name='tp_setattro' type-id='type-id-49' visibility='default' filepath='./Include/cpython/object.h' line='218' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='tp_as_buffer' type-id='type-id-49' visibility='default' filepath='./Include/cpython/object.h' line='221' column='1'/>
+        <var-decl name='tp_as_buffer' type-id='type-id-50' visibility='default' filepath='./Include/cpython/object.h' line='221' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='tp_flags' type-id='type-id-18' visibility='default' filepath='./Include/cpython/object.h' line='224' column='1'/>
+        <var-decl name='tp_flags' type-id='type-id-19' visibility='default' filepath='./Include/cpython/object.h' line='224' 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='226' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='tp_traverse' type-id='type-id-50' visibility='default' filepath='./Include/cpython/object.h' line='230' column='1'/>
+        <var-decl name='tp_traverse' type-id='type-id-51' visibility='default' filepath='./Include/cpython/object.h' line='230' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='tp_clear' type-id='type-id-51' visibility='default' filepath='./Include/cpython/object.h' line='233' column='1'/>
+        <var-decl name='tp_clear' type-id='type-id-52' visibility='default' filepath='./Include/cpython/object.h' line='233' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='tp_richcompare' type-id='type-id-52' visibility='default' filepath='./Include/cpython/object.h' line='237' column='1'/>
+        <var-decl name='tp_richcompare' type-id='type-id-53' visibility='default' filepath='./Include/cpython/object.h' line='237' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='tp_weaklistoffset' type-id='type-id-30' visibility='default' filepath='./Include/cpython/object.h' line='240' column='1'/>
+        <var-decl name='tp_weaklistoffset' type-id='type-id-31' visibility='default' filepath='./Include/cpython/object.h' line='240' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='tp_iter' type-id='type-id-53' visibility='default' filepath='./Include/cpython/object.h' line='243' column='1'/>
+        <var-decl name='tp_iter' type-id='type-id-54' visibility='default' filepath='./Include/cpython/object.h' line='243' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='tp_iternext' type-id='type-id-54' visibility='default' filepath='./Include/cpython/object.h' line='244' column='1'/>
+        <var-decl name='tp_iternext' type-id='type-id-55' visibility='default' filepath='./Include/cpython/object.h' line='244' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='tp_methods' type-id='type-id-55' visibility='default' filepath='./Include/cpython/object.h' line='247' column='1'/>
+        <var-decl name='tp_methods' type-id='type-id-56' visibility='default' filepath='./Include/cpython/object.h' line='247' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='tp_members' type-id='type-id-56' visibility='default' filepath='./Include/cpython/object.h' line='248' column='1'/>
+        <var-decl name='tp_members' type-id='type-id-57' visibility='default' filepath='./Include/cpython/object.h' line='248' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='tp_getset' type-id='type-id-57' visibility='default' filepath='./Include/cpython/object.h' line='249' column='1'/>
+        <var-decl name='tp_getset' type-id='type-id-58' visibility='default' filepath='./Include/cpython/object.h' line='249' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='tp_base' type-id='type-id-58' visibility='default' filepath='./Include/cpython/object.h' line='251' column='1'/>
+        <var-decl name='tp_base' type-id='type-id-59' visibility='default' filepath='./Include/cpython/object.h' line='251' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2112'>
-        <var-decl name='tp_dict' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='252' column='1'/>
+        <var-decl name='tp_dict' type-id='type-id-16' visibility='default' filepath='./Include/cpython/object.h' line='252' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2176'>
-        <var-decl name='tp_descr_get' type-id='type-id-59' visibility='default' filepath='./Include/cpython/object.h' line='253' column='1'/>
+        <var-decl name='tp_descr_get' type-id='type-id-60' visibility='default' filepath='./Include/cpython/object.h' line='253' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2240'>
-        <var-decl name='tp_descr_set' type-id='type-id-60' visibility='default' filepath='./Include/cpython/object.h' line='254' column='1'/>
+        <var-decl name='tp_descr_set' type-id='type-id-61' visibility='default' filepath='./Include/cpython/object.h' line='254' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2304'>
-        <var-decl name='tp_dictoffset' type-id='type-id-30' visibility='default' filepath='./Include/cpython/object.h' line='255' column='1'/>
+        <var-decl name='tp_dictoffset' type-id='type-id-31' visibility='default' filepath='./Include/cpython/object.h' line='255' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2368'>
-        <var-decl name='tp_init' type-id='type-id-61' visibility='default' filepath='./Include/cpython/object.h' line='256' column='1'/>
+        <var-decl name='tp_init' type-id='type-id-62' visibility='default' filepath='./Include/cpython/object.h' line='256' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2432'>
-        <var-decl name='tp_alloc' type-id='type-id-62' visibility='default' filepath='./Include/cpython/object.h' line='257' column='1'/>
+        <var-decl name='tp_alloc' type-id='type-id-63' visibility='default' filepath='./Include/cpython/object.h' line='257' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2496'>
-        <var-decl name='tp_new' type-id='type-id-63' visibility='default' filepath='./Include/cpython/object.h' line='258' column='1'/>
+        <var-decl name='tp_new' type-id='type-id-64' visibility='default' filepath='./Include/cpython/object.h' line='258' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2560'>
-        <var-decl name='tp_free' type-id='type-id-64' visibility='default' filepath='./Include/cpython/object.h' line='259' column='1'/>
+        <var-decl name='tp_free' type-id='type-id-65' visibility='default' filepath='./Include/cpython/object.h' line='259' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2624'>
-        <var-decl name='tp_is_gc' type-id='type-id-51' visibility='default' filepath='./Include/cpython/object.h' line='260' column='1'/>
+        <var-decl name='tp_is_gc' type-id='type-id-52' visibility='default' filepath='./Include/cpython/object.h' line='260' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2688'>
-        <var-decl name='tp_bases' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='261' column='1'/>
+        <var-decl name='tp_bases' type-id='type-id-16' visibility='default' filepath='./Include/cpython/object.h' line='261' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2752'>
-        <var-decl name='tp_mro' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='262' column='1'/>
+        <var-decl name='tp_mro' type-id='type-id-16' visibility='default' filepath='./Include/cpython/object.h' line='262' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2816'>
-        <var-decl name='tp_cache' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='263' column='1'/>
+        <var-decl name='tp_cache' type-id='type-id-16' visibility='default' filepath='./Include/cpython/object.h' line='263' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2880'>
-        <var-decl name='tp_subclasses' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='264' column='1'/>
+        <var-decl name='tp_subclasses' type-id='type-id-16' visibility='default' filepath='./Include/cpython/object.h' line='264' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2944'>
-        <var-decl name='tp_weaklist' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='265' column='1'/>
+        <var-decl name='tp_weaklist' type-id='type-id-16' visibility='default' filepath='./Include/cpython/object.h' line='265' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3008'>
-        <var-decl name='tp_del' type-id='type-id-37' visibility='default' filepath='./Include/cpython/object.h' line='266' column='1'/>
+        <var-decl name='tp_del' type-id='type-id-38' visibility='default' filepath='./Include/cpython/object.h' line='266' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3072'>
-        <var-decl name='tp_version_tag' type-id='type-id-65' visibility='default' filepath='./Include/cpython/object.h' line='269' column='1'/>
+        <var-decl name='tp_version_tag' type-id='type-id-66' visibility='default' filepath='./Include/cpython/object.h' line='269' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3136'>
-        <var-decl name='tp_finalize' type-id='type-id-37' visibility='default' filepath='./Include/cpython/object.h' line='271' column='1'/>
+        <var-decl name='tp_finalize' type-id='type-id-38' visibility='default' filepath='./Include/cpython/object.h' line='271' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3200'>
-        <var-decl name='tp_vectorcall' type-id='type-id-66' visibility='default' filepath='./Include/cpython/object.h' line='272' column='1'/>
+        <var-decl name='tp_vectorcall' type-id='type-id-67' visibility='default' filepath='./Include/cpython/object.h' line='272' 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-36' visibility='default' filepath='./Include/object.h' line='115' column='1' id='type-id-67'>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-37' visibility='default' filepath='./Include/object.h' line='115' column='1' id='type-id-68'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/object.h' line='116' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' 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-30' visibility='default' filepath='./Include/object.h' line='117' column='1'/>
+        <var-decl name='ob_size' type-id='type-id-31' visibility='default' filepath='./Include/object.h' line='117' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyObject' type-id='type-id-29' filepath='./Include/object.h' line='109' column='1' id='type-id-68'/>
-    <typedef-decl name='PyVarObject' type-id='type-id-67' filepath='./Include/object.h' line='118' column='1' id='type-id-36'/>
-    <type-decl name='void' id='type-id-69'/>
-    <pointer-type-def type-id='type-id-68' size-in-bits='64' id='type-id-15'/>
+    <typedef-decl name='PyObject' type-id='type-id-30' filepath='./Include/object.h' line='109' column='1' id='type-id-69'/>
+    <typedef-decl name='PyVarObject' type-id='type-id-68' filepath='./Include/object.h' line='118' column='1' id='type-id-37'/>
+    <pointer-type-def type-id='type-id-69' size-in-bits='64' id='type-id-16'/>
     <pointer-type-def type-id='type-id-70' size-in-bits='64' id='type-id-71'/>
-    <typedef-decl name='destructor' type-id='type-id-71' filepath='./Include/object.h' line='201' column='1' id='type-id-37'/>
+    <typedef-decl name='destructor' type-id='type-id-71' filepath='./Include/object.h' line='201' column='1' id='type-id-38'/>
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-72'/>
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-74'/>
-    <typedef-decl name='getattrfunc' type-id='type-id-74' filepath='./Include/object.h' line='202' column='1' id='type-id-38'/>
+    <typedef-decl name='getattrfunc' type-id='type-id-74' filepath='./Include/object.h' line='202' column='1' id='type-id-39'/>
     <pointer-type-def type-id='type-id-75' size-in-bits='64' id='type-id-76'/>
-    <typedef-decl name='setattrfunc' type-id='type-id-76' filepath='./Include/object.h' line='204' column='1' id='type-id-39'/>
+    <typedef-decl name='setattrfunc' type-id='type-id-76' filepath='./Include/object.h' line='204' column='1' id='type-id-40'/>
     <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-77' visibility='default' filepath='./Include/cpython/object.h' line='173' column='1' id='type-id-78'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='am_await' type-id='type-id-79' visibility='default' filepath='./Include/cpython/object.h' line='174' column='1'/>
       <enumerator name='PYGEN_NEXT' value='1'/>
     </enum-decl>
     <typedef-decl name='PySendResult' type-id='type-id-84' filepath='./Include/object.h' line='639' column='1' id='type-id-85'/>
-    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-86'/>
+    <pointer-type-def type-id='type-id-16' size-in-bits='64' id='type-id-86'/>
     <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-88'/>
     <typedef-decl name='sendfunc' type-id='type-id-88' filepath='./Include/cpython/object.h' line='171' column='1' id='type-id-80'/>
     <typedef-decl name='PyAsyncMethods' type-id='type-id-78' filepath='./Include/cpython/object.h' line='178' column='1' id='type-id-77'/>
-    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-40'/>
-    <typedef-decl name='reprfunc' type-id='type-id-82' filepath='./Include/object.h' line='206' column='1' id='type-id-41'/>
+    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-41'/>
+    <typedef-decl name='reprfunc' type-id='type-id-82' filepath='./Include/object.h' line='206' column='1' id='type-id-42'/>
     <class-decl name='__anonymous_struct__' size-in-bits='2304' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-89' visibility='default' filepath='./Include/cpython/object.h' line='104' column='1' id='type-id-90'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='nb_add' type-id='type-id-91' visibility='default' filepath='./Include/cpython/object.h' line='109' column='1'/>
         <var-decl name='nb_divmod' type-id='type-id-91' visibility='default' filepath='./Include/cpython/object.h' line='113' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='nb_power' type-id='type-id-46' visibility='default' filepath='./Include/cpython/object.h' line='114' column='1'/>
+        <var-decl name='nb_power' type-id='type-id-47' visibility='default' filepath='./Include/cpython/object.h' line='114' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
         <var-decl name='nb_negative' type-id='type-id-79' visibility='default' filepath='./Include/cpython/object.h' line='115' column='1'/>
         <var-decl name='nb_absolute' type-id='type-id-79' visibility='default' filepath='./Include/cpython/object.h' line='117' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='nb_bool' type-id='type-id-51' visibility='default' filepath='./Include/cpython/object.h' line='118' column='1'/>
+        <var-decl name='nb_bool' type-id='type-id-52' visibility='default' filepath='./Include/cpython/object.h' line='118' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
         <var-decl name='nb_invert' type-id='type-id-79' visibility='default' filepath='./Include/cpython/object.h' line='119' column='1'/>
         <var-decl name='nb_int' type-id='type-id-79' visibility='default' filepath='./Include/cpython/object.h' line='125' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='nb_reserved' type-id='type-id-20' visibility='default' filepath='./Include/cpython/object.h' line='126' column='1'/>
+        <var-decl name='nb_reserved' type-id='type-id-21' visibility='default' filepath='./Include/cpython/object.h' line='126' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
         <var-decl name='nb_float' type-id='type-id-79' visibility='default' filepath='./Include/cpython/object.h' line='127' column='1'/>
         <var-decl name='nb_inplace_remainder' type-id='type-id-91' visibility='default' filepath='./Include/cpython/object.h' line='132' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='nb_inplace_power' type-id='type-id-46' visibility='default' filepath='./Include/cpython/object.h' line='133' column='1'/>
+        <var-decl name='nb_inplace_power' type-id='type-id-47' visibility='default' filepath='./Include/cpython/object.h' line='133' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1536'>
         <var-decl name='nb_inplace_lshift' type-id='type-id-91' visibility='default' filepath='./Include/cpython/object.h' line='134' column='1'/>
     <pointer-type-def type-id='type-id-92' size-in-bits='64' id='type-id-93'/>
     <typedef-decl name='binaryfunc' type-id='type-id-93' filepath='./Include/object.h' line='185' column='1' id='type-id-91'/>
     <pointer-type-def type-id='type-id-94' size-in-bits='64' id='type-id-95'/>
-    <typedef-decl name='ternaryfunc' type-id='type-id-95' filepath='./Include/object.h' line='186' column='1' id='type-id-46'/>
+    <typedef-decl name='ternaryfunc' type-id='type-id-95' filepath='./Include/object.h' line='186' column='1' id='type-id-47'/>
     <pointer-type-def type-id='type-id-96' size-in-bits='64' id='type-id-97'/>
-    <typedef-decl name='inquiry' type-id='type-id-97' filepath='./Include/object.h' line='187' column='1' id='type-id-51'/>
-    <pointer-type-def type-id='type-id-69' size-in-bits='64' id='type-id-20'/>
+    <typedef-decl name='inquiry' type-id='type-id-97' filepath='./Include/object.h' line='187' column='1' id='type-id-52'/>
+    <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-21'/>
     <typedef-decl name='PyNumberMethods' type-id='type-id-90' filepath='./Include/cpython/object.h' line='149' column='1' id='type-id-89'/>
-    <pointer-type-def type-id='type-id-89' size-in-bits='64' id='type-id-42'/>
+    <pointer-type-def type-id='type-id-89' size-in-bits='64' id='type-id-43'/>
     <class-decl name='__anonymous_struct__' size-in-bits='640' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-98' visibility='default' filepath='./Include/cpython/object.h' line='151' column='1' id='type-id-99'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='sq_length' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='152' column='1'/>
         <var-decl name='sq_item' type-id='type-id-101' visibility='default' filepath='./Include/cpython/object.h' line='155' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='was_sq_slice' type-id='type-id-20' visibility='default' filepath='./Include/cpython/object.h' line='156' column='1'/>
+        <var-decl name='was_sq_slice' type-id='type-id-21' visibility='default' filepath='./Include/cpython/object.h' line='156' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
         <var-decl name='sq_ass_item' type-id='type-id-102' visibility='default' filepath='./Include/cpython/object.h' line='157' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='was_sq_ass_slice' type-id='type-id-20' visibility='default' filepath='./Include/cpython/object.h' line='158' column='1'/>
+        <var-decl name='was_sq_ass_slice' type-id='type-id-21' visibility='default' filepath='./Include/cpython/object.h' line='158' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
         <var-decl name='sq_contains' type-id='type-id-103' visibility='default' filepath='./Include/cpython/object.h' line='159' column='1'/>
     <pointer-type-def type-id='type-id-110' size-in-bits='64' id='type-id-111'/>
     <typedef-decl name='objobjproc' type-id='type-id-111' filepath='./Include/object.h' line='195' column='1' id='type-id-103'/>
     <typedef-decl name='PySequenceMethods' type-id='type-id-99' filepath='./Include/cpython/object.h' line='163' column='1' id='type-id-98'/>
-    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-43'/>
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-44'/>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-112' visibility='default' filepath='./Include/cpython/object.h' line='165' column='1' id='type-id-113'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='mp_length' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='166' column='1'/>
     <pointer-type-def type-id='type-id-115' size-in-bits='64' id='type-id-116'/>
     <typedef-decl name='objobjargproc' type-id='type-id-116' filepath='./Include/object.h' line='193' column='1' id='type-id-114'/>
     <typedef-decl name='PyMappingMethods' type-id='type-id-113' filepath='./Include/cpython/object.h' line='169' column='1' id='type-id-112'/>
-    <pointer-type-def type-id='type-id-112' size-in-bits='64' id='type-id-44'/>
-    <typedef-decl name='Py_hash_t' type-id='type-id-30' filepath='./Include/pyport.h' line='116' column='1' id='type-id-117'/>
+    <pointer-type-def type-id='type-id-112' size-in-bits='64' id='type-id-45'/>
+    <typedef-decl name='Py_hash_t' type-id='type-id-31' filepath='./Include/pyport.h' line='116' column='1' id='type-id-117'/>
     <pointer-type-def type-id='type-id-118' size-in-bits='64' id='type-id-119'/>
-    <typedef-decl name='hashfunc' type-id='type-id-119' filepath='./Include/object.h' line='207' column='1' id='type-id-45'/>
-    <typedef-decl name='getattrofunc' type-id='type-id-93' filepath='./Include/object.h' line='203' column='1' id='type-id-47'/>
-    <typedef-decl name='setattrofunc' type-id='type-id-116' filepath='./Include/object.h' line='205' column='1' id='type-id-48'/>
+    <typedef-decl name='hashfunc' type-id='type-id-119' filepath='./Include/object.h' line='207' column='1' id='type-id-46'/>
+    <typedef-decl name='getattrofunc' type-id='type-id-93' filepath='./Include/object.h' line='203' column='1' id='type-id-48'/>
+    <typedef-decl name='setattrofunc' type-id='type-id-116' filepath='./Include/object.h' line='205' column='1' id='type-id-49'/>
     <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-120' visibility='default' filepath='./Include/cpython/object.h' line='180' column='1' id='type-id-121'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='bf_getbuffer' type-id='type-id-122' visibility='default' filepath='./Include/cpython/object.h' line='181' column='1'/>
     </class-decl>
     <class-decl name='bufferinfo' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='49' column='1' id='type-id-124'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='buf' type-id='type-id-20' visibility='default' filepath='./Include/cpython/object.h' line='50' column='1'/>
+        <var-decl name='buf' type-id='type-id-21' visibility='default' filepath='./Include/cpython/object.h' line='50' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='obj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='51' column='1'/>
+        <var-decl name='obj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/object.h' line='51' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='len' type-id='type-id-30' visibility='default' filepath='./Include/cpython/object.h' line='52' column='1'/>
+        <var-decl name='len' type-id='type-id-31' visibility='default' filepath='./Include/cpython/object.h' line='52' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='itemsize' type-id='type-id-30' visibility='default' filepath='./Include/cpython/object.h' line='53' column='1'/>
+        <var-decl name='itemsize' type-id='type-id-31' visibility='default' filepath='./Include/cpython/object.h' line='53' 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='55' column='1'/>
+        <var-decl name='readonly' type-id='type-id-9' visibility='default' filepath='./Include/cpython/object.h' line='55' 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='56' column='1'/>
+        <var-decl name='ndim' type-id='type-id-9' visibility='default' filepath='./Include/cpython/object.h' line='56' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
         <var-decl name='format' type-id='type-id-72' visibility='default' filepath='./Include/cpython/object.h' line='57' column='1'/>
         <var-decl name='suboffsets' type-id='type-id-125' visibility='default' filepath='./Include/cpython/object.h' line='60' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='internal' type-id='type-id-20' visibility='default' filepath='./Include/cpython/object.h' line='61' column='1'/>
+        <var-decl name='internal' type-id='type-id-21' visibility='default' filepath='./Include/cpython/object.h' line='61' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-125'/>
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-125'/>
     <typedef-decl name='Py_buffer' type-id='type-id-124' filepath='./Include/cpython/object.h' line='62' column='1' id='type-id-126'/>
     <pointer-type-def type-id='type-id-126' size-in-bits='64' id='type-id-127'/>
     <pointer-type-def type-id='type-id-128' size-in-bits='64' id='type-id-129'/>
     <pointer-type-def type-id='type-id-130' size-in-bits='64' id='type-id-131'/>
     <typedef-decl name='releasebufferproc' type-id='type-id-131' filepath='./Include/cpython/object.h' line='65' column='1' id='type-id-123'/>
     <typedef-decl name='PyBufferProcs' type-id='type-id-121' filepath='./Include/cpython/object.h' line='183' column='1' id='type-id-120'/>
-    <pointer-type-def type-id='type-id-120' size-in-bits='64' id='type-id-49'/>
-    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-18'/>
+    <pointer-type-def type-id='type-id-120' size-in-bits='64' id='type-id-50'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-19'/>
     <pointer-type-def type-id='type-id-132' size-in-bits='64' id='type-id-133'/>
     <typedef-decl name='visitproc' type-id='type-id-133' filepath='./Include/object.h' line='196' column='1' id='type-id-134'/>
     <pointer-type-def type-id='type-id-135' size-in-bits='64' id='type-id-136'/>
-    <typedef-decl name='traverseproc' type-id='type-id-136' filepath='./Include/object.h' line='197' column='1' id='type-id-50'/>
+    <typedef-decl name='traverseproc' type-id='type-id-136' filepath='./Include/object.h' line='197' column='1' id='type-id-51'/>
     <pointer-type-def type-id='type-id-137' size-in-bits='64' id='type-id-138'/>
-    <typedef-decl name='richcmpfunc' type-id='type-id-138' filepath='./Include/object.h' line='208' column='1' id='type-id-52'/>
-    <typedef-decl name='getiterfunc' type-id='type-id-82' filepath='./Include/object.h' line='209' column='1' id='type-id-53'/>
-    <typedef-decl name='iternextfunc' type-id='type-id-82' filepath='./Include/object.h' line='210' column='1' id='type-id-54'/>
+    <typedef-decl name='richcmpfunc' type-id='type-id-138' filepath='./Include/object.h' line='208' column='1' id='type-id-53'/>
+    <typedef-decl name='getiterfunc' type-id='type-id-82' filepath='./Include/object.h' line='209' column='1' id='type-id-54'/>
+    <typedef-decl name='iternextfunc' type-id='type-id-82' filepath='./Include/object.h' line='210' column='1' id='type-id-55'/>
     <class-decl name='PyMethodDef' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/methodobject.h' line='35' column='1' id='type-id-139'>
       <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'/>
         <var-decl name='ml_meth' type-id='type-id-140' 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'/>
+        <var-decl name='ml_flags' type-id='type-id-9' 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-93' filepath='./Include/methodobject.h' line='19' column='1' id='type-id-140'/>
-    <pointer-type-def type-id='type-id-139' size-in-bits='64' id='type-id-55'/>
+    <pointer-type-def type-id='type-id-139' size-in-bits='64' id='type-id-56'/>
     <class-decl name='PyMemberDef' size-in-bits='320' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-141'/>
-    <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-56'/>
+    <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-57'/>
     <class-decl name='PyGetSetDef' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/descrobject.h' line='11' column='1' id='type-id-142'>
       <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'/>
         <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-20' visibility='default' filepath='./Include/descrobject.h' line='16' column='1'/>
+        <var-decl name='closure' type-id='type-id-21' visibility='default' filepath='./Include/descrobject.h' line='16' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-145' size-in-bits='64' id='type-id-146'/>
     <typedef-decl name='getter' type-id='type-id-146' filepath='./Include/descrobject.h' line='8' column='1' id='type-id-143'/>
     <pointer-type-def type-id='type-id-147' size-in-bits='64' id='type-id-148'/>
     <typedef-decl name='setter' type-id='type-id-148' filepath='./Include/descrobject.h' line='9' column='1' id='type-id-144'/>
-    <pointer-type-def type-id='type-id-142' size-in-bits='64' id='type-id-57'/>
-    <pointer-type-def type-id='type-id-35' size-in-bits='64' id='type-id-58'/>
-    <typedef-decl name='descrgetfunc' type-id='type-id-95' filepath='./Include/object.h' line='211' column='1' id='type-id-59'/>
-    <typedef-decl name='descrsetfunc' type-id='type-id-116' filepath='./Include/object.h' line='212' column='1' id='type-id-60'/>
-    <typedef-decl name='initproc' type-id='type-id-116' filepath='./Include/object.h' line='213' column='1' id='type-id-61'/>
-    <typedef-decl name='PyTypeObject' type-id='type-id-35' filepath='./Include/object.h' line='66' column='1' id='type-id-149'/>
-    <pointer-type-def type-id='type-id-149' size-in-bits='64' id='type-id-31'/>
+    <pointer-type-def type-id='type-id-142' size-in-bits='64' id='type-id-58'/>
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-59'/>
+    <typedef-decl name='descrgetfunc' type-id='type-id-95' filepath='./Include/object.h' line='211' column='1' id='type-id-60'/>
+    <typedef-decl name='descrsetfunc' type-id='type-id-116' filepath='./Include/object.h' line='212' column='1' id='type-id-61'/>
+    <typedef-decl name='initproc' type-id='type-id-116' filepath='./Include/object.h' line='213' column='1' id='type-id-62'/>
+    <typedef-decl name='PyTypeObject' type-id='type-id-36' filepath='./Include/object.h' line='66' column='1' id='type-id-149'/>
+    <pointer-type-def type-id='type-id-149' size-in-bits='64' id='type-id-32'/>
     <pointer-type-def type-id='type-id-150' size-in-bits='64' id='type-id-151'/>
-    <typedef-decl name='allocfunc' type-id='type-id-151' filepath='./Include/object.h' line='215' column='1' id='type-id-62'/>
+    <typedef-decl name='allocfunc' type-id='type-id-151' filepath='./Include/object.h' line='215' column='1' id='type-id-63'/>
     <pointer-type-def type-id='type-id-152' size-in-bits='64' id='type-id-153'/>
-    <typedef-decl name='newfunc' type-id='type-id-153' filepath='./Include/object.h' line='214' column='1' id='type-id-63'/>
-    <pointer-type-def type-id='type-id-154' size-in-bits='64' id='type-id-19'/>
-    <typedef-decl name='freefunc' type-id='type-id-19' filepath='./Include/object.h' line='200' column='1' id='type-id-64'/>
-    <type-decl name='unsigned int' size-in-bits='32' id='type-id-65'/>
-    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-155'/>
+    <typedef-decl name='newfunc' type-id='type-id-153' filepath='./Include/object.h' line='214' column='1' id='type-id-64'/>
+    <pointer-type-def type-id='type-id-154' size-in-bits='64' id='type-id-20'/>
+    <typedef-decl name='freefunc' type-id='type-id-20' filepath='./Include/object.h' line='200' column='1' id='type-id-65'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-66'/>
+    <qualified-type-def type-id='type-id-16' const='yes' id='type-id-155'/>
     <pointer-type-def type-id='type-id-155' size-in-bits='64' id='type-id-156'/>
-    <typedef-decl name='size_t' type-id='type-id-18' filepath='/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h' line='209' column='1' id='type-id-157'/>
+    <typedef-decl name='size_t' type-id='type-id-19' filepath='/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h' line='209' column='1' id='type-id-157'/>
     <pointer-type-def type-id='type-id-158' size-in-bits='64' id='type-id-159'/>
-    <typedef-decl name='vectorcallfunc' type-id='type-id-159' filepath='./Include/cpython/object.h' line='67' column='1' id='type-id-66'/>
+    <typedef-decl name='vectorcallfunc' type-id='type-id-159' filepath='./Include/cpython/object.h' line='67' column='1' id='type-id-67'/>
     <pointer-type-def type-id='type-id-160' size-in-bits='64' id='type-id-161'/>
-    <typedef-decl name='Py_tracefunc' type-id='type-id-161' filepath='./Include/cpython/pystate.h' line='15' column='1' id='type-id-14'/>
+    <typedef-decl name='Py_tracefunc' type-id='type-id-161' filepath='./Include/cpython/pystate.h' line='15' column='1' id='type-id-15'/>
     <class-decl name='_err_stackitem' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='47' column='1' id='type-id-162'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='exc_type' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
+        <var-decl name='exc_type' type-id='type-id-16' 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='exc_value' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
+        <var-decl name='exc_value' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='exc_traceback' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
+        <var-decl name='exc_traceback' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
         <var-decl name='previous_item' type-id='type-id-163' visibility='default' filepath='./Include/cpython/pystate.h' line='56' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-162' size-in-bits='64' id='type-id-163'/>
-    <typedef-decl name='_PyErr_StackItem' type-id='type-id-162' filepath='./Include/cpython/pystate.h' line='58' column='1' id='type-id-16'/>
-    <pointer-type-def type-id='type-id-16' size-in-bits='64' id='type-id-17'/>
-    <typedef-decl name='__uint64_t' type-id='type-id-18' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='45' column='1' id='type-id-164'/>
-    <typedef-decl name='uint64_t' type-id='type-id-164' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h' line='27' column='1' id='type-id-21'/>
-    <typedef-decl name='PyThreadState' type-id='type-id-9' filepath='./Include/pystate.h' line='20' column='1' id='type-id-165'/>
+    <typedef-decl name='_PyErr_StackItem' type-id='type-id-162' filepath='./Include/cpython/pystate.h' line='58' column='1' id='type-id-17'/>
+    <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-18'/>
+    <typedef-decl name='__uint64_t' type-id='type-id-19' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='45' column='1' id='type-id-164'/>
+    <typedef-decl name='uint64_t' type-id='type-id-164' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h' line='27' column='1' id='type-id-22'/>
+    <typedef-decl name='PyThreadState' type-id='type-id-10' filepath='./Include/pystate.h' line='20' column='1' id='type-id-165'/>
     <pointer-type-def type-id='type-id-165' size-in-bits='64' id='type-id-166'/>
     <var-decl name='_PyOS_ReadlineTState' type-id='type-id-166' mangled-name='_PyOS_ReadlineTState' visibility='default' filepath='./Include/cpython/pythonrun.h' line='120' column='1' elf-symbol-id='_PyOS_ReadlineTState'/>
     <pointer-type-def type-id='type-id-167' size-in-bits='64' id='type-id-168'/>
     <var-decl name='PyOS_InputHook' type-id='type-id-168' mangled-name='PyOS_InputHook' visibility='default' filepath='./Include/pythonrun.h' line='18' column='1' elf-symbol-id='PyOS_InputHook'/>
     <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-169'>
       <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='_flags' type-id='type-id-9' 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='_IO_read_ptr' type-id='type-id-72' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='54' column='1'/>
         <var-decl name='_chain' type-id='type-id-171' 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='_fileno' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='72' column='1'/>
+        <var-decl name='_fileno' type-id='type-id-9' 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'/>
+        <var-decl name='_flags2' type-id='type-id-9' 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='_old_offset' type-id='type-id-172' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='74' column='1'/>
         <var-decl name='_freeres_list' type-id='type-id-171' 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='1408'>
-        <var-decl name='_freeres_buf' type-id='type-id-20' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='94' column='1'/>
+        <var-decl name='_freeres_buf' type-id='type-id-21' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='94' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1472'>
         <var-decl name='__pad5' type-id='type-id-157' 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='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'/>
+        <var-decl name='_mode' type-id='type-id-9' 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='1568'>
         <var-decl name='_unused2' type-id='type-id-180' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='98' column='1'/>
     <class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-181'/>
     <pointer-type-def type-id='type-id-181' size-in-bits='64' id='type-id-170'/>
     <pointer-type-def type-id='type-id-169' size-in-bits='64' id='type-id-171'/>
-    <typedef-decl name='__off_t' type-id='type-id-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='152' column='1' id='type-id-172'/>
+    <typedef-decl name='__off_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='152' column='1' id='type-id-172'/>
     <type-decl name='unsigned short int' size-in-bits='16' id='type-id-173'/>
     <type-decl name='signed char' size-in-bits='8' id='type-id-174'/>
 
     <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='8' id='type-id-175'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
-    <typedef-decl name='_IO_lock_t' type-id='type-id-69' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='43' column='1' id='type-id-183'/>
+    <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-183'/>
     <pointer-type-def type-id='type-id-183' size-in-bits='64' id='type-id-176'/>
-    <typedef-decl name='__off64_t' type-id='type-id-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='153' column='1' id='type-id-177'/>
+    <typedef-decl name='__off64_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='153' column='1' id='type-id-177'/>
     <class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-184'/>
     <pointer-type-def type-id='type-id-184' size-in-bits='64' id='type-id-178'/>
     <class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-185'/>
     <pointer-type-def type-id='type-id-185' size-in-bits='64' id='type-id-179'/>
 
     <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='160' id='type-id-180'>
-      <subrange length='20' type-id='type-id-18' id='type-id-186'/>
+      <subrange length='20' type-id='type-id-19' id='type-id-186'/>
 
     </array-type-def>
     <typedef-decl name='FILE' type-id='type-id-169' filepath='/usr/include/x86_64-linux-gnu/bits/types/FILE.h' line='7' column='1' id='type-id-187'/>
       <parameter type-id='type-id-3' name='prompt' filepath='Parser/myreadline.c' line='354' column='1'/>
       <return type-id='type-id-72'/>
     </function-decl>
+    <function-decl name='PyEval_SaveThread' mangled-name='PyEval_SaveThread' filepath='./Include/ceval.h' line='118' 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='119' 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='PyMem_RawFree' mangled-name='PyMem_RawFree' filepath='./Include/cpython/pymem.h' line='8' 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='226' 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='148' 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='7' 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='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-81'>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-158'>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-156'/>
       <parameter type-id='type-id-157'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-92'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-94'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-137'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-8'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-73'>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-72'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-106'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-30'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-145'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-152'>
-      <parameter type-id='type-id-31'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-150'>
+      <parameter type-id='type-id-32'/>
       <parameter type-id='type-id-31'/>
-      <parameter type-id='type-id-30'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-189'>
       <parameter type-id='type-id-188'/>
       <return type-id='type-id-72'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-167'>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-96'>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-160'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-12'/>
-      <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-13'/>
+      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-110'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-115'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-147'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-128'>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-127'/>
-      <parameter type-id='type-id-8'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-75'>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-72'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-108'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-30'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-135'>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-134'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-132'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-87'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-86'/>
       <return type-id='type-id-85'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-118'>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <return type-id='type-id-117'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-104'>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-31'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-70'>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16'/>
+      <return type-id='type-id-4'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-130'>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-127'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-154'>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-4'/>
     </function-type>
   </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='158' 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='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='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='_Py_FatalErrorFunc' mangled-name='_Py_FatalErrorFunc' filepath='./Include/cpython/pyerrors.h' line='199' 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='467' 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='1149' 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='1169' 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='91' 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='90' 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='89' 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='362' 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/cpython/pythonrun.h' line='119' 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='__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='putc' mangled-name='putc' filepath='/usr/include/stdio.h' line='522' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin_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='PyUnicode_AsUTF8AndSize' mangled-name='PyUnicode_AsUTF8AndSize' filepath='./Include/unicodeobject.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CallNoArgs' mangled-name='PyObject_CallNoArgs' filepath='./Include/abstract.h' line='146' 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='5' 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='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='214' 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='316' 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='164' 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-72' const='yes' id='type-id-191'/>
     <pointer-type-def type-id='type-id-191' size-in-bits='64' id='type-id-192'/>
     <function-decl name='_Py_FreeCharPArray' mangled-name='_Py_FreeCharPArray' filepath='Objects/abstract.c' line='2972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FreeCharPArray'>
       <parameter type-id='type-id-192' name='array' filepath='Objects/abstract.c' line='2972' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PySequence_BytesToCharpArray' mangled-name='_PySequence_BytesToCharpArray' filepath='Objects/abstract.c' line='2913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySequence_BytesToCharpArray'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/abstract.c' line='2913' column='1'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/abstract.c' line='2913' column='1'/>
       <return type-id='type-id-192'/>
     </function-decl>
     <function-decl name='PyIter_Send' mangled-name='PyIter_Send' filepath='Objects/abstract.c' line='2879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIter_Send'>
-      <parameter type-id='type-id-15' name='iter' filepath='Objects/abstract.c' line='2879' column='1'/>
-      <parameter type-id='type-id-15' name='arg' filepath='Objects/abstract.c' line='2879' column='1'/>
+      <parameter type-id='type-id-16' name='iter' filepath='Objects/abstract.c' line='2879' column='1'/>
+      <parameter type-id='type-id-16' name='arg' filepath='Objects/abstract.c' line='2879' column='1'/>
       <parameter type-id='type-id-86' name='result' filepath='Objects/abstract.c' line='2879' column='1'/>
       <return type-id='type-id-85'/>
     </function-decl>
-    <function-decl name='PyIter_Next' mangled-name='PyIter_Next' filepath='Objects/abstract.c' line='2863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIter_Next'>
-      <parameter type-id='type-id-15' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
     <function-decl name='PyAIter_Check' mangled-name='PyAIter_Check' filepath='Objects/abstract.c' line='2847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAIter_Check'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyIter_Check' mangled-name='PyIter_Check' filepath='Objects/abstract.c' line='2839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIter_Check'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_GetAIter' mangled-name='PyObject_GetAIter' filepath='Objects/abstract.c' line='2819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetAIter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2819' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyObject_GetIter' mangled-name='PyObject_GetIter' filepath='Objects/abstract.c' line='2793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetIter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2793' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2819' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_RealIsSubclass' mangled-name='_PyObject_RealIsSubclass' filepath='Objects/abstract.c' line='2786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_RealIsSubclass'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
+      <parameter type-id='type-id-16' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyObject_RealIsInstance' mangled-name='_PyObject_RealIsInstance' filepath='Objects/abstract.c' line='2780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_RealIsInstance'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
+      <parameter type-id='type-id-16' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_IsSubclass' mangled-name='PyObject_IsSubclass' filepath='Objects/abstract.c' line='2772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsSubclass'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
+      <parameter type-id='type-id-16' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_IsInstance' mangled-name='PyObject_IsInstance' filepath='Objects/abstract.c' line='2687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsInstance'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
+      <parameter type-id='type-id-16' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyMapping_Values' mangled-name='PyMapping_Values' filepath='Objects/abstract.c' line='2473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Values'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyMapping_Items' mangled-name='PyMapping_Items' filepath='Objects/abstract.c' line='2459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Items'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyMapping_Keys' mangled-name='PyMapping_Keys' filepath='Objects/abstract.c' line='2445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Keys'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyMapping_HasKey' mangled-name='PyMapping_HasKey' filepath='Objects/abstract.c' line='2399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_HasKey'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2399' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/abstract.c' line='2399' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyMapping_HasKeyString' mangled-name='PyMapping_HasKeyString' filepath='Objects/abstract.c' line='2385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_HasKeyString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2385' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2385' column='1'/>
       <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyMapping_SetItemString' mangled-name='PyMapping_SetItemString' filepath='Objects/abstract.c' line='2366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_SetItemString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2366' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2366' column='1'/>
       <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/abstract.c' line='2366' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyMapping_GetItemString' mangled-name='PyMapping_GetItemString' filepath='Objects/abstract.c' line='2349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_GetItemString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2349' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2349' column='1'/>
       <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyMapping_Length' mangled-name='PyMapping_Length' filepath='Objects/abstract.c' line='2342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Length'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyMapping_Size' mangled-name='PyMapping_Size' filepath='Objects/abstract.c' line='2317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2317' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2317' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyMapping_Check' mangled-name='PyMapping_Check' filepath='Objects/abstract.c' line='2310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Check'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySequence_Index' mangled-name='PySequence_Index' filepath='Objects/abstract.c' line='2302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Index'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='2302' column='1'/>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2302' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='2302' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2302' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PySequence_In' mangled-name='PySequence_In' filepath='Objects/abstract.c' line='2296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_In'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PySequence_Contains' mangled-name='PySequence_Contains' filepath='Objects/abstract.c' line='2281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Contains'>
-      <parameter type-id='type-id-15' name='seq' filepath='Objects/abstract.c' line='2281' column='1'/>
-      <parameter type-id='type-id-15' name='ob' filepath='Objects/abstract.c' line='2281' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='2296' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='2296' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySequence_Count' mangled-name='PySequence_Count' filepath='Objects/abstract.c' line='2272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Count'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='2302' column='1'/>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2302' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='2302' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2302' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='_PySequence_IterSearch' mangled-name='_PySequence_IterSearch' filepath='Objects/abstract.c' line='2187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySequence_IterSearch'>
-      <parameter type-id='type-id-15' name='seq' filepath='Objects/abstract.c' line='2187' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2187' column='1'/>
-      <parameter type-id='type-id-8' name='operation' filepath='Objects/abstract.c' line='2187' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='seq' filepath='Objects/abstract.c' line='2187' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='2187' column='1'/>
+      <parameter type-id='type-id-9' name='operation' filepath='Objects/abstract.c' line='2187' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PySequence_Fast' mangled-name='PySequence_Fast' filepath='Objects/abstract.c' line='2152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Fast'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2152' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='2152' column='1'/>
       <parameter type-id='type-id-3' name='m' filepath='Objects/abstract.c' line='2152' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_List' mangled-name='PySequence_List' filepath='Objects/abstract.c' line='2129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_List'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_Tuple' mangled-name='PySequence_Tuple' filepath='Objects/abstract.c' line='2045' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Tuple'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2045' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='2045' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_DelSlice' mangled-name='PySequence_DelSlice' filepath='Objects/abstract.c' line='2022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_DelSlice'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='2022' column='1'/>
-      <parameter type-id='type-id-30' name='i1' filepath='Objects/abstract.c' line='2022' column='1'/>
-      <parameter type-id='type-id-30' name='i2' filepath='Objects/abstract.c' line='2022' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='2022' column='1'/>
+      <parameter type-id='type-id-31' name='i1' filepath='Objects/abstract.c' line='2022' column='1'/>
+      <parameter type-id='type-id-31' name='i2' filepath='Objects/abstract.c' line='2022' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySequence_SetSlice' mangled-name='PySequence_SetSlice' filepath='Objects/abstract.c' line='1999' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_SetSlice'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1999' column='1'/>
-      <parameter type-id='type-id-30' name='i1' filepath='Objects/abstract.c' line='1999' column='1'/>
-      <parameter type-id='type-id-30' name='i2' filepath='Objects/abstract.c' line='1999' column='1'/>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1999' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1999' column='1'/>
+      <parameter type-id='type-id-31' name='i1' filepath='Objects/abstract.c' line='1999' column='1'/>
+      <parameter type-id='type-id-31' name='i2' filepath='Objects/abstract.c' line='1999' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1999' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySequence_DelItem' mangled-name='PySequence_DelItem' filepath='Objects/abstract.c' line='1966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_DelItem'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1966' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/abstract.c' line='1966' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1966' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/abstract.c' line='1966' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySequence_SetItem' mangled-name='PySequence_SetItem' filepath='Objects/abstract.c' line='1933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_SetItem'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1933' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/abstract.c' line='1933' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1933' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySequence_GetSlice' mangled-name='PySequence_GetSlice' filepath='Objects/abstract.c' line='1911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_GetSlice'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1911' column='1'/>
-      <parameter type-id='type-id-30' name='i1' filepath='Objects/abstract.c' line='1911' column='1'/>
-      <parameter type-id='type-id-30' name='i2' filepath='Objects/abstract.c' line='1911' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1911' column='1'/>
+      <parameter type-id='type-id-31' name='i1' filepath='Objects/abstract.c' line='1911' column='1'/>
+      <parameter type-id='type-id-31' name='i2' filepath='Objects/abstract.c' line='1911' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_GetItem' mangled-name='PySequence_GetItem' filepath='Objects/abstract.c' line='1881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_GetItem'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1881' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/abstract.c' line='1881' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1881' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/abstract.c' line='1881' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_InPlaceRepeat' mangled-name='PySequence_InPlaceRepeat' filepath='Objects/abstract.c' line='1847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_InPlaceRepeat'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1847' column='1'/>
-      <parameter type-id='type-id-30' name='count' filepath='Objects/abstract.c' line='1847' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1847' column='1'/>
+      <parameter type-id='type-id-31' name='count' filepath='Objects/abstract.c' line='1847' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_InPlaceConcat' mangled-name='PySequence_InPlaceConcat' filepath='Objects/abstract.c' line='1818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_InPlaceConcat'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1818' column='1'/>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1818' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1818' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1818' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_Repeat' mangled-name='PySequence_Repeat' filepath='Objects/abstract.c' line='1787' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Repeat'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1787' column='1'/>
-      <parameter type-id='type-id-30' name='count' filepath='Objects/abstract.c' line='1787' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1787' column='1'/>
+      <parameter type-id='type-id-31' name='count' filepath='Objects/abstract.c' line='1787' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_Concat' mangled-name='PySequence_Concat' filepath='Objects/abstract.c' line='1761' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Concat'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1761' column='1'/>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1761' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1761' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1761' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySequence_Length' mangled-name='PySequence_Length' filepath='Objects/abstract.c' line='1754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Length'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PySequence_Size' mangled-name='PySequence_Size' filepath='Objects/abstract.c' line='1730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2317' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2317' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PySequence_Check' mangled-name='PySequence_Check' filepath='Objects/abstract.c' line='1721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Check'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1721' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyNumber_ToBase' mangled-name='PyNumber_ToBase' filepath='Objects/abstract.c' line='1702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_ToBase'>
-      <parameter type-id='type-id-15' name='n' filepath='Objects/abstract.c' line='1702' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/abstract.c' line='1702' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='n' filepath='Objects/abstract.c' line='1702' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Objects/abstract.c' line='1702' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Float' mangled-name='PyNumber_Float' filepath='Objects/abstract.c' line='1641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Float'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1641' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1641' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Long' mangled-name='PyNumber_Long' filepath='Objects/abstract.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Long'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1529' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1529' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_AsSsize_t' mangled-name='PyNumber_AsSsize_t' filepath='Objects/abstract.c' line='1478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_AsSsize_t'>
-      <parameter type-id='type-id-15' name='item' filepath='Objects/abstract.c' line='1478' column='1'/>
-      <parameter type-id='type-id-15' name='err' filepath='Objects/abstract.c' line='1478' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='item' filepath='Objects/abstract.c' line='1478' column='1'/>
+      <parameter type-id='type-id-16' name='err' filepath='Objects/abstract.c' line='1478' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyNumber_Index' mangled-name='PyNumber_Index' filepath='Objects/abstract.c' line='1466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Index'>
-      <parameter type-id='type-id-15' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='item' filepath='Objects/abstract.c' line='1466' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyNumber_Index' mangled-name='_PyNumber_Index' filepath='Objects/abstract.c' line='1419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyNumber_Index'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='item' filepath='Objects/abstract.c' line='1419' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyIndex_Check' mangled-name='PyIndex_Check' filepath='Objects/abstract.c' line='1407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIndex_Check'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1721' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyNumber_Absolute' mangled-name='PyNumber_Absolute' filepath='Objects/abstract.c' line='1389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Absolute'>
-      <parameter type-id='type-id-15' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1389' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Invert' mangled-name='PyNumber_Invert' filepath='Objects/abstract.c' line='1372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Invert'>
-      <parameter type-id='type-id-15' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1389' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Positive' mangled-name='PyNumber_Positive' filepath='Objects/abstract.c' line='1355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Positive'>
-      <parameter type-id='type-id-15' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1389' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Negative' mangled-name='PyNumber_Negative' filepath='Objects/abstract.c' line='1338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Negative'>
-      <parameter type-id='type-id-15' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='1389' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlacePower' mangled-name='PyNumber_InPlacePower' filepath='Objects/abstract.c' line='1328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlacePower'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <parameter type-id='type-id-15' name='z' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1328' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1328' column='1'/>
+      <parameter type-id='type-id-16' name='z' filepath='Objects/abstract.c' line='1328' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceRemainder' mangled-name='PyNumber_InPlaceRemainder' filepath='Objects/abstract.c' line='1321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceRemainder'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceMatrixMultiply' mangled-name='PyNumber_InPlaceMatrixMultiply' filepath='Objects/abstract.c' line='1314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceMatrixMultiply'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceMultiply' mangled-name='PyNumber_InPlaceMultiply' filepath='Objects/abstract.c' line='1285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceMultiply'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1285' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1285' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1285' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1285' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceAdd' mangled-name='PyNumber_InPlaceAdd' filepath='Objects/abstract.c' line='1262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceAdd'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1285' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1285' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1285' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1285' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceTrueDivide' mangled-name='PyNumber_InPlaceTrueDivide' filepath='Objects/abstract.c' line='1255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceTrueDivide'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceFloorDivide' mangled-name='PyNumber_InPlaceFloorDivide' filepath='Objects/abstract.c' line='1248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceFloorDivide'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceSubtract' mangled-name='PyNumber_InPlaceSubtract' filepath='Objects/abstract.c' line='1244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceSubtract'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceRshift' mangled-name='PyNumber_InPlaceRshift' filepath='Objects/abstract.c' line='1243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceRshift'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceLshift' mangled-name='PyNumber_InPlaceLshift' filepath='Objects/abstract.c' line='1242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceLshift'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceAnd' mangled-name='PyNumber_InPlaceAnd' filepath='Objects/abstract.c' line='1241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceAnd'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceXor' mangled-name='PyNumber_InPlaceXor' filepath='Objects/abstract.c' line='1240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceXor'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_InPlaceOr' mangled-name='PyNumber_InPlaceOr' filepath='Objects/abstract.c' line='1239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceOr'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Power' mangled-name='PyNumber_Power' filepath='Objects/abstract.c' line='1150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Power'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <parameter type-id='type-id-15' name='z' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1328' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1328' column='1'/>
+      <parameter type-id='type-id-16' name='z' filepath='Objects/abstract.c' line='1328' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Remainder' mangled-name='PyNumber_Remainder' filepath='Objects/abstract.c' line='1144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Remainder'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_TrueDivide' mangled-name='PyNumber_TrueDivide' filepath='Objects/abstract.c' line='1138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_TrueDivide'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_FloorDivide' mangled-name='PyNumber_FloorDivide' filepath='Objects/abstract.c' line='1132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_FloorDivide'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_MatrixMultiply' mangled-name='PyNumber_MatrixMultiply' filepath='Objects/abstract.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_MatrixMultiply'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Multiply' mangled-name='PyNumber_Multiply' filepath='Objects/abstract.c' line='1107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Multiply'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1285' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1285' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1285' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1285' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Add' mangled-name='PyNumber_Add' filepath='Objects/abstract.c' line='1069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Add'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1069' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1069' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1069' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1069' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Divmod' mangled-name='PyNumber_Divmod' filepath='Objects/abstract.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Divmod'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Subtract' mangled-name='PyNumber_Subtract' filepath='Objects/abstract.c' line='1065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Subtract'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Rshift' mangled-name='PyNumber_Rshift' filepath='Objects/abstract.c' line='1064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Rshift'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Lshift' mangled-name='PyNumber_Lshift' filepath='Objects/abstract.c' line='1063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Lshift'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_And' mangled-name='PyNumber_And' filepath='Objects/abstract.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_And'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Xor' mangled-name='PyNumber_Xor' filepath='Objects/abstract.c' line='1061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Xor'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Or' mangled-name='PyNumber_Or' filepath='Objects/abstract.c' line='1060' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Or'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyNumber_Check' mangled-name='PyNumber_Check' filepath='Objects/abstract.c' line='830' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Check'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='830' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_Format' mangled-name='PyObject_Format' filepath='Objects/abstract.c' line='767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Format'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='767' column='1'/>
-      <parameter type-id='type-id-15' name='format_spec' filepath='Objects/abstract.c' line='767' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='767' column='1'/>
+      <parameter type-id='type-id-16' name='format_spec' filepath='Objects/abstract.c' line='767' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyBuffer_Release' mangled-name='PyBuffer_Release' filepath='Objects/abstract.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_Release'>
       <parameter type-id='type-id-127' name='view' filepath='Objects/abstract.c' line='752' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyBuffer_FillInfo' mangled-name='PyBuffer_FillInfo' filepath='Objects/abstract.c' line='713' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_FillInfo'>
       <parameter type-id='type-id-127' name='view' filepath='Objects/abstract.c' line='713' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='713' column='1'/>
-      <parameter type-id='type-id-20' name='buf' filepath='Objects/abstract.c' line='713' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/abstract.c' line='713' column='1'/>
-      <parameter type-id='type-id-8' name='readonly' filepath='Objects/abstract.c' line='714' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/abstract.c' line='714' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='713' column='1'/>
+      <parameter type-id='type-id-21' name='buf' filepath='Objects/abstract.c' line='713' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/abstract.c' line='713' column='1'/>
+      <parameter type-id='type-id-9' name='readonly' filepath='Objects/abstract.c' line='714' column='1'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Objects/abstract.c' line='714' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyBuffer_FillContiguousStrides' mangled-name='PyBuffer_FillContiguousStrides' filepath='Objects/abstract.c' line='689' 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='689' column='1'/>
+      <parameter type-id='type-id-9' name='nd' filepath='Objects/abstract.c' line='689' column='1'/>
       <parameter type-id='type-id-125' name='shape' filepath='Objects/abstract.c' line='689' column='1'/>
       <parameter type-id='type-id-125' name='strides' filepath='Objects/abstract.c' line='690' column='1'/>
-      <parameter type-id='type-id-8' name='itemsize' filepath='Objects/abstract.c' line='690' column='1'/>
+      <parameter type-id='type-id-9' name='itemsize' filepath='Objects/abstract.c' line='690' column='1'/>
       <parameter type-id='type-id-1' name='fort' filepath='Objects/abstract.c' line='691' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyObject_CopyData' mangled-name='PyObject_CopyData' filepath='Objects/abstract.c' line='618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CopyData'>
-      <parameter type-id='type-id-15' name='dest' filepath='Objects/abstract.c' line='618' column='1'/>
-      <parameter type-id='type-id-15' name='src' filepath='Objects/abstract.c' line='618' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='dest' filepath='Objects/abstract.c' line='618' column='1'/>
+      <parameter type-id='type-id-16' name='src' filepath='Objects/abstract.c' line='618' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyBuffer_FromContiguous' mangled-name='PyBuffer_FromContiguous' filepath='Objects/abstract.c' line='567' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_FromContiguous'>
       <parameter type-id='type-id-127' name='view' filepath='Objects/abstract.c' line='567' column='1'/>
-      <parameter type-id='type-id-20' name='buf' filepath='Objects/abstract.c' line='567' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/abstract.c' line='567' column='1'/>
+      <parameter type-id='type-id-21' name='buf' filepath='Objects/abstract.c' line='567' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/abstract.c' line='567' column='1'/>
       <parameter type-id='type-id-1' name='fort' filepath='Objects/abstract.c' line='567' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyBuffer_SizeFromFormat' mangled-name='PyBuffer_SizeFromFormat' filepath='Objects/abstract.c' line='525' 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='525' column='1'/>
-      <return type-id='type-id-30'/>
+      <return type-id='type-id-31'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-30' const='yes' id='type-id-193'/>
+    <qualified-type-def type-id='type-id-31' const='yes' id='type-id-193'/>
     <pointer-type-def type-id='type-id-193' size-in-bits='64' id='type-id-194'/>
     <function-decl name='_Py_add_one_to_index_C' mangled-name='_Py_add_one_to_index_C' filepath='Objects/abstract.c' line='509' 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='509' column='1'/>
+      <parameter type-id='type-id-9' name='nd' filepath='Objects/abstract.c' line='509' column='1'/>
       <parameter type-id='type-id-125' name='index' filepath='Objects/abstract.c' line='509' column='1'/>
       <parameter type-id='type-id-194' name='shape' filepath='Objects/abstract.c' line='509' column='1'/>
-      <return type-id='type-id-69'/>
+      <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='493' 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='509' column='1'/>
+      <parameter type-id='type-id-9' name='nd' filepath='Objects/abstract.c' line='509' column='1'/>
       <parameter type-id='type-id-125' name='index' filepath='Objects/abstract.c' line='509' column='1'/>
       <parameter type-id='type-id-194' name='shape' filepath='Objects/abstract.c' line='509' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyBuffer_GetPointer' mangled-name='PyBuffer_GetPointer' filepath='Objects/abstract.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_GetPointer'>
       <parameter type-id='type-id-127' name='view' filepath='Objects/abstract.c' line='477' column='1'/>
       <parameter type-id='type-id-125' name='indices' filepath='Objects/abstract.c' line='477' column='1'/>
-      <return type-id='type-id-20'/>
-    </function-decl>
-    <qualified-type-def type-id='type-id-126' const='yes' id='type-id-195'/>
-    <pointer-type-def type-id='type-id-195' size-in-bits='64' id='type-id-196'/>
-    <function-decl name='PyBuffer_IsContiguous' mangled-name='PyBuffer_IsContiguous' filepath='Objects/abstract.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_IsContiguous'>
-      <parameter type-id='type-id-196' name='view' filepath='Objects/abstract.c' line='461' column='1'/>
-      <parameter type-id='type-id-1' name='order' filepath='Objects/abstract.c' line='461' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-21'/>
     </function-decl>
     <function-decl name='PyObject_GetBuffer' mangled-name='PyObject_GetBuffer' filepath='Objects/abstract.c' line='378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetBuffer'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='378' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='378' column='1'/>
       <parameter type-id='type-id-127' name='view' filepath='Objects/abstract.c' line='378' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/abstract.c' line='378' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Objects/abstract.c' line='378' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-197'/>
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-195'/>
     <function-decl name='PyObject_AsWriteBuffer' mangled-name='PyObject_AsWriteBuffer' filepath='Objects/abstract.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsWriteBuffer'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='349' column='1'/>
-      <parameter type-id='type-id-197' name='buffer' filepath='Objects/abstract.c' line='350' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='349' column='1'/>
+      <parameter type-id='type-id-195' name='buffer' filepath='Objects/abstract.c' line='350' column='1'/>
       <parameter type-id='type-id-125' name='buffer_len' filepath='Objects/abstract.c' line='351' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_AsReadBuffer' mangled-name='PyObject_AsReadBuffer' filepath='Objects/abstract.c' line='342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsReadBuffer'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='342' column='1'/>
-      <parameter type-id='type-id-197' name='buffer' filepath='Objects/abstract.c' line='343' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='342' column='1'/>
+      <parameter type-id='type-id-195' name='buffer' filepath='Objects/abstract.c' line='343' column='1'/>
       <parameter type-id='type-id-125' name='buffer_len' filepath='Objects/abstract.c' line='344' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-198'/>
+    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-196'/>
     <function-decl name='PyObject_AsCharBuffer' mangled-name='PyObject_AsCharBuffer' filepath='Objects/abstract.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsCharBuffer'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='335' column='1'/>
-      <parameter type-id='type-id-198' name='buffer' filepath='Objects/abstract.c' line='336' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='335' column='1'/>
+      <parameter type-id='type-id-196' name='buffer' filepath='Objects/abstract.c' line='336' column='1'/>
       <parameter type-id='type-id-125' name='buffer_len' filepath='Objects/abstract.c' line='337' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_CheckReadBuffer' mangled-name='PyObject_CheckReadBuffer' filepath='Objects/abstract.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CheckReadBuffer'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='300' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='300' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_CheckBuffer' mangled-name='PyObject_CheckBuffer' filepath='Objects/abstract.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CheckBuffer'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_DelItemString' mangled-name='PyObject_DelItemString' filepath='Objects/abstract.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_DelItemString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='269' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='269' column='1'/>
       <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='269' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_DelItem' mangled-name='PyObject_DelItem' filepath='Objects/abstract.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_DelItem'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='235' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/abstract.c' line='235' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='235' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/abstract.c' line='235' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_SetItem' mangled-name='PyObject_SetItem' filepath='Objects/abstract.c' line='201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetItem'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='201' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/abstract.c' line='201' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/abstract.c' line='201' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='201' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/abstract.c' line='201' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/abstract.c' line='201' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_GetItem' mangled-name='PyObject_GetItem' filepath='Objects/abstract.c' line='150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetItem'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='150' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/abstract.c' line='150' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyObject_LengthHint' mangled-name='PyObject_LengthHint' filepath='Objects/abstract.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_LengthHint'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='91' column='1'/>
-      <parameter type-id='type-id-30' name='defaultvalue' filepath='Objects/abstract.c' line='91' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='150' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/abstract.c' line='150' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_HasLen' mangled-name='_PyObject_HasLen' filepath='Objects/abstract.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_HasLen'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_Length' mangled-name='PyObject_Length' filepath='Objects/abstract.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Length'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyObject_Size' mangled-name='PyObject_Size' filepath='Objects/abstract.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2317' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='53' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyObject_Type' mangled-name='PyObject_Type' filepath='Objects/abstract.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Type'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='39' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <qualified-type-def type-id='type-id-126' const='yes' id='type-id-197'/>
+    <pointer-type-def type-id='type-id-197' size-in-bits='64' id='type-id-198'/>
+    <function-decl name='PyBuffer_IsContiguous' mangled-name='PyBuffer_IsContiguous' filepath='Objects/abstract.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_IsContiguous'>
+      <parameter type-id='type-id-198' name='view' filepath='Objects/abstract.c' line='461' column='1'/>
+      <parameter type-id='type-id-1' name='order' filepath='Objects/abstract.c' line='461' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyObject_LengthHint' mangled-name='PyObject_LengthHint' filepath='Objects/abstract.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_LengthHint'>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='91' column='1'/>
+      <parameter type-id='type-id-31' name='defaultvalue' filepath='Objects/abstract.c' line='91' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='PyObject_GetIter' mangled-name='PyObject_GetIter' filepath='Objects/abstract.c' line='2793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetIter'>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2793' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyIter_Next' mangled-name='PyIter_Next' filepath='Objects/abstract.c' line='2863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIter_Next'>
+      <parameter type-id='type-id-16' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PySequence_Contains' mangled-name='PySequence_Contains' filepath='Objects/abstract.c' line='2281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Contains'>
+      <parameter type-id='type-id-16' name='seq' filepath='Objects/abstract.c' line='2281' column='1'/>
+      <parameter type-id='type-id-16' name='ob' filepath='Objects/abstract.c' line='2281' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FromId' mangled-name='_PyUnicode_FromId' filepath='./Include/cpython/unicodeobject.h' line='1160' 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='187' 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='44' 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='./Include/cpython/object.h' line='328' 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='PyType_IsSubtype' mangled-name='PyType_IsSubtype' 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='_Py_CheckRecursiveCall' mangled-name='_Py_CheckRecursiveCall' filepath='./Include/internal/pycore_ceval.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_IsTrue' mangled-name='PyObject_IsTrue' filepath='./Include/object.h' line='285' 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='302' 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='_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='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='270' 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='_PyList_Extend' mangled-name='_PyList_Extend' filepath='./Include/cpython/listobject.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_Resize' mangled-name='_PyTuple_Resize' filepath='./Include/cpython/tupleobject.h' line='13' 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='176' 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_FromBytes' mangled-name='_PyLong_FromBytes' filepath='./Include/longobject.h' line='106' 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='105' 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='34' 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='_PyLong_Sign' mangled-name='_PyLong_Sign' filepath='./Include/longobject.h' line='114' 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='__builtin_memset' mangled-name='memset' 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='PySeqIter_New' mangled-name='PySeqIter_New' filepath='./Include/iterobject.h' line='16' 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/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-199' visibility='default' filepath='./Include/internal/pycore_accu.h' line='24' column='1' id='type-id-200'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='large' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_accu.h' line='25' column='1'/>
+        <var-decl name='large' type-id='type-id-16' 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='small' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_accu.h' line='26' column='1'/>
+        <var-decl name='small' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_accu.h' line='26' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='_PyAccu' type-id='type-id-200' filepath='./Include/internal/pycore_accu.h' line='27' column='1' id='type-id-199'/>
     <pointer-type-def type-id='type-id-199' size-in-bits='64' id='type-id-201'/>
     <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-201' name='acc' filepath='Objects/accu.c' line='111' column='1'/>
-      <return type-id='type-id-69'/>
+      <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-201' name='acc' filepath='Objects/accu.c' line='93' column='1'/>
-      <return type-id='type-id-15'/>
-    </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-201' name='acc' filepath='Objects/accu.c' line='76' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </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-201' name='acc' filepath='Objects/accu.c' line='55' column='1'/>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/accu.c' line='55' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/accu.c' line='55' column='1'/>
+      <return type-id='type-id-9'/>
     </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-201' name='acc' filepath='Objects/accu.c' line='18' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
+    </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-201' name='acc' filepath='Objects/accu.c' line='76' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Join' mangled-name='PyUnicode_Join' 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='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-149' 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-202'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-36' visibility='default' filepath='./Include/longintrepr.h' line='86' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-37' visibility='default' filepath='./Include/longintrepr.h' line='86' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
         <var-decl name='ob_digit' type-id='type-id-203' visibility='default' filepath='./Include/longintrepr.h' line='87' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='__uint32_t' type-id='type-id-65' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='42' column='1' id='type-id-204'/>
+    <typedef-decl name='__uint32_t' type-id='type-id-66' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='42' column='1' id='type-id-204'/>
     <typedef-decl name='uint32_t' type-id='type-id-204' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h' line='26' column='1' id='type-id-205'/>
     <typedef-decl name='digit' type-id='type-id-205' filepath='./Include/longintrepr.h' line='45' column='1' id='type-id-206'/>
 
     <array-type-def dimensions='1' type-id='type-id-206' size-in-bits='32' id='type-id-203'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <var-decl name='_Py_FalseStruct' type-id='type-id-202' 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-202' mangled-name='_Py_TrueStruct' visibility='default' filepath='./Include/boolobject.h' line='19' 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-32' name='ok' filepath='Objects/boolobject.c' line='28' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-33' name='ok' filepath='Objects/boolobject.c' line='28' column='1'/>
+      <return type-id='type-id-16'/>
+    </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='_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='_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='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>
   </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-207'>
-      <subrange length='infinite' id='type-id-6'/>
+      <subrange length='infinite' id='type-id-7'/>
 
     </array-type-def>
     <qualified-type-def type-id='type-id-207' const='yes' id='type-id-208'/>
     <var-decl name='_Py_count__doc__' type-id='type-id-208' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='55' column='1'/>
     <var-decl name='_Py_startswith__doc__' type-id='type-id-208' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='60' column='1'/>
     <var-decl name='_Py_endswith__doc__' type-id='type-id-208' 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='PyBuffer_Release' mangled-name='PyBuffer_Release' filepath='./Include/cpython/abstract.h' line='326' 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='./Include/cpython/abstract.h' line='270' 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='./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='_PyEval_SliceIndex' mangled-name='_PyEval_SliceIndex' 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='PyBool_FromLong' mangled-name='PyBool_FromLong' filepath='./Include/boolobject.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyNumber_AsSsize_t' mangled-name='PyNumber_AsSsize_t' filepath='./Include/abstract.h' line='532' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CheckBuffer' mangled-name='PyObject_CheckBuffer' filepath='./Include/cpython/abstract.h' line='263' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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>
   </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-209'>
-      <subrange length='infinite' id='type-id-6'/>
+      <subrange length='infinite' id='type-id-7'/>
 
     </array-type-def>
     <var-decl name='_PyByteArray_empty_string' type-id='type-id-209' 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-149' 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-149' 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='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Concat'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/bytearrayobject.c' line='247' column='1'/>
-      <parameter type-id='type-id-15' name='b' filepath='Objects/bytearrayobject.c' line='247' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='a' filepath='Objects/bytearrayobject.c' line='247' column='1'/>
+      <parameter type-id='type-id-16' name='b' filepath='Objects/bytearrayobject.c' line='247' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyByteArray_Resize' mangled-name='PyByteArray_Resize' filepath='Objects/bytearrayobject.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Resize'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/bytearrayobject.c' line='168' column='1'/>
-      <parameter type-id='type-id-30' name='requested_size' filepath='Objects/bytearrayobject.c' line='168' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/bytearrayobject.c' line='168' column='1'/>
+      <parameter type-id='type-id-31' name='requested_size' filepath='Objects/bytearrayobject.c' line='168' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyByteArray_AsString' mangled-name='PyByteArray_AsString' filepath='Objects/bytearrayobject.c' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_AsString'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/bytearrayobject.c' line='159' column='1'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/bytearrayobject.c' line='159' column='1'/>
       <return type-id='type-id-72'/>
     </function-decl>
     <function-decl name='PyByteArray_Size' mangled-name='PyByteArray_Size' filepath='Objects/bytearrayobject.c' line='150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/bytearrayobject.c' line='150' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyByteArray_FromStringAndSize' mangled-name='PyByteArray_FromStringAndSize' filepath='Objects/bytearrayobject.c' line='106' 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='106' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/bytearrayobject.c' line='106' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/bytearrayobject.c' line='106' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyByteArray_FromObject' mangled-name='PyByteArray_FromObject' filepath='Objects/bytearrayobject.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_FromObject'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <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='_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='_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='_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='_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='_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='_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='_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='_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='_PyNumber_Index' mangled-name='_PyNumber_Index' filepath='./Include/cpython/abstract.h' line='373' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_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='_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='_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='_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='_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='_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='_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='_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='_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='_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='_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='_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='_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='_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='_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_Fast' mangled-name='PySequence_Fast' filepath='./Include/abstract.h' line='715' 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='./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_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='_Py_GetConfig' mangled-name='_Py_GetConfig' filepath='./Include/cpython/pystate.h' line='247' 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='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='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>
+    <function-decl name='PyNumber_Check' mangled-name='PyNumber_Check' filepath='./Include/abstract.h' line='417' 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_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>
+    <function-decl name='_PyObject_New' mangled-name='_PyObject_New' filepath='./Include/objimpl.h' line='131' 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='282' column='1' 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='./Include/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='_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='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='PyUnicode_GetDefaultEncoding' mangled-name='PyUnicode_GetDefaultEncoding' filepath='./Include/unicodeobject.h' line='355' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyBuffer_IsContiguous' mangled-name='PyBuffer_IsContiguous' filepath='./Include/cpython/abstract.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_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='PyUnicode_AsEncodedString' mangled-name='PyUnicode_AsEncodedString' filepath='./Include/unicodeobject.h' line='412' 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='_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='PyBuffer_FillInfo' mangled-name='PyBuffer_FillInfo' filepath='./Include/cpython/abstract.h' line='321' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_PyEval_GetBuiltinId' mangled-name='_PyEval_GetBuiltinId' 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='_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='PyObject_LengthHint' mangled-name='PyObject_LengthHint' filepath='./Include/cpython/abstract.h' line='258' 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='./Include/abstract.h' line='396' 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/bytesobject.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyBytesIter_Type' type-id='type-id-149' mangled-name='PyBytesIter_Type' visibility='default' filepath='./Include/bytesobject.h' line='28' 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-210' visibility='default' filepath='./Include/cpython/bytesobject.h' line='44' column='1' id='type-id-211'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='buffer' type-id='type-id-15' visibility='default' filepath='./Include/cpython/bytesobject.h' line='46' column='1'/>
+        <var-decl name='buffer' type-id='type-id-16' 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-30' visibility='default' filepath='./Include/cpython/bytesobject.h' line='49' column='1'/>
+        <var-decl name='allocated' type-id='type-id-31' 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-30' visibility='default' filepath='./Include/cpython/bytesobject.h' line='53' column='1'/>
+        <var-decl name='min_size' type-id='type-id-31' 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'/>
+        <var-decl name='use_bytearray' type-id='type-id-9' 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'/>
+        <var-decl name='overallocate' type-id='type-id-9' 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'/>
+        <var-decl name='use_small_buffer' type-id='type-id-9' 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-212' visibility='default' filepath='./Include/cpython/bytesobject.h' line='64' column='1'/>
     </class-decl>
 
     <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='4096' id='type-id-212'>
-      <subrange length='512' type-id='type-id-18' id='type-id-213'/>
+      <subrange length='512' type-id='type-id-19' id='type-id-213'/>
 
     </array-type-def>
     <typedef-decl name='_PyBytesWriter' type-id='type-id-211' filepath='./Include/cpython/bytesobject.h' line='65' column='1' id='type-id-210'/>
     <pointer-type-def type-id='type-id-210' size-in-bits='64' id='type-id-214'/>
     <function-decl name='_PyBytesWriter_WriteBytes' mangled-name='_PyBytesWriter_WriteBytes' filepath='Objects/bytesobject.c' line='3504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_WriteBytes'>
       <parameter type-id='type-id-214' name='writer' filepath='Objects/bytesobject.c' line='3504' column='1'/>
-      <parameter type-id='type-id-20' name='ptr' filepath='Objects/bytesobject.c' line='3504' column='1'/>
-      <parameter type-id='type-id-20' name='bytes' filepath='Objects/bytesobject.c' line='3505' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/bytesobject.c' line='3505' column='1'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/bytesobject.c' line='3504' column='1'/>
+      <parameter type-id='type-id-21' name='bytes' filepath='Objects/bytesobject.c' line='3505' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/bytesobject.c' line='3505' column='1'/>
+      <return type-id='type-id-21'/>
     </function-decl>
     <function-decl name='_PyBytesWriter_Finish' mangled-name='_PyBytesWriter_Finish' filepath='Objects/bytesobject.c' line='3460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Finish'>
       <parameter type-id='type-id-214' name='writer' filepath='Objects/bytesobject.c' line='3460' column='1'/>
-      <parameter type-id='type-id-20' name='str' filepath='Objects/bytesobject.c' line='3460' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-21' name='str' filepath='Objects/bytesobject.c' line='3460' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyBytesWriter_Alloc' mangled-name='_PyBytesWriter_Alloc' filepath='Objects/bytesobject.c' line='3430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Alloc'>
       <parameter type-id='type-id-214' name='writer' filepath='Objects/bytesobject.c' line='3430' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/bytesobject.c' line='3430' column='1'/>
-      <return type-id='type-id-20'/>
-    </function-decl>
-    <function-decl name='_PyBytesWriter_Prepare' mangled-name='_PyBytesWriter_Prepare' filepath='Objects/bytesobject.c' line='3400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Prepare'>
-      <parameter type-id='type-id-214' name='writer' filepath='Objects/bytesobject.c' line='3400' column='1'/>
-      <parameter type-id='type-id-20' name='str' filepath='Objects/bytesobject.c' line='3400' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/bytesobject.c' line='3400' column='1'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/bytesobject.c' line='3430' column='1'/>
+      <return type-id='type-id-21'/>
     </function-decl>
     <function-decl name='_PyBytesWriter_Resize' mangled-name='_PyBytesWriter_Resize' filepath='Objects/bytesobject.c' line='3330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Resize'>
       <parameter type-id='type-id-214' name='writer' filepath='Objects/bytesobject.c' line='3330' column='1'/>
-      <parameter type-id='type-id-20' name='str' filepath='Objects/bytesobject.c' line='3330' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/bytesobject.c' line='3330' column='1'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-21' name='str' filepath='Objects/bytesobject.c' line='3330' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/bytesobject.c' line='3330' column='1'/>
+      <return type-id='type-id-21'/>
     </function-decl>
     <function-decl name='_PyBytesWriter_Dealloc' mangled-name='_PyBytesWriter_Dealloc' filepath='Objects/bytesobject.c' line='3260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Dealloc'>
       <parameter type-id='type-id-214' name='writer' filepath='Objects/bytesobject.c' line='3260' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyBytesWriter_Init' mangled-name='_PyBytesWriter_Init' filepath='Objects/bytesobject.c' line='3249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Init'>
       <parameter type-id='type-id-214' name='writer' filepath='Objects/bytesobject.c' line='3249' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyBytes_Resize' mangled-name='_PyBytes_Resize' filepath='Objects/bytesobject.c' line='3010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_Resize'>
       <parameter type-id='type-id-86' name='pv' filepath='Objects/bytesobject.c' line='3010' column='1'/>
-      <parameter type-id='type-id-30' name='newsize' filepath='Objects/bytesobject.c' line='3010' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-31' name='newsize' filepath='Objects/bytesobject.c' line='3010' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyBytes_ConcatAndDel' mangled-name='PyBytes_ConcatAndDel' filepath='Objects/bytesobject.c' line='2988' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_ConcatAndDel'>
       <parameter type-id='type-id-86' name='pv' filepath='Objects/bytesobject.c' line='2988' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/bytesobject.c' line='2988' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyBytes_Concat' mangled-name='PyBytes_Concat' filepath='Objects/bytesobject.c' line='2939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Concat'>
-      <parameter type-id='type-id-86' name='pv' filepath='Objects/bytesobject.c' line='2939' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/bytesobject.c' line='2939' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyBytes_FromObject' mangled-name='PyBytes_FromObject' filepath='Objects/bytesobject.c' line='2818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromObject'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/bytesobject.c' line='2988' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyBytes_FromHex' mangled-name='_PyBytes_FromHex' filepath='Objects/bytesobject.c' line='2359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_FromHex'>
-      <parameter type-id='type-id-15' name='string' filepath='Objects/bytesobject.c' line='2359' column='1'/>
-      <parameter type-id='type-id-8' name='use_bytearray' filepath='Objects/bytesobject.c' line='2359' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='string' filepath='Objects/bytesobject.c' line='2359' column='1'/>
+      <parameter type-id='type-id-9' name='use_bytearray' filepath='Objects/bytesobject.c' line='2359' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyBytes_Join' mangled-name='_PyBytes_Join' filepath='Objects/bytesobject.c' line='1840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_Join'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyBytes_Repr' mangled-name='PyBytes_Repr' filepath='Objects/bytesobject.c' line='1292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Repr'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/bytesobject.c' line='1292' column='1'/>
-      <parameter type-id='type-id-8' name='smartquotes' filepath='Objects/bytesobject.c' line='1292' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/bytesobject.c' line='1292' column='1'/>
+      <parameter type-id='type-id-9' name='smartquotes' filepath='Objects/bytesobject.c' line='1292' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <pointer-type-def type-id='type-id-72' size-in-bits='64' id='type-id-215'/>
     <function-decl name='PyBytes_AsStringAndSize' mangled-name='PyBytes_AsStringAndSize' filepath='Objects/bytesobject.c' line='1246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_AsStringAndSize'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/bytesobject.c' line='1246' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/bytesobject.c' line='1246' column='1'/>
       <parameter type-id='type-id-215' name='s' filepath='Objects/bytesobject.c' line='1247' column='1'/>
       <parameter type-id='type-id-125' name='len' filepath='Objects/bytesobject.c' line='1248' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyBytes_AsString' mangled-name='PyBytes_AsString' filepath='Objects/bytesobject.c' line='1235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_AsString'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/bytearrayobject.c' line='159' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/bytesobject.c' line='1235' column='1'/>
       <return type-id='type-id-72'/>
     </function-decl>
     <function-decl name='PyBytes_Size' mangled-name='PyBytes_Size' filepath='Objects/bytesobject.c' line='1224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/bytesobject.c' line='1224' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyBytes_DecodeEscape' mangled-name='PyBytes_DecodeEscape' filepath='Objects/bytesobject.c' line='1198' 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='1198' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/bytesobject.c' line='1199' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/bytesobject.c' line='1199' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/bytesobject.c' line='1200' column='1'/>
-      <parameter type-id='type-id-30' name='_unused_unicode' filepath='Objects/bytesobject.c' line='1201' column='1'/>
+      <parameter type-id='type-id-31' name='_unused_unicode' filepath='Objects/bytesobject.c' line='1201' column='1'/>
       <parameter type-id='type-id-3' name='_unused_recode_encoding' filepath='Objects/bytesobject.c' line='1202' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyBytes_DecodeEscape' mangled-name='_PyBytes_DecodeEscape' filepath='Objects/bytesobject.c' line='1090' 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='1090' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/bytesobject.c' line='1091' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/bytesobject.c' line='1091' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/bytesobject.c' line='1092' column='1'/>
-      <parameter type-id='type-id-198' name='first_invalid_escape' filepath='Objects/bytesobject.c' line='1093' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-196' name='first_invalid_escape' filepath='Objects/bytesobject.c' line='1093' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyBytes_FormatEx' mangled-name='_PyBytes_FormatEx' filepath='Objects/bytesobject.c' line='610' 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='610' column='1'/>
-      <parameter type-id='type-id-30' name='format_len' filepath='Objects/bytesobject.c' line='610' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/bytesobject.c' line='611' column='1'/>
-      <parameter type-id='type-id-8' name='use_bytearray' filepath='Objects/bytesobject.c' line='611' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='format_len' filepath='Objects/bytesobject.c' line='610' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/bytesobject.c' line='611' column='1'/>
+      <parameter type-id='type-id-9' name='use_bytearray' filepath='Objects/bytesobject.c' line='611' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyBytes_FromFormat' mangled-name='PyBytes_FromFormat' filepath='Objects/bytesobject.c' line='410' 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='410' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-216'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='gp_offset' type-id='type-id-65' visibility='default'/>
+        <var-decl name='gp_offset' type-id='type-id-66' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='fp_offset' type-id='type-id-65' visibility='default'/>
+        <var-decl name='fp_offset' type-id='type-id-66' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='overflow_arg_area' type-id='type-id-20' visibility='default'/>
+        <var-decl name='overflow_arg_area' type-id='type-id-21' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='reg_save_area' type-id='type-id-20' visibility='default'/>
+        <var-decl name='reg_save_area' type-id='type-id-21' visibility='default'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-216' size-in-bits='64' id='type-id-217'/>
     <function-decl name='PyBytes_FromFormatV' mangled-name='PyBytes_FromFormatV' filepath='Objects/bytesobject.c' line='219' 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='219' column='1'/>
       <parameter type-id='type-id-217' name='vargs' filepath='Objects/bytesobject.c' line='219' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyBytes_FromString' mangled-name='PyBytes_FromString' filepath='Objects/bytesobject.c' line='176' 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='176' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyBytes_FromStringAndSize' mangled-name='PyBytes_FromStringAndSize' filepath='Objects/bytesobject.c' line='139' 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='139' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/bytesobject.c' line='139' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/bytesobject.c' line='139' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyBytes_Concat' mangled-name='PyBytes_Concat' filepath='Objects/bytesobject.c' line='2939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Concat'>
+      <parameter type-id='type-id-86' name='pv' filepath='Objects/bytesobject.c' line='2939' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/bytesobject.c' line='2939' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytesWriter_Prepare' mangled-name='_PyBytesWriter_Prepare' filepath='Objects/bytesobject.c' line='3400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Prepare'>
+      <parameter type-id='type-id-214' name='writer' filepath='Objects/bytesobject.c' line='3400' column='1'/>
+      <parameter type-id='type-id-21' name='str' filepath='Objects/bytesobject.c' line='3400' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/bytesobject.c' line='3400' column='1'/>
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <function-decl name='PyBytes_FromObject' mangled-name='PyBytes_FromObject' filepath='Objects/bytesobject.c' line='2818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromObject'>
+      <parameter type-id='type-id-16' name='x' filepath='Objects/bytesobject.c' line='2818' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <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='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_NewReference' mangled-name='_Py_NewReference' filepath='./Include/cpython/object.h' line='5' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyErr_BadArgument' mangled-name='PyErr_BadArgument' filepath='./Include/pyerrors.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_PyLong_FormatBytesWriter' mangled-name='_PyLong_FormatBytesWriter' filepath='./Include/longobject.h' line='184' 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='./Include/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='_PyUnicode_FormatLong' mangled-name='_PyUnicode_FormatLong' filepath='./Include/cpython/unicodeobject.h' line='1157' 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='./Include/abstract.h' line='538' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_ASCII' mangled-name='PyObject_ASCII' filepath='./Include/object.h' line='267' 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='./Include/floatobject.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='__builtin___memmove_chk' mangled-name='__memmove_chk' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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>
   </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='851' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyStack_AsDict'>
       <parameter type-id='type-id-156' name='values' filepath='Objects/call.c' line='851' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Objects/call.c' line='851' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='kwnames' filepath='Objects/call.c' line='851' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_CallFunctionObjArgs' mangled-name='PyObject_CallFunctionObjArgs' filepath='Objects/call.c' line='834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFunctionObjArgs'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='834' column='1'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='834' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <class-decl name='_Py_Identifier' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='37' column='1' id='type-id-218'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='string' type-id='type-id-3' visibility='default' filepath='./Include/cpython/object.h' line='38' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='index' type-id='type-id-30' visibility='default' filepath='./Include/cpython/object.h' line='41' column='1'/>
+        <var-decl name='index' type-id='type-id-31' visibility='default' filepath='./Include/cpython/object.h' line='41' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-218' size-in-bits='64' id='type-id-219'/>
     <function-decl name='_PyObject_CallMethodIdObjArgs' mangled-name='_PyObject_CallMethodIdObjArgs' filepath='Objects/call.c' line='803' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodIdObjArgs'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/call.c' line='803' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/call.c' line='803' column='1'/>
       <parameter type-id='type-id-219' name='name' filepath='Objects/call.c' line='804' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_CallMethodObjArgs' mangled-name='PyObject_CallMethodObjArgs' filepath='Objects/call.c' line='778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallMethodObjArgs'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/call.c' line='778' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/call.c' line='778' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/call.c' line='778' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/call.c' line='778' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_VectorcallMethod' mangled-name='PyObject_VectorcallMethod' filepath='Objects/call.c' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_VectorcallMethod'>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/call.c' line='744' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/call.c' line='744' column='1'/>
       <parameter type-id='type-id-156' name='args' filepath='Objects/call.c' line='744' column='1'/>
       <parameter type-id='type-id-157' name='nargsf' filepath='Objects/call.c' line='745' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Objects/call.c' line='745' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='kwnames' filepath='Objects/call.c' line='745' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <typedef-decl name='_Py_Identifier' type-id='type-id-218' filepath='./Include/cpython/object.h' line='42' column='1' id='type-id-220'/>
     <function-decl name='_PyObject_CallMethodId_SizeT' mangled-name='_PyObject_CallMethodId_SizeT' filepath='Objects/call.c' line='660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodId_SizeT'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/call.c' line='660' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/call.c' line='660' column='1'/>
       <parameter type-id='type-id-219' name='name' filepath='Objects/call.c' line='660' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='661' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_CallMethod_SizeT' mangled-name='_PyObject_CallMethod_SizeT' filepath='Objects/call.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethod_SizeT'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/call.c' line='636' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/call.c' line='636' column='1'/>
       <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='636' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='637' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_CallMethodId' mangled-name='_PyObject_CallMethodId' filepath='Objects/call.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodId'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/call.c' line='660' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/call.c' line='660' column='1'/>
       <parameter type-id='type-id-219' name='name' filepath='Objects/call.c' line='660' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='661' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyEval_CallMethod' mangled-name='PyEval_CallMethod' filepath='Objects/call.c' line='589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallMethod'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/call.c' line='636' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/call.c' line='636' column='1'/>
       <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='636' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='637' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_CallMethod' mangled-name='PyObject_CallMethod' filepath='Objects/call.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallMethod'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/call.c' line='636' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/call.c' line='636' column='1'/>
       <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='636' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='637' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_CallFunction_SizeT' mangled-name='_PyObject_CallFunction_SizeT' filepath='Objects/call.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallFunction_SizeT'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='533' column='1'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='533' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='533' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyEval_CallFunction' mangled-name='PyEval_CallFunction' filepath='Objects/call.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallFunction'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='533' column='1'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='533' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='533' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_CallFunction' mangled-name='PyObject_CallFunction' filepath='Objects/call.c' line='500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFunction'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='533' column='1'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='533' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='533' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <class-decl name='_ts' size-in-bits='2240' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='62' column='1' id='type-id-221'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prev' type-id='type-id-10' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
+        <var-decl name='prev' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='./Include/cpython/pystate.h' line='66' column='1'/>
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='66' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='interp' type-id='type-id-222' visibility='default' filepath='./Include/cpython/pystate.h' line='67' column='1'/>
         <var-decl name='frame' type-id='type-id-223' visibility='default' filepath='./Include/cpython/pystate.h' line='70' 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='71' column='1'/>
+        <var-decl name='recursion_depth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='recursion_headroom' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='72' column='1'/>
+        <var-decl name='recursion_headroom' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='72' 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='73' column='1'/>
+        <var-decl name='stackcheck_counter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='73' 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='78' column='1'/>
+        <var-decl name='tracing' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='78' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='cframe' type-id='type-id-13' visibility='default' filepath='./Include/cpython/pystate.h' line='82' column='1'/>
+        <var-decl name='cframe' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='c_profilefunc' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='84' column='1'/>
+        <var-decl name='c_profilefunc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='84' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='c_tracefunc' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='85' column='1'/>
+        <var-decl name='c_tracefunc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='85' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='c_profileobj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
+        <var-decl name='c_profileobj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='c_traceobj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='87' column='1'/>
+        <var-decl name='c_traceobj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='87' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='curexc_type' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
+        <var-decl name='curexc_type' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='curexc_value' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='91' column='1'/>
+        <var-decl name='curexc_value' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='91' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='curexc_traceback' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
+        <var-decl name='curexc_traceback' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='exc_state' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
+        <var-decl name='exc_state' type-id='type-id-17' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='exc_info' type-id='type-id-17' visibility='default' filepath='./Include/cpython/pystate.h' line='101' column='1'/>
+        <var-decl name='exc_info' type-id='type-id-18' visibility='default' filepath='./Include/cpython/pystate.h' line='101' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='103' column='1'/>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='103' 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='105' column='1'/>
+        <var-decl name='gilstate_counter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='105' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='async_exc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='107' column='1'/>
+        <var-decl name='async_exc' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='107' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='thread_id' type-id='type-id-18' visibility='default' filepath='./Include/cpython/pystate.h' line='108' column='1'/>
+        <var-decl name='thread_id' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='108' 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='110' column='1'/>
+        <var-decl name='trash_delete_nesting' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='110' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='trash_delete_later' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='111' column='1'/>
+        <var-decl name='trash_delete_later' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='111' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='on_delete' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='136' column='1'/>
+        <var-decl name='on_delete' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='136' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='on_delete_data' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
+        <var-decl name='on_delete_data' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='137' 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='139' column='1'/>
+        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='139' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='async_gen_firstiter' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='141' column='1'/>
+        <var-decl name='async_gen_firstiter' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='141' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='async_gen_finalizer' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='142' column='1'/>
+        <var-decl name='async_gen_finalizer' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='142' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='context' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='144' column='1'/>
+        <var-decl name='context' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='144' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='context_ver' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='145' column='1'/>
+        <var-decl name='context_ver' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='145' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='id' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='148' column='1'/>
+        <var-decl name='id' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='148' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2112'>
-        <var-decl name='root_cframe' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='150' column='1'/>
+        <var-decl name='root_cframe' type-id='type-id-23' visibility='default' filepath='./Include/cpython/pystate.h' line='150' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='_is' size-in-bits='908160' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='220' column='1' id='type-id-224'>
         <var-decl name='next' type-id='type-id-225' visibility='default' filepath='./Include/internal/pycore_interp.h' line='222' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tstate_head' type-id='type-id-10' visibility='default' filepath='./Include/internal/pycore_interp.h' line='223' column='1'/>
+        <var-decl name='tstate_head' type-id='type-id-11' visibility='default' filepath='./Include/internal/pycore_interp.h' line='223' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='runtime' type-id='type-id-226' visibility='default' filepath='./Include/internal/pycore_interp.h' line='228' column='1'/>
         <var-decl name='id_refcount' type-id='type-id-227' visibility='default' filepath='./Include/internal/pycore_interp.h' line='231' 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='232' column='1'/>
+        <var-decl name='requires_idref' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='232' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
         <var-decl name='id_mutex' type-id='type-id-228' visibility='default' filepath='./Include/internal/pycore_interp.h' line='233' 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='235' column='1'/>
+        <var-decl name='finalizing' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='235' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
         <var-decl name='ceval' type-id='type-id-229' visibility='default' filepath='./Include/internal/pycore_interp.h' line='237' column='1'/>
         <var-decl name='gc' type-id='type-id-230' visibility='default' filepath='./Include/internal/pycore_interp.h' line='238' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6848'>
-        <var-decl name='modules' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='241' column='1'/>
+        <var-decl name='modules' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='241' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6912'>
-        <var-decl name='modules_by_index' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='242' column='1'/>
+        <var-decl name='modules_by_index' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='242' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6976'>
-        <var-decl name='sysdict' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='244' column='1'/>
+        <var-decl name='sysdict' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='244' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7040'>
-        <var-decl name='builtins' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='246' column='1'/>
+        <var-decl name='builtins' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='246' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7104'>
-        <var-decl name='importlib' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='248' column='1'/>
+        <var-decl name='importlib' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='248' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7168'>
-        <var-decl name='num_threads' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_interp.h' line='251' column='1'/>
+        <var-decl name='num_threads' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_interp.h' line='251' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7232'>
         <var-decl name='pythread_stacksize' type-id='type-id-157' visibility='default' filepath='./Include/internal/pycore_interp.h' line='256' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7296'>
-        <var-decl name='codec_search_path' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='258' column='1'/>
+        <var-decl name='codec_search_path' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='258' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7360'>
-        <var-decl name='codec_search_cache' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='259' column='1'/>
+        <var-decl name='codec_search_cache' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='259' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7424'>
-        <var-decl name='codec_error_registry' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='260' column='1'/>
+        <var-decl name='codec_error_registry' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='260' 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='261' column='1'/>
+        <var-decl name='codecs_initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='261' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7552'>
         <var-decl name='config' type-id='type-id-231' visibility='default' filepath='./Include/internal/pycore_interp.h' line='263' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10688'>
-        <var-decl name='dlopenflags' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='265' column='1'/>
+        <var-decl name='dlopenflags' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='265' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10752'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='268' column='1'/>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='268' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10816'>
-        <var-decl name='builtins_copy' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='270' column='1'/>
+        <var-decl name='builtins_copy' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='270' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10880'>
-        <var-decl name='import_func' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='271' column='1'/>
+        <var-decl name='import_func' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='271' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10944'>
         <var-decl name='eval_frame' type-id='type-id-232' visibility='default' filepath='./Include/internal/pycore_interp.h' line='273' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11008'>
-        <var-decl name='co_extra_user_count' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_interp.h' line='275' column='1'/>
+        <var-decl name='co_extra_user_count' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_interp.h' line='275' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11072'>
         <var-decl name='co_extra_freefuncs' type-id='type-id-233' visibility='default' filepath='./Include/internal/pycore_interp.h' line='276' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27392'>
-        <var-decl name='before_forkers' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='279' column='1'/>
+        <var-decl name='before_forkers' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='279' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27456'>
-        <var-decl name='after_forkers_parent' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='280' column='1'/>
+        <var-decl name='after_forkers_parent' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='280' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27520'>
-        <var-decl name='after_forkers_child' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='281' column='1'/>
+        <var-decl name='after_forkers_child' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='281' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27584'>
-        <var-decl name='tstate_next_unique_id' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_interp.h' line='284' column='1'/>
+        <var-decl name='tstate_next_unique_id' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_interp.h' line='284' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27648'>
         <var-decl name='warnings' type-id='type-id-234' visibility='default' filepath='./Include/internal/pycore_interp.h' line='286' column='1'/>
         <var-decl name='atexit' type-id='type-id-235' visibility='default' filepath='./Include/internal/pycore_interp.h' line='287' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='28032'>
-        <var-decl name='audit_hooks' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='289' column='1'/>
+        <var-decl name='audit_hooks' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='289' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='28096'>
         <var-decl name='small_ints' type-id='type-id-236' visibility='default' filepath='./Include/internal/pycore_interp.h' line='296' column='1'/>
     <pointer-type-def type-id='type-id-224' size-in-bits='64' id='type-id-225'/>
     <class-decl name='pyruntimestate' size-in-bits='5376' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='61' column='1' id='type-id-250'>
       <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='63' column='1'/>
+        <var-decl name='preinitializing' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='63' 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='66' column='1'/>
+        <var-decl name='preinitialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='66' 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='69' column='1'/>
+        <var-decl name='core_initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='69' 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='72' column='1'/>
+        <var-decl name='initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='72' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='_finalizing' type-id='type-id-251' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='79' column='1'/>
         <var-decl name='xidregistry' type-id='type-id-253' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='99' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='main_thread' type-id='type-id-18' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='101' column='1'/>
+        <var-decl name='main_thread' type-id='type-id-19' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='101' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
         <var-decl name='exitfuncs' type-id='type-id-254' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='104' 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='105' column='1'/>
+        <var-decl name='nexitfuncs' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='105' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2752'>
         <var-decl name='ceval' type-id='type-id-255' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='107' column='1'/>
         <var-decl name='open_code_hook' type-id='type-id-258' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='114' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5120'>
-        <var-decl name='open_code_userdata' type-id='type-id-20' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='115' column='1'/>
+        <var-decl name='open_code_userdata' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='115' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5184'>
         <var-decl name='audit_hook_head' type-id='type-id-259' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='116' column='1'/>
         <var-decl name='next_id' type-id='type-id-227' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='93' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyThread_type_lock' type-id='type-id-20' filepath='./Include/pythread.h' line='5' column='1' id='type-id-228'/>
+    <typedef-decl name='PyThread_type_lock' type-id='type-id-21' filepath='./Include/pythread.h' line='5' column='1' id='type-id-228'/>
     <typedef-decl name='PyInterpreterState' type-id='type-id-224' filepath='./Include/pystate.h' line='22' column='1' id='type-id-263'/>
     <pointer-type-def type-id='type-id-263' size-in-bits='64' id='type-id-222'/>
-    <typedef-decl name='__int64_t' type-id='type-id-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='44' column='1' id='type-id-264'/>
+    <typedef-decl name='__int64_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='44' column='1' id='type-id-264'/>
     <typedef-decl name='int64_t' type-id='type-id-264' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-intn.h' line='27' column='1' id='type-id-227'/>
     <class-decl name='_xidregistry' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='96' column='1' id='type-id-253'>
       <data-member access='public' layout-offset-in-bits='0'>
     </class-decl>
     <class-decl name='_xidregitem' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='328' column='1' id='type-id-266'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='cls' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_interp.h' line='329' column='1'/>
+        <var-decl name='cls' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_interp.h' line='329' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='getdata' type-id='type-id-267' visibility='default' filepath='./Include/internal/pycore_interp.h' line='330' column='1'/>
     </class-decl>
     <class-decl name='_xid' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='257' column='1' id='type-id-268'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='data' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='261' column='1'/>
+        <var-decl name='data' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='261' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='obj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='268' column='1'/>
+        <var-decl name='obj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='268' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='interp' type-id='type-id-227' visibility='default' filepath='./Include/cpython/pystate.h' line='278' column='1'/>
         <var-decl name='new_object' type-id='type-id-269' visibility='default' filepath='./Include/cpython/pystate.h' line='283' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='free' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='293' column='1'/>
+        <var-decl name='free' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='293' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-268' size-in-bits='64' id='type-id-270'/>
     <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-275'/>
 
     <array-type-def dimensions='1' type-id='type-id-275' size-in-bits='2048' id='type-id-254'>
-      <subrange length='32' type-id='type-id-18' id='type-id-276'/>
+      <subrange length='32' type-id='type-id-19' id='type-id-276'/>
 
     </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-255'>
     <typedef-decl name='_Py_atomic_int' type-id='type-id-279' filepath='./Include/internal/pycore_atomic.h' line='51' column='1' id='type-id-277'/>
     <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-278'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='interval' type-id='type-id-18' visibility='default' filepath='./Include/internal/pycore_gil.h' line='25' column='1'/>
+        <var-decl name='interval' type-id='type-id-19' 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-251' visibility='default' filepath='./Include/internal/pycore_gil.h' line='28' column='1'/>
         <var-decl name='locked' type-id='type-id-277' 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-18' visibility='default' filepath='./Include/internal/pycore_gil.h' line='33' column='1'/>
+        <var-decl name='switch_number' type-id='type-id-19' 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-281' visibility='default' filepath='./Include/internal/pycore_gil.h' line='37' column='1'/>
         <var-decl name='__g_size' type-id='type-id-288' 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-65' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='114' column='1'/>
+        <var-decl name='__g1_orig_size' type-id='type-id-66' 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-65' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='115' column='1'/>
+        <var-decl name='__wrefs' type-id='type-id-66' 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-288' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='116' column='1'/>
     <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-289'/>
     <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-290'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='__low' type-id='type-id-65' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='99' column='1'/>
+        <var-decl name='__low' type-id='type-id-66' 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-65' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='100' column='1'/>
+        <var-decl name='__high' type-id='type-id-66' 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-65' size-in-bits='64' id='type-id-288'>
-      <subrange length='2' type-id='type-id-18' id='type-id-291'/>
+    <array-type-def dimensions='1' type-id='type-id-66' size-in-bits='64' id='type-id-288'>
+      <subrange length='2' type-id='type-id-19' id='type-id-291'/>
 
     </array-type-def>
 
     <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-285'>
-      <subrange length='48' type-id='type-id-18' id='type-id-292'/>
+      <subrange length='48' type-id='type-id-19' id='type-id-292'/>
 
     </array-type-def>
     <type-decl name='long long int' size-in-bits='64' id='type-id-286'/>
         <var-decl name='__size' type-id='type-id-295' 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-32' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='71' column='1'/>
+        <var-decl name='__align' type-id='type-id-33' 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-294'>
       <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'/>
+        <var-decl name='__lock' type-id='type-id-9' 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-65' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='25' column='1'/>
+        <var-decl name='__count' type-id='type-id-66' 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'/>
+        <var-decl name='__owner' type-id='type-id-9' 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-65' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='28' column='1'/>
+        <var-decl name='__nusers' type-id='type-id-66' 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'/>
+        <var-decl name='__kind' type-id='type-id-9' 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-296' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='34' column='1'/>
     <typedef-decl name='__pthread_list_t' type-id='type-id-298' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='53' column='1' id='type-id-297'/>
 
     <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-295'>
-      <subrange length='40' type-id='type-id-18' id='type-id-300'/>
+      <subrange length='40' type-id='type-id-19' id='type-id-300'/>
 
     </array-type-def>
     <typedef-decl name='pthread_mutex_t' type-id='type-id-293' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='72' column='1' id='type-id-282'/>
     <class-decl name='_gilstate_runtime_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='29' column='1' id='type-id-256'>
       <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='32' column='1'/>
+        <var-decl name='check_enabled' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='32' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='tstate_current' type-id='type-id-251' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='35' column='1'/>
     </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-302'>
       <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'/>
+        <var-decl name='_is_initialized' type-id='type-id-9' 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-303' visibility='default' filepath='./Include/pythread.h' line='145' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='pthread_key_t' type-id='type-id-65' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='49' column='1' id='type-id-303'/>
+    <typedef-decl name='pthread_key_t' type-id='type-id-66' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='49' column='1' id='type-id-303'/>
     <typedef-decl name='Py_tss_t' type-id='type-id-302' filepath='./Include/pythread.h' line='123' column='1' id='type-id-301'/>
     <class-decl name='PyPreConfig' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/cpython/initconfig.h' line='44' column='1' id='type-id-304'>
       <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='45' column='1'/>
+        <var-decl name='_config_init' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='45' 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='49' column='1'/>
+        <var-decl name='parse_argv' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='49' 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='56' column='1'/>
+        <var-decl name='isolated' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='56' 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='61' column='1'/>
+        <var-decl name='use_environment' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='61' 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='65' column='1'/>
+        <var-decl name='configure_locale' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='65' 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='78' column='1'/>
+        <var-decl name='coerce_c_locale' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='78' 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='86' column='1'/>
+        <var-decl name='coerce_c_locale_warn' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='86' 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='111' column='1'/>
+        <var-decl name='utf8_mode' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='111' 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='117' column='1'/>
+        <var-decl name='dev_mode' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='117' 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='121' column='1'/>
+        <var-decl name='allocator' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='121' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='PyPreConfig' type-id='type-id-304' filepath='./Include/cpython/initconfig.h' line='122' column='1' id='type-id-257'/>
         <var-decl name='hookCFunction' type-id='type-id-306' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='48' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='userData' type-id='type-id-20' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='49' column='1'/>
+        <var-decl name='userData' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='49' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-305' size-in-bits='64' id='type-id-259'/>
         <var-decl name='lock' type-id='type-id-228' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='53' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next_index' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='56' column='1'/>
+        <var-decl name='next_index' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='56' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-226'/>
     <class-decl name='_ceval_state' size-in-bits='4416' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='34' column='1' id='type-id-229'>
       <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='35' column='1'/>
+        <var-decl name='recursion_limit' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='35' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
         <var-decl name='eval_breaker' type-id='type-id-277' visibility='default' filepath='./Include/internal/pycore_interp.h' line='38' column='1'/>
         <var-decl name='calls_to_do' type-id='type-id-277' visibility='default' filepath='./Include/internal/pycore_interp.h' line='20' 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='24' column='1'/>
+        <var-decl name='async_exc' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='24' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='calls' type-id='type-id-311' visibility='default' filepath='./Include/internal/pycore_interp.h' line='29' 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='30' column='1'/>
+        <var-decl name='first' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='30' 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='31' column='1'/>
+        <var-decl name='last' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='31' 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='26' column='1' id='type-id-312'>
         <var-decl name='func' type-id='type-id-313' visibility='default' filepath='./Include/internal/pycore_interp.h' line='27' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='arg' type-id='type-id-20' visibility='default' filepath='./Include/internal/pycore_interp.h' line='28' column='1'/>
+        <var-decl name='arg' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_interp.h' line='28' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-314' size-in-bits='64' id='type-id-313'/>
 
     <array-type-def dimensions='1' type-id='type-id-312' size-in-bits='4096' id='type-id-311'>
-      <subrange length='32' type-id='type-id-18' id='type-id-276'/>
+      <subrange length='32' type-id='type-id-19' id='type-id-276'/>
 
     </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-230'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='trash_delete_later' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='133' column='1'/>
+        <var-decl name='trash_delete_later' type-id='type-id-16' 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'/>
+        <var-decl name='trash_delete_nesting' type-id='type-id-9' 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='enabled' type-id='type-id-9' 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='debug' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='138' column='1'/>
+        <var-decl name='debug' type-id='type-id-9' 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-315' visibility='default' filepath='./Include/internal/pycore_gc.h' line='140' column='1'/>
         <var-decl name='generation_stats' type-id='type-id-318' 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'/>
+        <var-decl name='collecting' type-id='type-id-9' 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-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='148' column='1'/>
+        <var-decl name='garbage' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='150' column='1'/>
+        <var-decl name='callbacks' type-id='type-id-16' 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-30' visibility='default' filepath='./Include/internal/pycore_gc.h' line='157' column='1'/>
+        <var-decl name='long_lived_total' type-id='type-id-31' 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-30' visibility='default' filepath='./Include/internal/pycore_gc.h' line='161' column='1'/>
+        <var-decl name='long_lived_pending' type-id='type-id-31' 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-317'>
         <var-decl name='head' type-id='type-id-319' 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'/>
+        <var-decl name='threshold' type-id='type-id-9' 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'/>
+        <var-decl name='count' type-id='type-id-9' 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-319' visibility='default' filepath='./Include/internal/pycore_gc.h' line='12' column='1' id='type-id-320'>
         <var-decl name='_gc_prev' type-id='type-id-321' 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-18' filepath='/usr/include/stdint.h' line='90' column='1' id='type-id-321'/>
+    <typedef-decl name='uintptr_t' type-id='type-id-19' filepath='/usr/include/stdint.h' line='90' column='1' id='type-id-321'/>
     <typedef-decl name='PyGC_Head' type-id='type-id-320' filepath='./Include/internal/pycore_gc.h' line='20' column='1' id='type-id-319'/>
 
     <array-type-def dimensions='1' type-id='type-id-317' size-in-bits='576' id='type-id-315'>
-      <subrange length='3' type-id='type-id-18' id='type-id-322'/>
+      <subrange length='3' type-id='type-id-19' id='type-id-322'/>
 
     </array-type-def>
     <pointer-type-def type-id='type-id-319' size-in-bits='64' id='type-id-316'/>
     <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-323'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='collections' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_gc.h' line='123' column='1'/>
+        <var-decl name='collections' type-id='type-id-31' 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-30' visibility='default' filepath='./Include/internal/pycore_gc.h' line='125' column='1'/>
+        <var-decl name='collected' type-id='type-id-31' 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-30' visibility='default' filepath='./Include/internal/pycore_gc.h' line='127' column='1'/>
+        <var-decl name='uncollectable' type-id='type-id-31' 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-323' size-in-bits='576' id='type-id-318'>
-      <subrange length='3' type-id='type-id-18' id='type-id-322'/>
+      <subrange length='3' type-id='type-id-19' id='type-id-322'/>
 
     </array-type-def>
     <class-decl name='PyConfig' size-in-bits='3136' is-struct='yes' visibility='default' filepath='./Include/cpython/initconfig.h' line='131' column='1' id='type-id-324'>
       <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='132' column='1'/>
+        <var-decl name='_config_init' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='132' 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='134' column='1'/>
+        <var-decl name='isolated' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='134' 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='135' column='1'/>
+        <var-decl name='use_environment' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='135' 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='136' column='1'/>
+        <var-decl name='dev_mode' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='136' 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='137' column='1'/>
+        <var-decl name='install_signal_handlers' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='137' 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='138' column='1'/>
+        <var-decl name='use_hash_seed' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='138' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='hash_seed' type-id='type-id-18' visibility='default' filepath='./Include/cpython/initconfig.h' line='139' column='1'/>
+        <var-decl name='hash_seed' type-id='type-id-19' visibility='default' filepath='./Include/cpython/initconfig.h' line='139' 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='140' column='1'/>
+        <var-decl name='faulthandler' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='140' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='tracemalloc' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='141' column='1'/>
+        <var-decl name='tracemalloc' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='141' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='import_time' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='142' column='1'/>
+        <var-decl name='import_time' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='142' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='352'>
-        <var-decl name='show_ref_count' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='143' column='1'/>
+        <var-decl name='show_ref_count' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='143' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='dump_refs' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='144' column='1'/>
+        <var-decl name='dump_refs' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='144' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='416'>
-        <var-decl name='malloc_stats' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='145' column='1'/>
+        <var-decl name='malloc_stats' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='145' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
         <var-decl name='filesystem_encoding' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='146' column='1'/>
         <var-decl name='pycache_prefix' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='148' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='parse_argv' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='149' column='1'/>
+        <var-decl name='parse_argv' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='149' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
         <var-decl name='orig_argv' type-id='type-id-326' visibility='default' filepath='./Include/cpython/initconfig.h' line='150' column='1'/>
         <var-decl name='warnoptions' type-id='type-id-326' visibility='default' filepath='./Include/cpython/initconfig.h' line='153' 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='154' column='1'/>
+        <var-decl name='site_import' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='154' 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='155' column='1'/>
+        <var-decl name='bytes_warning' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='155' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='warn_default_encoding' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='156' column='1'/>
+        <var-decl name='warn_default_encoding' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='156' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1312'>
-        <var-decl name='inspect' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='157' column='1'/>
+        <var-decl name='inspect' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='157' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='interactive' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='158' column='1'/>
+        <var-decl name='interactive' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='158' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1376'>
-        <var-decl name='optimization_level' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='159' column='1'/>
+        <var-decl name='optimization_level' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='159' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='parser_debug' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='160' column='1'/>
+        <var-decl name='parser_debug' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='160' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1440'>
-        <var-decl name='write_bytecode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='161' column='1'/>
+        <var-decl name='write_bytecode' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='161' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='verbose' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='162' column='1'/>
+        <var-decl name='verbose' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='162' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1504'>
-        <var-decl name='quiet' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='163' column='1'/>
+        <var-decl name='quiet' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='163' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='user_site_directory' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='164' column='1'/>
+        <var-decl name='user_site_directory' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='164' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1568'>
-        <var-decl name='configure_c_stdio' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='165' column='1'/>
+        <var-decl name='configure_c_stdio' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='165' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='buffered_stdio' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='166' column='1'/>
+        <var-decl name='buffered_stdio' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='166' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1664'>
         <var-decl name='stdio_encoding' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='167' column='1'/>
         <var-decl name='check_hash_pycs_mode' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='172' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='pathconfig_warnings' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='175' column='1'/>
+        <var-decl name='pathconfig_warnings' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='175' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1920'>
         <var-decl name='program_name' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='176' column='1'/>
         <var-decl name='platlibdir' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='179' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2176'>
-        <var-decl name='module_search_paths_set' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='182' column='1'/>
+        <var-decl name='module_search_paths_set' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='182' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2240'>
         <var-decl name='module_search_paths' type-id='type-id-326' visibility='default' filepath='./Include/cpython/initconfig.h' line='183' column='1'/>
         <var-decl name='base_exec_prefix' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='189' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2752'>
-        <var-decl name='skip_source_first_line' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='192' column='1'/>
+        <var-decl name='skip_source_first_line' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='192' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2816'>
         <var-decl name='run_command' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='193' column='1'/>
         <var-decl name='run_filename' type-id='type-id-325' visibility='default' filepath='./Include/cpython/initconfig.h' line='195' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3008'>
-        <var-decl name='_install_importlib' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='201' column='1'/>
+        <var-decl name='_install_importlib' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='201' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3040'>
-        <var-decl name='_init_main' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='204' column='1'/>
+        <var-decl name='_init_main' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='204' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3072'>
-        <var-decl name='_isolated_interpreter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='208' column='1'/>
+        <var-decl name='_isolated_interpreter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='208' 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-327'/>
+    <typedef-decl name='wchar_t' type-id='type-id-9' filepath='/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h' line='321' column='1' id='type-id-327'/>
     <pointer-type-def type-id='type-id-327' size-in-bits='64' id='type-id-325'/>
     <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-326' visibility='default' filepath='./Include/cpython/initconfig.h' line='28' column='1' id='type-id-328'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='length' type-id='type-id-30' visibility='default' filepath='./Include/cpython/initconfig.h' line='31' column='1'/>
+        <var-decl name='length' type-id='type-id-31' visibility='default' filepath='./Include/cpython/initconfig.h' line='31' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='items' type-id='type-id-329' visibility='default' filepath='./Include/cpython/initconfig.h' line='32' column='1'/>
     <pointer-type-def type-id='type-id-330' size-in-bits='64' id='type-id-331'/>
     <class-decl name='_frame' size-in-bits='2880' is-struct='yes' visibility='default' filepath='./Include/cpython/frameobject.h' line='28' column='1' id='type-id-332'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-36' visibility='default' filepath='./Include/cpython/frameobject.h' line='29' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-37' visibility='default' filepath='./Include/cpython/frameobject.h' line='29' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
         <var-decl name='f_back' type-id='type-id-333' visibility='default' filepath='./Include/cpython/frameobject.h' line='30' column='1'/>
         <var-decl name='f_code' type-id='type-id-334' visibility='default' filepath='./Include/cpython/frameobject.h' line='31' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='f_builtins' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='32' column='1'/>
+        <var-decl name='f_builtins' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='32' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='f_globals' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='33' column='1'/>
+        <var-decl name='f_globals' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='33' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='f_locals' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='34' column='1'/>
+        <var-decl name='f_locals' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='34' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
         <var-decl name='f_valuestack' type-id='type-id-86' visibility='default' filepath='./Include/cpython/frameobject.h' line='35' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='f_trace' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='36' column='1'/>
+        <var-decl name='f_trace' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='36' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='f_stackdepth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='37' column='1'/>
+        <var-decl name='f_stackdepth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='37' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='672'>
         <var-decl name='f_trace_lines' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='38' column='1'/>
         <var-decl name='f_trace_opcodes' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='39' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='f_gen' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='42' column='1'/>
+        <var-decl name='f_gen' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='42' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='f_lasti' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='44' column='1'/>
+        <var-decl name='f_lasti' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='44' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='800'>
-        <var-decl name='f_lineno' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='45' column='1'/>
+        <var-decl name='f_lineno' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='45' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='f_iblock' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='46' column='1'/>
+        <var-decl name='f_iblock' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='46' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='864'>
         <var-decl name='f_state' type-id='type-id-335' visibility='default' filepath='./Include/cpython/frameobject.h' line='47' column='1'/>
     <pointer-type-def type-id='type-id-332' size-in-bits='64' id='type-id-333'/>
     <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-338'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/cpython/code.h' line='19' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' 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='co_argcount' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='20' column='1'/>
+        <var-decl name='co_argcount' type-id='type-id-9' 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'/>
+        <var-decl name='co_posonlyargcount' type-id='type-id-9' 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'/>
+        <var-decl name='co_kwonlyargcount' type-id='type-id-9' 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'/>
+        <var-decl name='co_nlocals' type-id='type-id-9' 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'/>
+        <var-decl name='co_stacksize' type-id='type-id-9' 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'/>
+        <var-decl name='co_flags' type-id='type-id-9' 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'/>
+        <var-decl name='co_firstlineno' type-id='type-id-9' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='27' column='1'/>
+        <var-decl name='co_code' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='28' column='1'/>
+        <var-decl name='co_consts' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='29' column='1'/>
+        <var-decl name='co_names' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='30' column='1'/>
+        <var-decl name='co_varnames' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='31' column='1'/>
+        <var-decl name='co_freevars' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='32' column='1'/>
+        <var-decl name='co_cellvars' type-id='type-id-16' 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-125' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='39' column='1'/>
+        <var-decl name='co_filename' type-id='type-id-16' visibility='default' filepath='./Include/cpython/code.h' line='39' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='co_name' type-id='type-id-15' visibility='default' filepath='./Include/cpython/code.h' line='40' column='1'/>
+        <var-decl name='co_name' type-id='type-id-16' visibility='default' filepath='./Include/cpython/code.h' line='40' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='co_linetable' type-id='type-id-15' visibility='default' filepath='./Include/cpython/code.h' line='41' column='1'/>
+        <var-decl name='co_linetable' type-id='type-id-16' visibility='default' filepath='./Include/cpython/code.h' line='41' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='co_zombieframe' type-id='type-id-20' visibility='default' filepath='./Include/cpython/code.h' line='43' column='1'/>
+        <var-decl name='co_zombieframe' type-id='type-id-21' visibility='default' filepath='./Include/cpython/code.h' line='43' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='co_weakreflist' type-id='type-id-15' visibility='default' filepath='./Include/cpython/code.h' line='44' column='1'/>
+        <var-decl name='co_weakreflist' type-id='type-id-16' visibility='default' filepath='./Include/cpython/code.h' line='44' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='co_extra' type-id='type-id-20' visibility='default' filepath='./Include/cpython/code.h' line='48' column='1'/>
+        <var-decl name='co_extra' type-id='type-id-21' visibility='default' filepath='./Include/cpython/code.h' line='48' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
         <var-decl name='co_opcache_map' type-id='type-id-339' visibility='default' filepath='./Include/cpython/code.h' line='60' column='1'/>
         <var-decl name='co_opcache' type-id='type-id-340' visibility='default' filepath='./Include/cpython/code.h' line='61' 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'/>
+        <var-decl name='co_opcache_flag' type-id='type-id-9' visibility='default' filepath='./Include/cpython/code.h' line='62' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1376'>
         <var-decl name='co_opcache_size' type-id='type-id-341' visibility='default' filepath='./Include/cpython/code.h' line='63' column='1'/>
     <typedef-decl name='PyFrameState' type-id='type-id-174' filepath='./Include/cpython/frameobject.h' line='20' column='1' id='type-id-335'/>
     <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-345' visibility='default' filepath='./Include/cpython/frameobject.h' line='22' column='1' id='type-id-346'>
       <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='23' column='1'/>
+        <var-decl name='b_type' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='23' 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='24' column='1'/>
+        <var-decl name='b_handler' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='24' 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='25' column='1'/>
+        <var-decl name='b_level' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='25' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='PyTryBlock' type-id='type-id-346' filepath='./Include/cpython/frameobject.h' line='26' column='1' id='type-id-345'/>
 
     <array-type-def dimensions='1' type-id='type-id-345' size-in-bits='1920' id='type-id-336'>
-      <subrange length='20' type-id='type-id-18' id='type-id-186'/>
+      <subrange length='20' type-id='type-id-19' id='type-id-186'/>
 
     </array-type-def>
 
-    <array-type-def dimensions='1' type-id='type-id-15' size-in-bits='64' id='type-id-337'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+    <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='64' id='type-id-337'>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='PyFrameObject' type-id='type-id-332' filepath='./Include/pyframe.h' line='12' column='1' id='type-id-347'/>
     <pointer-type-def type-id='type-id-348' size-in-bits='64' id='type-id-349'/>
     <typedef-decl name='_PyFrameEvalFunction' type-id='type-id-349' filepath='./Include/cpython/pystate.h' line='205' column='1' id='type-id-232'/>
 
-    <array-type-def dimensions='1' type-id='type-id-64' size-in-bits='16320' id='type-id-233'>
-      <subrange length='255' type-id='type-id-18' id='type-id-350'/>
+    <array-type-def dimensions='1' type-id='type-id-65' size-in-bits='16320' id='type-id-233'>
+      <subrange length='255' type-id='type-id-19' id='type-id-350'/>
 
     </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-234'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='filters' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='14' column='1'/>
+        <var-decl name='filters' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='once_registry' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='15' column='1'/>
+        <var-decl name='once_registry' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='15' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='default_action' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='16' column='1'/>
+        <var-decl name='default_action' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='16' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='filters_version' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='17' column='1'/>
+        <var-decl name='filters_version' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='17' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='atexit_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='181' column='1' id='type-id-235'>
         <var-decl name='callbacks' type-id='type-id-351' visibility='default' filepath='./Include/internal/pycore_interp.h' line='182' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ncallbacks' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='183' column='1'/>
+        <var-decl name='ncallbacks' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='183' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='callback_len' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='184' column='1'/>
+        <var-decl name='callback_len' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='184' 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-352' visibility='default' filepath='./Include/internal/pycore_interp.h' line='175' column='1' id='type-id-353'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='func' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='176' column='1'/>
+        <var-decl name='func' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='176' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='args' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='177' column='1'/>
+        <var-decl name='args' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='177' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='kwargs' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='178' column='1'/>
+        <var-decl name='kwargs' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='178' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='atexit_callback' type-id='type-id-353' filepath='./Include/internal/pycore_interp.h' line='179' column='1' id='type-id-352'/>
     <pointer-type-def type-id='type-id-355' size-in-bits='64' id='type-id-356'/>
 
     <array-type-def dimensions='1' type-id='type-id-356' size-in-bits='16768' id='type-id-236'>
-      <subrange length='262' type-id='type-id-18' id='type-id-357'/>
+      <subrange length='262' type-id='type-id-19' id='type-id-357'/>
 
     </array-type-def>
     <class-decl name='_Py_bytes_state' size-in-bits='16448' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='56' column='1' id='type-id-237'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='empty_string' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='57' column='1'/>
+        <var-decl name='empty_string' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='57' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='characters' type-id='type-id-358' visibility='default' filepath='./Include/internal/pycore_interp.h' line='58' column='1'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-359' visibility='default' filepath='./Include/cpython/bytesobject.h' line='5' column='1' id='type-id-360'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-36' visibility='default' filepath='./Include/cpython/bytesobject.h' line='6' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-37' visibility='default' filepath='./Include/cpython/bytesobject.h' line='6' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
         <var-decl name='ob_shash' type-id='type-id-117' visibility='default' filepath='./Include/cpython/bytesobject.h' line='7' column='1'/>
     <pointer-type-def type-id='type-id-359' size-in-bits='64' id='type-id-361'/>
 
     <array-type-def dimensions='1' type-id='type-id-361' size-in-bits='16384' id='type-id-358'>
-      <subrange length='256' type-id='type-id-18' id='type-id-362'/>
+      <subrange length='256' type-id='type-id-19' id='type-id-362'/>
 
     </array-type-def>
     <class-decl name='_Py_unicode_state' size-in-bits='16896' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='66' column='1' id='type-id-238'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='empty_string' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='68' column='1'/>
+        <var-decl name='empty_string' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='68' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='latin1' type-id='type-id-363' visibility='default' filepath='./Include/internal/pycore_interp.h' line='71' column='1'/>
         <var-decl name='fs_codec' type-id='type-id-364' visibility='default' filepath='./Include/internal/pycore_interp.h' line='72' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='16704'>
-        <var-decl name='interned' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='82' column='1'/>
+        <var-decl name='interned' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='16768'>
         <var-decl name='ids' type-id='type-id-365' visibility='default' filepath='./Include/internal/pycore_interp.h' line='85' column='1'/>
       </data-member>
     </class-decl>
 
-    <array-type-def dimensions='1' type-id='type-id-15' size-in-bits='16384' id='type-id-363'>
-      <subrange length='256' type-id='type-id-18' id='type-id-362'/>
+    <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='16384' id='type-id-363'>
+      <subrange length='256' type-id='type-id-19' id='type-id-362'/>
 
     </array-type-def>
     <class-decl name='_Py_unicode_fs_codec' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='49' column='1' id='type-id-364'>
         <var-decl name='encoding' type-id='type-id-72' visibility='default' filepath='./Include/internal/pycore_interp.h' line='50' 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='51' column='1'/>
+        <var-decl name='utf8' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='51' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='errors' type-id='type-id-72' visibility='default' filepath='./Include/internal/pycore_interp.h' line='52' column='1'/>
     <typedef-decl name='_Py_error_handler' type-id='type-id-367' filepath='./Include/cpython/fileutils.h' line='15' column='1' id='type-id-366'/>
     <class-decl name='_Py_unicode_ids' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='61' column='1' id='type-id-365'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_interp.h' line='62' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_interp.h' line='62' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='array' type-id='type-id-86' visibility='default' filepath='./Include/internal/pycore_interp.h' line='63' column='1'/>
     </class-decl>
     <class-decl name='_Py_float_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='88' column='1' id='type-id-239'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='92' column='1'/>
+        <var-decl name='numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='92' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='free_list' type-id='type-id-368' visibility='default' filepath='./Include/internal/pycore_interp.h' line='93' column='1'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-369' visibility='default' filepath='./Include/floatobject.h' line='15' column='1' id='type-id-370'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/floatobject.h' line='16' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' visibility='default' filepath='./Include/floatobject.h' line='16' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='ob_fval' type-id='type-id-371' visibility='default' filepath='./Include/floatobject.h' line='17' column='1'/>
     <pointer-type-def type-id='type-id-369' size-in-bits='64' id='type-id-368'/>
     <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-372' visibility='default' filepath='./Include/sliceobject.h' line='22' column='1' id='type-id-373'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/sliceobject.h' line='23' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' 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-15' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
+        <var-decl name='start' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
+        <var-decl name='stop' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
+        <var-decl name='step' type-id='type-id-16' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='PySliceObject' type-id='type-id-373' filepath='./Include/sliceobject.h' line='25' column='1' id='type-id-372'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-376' visibility='default' filepath='./Include/cpython/tupleobject.h' line='5' column='1' id='type-id-377'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-36' visibility='default' filepath='./Include/cpython/tupleobject.h' line='6' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-37' visibility='default' filepath='./Include/cpython/tupleobject.h' line='6' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
         <var-decl name='ob_item' type-id='type-id-337' visibility='default' filepath='./Include/cpython/tupleobject.h' line='10' column='1'/>
     <pointer-type-def type-id='type-id-376' size-in-bits='64' id='type-id-378'/>
 
     <array-type-def dimensions='1' type-id='type-id-378' size-in-bits='1280' id='type-id-374'>
-      <subrange length='20' type-id='type-id-18' id='type-id-186'/>
+      <subrange length='20' type-id='type-id-19' id='type-id-186'/>
 
     </array-type-def>
 
-    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='640' id='type-id-375'>
-      <subrange length='20' type-id='type-id-18' id='type-id-186'/>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='640' id='type-id-375'>
+      <subrange length='20' type-id='type-id-19' id='type-id-186'/>
 
     </array-type-def>
     <class-decl name='_Py_list_state' size-in-bits='5184' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='121' column='1' id='type-id-242'>
         <var-decl name='free_list' type-id='type-id-379' visibility='default' filepath='./Include/internal/pycore_interp.h' line='122' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5120'>
-        <var-decl name='numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='123' column='1'/>
+        <var-decl name='numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='123' 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-380' visibility='default' filepath='./Include/cpython/listobject.h' line='5' column='1' id='type-id-381'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-36' visibility='default' filepath='./Include/cpython/listobject.h' line='6' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-37' visibility='default' filepath='./Include/cpython/listobject.h' line='6' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
         <var-decl name='ob_item' type-id='type-id-86' visibility='default' filepath='./Include/cpython/listobject.h' line='8' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='allocated' type-id='type-id-30' visibility='default' filepath='./Include/cpython/listobject.h' line='21' column='1'/>
+        <var-decl name='allocated' type-id='type-id-31' visibility='default' filepath='./Include/cpython/listobject.h' line='21' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='PyListObject' type-id='type-id-381' filepath='./Include/cpython/listobject.h' line='22' column='1' id='type-id-380'/>
     <pointer-type-def type-id='type-id-380' size-in-bits='64' id='type-id-382'/>
 
     <array-type-def dimensions='1' type-id='type-id-382' size-in-bits='5120' id='type-id-379'>
-      <subrange length='80' type-id='type-id-18' id='type-id-383'/>
+      <subrange length='80' type-id='type-id-19' id='type-id-383'/>
 
     </array-type-def>
     <class-decl name='_Py_dict_state' size-in-bits='10368' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='130' column='1' id='type-id-243'>
         <var-decl name='free_list' type-id='type-id-384' visibility='default' filepath='./Include/internal/pycore_interp.h' line='132' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5120'>
-        <var-decl name='numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='133' column='1'/>
+        <var-decl name='numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='133' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5184'>
         <var-decl name='keys_free_list' type-id='type-id-385' visibility='default' filepath='./Include/internal/pycore_interp.h' line='134' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10304'>
-        <var-decl name='keys_numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='135' column='1'/>
+        <var-decl name='keys_numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='135' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-386' visibility='default' filepath='./Include/cpython/dictobject.h' line='10' column='1' id='type-id-387'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/cpython/dictobject.h' line='11' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' visibility='default' filepath='./Include/cpython/dictobject.h' line='11' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ma_used' type-id='type-id-30' visibility='default' filepath='./Include/cpython/dictobject.h' line='14' column='1'/>
+        <var-decl name='ma_used' type-id='type-id-31' visibility='default' filepath='./Include/cpython/dictobject.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ma_version_tag' type-id='type-id-21' visibility='default' filepath='./Include/cpython/dictobject.h' line='18' column='1'/>
+        <var-decl name='ma_version_tag' type-id='type-id-22' visibility='default' filepath='./Include/cpython/dictobject.h' line='18' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
         <var-decl name='ma_keys' type-id='type-id-388' visibility='default' filepath='./Include/cpython/dictobject.h' line='20' column='1'/>
     <pointer-type-def type-id='type-id-386' size-in-bits='64' id='type-id-391'/>
 
     <array-type-def dimensions='1' type-id='type-id-391' size-in-bits='5120' id='type-id-384'>
-      <subrange length='80' type-id='type-id-18' id='type-id-383'/>
+      <subrange length='80' type-id='type-id-19' id='type-id-383'/>
 
     </array-type-def>
 
     <array-type-def dimensions='1' type-id='type-id-388' size-in-bits='5120' id='type-id-385'>
-      <subrange length='80' type-id='type-id-18' id='type-id-383'/>
+      <subrange length='80' type-id='type-id-19' id='type-id-383'/>
 
     </array-type-def>
     <class-decl name='_Py_frame_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='138' column='1' id='type-id-244'>
         <var-decl name='free_list' type-id='type-id-223' visibility='default' filepath='./Include/internal/pycore_interp.h' line='139' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='141' column='1'/>
+        <var-decl name='numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='141' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='_Py_async_gen_state' size-in-bits='10368' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='148' column='1' id='type-id-245'>
         <var-decl name='value_freelist' type-id='type-id-392' visibility='default' filepath='./Include/internal/pycore_interp.h' line='153' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5120'>
-        <var-decl name='value_numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='154' column='1'/>
+        <var-decl name='value_numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='154' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5184'>
         <var-decl name='asend_freelist' type-id='type-id-393' visibility='default' filepath='./Include/internal/pycore_interp.h' line='156' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10304'>
-        <var-decl name='asend_numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='157' column='1'/>
+        <var-decl name='asend_numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='157' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='_PyAsyncGenWrappedValue' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-394'/>
     <pointer-type-def type-id='type-id-394' size-in-bits='64' id='type-id-395'/>
 
     <array-type-def dimensions='1' type-id='type-id-395' size-in-bits='5120' id='type-id-392'>
-      <subrange length='80' type-id='type-id-18' id='type-id-383'/>
+      <subrange length='80' type-id='type-id-19' id='type-id-383'/>
 
     </array-type-def>
     <class-decl name='PyAsyncGenASend' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-396'/>
     <pointer-type-def type-id='type-id-396' size-in-bits='64' id='type-id-397'/>
 
     <array-type-def dimensions='1' type-id='type-id-397' size-in-bits='5120' id='type-id-393'>
-      <subrange length='80' type-id='type-id-18' id='type-id-383'/>
+      <subrange length='80' type-id='type-id-19' id='type-id-383'/>
 
     </array-type-def>
     <class-decl name='_Py_context_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='160' column='1' id='type-id-246'>
         <var-decl name='freelist' type-id='type-id-398' visibility='default' filepath='./Include/internal/pycore_interp.h' line='162' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='163' column='1'/>
+        <var-decl name='numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='163' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='_pycontextobject' size-in-bits='384' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-399'/>
     <pointer-type-def type-id='type-id-400' size-in-bits='64' id='type-id-398'/>
     <class-decl name='_Py_exc_state' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='166' column='1' id='type-id-247'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='errnomap' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='168' column='1'/>
+        <var-decl name='errnomap' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='168' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='memerrors_freelist' type-id='type-id-401' visibility='default' filepath='./Include/internal/pycore_interp.h' line='169' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='memerrors_numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='170' column='1'/>
+        <var-decl name='memerrors_numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='170' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-402' visibility='default' filepath='./Include/cpython/pyerrors.h' line='13' column='1' id='type-id-403'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='args' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
+        <var-decl name='args' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='traceback' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
+        <var-decl name='traceback' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='context' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
+        <var-decl name='context' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='cause' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
+        <var-decl name='cause' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
         <var-decl name='suppress_context' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pyerrors.h' line='14' column='1'/>
     <pointer-type-def type-id='type-id-402' size-in-bits='64' id='type-id-401'/>
     <class-decl name='ast_state' size-in-bits='15040' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='13' column='1' id='type-id-248'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='14' column='1'/>
+        <var-decl name='initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='AST_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='15' column='1'/>
+        <var-decl name='AST_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='15' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='Add_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='16' column='1'/>
+        <var-decl name='Add_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='16' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='Add_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='17' column='1'/>
+        <var-decl name='Add_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='17' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='And_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='18' column='1'/>
+        <var-decl name='And_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='18' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='And_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='19' column='1'/>
+        <var-decl name='And_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='19' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='AnnAssign_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='20' column='1'/>
+        <var-decl name='AnnAssign_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='20' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='Assert_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='21' column='1'/>
+        <var-decl name='Assert_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='21' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='Assign_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='22' column='1'/>
+        <var-decl name='Assign_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='22' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='AsyncFor_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='23' column='1'/>
+        <var-decl name='AsyncFor_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='23' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='AsyncFunctionDef_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='24' column='1'/>
+        <var-decl name='AsyncFunctionDef_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='24' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='AsyncWith_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='25' column='1'/>
+        <var-decl name='AsyncWith_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='25' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='Attribute_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='26' column='1'/>
+        <var-decl name='Attribute_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='26' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='AugAssign_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='27' column='1'/>
+        <var-decl name='AugAssign_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='27' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='Await_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='28' column='1'/>
+        <var-decl name='Await_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='28' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='BinOp_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='29' column='1'/>
+        <var-decl name='BinOp_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='29' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='BitAnd_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='30' column='1'/>
+        <var-decl name='BitAnd_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='30' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='BitAnd_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='31' column='1'/>
+        <var-decl name='BitAnd_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='31' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='BitOr_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='32' column='1'/>
+        <var-decl name='BitOr_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='32' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='BitOr_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='33' column='1'/>
+        <var-decl name='BitOr_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='33' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='BitXor_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='34' column='1'/>
+        <var-decl name='BitXor_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='34' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='BitXor_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='35' column='1'/>
+        <var-decl name='BitXor_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='35' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='BoolOp_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='36' column='1'/>
+        <var-decl name='BoolOp_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='36' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='Break_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='37' column='1'/>
+        <var-decl name='Break_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='37' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='Call_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='38' column='1'/>
+        <var-decl name='Call_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='38' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='ClassDef_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='39' column='1'/>
+        <var-decl name='ClassDef_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='39' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='Compare_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='40' column='1'/>
+        <var-decl name='Compare_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='40' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='Constant_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='41' column='1'/>
+        <var-decl name='Constant_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='41' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='Continue_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='42' column='1'/>
+        <var-decl name='Continue_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='42' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='Del_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='43' column='1'/>
+        <var-decl name='Del_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='43' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='Del_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='44' column='1'/>
+        <var-decl name='Del_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='44' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='Delete_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='45' column='1'/>
+        <var-decl name='Delete_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='45' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='DictComp_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='46' column='1'/>
+        <var-decl name='DictComp_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='46' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2112'>
-        <var-decl name='Dict_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='47' column='1'/>
+        <var-decl name='Dict_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='47' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2176'>
-        <var-decl name='Div_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='48' column='1'/>
+        <var-decl name='Div_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='48' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2240'>
-        <var-decl name='Div_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='49' column='1'/>
+        <var-decl name='Div_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='49' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2304'>
-        <var-decl name='Eq_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='50' column='1'/>
+        <var-decl name='Eq_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='50' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2368'>
-        <var-decl name='Eq_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='51' column='1'/>
+        <var-decl name='Eq_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='51' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2432'>
-        <var-decl name='ExceptHandler_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='52' column='1'/>
+        <var-decl name='ExceptHandler_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='52' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2496'>
-        <var-decl name='Expr_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='53' column='1'/>
+        <var-decl name='Expr_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='53' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2560'>
-        <var-decl name='Expression_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='54' column='1'/>
+        <var-decl name='Expression_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='54' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2624'>
-        <var-decl name='FloorDiv_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='55' column='1'/>
+        <var-decl name='FloorDiv_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='55' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2688'>
-        <var-decl name='FloorDiv_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='56' column='1'/>
+        <var-decl name='FloorDiv_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='56' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2752'>
-        <var-decl name='For_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='57' column='1'/>
+        <var-decl name='For_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='57' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2816'>
-        <var-decl name='FormattedValue_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='58' column='1'/>
+        <var-decl name='FormattedValue_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='58' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2880'>
-        <var-decl name='FunctionDef_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='59' column='1'/>
+        <var-decl name='FunctionDef_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='59' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2944'>
-        <var-decl name='FunctionType_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='60' column='1'/>
+        <var-decl name='FunctionType_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='60' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3008'>
-        <var-decl name='GeneratorExp_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='61' column='1'/>
+        <var-decl name='GeneratorExp_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='61' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3072'>
-        <var-decl name='Global_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='62' column='1'/>
+        <var-decl name='Global_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='62' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3136'>
-        <var-decl name='GtE_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='63' column='1'/>
+        <var-decl name='GtE_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='63' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3200'>
-        <var-decl name='GtE_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='64' column='1'/>
+        <var-decl name='GtE_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='64' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3264'>
-        <var-decl name='Gt_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='65' column='1'/>
+        <var-decl name='Gt_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='65' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3328'>
-        <var-decl name='Gt_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='66' column='1'/>
+        <var-decl name='Gt_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='66' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3392'>
-        <var-decl name='IfExp_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='67' column='1'/>
+        <var-decl name='IfExp_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='67' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3456'>
-        <var-decl name='If_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='68' column='1'/>
+        <var-decl name='If_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='68' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3520'>
-        <var-decl name='ImportFrom_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='69' column='1'/>
+        <var-decl name='ImportFrom_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='69' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3584'>
-        <var-decl name='Import_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='70' column='1'/>
+        <var-decl name='Import_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='70' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3648'>
-        <var-decl name='In_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='71' column='1'/>
+        <var-decl name='In_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='71' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3712'>
-        <var-decl name='In_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='72' column='1'/>
+        <var-decl name='In_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='72' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3776'>
-        <var-decl name='Interactive_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='73' column='1'/>
+        <var-decl name='Interactive_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='73' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3840'>
-        <var-decl name='Invert_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='74' column='1'/>
+        <var-decl name='Invert_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='74' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3904'>
-        <var-decl name='Invert_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='75' column='1'/>
+        <var-decl name='Invert_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='75' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='3968'>
-        <var-decl name='IsNot_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='76' column='1'/>
+        <var-decl name='IsNot_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='76' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4032'>
-        <var-decl name='IsNot_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='77' column='1'/>
+        <var-decl name='IsNot_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='77' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4096'>
-        <var-decl name='Is_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='78' column='1'/>
+        <var-decl name='Is_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='78' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4160'>
-        <var-decl name='Is_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='79' column='1'/>
+        <var-decl name='Is_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='79' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4224'>
-        <var-decl name='JoinedStr_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='80' column='1'/>
+        <var-decl name='JoinedStr_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='80' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4288'>
-        <var-decl name='LShift_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='81' column='1'/>
+        <var-decl name='LShift_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='81' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4352'>
-        <var-decl name='LShift_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='82' column='1'/>
+        <var-decl name='LShift_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4416'>
-        <var-decl name='Lambda_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='83' column='1'/>
+        <var-decl name='Lambda_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='83' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4480'>
-        <var-decl name='ListComp_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='84' column='1'/>
+        <var-decl name='ListComp_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='84' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4544'>
-        <var-decl name='List_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='85' column='1'/>
+        <var-decl name='List_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='85' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4608'>
-        <var-decl name='Load_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='86' column='1'/>
+        <var-decl name='Load_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='86' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4672'>
-        <var-decl name='Load_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='87' column='1'/>
+        <var-decl name='Load_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='87' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4736'>
-        <var-decl name='LtE_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='88' column='1'/>
+        <var-decl name='LtE_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='88' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4800'>
-        <var-decl name='LtE_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='89' column='1'/>
+        <var-decl name='LtE_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='89' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4864'>
-        <var-decl name='Lt_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='90' column='1'/>
+        <var-decl name='Lt_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='90' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4928'>
-        <var-decl name='Lt_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='91' column='1'/>
+        <var-decl name='Lt_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='91' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='4992'>
-        <var-decl name='MatMult_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='92' column='1'/>
+        <var-decl name='MatMult_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='92' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5056'>
-        <var-decl name='MatMult_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='93' column='1'/>
+        <var-decl name='MatMult_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='93' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5120'>
-        <var-decl name='MatchAs_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='94' column='1'/>
+        <var-decl name='MatchAs_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='94' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5184'>
-        <var-decl name='MatchClass_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='95' column='1'/>
+        <var-decl name='MatchClass_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='95' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5248'>
-        <var-decl name='MatchMapping_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='96' column='1'/>
+        <var-decl name='MatchMapping_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='96' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5312'>
-        <var-decl name='MatchOr_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='97' column='1'/>
+        <var-decl name='MatchOr_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='97' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5376'>
-        <var-decl name='MatchSequence_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='98' column='1'/>
+        <var-decl name='MatchSequence_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='98' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5440'>
-        <var-decl name='MatchSingleton_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='99' column='1'/>
+        <var-decl name='MatchSingleton_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='99' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5504'>
-        <var-decl name='MatchStar_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='100' column='1'/>
+        <var-decl name='MatchStar_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='100' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5568'>
-        <var-decl name='MatchValue_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='101' column='1'/>
+        <var-decl name='MatchValue_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='101' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5632'>
-        <var-decl name='Match_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='102' column='1'/>
+        <var-decl name='Match_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='102' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5696'>
-        <var-decl name='Mod_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='103' column='1'/>
+        <var-decl name='Mod_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='103' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5760'>
-        <var-decl name='Mod_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='104' column='1'/>
+        <var-decl name='Mod_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='104' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5824'>
-        <var-decl name='Module_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='105' column='1'/>
+        <var-decl name='Module_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='105' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5888'>
-        <var-decl name='Mult_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='106' column='1'/>
+        <var-decl name='Mult_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='106' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5952'>
-        <var-decl name='Mult_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='107' column='1'/>
+        <var-decl name='Mult_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='107' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6016'>
-        <var-decl name='Name_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='108' column='1'/>
+        <var-decl name='Name_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='108' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6080'>
-        <var-decl name='NamedExpr_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='109' column='1'/>
+        <var-decl name='NamedExpr_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='109' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6144'>
-        <var-decl name='Nonlocal_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='110' column='1'/>
+        <var-decl name='Nonlocal_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='110' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6208'>
-        <var-decl name='NotEq_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='111' column='1'/>
+        <var-decl name='NotEq_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='111' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6272'>
-        <var-decl name='NotEq_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='112' column='1'/>
+        <var-decl name='NotEq_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='112' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6336'>
-        <var-decl name='NotIn_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='113' column='1'/>
+        <var-decl name='NotIn_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='113' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6400'>
-        <var-decl name='NotIn_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='114' column='1'/>
+        <var-decl name='NotIn_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='114' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6464'>
-        <var-decl name='Not_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='115' column='1'/>
+        <var-decl name='Not_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='115' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6528'>
-        <var-decl name='Not_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='116' column='1'/>
+        <var-decl name='Not_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='116' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6592'>
-        <var-decl name='Or_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='117' column='1'/>
+        <var-decl name='Or_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='117' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6656'>
-        <var-decl name='Or_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='118' column='1'/>
+        <var-decl name='Or_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='118' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6720'>
-        <var-decl name='Pass_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='119' column='1'/>
+        <var-decl name='Pass_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='119' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6784'>
-        <var-decl name='Pow_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='120' column='1'/>
+        <var-decl name='Pow_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='120' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6848'>
-        <var-decl name='Pow_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='121' column='1'/>
+        <var-decl name='Pow_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='121' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6912'>
-        <var-decl name='RShift_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='122' column='1'/>
+        <var-decl name='RShift_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='122' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6976'>
-        <var-decl name='RShift_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='123' column='1'/>
+        <var-decl name='RShift_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='123' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7040'>
-        <var-decl name='Raise_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='124' column='1'/>
+        <var-decl name='Raise_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='124' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7104'>
-        <var-decl name='Return_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='125' column='1'/>
+        <var-decl name='Return_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='125' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7168'>
-        <var-decl name='SetComp_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='126' column='1'/>
+        <var-decl name='SetComp_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='126' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7232'>
-        <var-decl name='Set_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='127' column='1'/>
+        <var-decl name='Set_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='127' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7296'>
-        <var-decl name='Slice_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='128' column='1'/>
+        <var-decl name='Slice_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='128' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7360'>
-        <var-decl name='Starred_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='129' column='1'/>
+        <var-decl name='Starred_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='129' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7424'>
-        <var-decl name='Store_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='130' column='1'/>
+        <var-decl name='Store_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='130' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7488'>
-        <var-decl name='Store_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='131' column='1'/>
+        <var-decl name='Store_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='131' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7552'>
-        <var-decl name='Sub_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='132' column='1'/>
+        <var-decl name='Sub_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='132' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7616'>
-        <var-decl name='Sub_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='133' column='1'/>
+        <var-decl name='Sub_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='133' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7680'>
-        <var-decl name='Subscript_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='134' column='1'/>
+        <var-decl name='Subscript_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='134' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7744'>
-        <var-decl name='Try_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='135' column='1'/>
+        <var-decl name='Try_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='135' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7808'>
-        <var-decl name='Tuple_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='136' column='1'/>
+        <var-decl name='Tuple_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='136' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7872'>
-        <var-decl name='TypeIgnore_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='137' column='1'/>
+        <var-decl name='TypeIgnore_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='137' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7936'>
-        <var-decl name='UAdd_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='138' column='1'/>
+        <var-decl name='UAdd_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='138' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8000'>
-        <var-decl name='UAdd_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='139' column='1'/>
+        <var-decl name='UAdd_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='139' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8064'>
-        <var-decl name='USub_singleton' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='140' column='1'/>
+        <var-decl name='USub_singleton' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='140' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8128'>
-        <var-decl name='USub_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='141' column='1'/>
+        <var-decl name='USub_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='141' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8192'>
-        <var-decl name='UnaryOp_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='142' column='1'/>
+        <var-decl name='UnaryOp_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='142' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8256'>
-        <var-decl name='While_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='143' column='1'/>
+        <var-decl name='While_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='143' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8320'>
-        <var-decl name='With_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='144' column='1'/>
+        <var-decl name='With_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='144' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8384'>
-        <var-decl name='YieldFrom_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='145' column='1'/>
+        <var-decl name='YieldFrom_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='145' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8448'>
-        <var-decl name='Yield_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='146' column='1'/>
+        <var-decl name='Yield_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='146' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8512'>
-        <var-decl name='__dict__' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='147' column='1'/>
+        <var-decl name='__dict__' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='147' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8576'>
-        <var-decl name='__doc__' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='148' column='1'/>
+        <var-decl name='__doc__' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='148' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8640'>
-        <var-decl name='__match_args__' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='149' column='1'/>
+        <var-decl name='__match_args__' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='149' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8704'>
-        <var-decl name='__module__' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='150' column='1'/>
+        <var-decl name='__module__' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='150' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8768'>
-        <var-decl name='_attributes' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='151' column='1'/>
+        <var-decl name='_attributes' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='151' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8832'>
-        <var-decl name='_fields' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='152' column='1'/>
+        <var-decl name='_fields' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='152' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8896'>
-        <var-decl name='alias_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='153' column='1'/>
+        <var-decl name='alias_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='153' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8960'>
-        <var-decl name='annotation' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='154' column='1'/>
+        <var-decl name='annotation' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='154' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9024'>
-        <var-decl name='arg' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='155' column='1'/>
+        <var-decl name='arg' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='155' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9088'>
-        <var-decl name='arg_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='156' column='1'/>
+        <var-decl name='arg_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='156' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9152'>
-        <var-decl name='args' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='157' column='1'/>
+        <var-decl name='args' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='157' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9216'>
-        <var-decl name='argtypes' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='158' column='1'/>
+        <var-decl name='argtypes' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='158' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9280'>
-        <var-decl name='arguments_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='159' column='1'/>
+        <var-decl name='arguments_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='159' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9344'>
-        <var-decl name='asname' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='160' column='1'/>
+        <var-decl name='asname' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='160' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9408'>
-        <var-decl name='ast' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='161' column='1'/>
+        <var-decl name='ast' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='161' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9472'>
-        <var-decl name='attr' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='162' column='1'/>
+        <var-decl name='attr' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='162' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9536'>
-        <var-decl name='bases' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='163' column='1'/>
+        <var-decl name='bases' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='163' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9600'>
-        <var-decl name='body' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='164' column='1'/>
+        <var-decl name='body' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='164' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9664'>
-        <var-decl name='boolop_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='165' column='1'/>
+        <var-decl name='boolop_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='165' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9728'>
-        <var-decl name='cases' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='166' column='1'/>
+        <var-decl name='cases' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='166' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9792'>
-        <var-decl name='cause' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='167' column='1'/>
+        <var-decl name='cause' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='167' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9856'>
-        <var-decl name='cls' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='168' column='1'/>
+        <var-decl name='cls' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='168' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9920'>
-        <var-decl name='cmpop_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='169' column='1'/>
+        <var-decl name='cmpop_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='169' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9984'>
-        <var-decl name='col_offset' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='170' column='1'/>
+        <var-decl name='col_offset' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='170' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10048'>
-        <var-decl name='comparators' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='171' column='1'/>
+        <var-decl name='comparators' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='171' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10112'>
-        <var-decl name='comprehension_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='172' column='1'/>
+        <var-decl name='comprehension_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='172' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10176'>
-        <var-decl name='context_expr' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='173' column='1'/>
+        <var-decl name='context_expr' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='173' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10240'>
-        <var-decl name='conversion' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='174' column='1'/>
+        <var-decl name='conversion' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='174' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10304'>
-        <var-decl name='ctx' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='175' column='1'/>
+        <var-decl name='ctx' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='175' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10368'>
-        <var-decl name='decorator_list' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='176' column='1'/>
+        <var-decl name='decorator_list' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='176' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10432'>
-        <var-decl name='defaults' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='177' column='1'/>
+        <var-decl name='defaults' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='177' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10496'>
-        <var-decl name='elt' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='178' column='1'/>
+        <var-decl name='elt' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='178' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10560'>
-        <var-decl name='elts' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='179' column='1'/>
+        <var-decl name='elts' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='179' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10624'>
-        <var-decl name='end_col_offset' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='180' column='1'/>
+        <var-decl name='end_col_offset' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='180' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10688'>
-        <var-decl name='end_lineno' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='181' column='1'/>
+        <var-decl name='end_lineno' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='181' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10752'>
-        <var-decl name='exc' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='182' column='1'/>
+        <var-decl name='exc' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='182' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10816'>
-        <var-decl name='excepthandler_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='183' column='1'/>
+        <var-decl name='excepthandler_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='183' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10880'>
-        <var-decl name='expr_context_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='184' column='1'/>
+        <var-decl name='expr_context_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='184' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10944'>
-        <var-decl name='expr_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='185' column='1'/>
+        <var-decl name='expr_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='185' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11008'>
-        <var-decl name='finalbody' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='186' column='1'/>
+        <var-decl name='finalbody' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='186' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11072'>
-        <var-decl name='format_spec' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='187' column='1'/>
+        <var-decl name='format_spec' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='187' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11136'>
-        <var-decl name='func' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='188' column='1'/>
+        <var-decl name='func' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='188' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11200'>
-        <var-decl name='generators' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='189' column='1'/>
+        <var-decl name='generators' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='189' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11264'>
-        <var-decl name='guard' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='190' column='1'/>
+        <var-decl name='guard' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='190' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11328'>
-        <var-decl name='handlers' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='191' column='1'/>
+        <var-decl name='handlers' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='191' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11392'>
-        <var-decl name='id' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='192' column='1'/>
+        <var-decl name='id' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='192' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11456'>
-        <var-decl name='ifs' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='193' column='1'/>
+        <var-decl name='ifs' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='193' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11520'>
-        <var-decl name='is_async' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='194' column='1'/>
+        <var-decl name='is_async' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='194' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11584'>
-        <var-decl name='items' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='195' column='1'/>
+        <var-decl name='items' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='195' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11648'>
-        <var-decl name='iter' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='196' column='1'/>
+        <var-decl name='iter' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='196' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11712'>
-        <var-decl name='key' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='197' column='1'/>
+        <var-decl name='key' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='197' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11776'>
-        <var-decl name='keys' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='198' column='1'/>
+        <var-decl name='keys' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='198' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11840'>
-        <var-decl name='keyword_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='199' column='1'/>
+        <var-decl name='keyword_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='199' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11904'>
-        <var-decl name='keywords' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='200' column='1'/>
+        <var-decl name='keywords' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='200' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11968'>
-        <var-decl name='kind' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='201' column='1'/>
+        <var-decl name='kind' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='201' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12032'>
-        <var-decl name='kw_defaults' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='202' column='1'/>
+        <var-decl name='kw_defaults' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='202' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12096'>
-        <var-decl name='kwarg' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='203' column='1'/>
+        <var-decl name='kwarg' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='203' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12160'>
-        <var-decl name='kwd_attrs' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='204' column='1'/>
+        <var-decl name='kwd_attrs' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='204' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12224'>
-        <var-decl name='kwd_patterns' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='205' column='1'/>
+        <var-decl name='kwd_patterns' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='205' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12288'>
-        <var-decl name='kwonlyargs' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='206' column='1'/>
+        <var-decl name='kwonlyargs' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='206' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12352'>
-        <var-decl name='left' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='207' column='1'/>
+        <var-decl name='left' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='207' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12416'>
-        <var-decl name='level' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='208' column='1'/>
+        <var-decl name='level' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='208' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12480'>
-        <var-decl name='lineno' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='209' column='1'/>
+        <var-decl name='lineno' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='209' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12544'>
-        <var-decl name='lower' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='210' column='1'/>
+        <var-decl name='lower' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='210' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12608'>
-        <var-decl name='match_case_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='211' column='1'/>
+        <var-decl name='match_case_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='211' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12672'>
-        <var-decl name='mod_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='212' column='1'/>
+        <var-decl name='mod_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='212' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12736'>
-        <var-decl name='module' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='213' column='1'/>
+        <var-decl name='module' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='213' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12800'>
-        <var-decl name='msg' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='214' column='1'/>
+        <var-decl name='msg' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='214' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12864'>
-        <var-decl name='name' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='215' column='1'/>
+        <var-decl name='name' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='215' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12928'>
-        <var-decl name='names' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='216' column='1'/>
+        <var-decl name='names' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='216' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='12992'>
-        <var-decl name='op' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='217' column='1'/>
+        <var-decl name='op' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='217' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13056'>
-        <var-decl name='operand' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='218' column='1'/>
+        <var-decl name='operand' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='218' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13120'>
-        <var-decl name='operator_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='219' column='1'/>
+        <var-decl name='operator_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='219' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13184'>
-        <var-decl name='ops' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='220' column='1'/>
+        <var-decl name='ops' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='220' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13248'>
-        <var-decl name='optional_vars' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='221' column='1'/>
+        <var-decl name='optional_vars' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='221' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13312'>
-        <var-decl name='orelse' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='222' column='1'/>
+        <var-decl name='orelse' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='222' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13376'>
-        <var-decl name='pattern' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='223' column='1'/>
+        <var-decl name='pattern' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='223' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13440'>
-        <var-decl name='pattern_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='224' column='1'/>
+        <var-decl name='pattern_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='224' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13504'>
-        <var-decl name='patterns' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='225' column='1'/>
+        <var-decl name='patterns' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='225' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13568'>
-        <var-decl name='posonlyargs' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='226' column='1'/>
+        <var-decl name='posonlyargs' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='226' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13632'>
-        <var-decl name='rest' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='227' column='1'/>
+        <var-decl name='rest' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='227' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13696'>
-        <var-decl name='returns' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='228' column='1'/>
+        <var-decl name='returns' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='228' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13760'>
-        <var-decl name='right' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='229' column='1'/>
+        <var-decl name='right' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='229' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13824'>
-        <var-decl name='simple' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='230' column='1'/>
+        <var-decl name='simple' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='230' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13888'>
-        <var-decl name='slice' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='231' column='1'/>
+        <var-decl name='slice' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='231' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='13952'>
-        <var-decl name='step' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='232' column='1'/>
+        <var-decl name='step' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='232' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14016'>
-        <var-decl name='stmt_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='233' column='1'/>
+        <var-decl name='stmt_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='233' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14080'>
-        <var-decl name='subject' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='234' column='1'/>
+        <var-decl name='subject' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='234' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14144'>
-        <var-decl name='tag' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='235' column='1'/>
+        <var-decl name='tag' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='235' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14208'>
-        <var-decl name='target' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='236' column='1'/>
+        <var-decl name='target' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='236' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14272'>
-        <var-decl name='targets' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='237' column='1'/>
+        <var-decl name='targets' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='237' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14336'>
-        <var-decl name='test' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='238' column='1'/>
+        <var-decl name='test' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='238' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14400'>
-        <var-decl name='type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='239' column='1'/>
+        <var-decl name='type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='239' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14464'>
-        <var-decl name='type_comment' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='240' column='1'/>
+        <var-decl name='type_comment' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='240' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14528'>
-        <var-decl name='type_ignore_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='241' column='1'/>
+        <var-decl name='type_ignore_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='241' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14592'>
-        <var-decl name='type_ignores' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='242' column='1'/>
+        <var-decl name='type_ignores' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='242' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14656'>
-        <var-decl name='unaryop_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='243' column='1'/>
+        <var-decl name='unaryop_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='243' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14720'>
-        <var-decl name='upper' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='244' column='1'/>
+        <var-decl name='upper' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='244' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14784'>
-        <var-decl name='value' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='245' column='1'/>
+        <var-decl name='value' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='245' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14848'>
-        <var-decl name='values' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='246' column='1'/>
+        <var-decl name='values' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='246' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14912'>
-        <var-decl name='vararg' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='247' column='1'/>
+        <var-decl name='vararg' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='247' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='14976'>
-        <var-decl name='withitem_type' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='248' column='1'/>
+        <var-decl name='withitem_type' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_ast_state.h' line='248' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='type_cache' size-in-bits='786432' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='199' column='1' id='type-id-249'>
     </class-decl>
     <class-decl name='type_cache_entry' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='190' column='1' id='type-id-405'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='version' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_interp.h' line='191' column='1'/>
+        <var-decl name='version' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_interp.h' line='191' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='name' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='192' column='1'/>
+        <var-decl name='name' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='192' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='value' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='193' column='1'/>
+        <var-decl name='value' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='193' column='1'/>
       </data-member>
     </class-decl>
 
     <array-type-def dimensions='1' type-id='type-id-405' size-in-bits='786432' id='type-id-404'>
-      <subrange length='4096' type-id='type-id-18' id='type-id-406'/>
+      <subrange length='4096' type-id='type-id-19' id='type-id-406'/>
 
     </array-type-def>
     <function-decl name='_PyObject_Call_Prepend' mangled-name='_PyObject_Call_Prepend' filepath='Objects/call.c' line='405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Call_Prepend'>
       <parameter type-id='type-id-331' name='tstate' filepath='Objects/call.c' line='405' column='1'/>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='405' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/call.c' line='406' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='406' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='406' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='405' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/call.c' line='406' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/call.c' line='406' column='1'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Objects/call.c' line='406' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_CallObject' mangled-name='PyObject_CallObject' filepath='Objects/call.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallObject'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='387' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='387' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='387' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/call.c' line='387' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyEval_CallObjectWithKeywords' mangled-name='PyEval_CallObjectWithKeywords' filepath='Objects/call.c' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallObjectWithKeywords'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='354' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='355' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='355' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='354' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/call.c' line='355' column='1'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Objects/call.c' line='355' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyFunction_Vectorcall' mangled-name='_PyFunction_Vectorcall' filepath='Objects/call.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFunction_Vectorcall'>
-      <parameter type-id='type-id-15' name='func' filepath='Objects/call.c' line='332' column='1'/>
+      <parameter type-id='type-id-16' name='func' filepath='Objects/call.c' line='332' column='1'/>
       <parameter type-id='type-id-156' name='stack' filepath='Objects/call.c' line='332' column='1'/>
       <parameter type-id='type-id-157' name='nargsf' filepath='Objects/call.c' line='333' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Objects/call.c' line='333' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='kwnames' filepath='Objects/call.c' line='333' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyCFunction_Call' mangled-name='PyCFunction_Call' filepath='Objects/call.c' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_Call'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='354' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='355' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='355' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyObject_Call' mangled-name='PyObject_Call' filepath='Objects/call.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Call'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='354' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='355' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='355' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='322' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/call.c' line='322' column='1'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Objects/call.c' line='322' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_Call' mangled-name='_PyObject_Call' filepath='Objects/call.c' line='276' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Call'>
       <parameter type-id='type-id-331' name='tstate' filepath='Objects/call.c' line='276' column='1'/>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='276' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='277' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='277' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='276' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/call.c' line='277' column='1'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Objects/call.c' line='277' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyVectorcall_Call' mangled-name='PyVectorcall_Call' filepath='Objects/call.c' line='229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyVectorcall_Call'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='229' column='1'/>
-      <parameter type-id='type-id-15' name='tuple' filepath='Objects/call.c' line='229' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='229' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='229' column='1'/>
+      <parameter type-id='type-id-16' name='tuple' filepath='Objects/call.c' line='229' column='1'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Objects/call.c' line='229' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_MakeTpCall' mangled-name='_PyObject_MakeTpCall' filepath='Objects/call.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_MakeTpCall'>
       <parameter type-id='type-id-331' name='tstate' filepath='Objects/call.c' line='171' column='1'/>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='171' column='1'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='171' column='1'/>
       <parameter type-id='type-id-156' name='args' filepath='Objects/call.c' line='172' column='1'/>
-      <parameter type-id='type-id-30' name='nargs' filepath='Objects/call.c' line='172' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Objects/call.c' line='173' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='nargs' filepath='Objects/call.c' line='172' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Objects/call.c' line='173' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_VectorcallDict' mangled-name='PyObject_VectorcallDict' filepath='Objects/call.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_VectorcallDict'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='162' column='1'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='162' column='1'/>
       <parameter type-id='type-id-156' name='args' filepath='Objects/call.c' line='162' column='1'/>
       <parameter type-id='type-id-157' name='nargsf' filepath='Objects/call.c' line='163' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='163' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Objects/call.c' line='163' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_FastCallDictTstate' mangled-name='_PyObject_FastCallDictTstate' filepath='Objects/call.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_FastCallDictTstate'>
       <parameter type-id='type-id-331' name='tstate' filepath='Objects/call.c' line='118' column='1'/>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='118' column='1'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='118' column='1'/>
       <parameter type-id='type-id-156' name='args' filepath='Objects/call.c' line='119' column='1'/>
       <parameter type-id='type-id-157' name='nargsf' filepath='Objects/call.c' line='119' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='120' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Objects/call.c' line='120' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_CallNoArgs' mangled-name='PyObject_CallNoArgs' filepath='Objects/call.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallNoArgs'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='39' column='1'/>
+      <return type-id='type-id-16'/>
     </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-331' name='tstate' filepath='Objects/call.c' line='33' column='1'/>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='33' column='1'/>
-      <parameter type-id='type-id-15' name='result' filepath='Objects/call.c' line='34' column='1'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='33' column='1'/>
+      <parameter type-id='type-id-16' 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-15'/>
+      <return type-id='type-id-16'/>
+    </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='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='51' 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='PyCallable_Check' mangled-name='PyCallable_Check' filepath='./Include/object.h' line='287' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_Vector' mangled-name='_PyEval_Vector' filepath='./Include/internal/pycore_ceval.h' line='50' 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_tuple.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_FatalErrorFormat' mangled-name='_Py_FatalErrorFormat' filepath='./Include/cpython/pyerrors.h' line='203' 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-348'>
       <parameter type-id='type-id-331'/>
       <parameter type-id='type-id-223'/>
-      <parameter type-id='type-id-8'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-271'>
       <parameter type-id='type-id-270'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-272'>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-270'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-307'>
       <parameter type-id='type-id-3'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-314'>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-9'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-274'>
-      <return type-id='type-id-69'/>
+      <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-149' 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-20'/>
+      <parameter type-id='type-id-9' name='no_block' filepath='Objects/capsule.c' line='195' column='1'/>
+      <return type-id='type-id-21'/>
     </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-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
+      <parameter type-id='type-id-21' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <typedef-decl name='PyCapsule_Destructor' type-id='type-id-71' filepath='./Include/pycapsule.h' line='23' column='1' id='type-id-407'/>
     <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-15' name='o' filepath='Objects/capsule.c' line='167' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/capsule.c' line='167' column='1'/>
       <parameter type-id='type-id-407' name='destructor' filepath='Objects/capsule.c' line='167' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-15' name='o' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' 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-9'/>
     </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-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/capsule.c' line='134' column='1'/>
+      <parameter type-id='type-id-21' name='pointer' filepath='Objects/capsule.c' line='134' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='o' filepath='Objects/capsule.c' line='122' column='1'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/capsule.c' line='122' column='1'/>
+      <return type-id='type-id-21'/>
     </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-15' name='o' filepath='Objects/capsule.c' line='110' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/capsule.c' line='110' column='1'/>
       <return type-id='type-id-407'/>
     </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-15' name='o' filepath='Objects/capsule.c' line='98' column='1'/>
+      <parameter type-id='type-id-16' 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-15' name='o' filepath='Objects/capsule.c' line='80' column='1'/>
+      <parameter type-id='type-id-16' 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-20'/>
-    </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-15' name='o' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-21'/>
     </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-20' name='pointer' filepath='Objects/capsule.c' line='44' column='1'/>
+      <parameter type-id='type-id-21' 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-407' name='destructor' filepath='Objects/capsule.c' line='44' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </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-16' 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-9'/>
     </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-149' 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-15' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
+      <parameter type-id='type-id-16' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/cellobject.c' line='7' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyObject_RichCompare' mangled-name='PyObject_RichCompare' filepath='./Include/object.h' line='269' 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'>
         <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'/>
+        <var-decl name='type' type-id='type-id-9' 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-30' visibility='default' filepath='./Include/structmember.h' line='21' column='1'/>
+        <var-decl name='offset' type-id='type-id-31' 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'/>
+        <var-decl name='flags' type-id='type-id-9' 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'/>
     </class-decl>
     <var-decl name='PyMethod_Type' type-id='type-id-149' 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-149' 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-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </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-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
-    </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-15' name='callable' filepath='Objects/call.c' line='387' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='387' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/cellobject.c' line='7' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </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-149' 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='1318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_SetExtra'>
-      <parameter type-id='type-id-15' name='code' filepath='Objects/codeobject.c' line='1318' column='1'/>
-      <parameter type-id='type-id-30' name='index' filepath='Objects/codeobject.c' line='1318' column='1'/>
-      <parameter type-id='type-id-20' name='extra' filepath='Objects/codeobject.c' line='1318' column='1'/>
-      <return type-id='type-id-8'/>
+    <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-16' name='func' filepath='Objects/classobject.c' line='99' column='1'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/classobject.c' line='99' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyCode_GetExtra' mangled-name='_PyCode_GetExtra' filepath='Objects/codeobject.c' line='1297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_GetExtra'>
-      <parameter type-id='type-id-15' name='code' filepath='Objects/codeobject.c' line='1297' column='1'/>
-      <parameter type-id='type-id-30' name='index' filepath='Objects/codeobject.c' line='1297' column='1'/>
-      <parameter type-id='type-id-197' name='extra' filepath='Objects/codeobject.c' line='1297' column='1'/>
-      <return type-id='type-id-8'/>
+    <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-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <class-decl name='_line_offsets' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/cpython/code.h' line='144' column='1' id='type-id-408'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ar_start' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='145' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='ar_end' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='146' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ar_line' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='147' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='opaque' type-id='type-id-409' visibility='default' filepath='./Include/cpython/code.h' line='148' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_opaque' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/code.h' line='138' column='1' id='type-id-409'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='computed_line' 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='64'>
-        <var-decl name='lo_next' type-id='type-id-3' visibility='default' filepath='./Include/cpython/code.h' line='140' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='limit' type-id='type-id-3' visibility='default' filepath='./Include/cpython/code.h' line='141' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyCodeAddressRange' type-id='type-id-408' filepath='./Include/cpython/code.h' line='149' column='1' id='type-id-410'/>
-    <pointer-type-def type-id='type-id-410' size-in-bits='64' id='type-id-411'/>
-    <function-decl name='_PyCode_CheckLineNumber' mangled-name='_PyCode_CheckLineNumber' filepath='Objects/codeobject.c' line='1280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_CheckLineNumber'>
-      <parameter type-id='type-id-8' name='lasti' filepath='Objects/codeobject.c' line='1280' column='1'/>
-      <parameter type-id='type-id-411' name='bounds' filepath='Objects/codeobject.c' line='1280' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='274' 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='283' 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='288' 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='300' 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='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/codeobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyCode_Type' type-id='type-id-149' 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='1318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_SetExtra'>
+      <parameter type-id='type-id-16' name='code' filepath='Objects/codeobject.c' line='1318' column='1'/>
+      <parameter type-id='type-id-31' name='index' filepath='Objects/codeobject.c' line='1318' column='1'/>
+      <parameter type-id='type-id-21' name='extra' filepath='Objects/codeobject.c' line='1318' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyCode_GetExtra' mangled-name='_PyCode_GetExtra' filepath='Objects/codeobject.c' line='1297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_GetExtra'>
+      <parameter type-id='type-id-16' name='code' filepath='Objects/codeobject.c' line='1297' column='1'/>
+      <parameter type-id='type-id-31' name='index' filepath='Objects/codeobject.c' line='1297' column='1'/>
+      <parameter type-id='type-id-195' name='extra' filepath='Objects/codeobject.c' line='1297' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <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-412'>
+    <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-408'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/cpython/code.h' line='19' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' 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='co_argcount' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='20' column='1'/>
+        <var-decl name='co_argcount' type-id='type-id-9' 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'/>
+        <var-decl name='co_posonlyargcount' type-id='type-id-9' 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'/>
+        <var-decl name='co_kwonlyargcount' type-id='type-id-9' 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'/>
+        <var-decl name='co_nlocals' type-id='type-id-9' 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'/>
+        <var-decl name='co_stacksize' type-id='type-id-9' 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'/>
+        <var-decl name='co_flags' type-id='type-id-9' 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'/>
+        <var-decl name='co_firstlineno' type-id='type-id-9' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='27' column='1'/>
+        <var-decl name='co_code' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='28' column='1'/>
+        <var-decl name='co_consts' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='29' column='1'/>
+        <var-decl name='co_names' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='30' column='1'/>
+        <var-decl name='co_varnames' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='31' column='1'/>
+        <var-decl name='co_freevars' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='32' column='1'/>
+        <var-decl name='co_cellvars' type-id='type-id-16' 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-125' 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-15' visibility='default' filepath='./Include/cpython/code.h' line='39' column='1'/>
+        <var-decl name='co_filename' type-id='type-id-16' visibility='default' filepath='./Include/cpython/code.h' line='39' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='co_name' type-id='type-id-15' visibility='default' filepath='./Include/cpython/code.h' line='40' column='1'/>
+        <var-decl name='co_name' type-id='type-id-16' visibility='default' filepath='./Include/cpython/code.h' line='40' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='co_linetable' type-id='type-id-15' visibility='default' filepath='./Include/cpython/code.h' line='41' column='1'/>
+        <var-decl name='co_linetable' type-id='type-id-16' visibility='default' filepath='./Include/cpython/code.h' line='41' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='co_zombieframe' type-id='type-id-20' visibility='default' filepath='./Include/cpython/code.h' line='43' column='1'/>
+        <var-decl name='co_zombieframe' type-id='type-id-21' visibility='default' filepath='./Include/cpython/code.h' line='43' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='co_weakreflist' type-id='type-id-15' visibility='default' filepath='./Include/cpython/code.h' line='44' column='1'/>
+        <var-decl name='co_weakreflist' type-id='type-id-16' visibility='default' filepath='./Include/cpython/code.h' line='44' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='co_extra' type-id='type-id-20' visibility='default' filepath='./Include/cpython/code.h' line='48' column='1'/>
+        <var-decl name='co_extra' type-id='type-id-21' visibility='default' filepath='./Include/cpython/code.h' line='48' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
         <var-decl name='co_opcache_map' type-id='type-id-339' visibility='default' filepath='./Include/cpython/code.h' line='60' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='co_opcache' type-id='type-id-413' visibility='default' filepath='./Include/cpython/code.h' line='61' column='1'/>
+        <var-decl name='co_opcache' type-id='type-id-409' visibility='default' filepath='./Include/cpython/code.h' line='61' 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'/>
+        <var-decl name='co_opcache_flag' type-id='type-id-9' visibility='default' filepath='./Include/cpython/code.h' line='62' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1376'>
         <var-decl name='co_opcache_size' type-id='type-id-341' visibility='default' filepath='./Include/cpython/code.h' line='63' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_PyOpcache' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='19' column='1' id='type-id-414'>
+    <class-decl name='_PyOpcache' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='19' column='1' id='type-id-410'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='u' type-id='type-id-415' visibility='default' filepath='./Include/internal/pycore_code.h' line='23' column='1'/>
+        <var-decl name='u' type-id='type-id-411' visibility='default' filepath='./Include/internal/pycore_code.h' line='23' 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='24' 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='20' column='1' id='type-id-415'>
+    <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='20' column='1' id='type-id-411'>
       <data-member access='private'>
-        <var-decl name='lg' type-id='type-id-416' visibility='default' filepath='./Include/internal/pycore_code.h' line='21' column='1'/>
+        <var-decl name='lg' type-id='type-id-412' visibility='default' filepath='./Include/internal/pycore_code.h' line='21' column='1'/>
       </data-member>
       <data-member access='private'>
-        <var-decl name='la' type-id='type-id-417' visibility='default' filepath='./Include/internal/pycore_code.h' line='22' column='1'/>
+        <var-decl name='la' type-id='type-id-413' visibility='default' filepath='./Include/internal/pycore_code.h' line='22' 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-416' visibility='default' filepath='./Include/internal/pycore_code.h' line='7' column='1' id='type-id-418'>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-412' visibility='default' filepath='./Include/internal/pycore_code.h' line='7' column='1' id='type-id-414'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ptr' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_code.h' line='8' column='1'/>
+        <var-decl name='ptr' type-id='type-id-16' 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-21' visibility='default' filepath='./Include/internal/pycore_code.h' line='9' column='1'/>
+        <var-decl name='globals_ver' type-id='type-id-22' 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-21' visibility='default' filepath='./Include/internal/pycore_code.h' line='10' column='1'/>
+        <var-decl name='builtins_ver' type-id='type-id-22' 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-418' filepath='./Include/internal/pycore_code.h' line='11' column='1' id='type-id-416'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-417' visibility='default' filepath='./Include/internal/pycore_code.h' line='13' column='1' id='type-id-419'>
+    <typedef-decl name='_PyOpcache_LoadGlobal' type-id='type-id-414' filepath='./Include/internal/pycore_code.h' line='11' column='1' id='type-id-412'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-413' visibility='default' filepath='./Include/internal/pycore_code.h' line='13' column='1' id='type-id-415'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='type' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_code.h' line='14' column='1'/>
+        <var-decl name='type' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_code.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='hint' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_code.h' line='15' column='1'/>
+        <var-decl name='hint' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_code.h' line='15' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='tp_version_tag' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_code.h' line='16' column='1'/>
+        <var-decl name='tp_version_tag' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_code.h' line='16' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='_PyOpCodeOpt_LoadAttr' type-id='type-id-419' filepath='./Include/internal/pycore_code.h' line='17' column='1' id='type-id-417'/>
-    <typedef-decl name='_PyOpcache' type-id='type-id-414' 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-413'/>
-    <typedef-decl name='PyCodeObject' type-id='type-id-412' 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-422'/>
+    <typedef-decl name='_PyOpCodeOpt_LoadAttr' type-id='type-id-415' filepath='./Include/internal/pycore_code.h' line='17' column='1' id='type-id-413'/>
+    <typedef-decl name='_PyOpcache' type-id='type-id-410' filepath='./Include/cpython/code.h' line='15' column='1' id='type-id-416'/>
+    <pointer-type-def type-id='type-id-416' size-in-bits='64' id='type-id-409'/>
+    <typedef-decl name='PyCodeObject' type-id='type-id-408' filepath='./Include/code.h' line='9' column='1' id='type-id-417'/>
+    <pointer-type-def type-id='type-id-417' size-in-bits='64' id='type-id-418'/>
     <function-decl name='PyCode_Addr2Line' mangled-name='PyCode_Addr2Line' filepath='Objects/codeobject.c' line='1246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Addr2Line'>
-      <parameter type-id='type-id-422' name='co' filepath='Objects/codeobject.c' line='1246' column='1'/>
-      <parameter type-id='type-id-8' name='addrq' filepath='Objects/codeobject.c' line='1246' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-418' name='co' filepath='Objects/codeobject.c' line='1246' column='1'/>
+      <parameter type-id='type-id-9' name='addrq' filepath='Objects/codeobject.c' line='1246' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyCode_ConstantKey' mangled-name='_PyCode_ConstantKey' filepath='Objects/codeobject.c' line='784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_ConstantKey'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/codeobject.c' line='784' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/codeobject.c' line='784' column='1'/>
+      <return type-id='type-id-16'/>
     </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-422'/>
+      <parameter type-id='type-id-9' name='firstlineno' filepath='Objects/codeobject.c' line='332' column='1'/>
+      <return type-id='type-id-418'/>
     </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-15' name='code' filepath='Objects/codeobject.c' line='277' column='1'/>
-      <parameter type-id='type-id-15' name='consts' filepath='Objects/codeobject.c' line='277' column='1'/>
-      <parameter type-id='type-id-15' name='names' filepath='Objects/codeobject.c' line='277' column='1'/>
-      <parameter type-id='type-id-15' name='varnames' filepath='Objects/codeobject.c' line='278' column='1'/>
-      <parameter type-id='type-id-15' name='freevars' filepath='Objects/codeobject.c' line='278' column='1'/>
-      <parameter type-id='type-id-15' name='cellvars' filepath='Objects/codeobject.c' line='278' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Objects/codeobject.c' line='279' column='1'/>
-      <parameter type-id='type-id-15' 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-15' name='linetable' filepath='Objects/codeobject.c' line='280' column='1'/>
-      <return type-id='type-id-422'/>
+      <parameter type-id='type-id-9' name='argcount' filepath='Objects/codeobject.c' line='275' column='1'/>
+      <parameter type-id='type-id-9' name='kwonlyargcount' filepath='Objects/codeobject.c' line='275' column='1'/>
+      <parameter type-id='type-id-9' name='nlocals' filepath='Objects/codeobject.c' line='276' column='1'/>
+      <parameter type-id='type-id-9' name='stacksize' filepath='Objects/codeobject.c' line='276' column='1'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Objects/codeobject.c' line='276' column='1'/>
+      <parameter type-id='type-id-16' name='code' filepath='Objects/codeobject.c' line='277' column='1'/>
+      <parameter type-id='type-id-16' name='consts' filepath='Objects/codeobject.c' line='277' column='1'/>
+      <parameter type-id='type-id-16' name='names' filepath='Objects/codeobject.c' line='277' column='1'/>
+      <parameter type-id='type-id-16' name='varnames' filepath='Objects/codeobject.c' line='278' column='1'/>
+      <parameter type-id='type-id-16' name='freevars' filepath='Objects/codeobject.c' line='278' column='1'/>
+      <parameter type-id='type-id-16' name='cellvars' filepath='Objects/codeobject.c' line='278' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Objects/codeobject.c' line='279' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/codeobject.c' line='279' column='1'/>
+      <parameter type-id='type-id-9' name='firstlineno' filepath='Objects/codeobject.c' line='279' column='1'/>
+      <parameter type-id='type-id-16' name='linetable' filepath='Objects/codeobject.c' line='280' column='1'/>
+      <return type-id='type-id-418'/>
     </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-15' name='code' filepath='Objects/codeobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-15' name='consts' filepath='Objects/codeobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-15' name='names' filepath='Objects/codeobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-15' name='varnames' filepath='Objects/codeobject.c' line='120' column='1'/>
-      <parameter type-id='type-id-15' name='freevars' filepath='Objects/codeobject.c' line='120' column='1'/>
-      <parameter type-id='type-id-15' name='cellvars' filepath='Objects/codeobject.c' line='120' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Objects/codeobject.c' line='121' column='1'/>
-      <parameter type-id='type-id-15' 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-15' name='linetable' filepath='Objects/codeobject.c' line='122' column='1'/>
-      <return type-id='type-id-422'/>
+      <parameter type-id='type-id-9' name='argcount' filepath='Objects/codeobject.c' line='117' column='1'/>
+      <parameter type-id='type-id-9' name='posonlyargcount' filepath='Objects/codeobject.c' line='117' column='1'/>
+      <parameter type-id='type-id-9' name='kwonlyargcount' filepath='Objects/codeobject.c' line='117' column='1'/>
+      <parameter type-id='type-id-9' name='nlocals' filepath='Objects/codeobject.c' line='118' column='1'/>
+      <parameter type-id='type-id-9' name='stacksize' filepath='Objects/codeobject.c' line='118' column='1'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Objects/codeobject.c' line='118' column='1'/>
+      <parameter type-id='type-id-16' name='code' filepath='Objects/codeobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-16' name='consts' filepath='Objects/codeobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-16' name='names' filepath='Objects/codeobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-16' name='varnames' filepath='Objects/codeobject.c' line='120' column='1'/>
+      <parameter type-id='type-id-16' name='freevars' filepath='Objects/codeobject.c' line='120' column='1'/>
+      <parameter type-id='type-id-16' name='cellvars' filepath='Objects/codeobject.c' line='120' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Objects/codeobject.c' line='121' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/codeobject.c' line='121' column='1'/>
+      <parameter type-id='type-id-9' name='firstlineno' filepath='Objects/codeobject.c' line='121' column='1'/>
+      <parameter type-id='type-id-16' name='linetable' filepath='Objects/codeobject.c' line='122' column='1'/>
+      <return type-id='type-id-418'/>
+    </function-decl>
+    <class-decl name='_line_offsets' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/cpython/code.h' line='144' column='1' id='type-id-419'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ar_start' type-id='type-id-9' visibility='default' filepath='./Include/cpython/code.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='ar_end' type-id='type-id-9' visibility='default' filepath='./Include/cpython/code.h' line='146' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ar_line' type-id='type-id-9' visibility='default' filepath='./Include/cpython/code.h' line='147' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='opaque' type-id='type-id-420' visibility='default' filepath='./Include/cpython/code.h' line='148' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_opaque' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/code.h' line='138' column='1' id='type-id-420'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='computed_line' type-id='type-id-9' visibility='default' filepath='./Include/cpython/code.h' line='139' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='lo_next' type-id='type-id-3' visibility='default' filepath='./Include/cpython/code.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='limit' type-id='type-id-3' visibility='default' filepath='./Include/cpython/code.h' line='141' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='PyCodeAddressRange' type-id='type-id-419' filepath='./Include/cpython/code.h' line='149' column='1' id='type-id-421'/>
+    <pointer-type-def type-id='type-id-421' size-in-bits='64' id='type-id-422'/>
+    <function-decl name='_PyCode_CheckLineNumber' mangled-name='_PyCode_CheckLineNumber' filepath='Objects/codeobject.c' line='1280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_CheckLineNumber'>
+      <parameter type-id='type-id-9' name='lasti' filepath='Objects/codeobject.c' line='1280' column='1'/>
+      <parameter type-id='type-id-422' name='bounds' filepath='Objects/codeobject.c' line='1280' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyType_GenericAlloc' mangled-name='PyType_GenericAlloc' filepath='./Include/object.h' line='258' 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='_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_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='PyUnicode_DecodeFSDefault' mangled-name='PyUnicode_DecodeFSDefault' filepath='./Include/unicodeobject.h' line='784' 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='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBytes_Size' mangled-name='PyBytes_Size' filepath='./Include/bytesobject.h' line='41' 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='985' 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='702' 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'>
     </class-decl>
     <typedef-decl name='Py_complex' type-id='type-id-424' filepath='./Include/complexobject.h' line='13' column='1' id='type-id-423'/>
     <function-decl name='PyComplex_AsCComplex' mangled-name='PyComplex_AsCComplex' filepath='Objects/complexobject.c' line='313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_AsCComplex'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/complexobject.c' line='313' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/complexobject.c' line='313' column='1'/>
       <return type-id='type-id-423'/>
     </function-decl>
     <function-decl name='PyComplex_ImagAsDouble' mangled-name='PyComplex_ImagAsDouble' filepath='Objects/complexobject.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_ImagAsDouble'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/complexobject.c' line='268' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/complexobject.c' line='268' column='1'/>
       <return type-id='type-id-371'/>
     </function-decl>
     <function-decl name='PyComplex_RealAsDouble' mangled-name='PyComplex_RealAsDouble' filepath='Objects/complexobject.c' line='257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_RealAsDouble'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/complexobject.c' line='268' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/complexobject.c' line='257' column='1'/>
       <return type-id='type-id-371'/>
     </function-decl>
     <function-decl name='PyComplex_FromDoubles' mangled-name='PyComplex_FromDoubles' filepath='Objects/complexobject.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_FromDoubles'>
       <parameter type-id='type-id-371' name='real' filepath='Objects/complexobject.c' line='248' column='1'/>
       <parameter type-id='type-id-371' name='imag' filepath='Objects/complexobject.c' line='248' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyComplex_FromCComplex' mangled-name='PyComplex_FromCComplex' filepath='Objects/complexobject.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_FromCComplex'>
       <parameter type-id='type-id-423' name='cval' filepath='Objects/complexobject.c' line='226' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_Py_c_abs' mangled-name='_Py_c_abs' filepath='Objects/complexobject.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_abs'>
       <parameter type-id='type-id-423' name='z' filepath='Objects/complexobject.c' line='183' column='1'/>
       <parameter type-id='type-id-423' name='b' filepath='Objects/complexobject.c' line='53' column='1'/>
       <return type-id='type-id-423'/>
     </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='995' 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='544' 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='./Include/cpython/unicodeobject.h' line='631' 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='711' 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='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='Objects/descrobject.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyMethodDescr_Type' type-id='type-id-149' mangled-name='PyMethodDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='79' column='1' elf-symbol-id='PyMethodDescr_Type'/>
     <var-decl name='_PyMethodWrapper_Type' type-id='type-id-149' 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-149' 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-149' 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='1438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWrapper_New'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1069' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1069' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyWrapper_New' mangled-name='PyWrapper_New' filepath='Objects/descrobject.c' line='1436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWrapper_New'>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='1069' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='1069' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyDictProxy_New' mangled-name='PyDictProxy_New' filepath='Objects/descrobject.c' line='1235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDictProxy_New'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyDictProxy_New' mangled-name='PyDictProxy_New' filepath='Objects/descrobject.c' line='1233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDictProxy_New'>
+      <parameter type-id='type-id-16' name='mapping' filepath='Objects/descrobject.c' line='1233' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyDescr_IsData' mangled-name='PyDescr_IsData' filepath='Objects/descrobject.c' line='999' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_IsData'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyDescr_IsData' mangled-name='PyDescr_IsData' filepath='Objects/descrobject.c' line='997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_IsData'>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
+      <return type-id='type-id-9'/>
     </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-425'>
       <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'/>
+        <var-decl name='offset' type-id='type-id-9' 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-20' visibility='default' filepath='./Include/descrobject.h' line='29' column='1'/>
+        <var-decl name='function' type-id='type-id-21' 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-426' visibility='default' filepath='./Include/descrobject.h' line='30' column='1'/>
         <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'/>
+        <var-decl name='flags' type-id='type-id-9' 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-15' visibility='default' filepath='./Include/descrobject.h' line='33' column='1'/>
+        <var-decl name='name_strobj' type-id='type-id-16' visibility='default' filepath='./Include/descrobject.h' line='33' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-427' size-in-bits='64' id='type-id-428'/>
     <typedef-decl name='wrapperfunc' type-id='type-id-428' filepath='./Include/descrobject.h' line='20' column='1' id='type-id-426'/>
     <pointer-type-def type-id='type-id-425' size-in-bits='64' id='type-id-429'/>
-    <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-31' name='type' filepath='Objects/descrobject.c' line='985' column='1'/>
-      <parameter type-id='type-id-429' name='base' filepath='Objects/descrobject.c' line='985' column='1'/>
-      <parameter type-id='type-id-20' name='wrapped' filepath='Objects/descrobject.c' line='985' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyDescr_NewWrapper' mangled-name='PyDescr_NewWrapper' filepath='Objects/descrobject.c' line='983' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewWrapper'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/descrobject.c' line='983' column='1'/>
+      <parameter type-id='type-id-429' name='base' filepath='Objects/descrobject.c' line='983' column='1'/>
+      <parameter type-id='type-id-21' name='wrapped' filepath='Objects/descrobject.c' line='983' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <typedef-decl name='PyGetSetDef' type-id='type-id-142' filepath='./Include/descrobject.h' line='17' column='1' id='type-id-430'/>
     <pointer-type-def type-id='type-id-430' size-in-bits='64' id='type-id-431'/>
-    <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-31' name='type' filepath='Objects/descrobject.c' line='973' column='1'/>
-      <parameter type-id='type-id-431' name='getset' filepath='Objects/descrobject.c' line='973' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyDescr_NewGetSet' mangled-name='PyDescr_NewGetSet' filepath='Objects/descrobject.c' line='971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewGetSet'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/descrobject.c' line='971' column='1'/>
+      <parameter type-id='type-id-431' name='getset' filepath='Objects/descrobject.c' line='971' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <typedef-decl name='PyMemberDef' type-id='type-id-141' filepath='./Include/structmember.h' line='24' column='1' id='type-id-432'/>
     <pointer-type-def type-id='type-id-432' size-in-bits='64' id='type-id-433'/>
-    <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-31' name='type' filepath='Objects/descrobject.c' line='961' column='1'/>
-      <parameter type-id='type-id-433' name='member' filepath='Objects/descrobject.c' line='961' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyDescr_NewMember' mangled-name='PyDescr_NewMember' filepath='Objects/descrobject.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewMember'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/descrobject.c' line='959' column='1'/>
+      <parameter type-id='type-id-433' name='member' filepath='Objects/descrobject.c' line='959' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <typedef-decl name='PyMethodDef' type-id='type-id-139' filepath='./Include/methodobject.h' line='42' column='1' id='type-id-434'/>
     <pointer-type-def type-id='type-id-434' size-in-bits='64' id='type-id-435'/>
-    <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-31' name='type' filepath='Objects/descrobject.c' line='949' column='1'/>
-      <parameter type-id='type-id-435' name='method' filepath='Objects/descrobject.c' line='949' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyDescr_NewClassMethod' mangled-name='PyDescr_NewClassMethod' filepath='Objects/descrobject.c' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewClassMethod'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/descrobject.c' line='947' column='1'/>
+      <parameter type-id='type-id-435' name='method' filepath='Objects/descrobject.c' line='947' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyDescr_NewMethod' mangled-name='PyDescr_NewMethod' filepath='Objects/descrobject.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewMethod'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/descrobject.c' line='901' column='1'/>
+      <parameter type-id='type-id-435' name='method' filepath='Objects/descrobject.c' line='901' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyObject_SetAttrId' mangled-name='_PyObject_SetAttrId' 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='PyMapping_Check' mangled-name='PyMapping_Check' filepath='./Include/abstract.h' line='785' 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='305' 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='304' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTrash_cond' mangled-name='_PyTrash_cond' filepath='./Include/cpython/object.h' line='523' 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='744' 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='516' 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='_PyObject_RealIsSubclass' mangled-name='_PyObject_RealIsSubclass' filepath='./Include/cpython/abstract.h' line='357' 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='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-31' name='type' filepath='Objects/descrobject.c' line='903' column='1'/>
-      <parameter type-id='type-id-435' name='method' filepath='Objects/descrobject.c' line='903' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='21' 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='69' 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='56' 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='315' 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='68' 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='138' 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-427'>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-16'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-16'/>
     </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-149' 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-149' 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='646' 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='668' 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='422' 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='./Include/abstract.h' line='524' 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='643' 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-15' mangled-name='PyExc_EnvironmentError' visibility='default' filepath='./Include/pyerrors.h' line='132' column='1' elf-symbol-id='PyExc_EnvironmentError'/>
-    <var-decl name='PyExc_IOError' type-id='type-id-15' mangled-name='PyExc_IOError' visibility='default' filepath='./Include/pyerrors.h' line='133' column='1' elf-symbol-id='PyExc_IOError'/>
-    <var-decl name='PyExc_BaseException' type-id='type-id-15' mangled-name='PyExc_BaseException' visibility='default' filepath='./Include/pyerrors.h' line='66' column='1' elf-symbol-id='PyExc_BaseException'/>
-    <var-decl name='PyExc_Exception' type-id='type-id-15' mangled-name='PyExc_Exception' visibility='default' filepath='./Include/pyerrors.h' line='67' column='1' elf-symbol-id='PyExc_Exception'/>
-    <var-decl name='PyExc_TypeError' type-id='type-id-15' mangled-name='PyExc_TypeError' visibility='default' filepath='./Include/pyerrors.h' line='103' column='1' elf-symbol-id='PyExc_TypeError'/>
-    <var-decl name='PyExc_StopAsyncIteration' type-id='type-id-15' mangled-name='PyExc_StopAsyncIteration' visibility='default' filepath='./Include/pyerrors.h' line='69' column='1' elf-symbol-id='PyExc_StopAsyncIteration'/>
-    <var-decl name='PyExc_StopIteration' type-id='type-id-15' mangled-name='PyExc_StopIteration' visibility='default' filepath='./Include/pyerrors.h' line='71' column='1' elf-symbol-id='PyExc_StopIteration'/>
-    <var-decl name='PyExc_GeneratorExit' type-id='type-id-15' mangled-name='PyExc_GeneratorExit' visibility='default' filepath='./Include/pyerrors.h' line='72' column='1' elf-symbol-id='PyExc_GeneratorExit'/>
-    <var-decl name='PyExc_SystemExit' type-id='type-id-15' mangled-name='PyExc_SystemExit' visibility='default' filepath='./Include/pyerrors.h' line='102' column='1' elf-symbol-id='PyExc_SystemExit'/>
-    <var-decl name='PyExc_KeyboardInterrupt' type-id='type-id-15' mangled-name='PyExc_KeyboardInterrupt' visibility='default' filepath='./Include/pyerrors.h' line='88' column='1' elf-symbol-id='PyExc_KeyboardInterrupt'/>
-    <var-decl name='PyExc_ImportError' type-id='type-id-15' mangled-name='PyExc_ImportError' visibility='default' filepath='./Include/pyerrors.h' line='82' column='1' elf-symbol-id='PyExc_ImportError'/>
-    <var-decl name='PyExc_ModuleNotFoundError' type-id='type-id-15' mangled-name='PyExc_ModuleNotFoundError' visibility='default' filepath='./Include/pyerrors.h' line='84' column='1' elf-symbol-id='PyExc_ModuleNotFoundError'/>
-    <var-decl name='PyExc_OSError' type-id='type-id-15' mangled-name='PyExc_OSError' visibility='default' filepath='./Include/pyerrors.h' line='81' column='1' elf-symbol-id='PyExc_OSError'/>
-    <var-decl name='PyExc_BlockingIOError' type-id='type-id-15' mangled-name='PyExc_BlockingIOError' visibility='default' filepath='./Include/pyerrors.h' line='113' column='1' elf-symbol-id='PyExc_BlockingIOError'/>
-    <var-decl name='PyExc_ConnectionError' type-id='type-id-15' mangled-name='PyExc_ConnectionError' visibility='default' filepath='./Include/pyerrors.h' line='116' column='1' elf-symbol-id='PyExc_ConnectionError'/>
-    <var-decl name='PyExc_ChildProcessError' type-id='type-id-15' mangled-name='PyExc_ChildProcessError' visibility='default' filepath='./Include/pyerrors.h' line='115' column='1' elf-symbol-id='PyExc_ChildProcessError'/>
-    <var-decl name='PyExc_BrokenPipeError' type-id='type-id-15' mangled-name='PyExc_BrokenPipeError' visibility='default' filepath='./Include/pyerrors.h' line='114' column='1' elf-symbol-id='PyExc_BrokenPipeError'/>
-    <var-decl name='PyExc_ConnectionAbortedError' type-id='type-id-15' mangled-name='PyExc_ConnectionAbortedError' visibility='default' filepath='./Include/pyerrors.h' line='117' column='1' elf-symbol-id='PyExc_ConnectionAbortedError'/>
-    <var-decl name='PyExc_ConnectionRefusedError' type-id='type-id-15' mangled-name='PyExc_ConnectionRefusedError' visibility='default' filepath='./Include/pyerrors.h' line='118' column='1' elf-symbol-id='PyExc_ConnectionRefusedError'/>
-    <var-decl name='PyExc_ConnectionResetError' type-id='type-id-15' mangled-name='PyExc_ConnectionResetError' visibility='default' filepath='./Include/pyerrors.h' line='119' column='1' elf-symbol-id='PyExc_ConnectionResetError'/>
-    <var-decl name='PyExc_FileExistsError' type-id='type-id-15' mangled-name='PyExc_FileExistsError' visibility='default' filepath='./Include/pyerrors.h' line='120' column='1' elf-symbol-id='PyExc_FileExistsError'/>
-    <var-decl name='PyExc_FileNotFoundError' type-id='type-id-15' mangled-name='PyExc_FileNotFoundError' visibility='default' filepath='./Include/pyerrors.h' line='121' column='1' elf-symbol-id='PyExc_FileNotFoundError'/>
-    <var-decl name='PyExc_IsADirectoryError' type-id='type-id-15' mangled-name='PyExc_IsADirectoryError' visibility='default' filepath='./Include/pyerrors.h' line='123' column='1' elf-symbol-id='PyExc_IsADirectoryError'/>
-    <var-decl name='PyExc_NotADirectoryError' type-id='type-id-15' mangled-name='PyExc_NotADirectoryError' visibility='default' filepath='./Include/pyerrors.h' line='124' column='1' elf-symbol-id='PyExc_NotADirectoryError'/>
-    <var-decl name='PyExc_InterruptedError' type-id='type-id-15' mangled-name='PyExc_InterruptedError' visibility='default' filepath='./Include/pyerrors.h' line='122' column='1' elf-symbol-id='PyExc_InterruptedError'/>
-    <var-decl name='PyExc_PermissionError' type-id='type-id-15' mangled-name='PyExc_PermissionError' visibility='default' filepath='./Include/pyerrors.h' line='125' column='1' elf-symbol-id='PyExc_PermissionError'/>
-    <var-decl name='PyExc_ProcessLookupError' type-id='type-id-15' mangled-name='PyExc_ProcessLookupError' visibility='default' filepath='./Include/pyerrors.h' line='126' column='1' elf-symbol-id='PyExc_ProcessLookupError'/>
-    <var-decl name='PyExc_TimeoutError' type-id='type-id-15' mangled-name='PyExc_TimeoutError' visibility='default' filepath='./Include/pyerrors.h' line='127' column='1' elf-symbol-id='PyExc_TimeoutError'/>
-    <var-decl name='PyExc_EOFError' type-id='type-id-15' mangled-name='PyExc_EOFError' visibility='default' filepath='./Include/pyerrors.h' line='79' column='1' elf-symbol-id='PyExc_EOFError'/>
-    <var-decl name='PyExc_RuntimeError' type-id='type-id-15' mangled-name='PyExc_RuntimeError' visibility='default' filepath='./Include/pyerrors.h' line='92' column='1' elf-symbol-id='PyExc_RuntimeError'/>
-    <var-decl name='PyExc_RecursionError' type-id='type-id-15' mangled-name='PyExc_RecursionError' visibility='default' filepath='./Include/pyerrors.h' line='94' column='1' elf-symbol-id='PyExc_RecursionError'/>
-    <var-decl name='PyExc_NotImplementedError' type-id='type-id-15' mangled-name='PyExc_NotImplementedError' visibility='default' filepath='./Include/pyerrors.h' line='96' column='1' elf-symbol-id='PyExc_NotImplementedError'/>
-    <var-decl name='PyExc_NameError' type-id='type-id-15' mangled-name='PyExc_NameError' visibility='default' filepath='./Include/pyerrors.h' line='90' column='1' elf-symbol-id='PyExc_NameError'/>
-    <var-decl name='PyExc_UnboundLocalError' type-id='type-id-15' mangled-name='PyExc_UnboundLocalError' visibility='default' filepath='./Include/pyerrors.h' line='104' column='1' elf-symbol-id='PyExc_UnboundLocalError'/>
-    <var-decl name='PyExc_AttributeError' type-id='type-id-15' mangled-name='PyExc_AttributeError' visibility='default' filepath='./Include/pyerrors.h' line='77' column='1' elf-symbol-id='PyExc_AttributeError'/>
-    <var-decl name='PyExc_SyntaxError' type-id='type-id-15' mangled-name='PyExc_SyntaxError' visibility='default' filepath='./Include/pyerrors.h' line='97' column='1' elf-symbol-id='PyExc_SyntaxError'/>
-    <var-decl name='PyExc_IndentationError' type-id='type-id-15' mangled-name='PyExc_IndentationError' visibility='default' filepath='./Include/pyerrors.h' line='98' column='1' elf-symbol-id='PyExc_IndentationError'/>
-    <var-decl name='PyExc_TabError' type-id='type-id-15' mangled-name='PyExc_TabError' visibility='default' filepath='./Include/pyerrors.h' line='99' column='1' elf-symbol-id='PyExc_TabError'/>
-    <var-decl name='PyExc_LookupError' type-id='type-id-15' mangled-name='PyExc_LookupError' visibility='default' filepath='./Include/pyerrors.h' line='74' column='1' elf-symbol-id='PyExc_LookupError'/>
-    <var-decl name='PyExc_IndexError' type-id='type-id-15' mangled-name='PyExc_IndexError' visibility='default' filepath='./Include/pyerrors.h' line='86' column='1' elf-symbol-id='PyExc_IndexError'/>
-    <var-decl name='PyExc_KeyError' type-id='type-id-15' mangled-name='PyExc_KeyError' visibility='default' filepath='./Include/pyerrors.h' line='87' column='1' elf-symbol-id='PyExc_KeyError'/>
-    <var-decl name='PyExc_ValueError' type-id='type-id-15' mangled-name='PyExc_ValueError' visibility='default' filepath='./Include/pyerrors.h' line='109' column='1' elf-symbol-id='PyExc_ValueError'/>
-    <var-decl name='PyExc_UnicodeError' type-id='type-id-15' mangled-name='PyExc_UnicodeError' visibility='default' filepath='./Include/pyerrors.h' line='105' column='1' elf-symbol-id='PyExc_UnicodeError'/>
-    <var-decl name='PyExc_UnicodeEncodeError' type-id='type-id-15' mangled-name='PyExc_UnicodeEncodeError' visibility='default' filepath='./Include/pyerrors.h' line='106' column='1' elf-symbol-id='PyExc_UnicodeEncodeError'/>
-    <var-decl name='PyExc_UnicodeDecodeError' type-id='type-id-15' mangled-name='PyExc_UnicodeDecodeError' visibility='default' filepath='./Include/pyerrors.h' line='107' column='1' elf-symbol-id='PyExc_UnicodeDecodeError'/>
-    <var-decl name='PyExc_UnicodeTranslateError' type-id='type-id-15' mangled-name='PyExc_UnicodeTranslateError' visibility='default' filepath='./Include/pyerrors.h' line='108' column='1' elf-symbol-id='PyExc_UnicodeTranslateError'/>
-    <var-decl name='PyExc_AssertionError' type-id='type-id-15' mangled-name='PyExc_AssertionError' visibility='default' filepath='./Include/pyerrors.h' line='76' column='1' elf-symbol-id='PyExc_AssertionError'/>
-    <var-decl name='PyExc_ArithmeticError' type-id='type-id-15' mangled-name='PyExc_ArithmeticError' visibility='default' filepath='./Include/pyerrors.h' line='73' column='1' elf-symbol-id='PyExc_ArithmeticError'/>
-    <var-decl name='PyExc_FloatingPointError' type-id='type-id-15' mangled-name='PyExc_FloatingPointError' visibility='default' filepath='./Include/pyerrors.h' line='80' column='1' elf-symbol-id='PyExc_FloatingPointError'/>
-    <var-decl name='PyExc_OverflowError' type-id='type-id-15' mangled-name='PyExc_OverflowError' visibility='default' filepath='./Include/pyerrors.h' line='91' column='1' elf-symbol-id='PyExc_OverflowError'/>
-    <var-decl name='PyExc_ZeroDivisionError' type-id='type-id-15' mangled-name='PyExc_ZeroDivisionError' visibility='default' filepath='./Include/pyerrors.h' line='110' column='1' elf-symbol-id='PyExc_ZeroDivisionError'/>
-    <var-decl name='PyExc_SystemError' type-id='type-id-15' mangled-name='PyExc_SystemError' visibility='default' filepath='./Include/pyerrors.h' line='101' column='1' elf-symbol-id='PyExc_SystemError'/>
-    <var-decl name='PyExc_ReferenceError' type-id='type-id-15' mangled-name='PyExc_ReferenceError' visibility='default' filepath='./Include/pyerrors.h' line='100' column='1' elf-symbol-id='PyExc_ReferenceError'/>
-    <var-decl name='PyExc_MemoryError' type-id='type-id-15' mangled-name='PyExc_MemoryError' visibility='default' filepath='./Include/pyerrors.h' line='89' column='1' elf-symbol-id='PyExc_MemoryError'/>
-    <var-decl name='PyExc_BufferError' type-id='type-id-15' mangled-name='PyExc_BufferError' visibility='default' filepath='./Include/pyerrors.h' line='78' column='1' elf-symbol-id='PyExc_BufferError'/>
-    <var-decl name='PyExc_Warning' type-id='type-id-15' mangled-name='PyExc_Warning' visibility='default' filepath='./Include/pyerrors.h' line='139' column='1' elf-symbol-id='PyExc_Warning'/>
-    <var-decl name='PyExc_UserWarning' type-id='type-id-15' mangled-name='PyExc_UserWarning' visibility='default' filepath='./Include/pyerrors.h' line='140' column='1' elf-symbol-id='PyExc_UserWarning'/>
-    <var-decl name='PyExc_DeprecationWarning' type-id='type-id-15' mangled-name='PyExc_DeprecationWarning' visibility='default' filepath='./Include/pyerrors.h' line='141' column='1' elf-symbol-id='PyExc_DeprecationWarning'/>
-    <var-decl name='PyExc_PendingDeprecationWarning' type-id='type-id-15' mangled-name='PyExc_PendingDeprecationWarning' visibility='default' filepath='./Include/pyerrors.h' line='142' column='1' elf-symbol-id='PyExc_PendingDeprecationWarning'/>
-    <var-decl name='PyExc_SyntaxWarning' type-id='type-id-15' mangled-name='PyExc_SyntaxWarning' visibility='default' filepath='./Include/pyerrors.h' line='143' column='1' elf-symbol-id='PyExc_SyntaxWarning'/>
-    <var-decl name='PyExc_RuntimeWarning' type-id='type-id-15' mangled-name='PyExc_RuntimeWarning' visibility='default' filepath='./Include/pyerrors.h' line='144' column='1' elf-symbol-id='PyExc_RuntimeWarning'/>
-    <var-decl name='PyExc_FutureWarning' type-id='type-id-15' mangled-name='PyExc_FutureWarning' visibility='default' filepath='./Include/pyerrors.h' line='145' column='1' elf-symbol-id='PyExc_FutureWarning'/>
-    <var-decl name='PyExc_ImportWarning' type-id='type-id-15' mangled-name='PyExc_ImportWarning' visibility='default' filepath='./Include/pyerrors.h' line='146' column='1' elf-symbol-id='PyExc_ImportWarning'/>
-    <var-decl name='PyExc_UnicodeWarning' type-id='type-id-15' mangled-name='PyExc_UnicodeWarning' visibility='default' filepath='./Include/pyerrors.h' line='147' column='1' elf-symbol-id='PyExc_UnicodeWarning'/>
-    <var-decl name='PyExc_BytesWarning' type-id='type-id-15' mangled-name='PyExc_BytesWarning' visibility='default' filepath='./Include/pyerrors.h' line='148' column='1' elf-symbol-id='PyExc_BytesWarning'/>
-    <var-decl name='PyExc_EncodingWarning' type-id='type-id-15' mangled-name='PyExc_EncodingWarning' visibility='default' filepath='./Include/pyerrors.h' line='149' column='1' elf-symbol-id='PyExc_EncodingWarning'/>
-    <var-decl name='PyExc_ResourceWarning' type-id='type-id-15' mangled-name='PyExc_ResourceWarning' visibility='default' filepath='./Include/pyerrors.h' line='150' column='1' elf-symbol-id='PyExc_ResourceWarning'/>
+    <var-decl name='PyExc_EnvironmentError' type-id='type-id-16' mangled-name='PyExc_EnvironmentError' visibility='default' filepath='./Include/pyerrors.h' line='132' column='1' elf-symbol-id='PyExc_EnvironmentError'/>
+    <var-decl name='PyExc_IOError' type-id='type-id-16' mangled-name='PyExc_IOError' visibility='default' filepath='./Include/pyerrors.h' line='133' column='1' elf-symbol-id='PyExc_IOError'/>
+    <var-decl name='PyExc_BaseException' type-id='type-id-16' mangled-name='PyExc_BaseException' visibility='default' filepath='./Include/pyerrors.h' line='66' column='1' elf-symbol-id='PyExc_BaseException'/>
+    <var-decl name='PyExc_Exception' type-id='type-id-16' mangled-name='PyExc_Exception' visibility='default' filepath='./Include/pyerrors.h' line='67' column='1' elf-symbol-id='PyExc_Exception'/>
+    <var-decl name='PyExc_TypeError' type-id='type-id-16' mangled-name='PyExc_TypeError' visibility='default' filepath='./Include/pyerrors.h' line='103' column='1' elf-symbol-id='PyExc_TypeError'/>
+    <var-decl name='PyExc_StopAsyncIteration' type-id='type-id-16' mangled-name='PyExc_StopAsyncIteration' visibility='default' filepath='./Include/pyerrors.h' line='69' column='1' elf-symbol-id='PyExc_StopAsyncIteration'/>
+    <var-decl name='PyExc_StopIteration' type-id='type-id-16' mangled-name='PyExc_StopIteration' visibility='default' filepath='./Include/pyerrors.h' line='71' column='1' elf-symbol-id='PyExc_StopIteration'/>
+    <var-decl name='PyExc_GeneratorExit' type-id='type-id-16' mangled-name='PyExc_GeneratorExit' visibility='default' filepath='./Include/pyerrors.h' line='72' column='1' elf-symbol-id='PyExc_GeneratorExit'/>
+    <var-decl name='PyExc_SystemExit' type-id='type-id-16' mangled-name='PyExc_SystemExit' visibility='default' filepath='./Include/pyerrors.h' line='102' column='1' elf-symbol-id='PyExc_SystemExit'/>
+    <var-decl name='PyExc_KeyboardInterrupt' type-id='type-id-16' mangled-name='PyExc_KeyboardInterrupt' visibility='default' filepath='./Include/pyerrors.h' line='88' column='1' elf-symbol-id='PyExc_KeyboardInterrupt'/>
+    <var-decl name='PyExc_ImportError' type-id='type-id-16' mangled-name='PyExc_ImportError' visibility='default' filepath='./Include/pyerrors.h' line='82' column='1' elf-symbol-id='PyExc_ImportError'/>
+    <var-decl name='PyExc_ModuleNotFoundError' type-id='type-id-16' mangled-name='PyExc_ModuleNotFoundError' visibility='default' filepath='./Include/pyerrors.h' line='84' column='1' elf-symbol-id='PyExc_ModuleNotFoundError'/>
+    <var-decl name='PyExc_OSError' type-id='type-id-16' mangled-name='PyExc_OSError' visibility='default' filepath='./Include/pyerrors.h' line='81' column='1' elf-symbol-id='PyExc_OSError'/>
+    <var-decl name='PyExc_BlockingIOError' type-id='type-id-16' mangled-name='PyExc_BlockingIOError' visibility='default' filepath='./Include/pyerrors.h' line='113' column='1' elf-symbol-id='PyExc_BlockingIOError'/>
+    <var-decl name='PyExc_ConnectionError' type-id='type-id-16' mangled-name='PyExc_ConnectionError' visibility='default' filepath='./Include/pyerrors.h' line='116' column='1' elf-symbol-id='PyExc_ConnectionError'/>
+    <var-decl name='PyExc_ChildProcessError' type-id='type-id-16' mangled-name='PyExc_ChildProcessError' visibility='default' filepath='./Include/pyerrors.h' line='115' column='1' elf-symbol-id='PyExc_ChildProcessError'/>
+    <var-decl name='PyExc_BrokenPipeError' type-id='type-id-16' mangled-name='PyExc_BrokenPipeError' visibility='default' filepath='./Include/pyerrors.h' line='114' column='1' elf-symbol-id='PyExc_BrokenPipeError'/>
+    <var-decl name='PyExc_ConnectionAbortedError' type-id='type-id-16' mangled-name='PyExc_ConnectionAbortedError' visibility='default' filepath='./Include/pyerrors.h' line='117' column='1' elf-symbol-id='PyExc_ConnectionAbortedError'/>
+    <var-decl name='PyExc_ConnectionRefusedError' type-id='type-id-16' mangled-name='PyExc_ConnectionRefusedError' visibility='default' filepath='./Include/pyerrors.h' line='118' column='1' elf-symbol-id='PyExc_ConnectionRefusedError'/>
+    <var-decl name='PyExc_ConnectionResetError' type-id='type-id-16' mangled-name='PyExc_ConnectionResetError' visibility='default' filepath='./Include/pyerrors.h' line='119' column='1' elf-symbol-id='PyExc_ConnectionResetError'/>
+    <var-decl name='PyExc_FileExistsError' type-id='type-id-16' mangled-name='PyExc_FileExistsError' visibility='default' filepath='./Include/pyerrors.h' line='120' column='1' elf-symbol-id='PyExc_FileExistsError'/>
+    <var-decl name='PyExc_FileNotFoundError' type-id='type-id-16' mangled-name='PyExc_FileNotFoundError' visibility='default' filepath='./Include/pyerrors.h' line='121' column='1' elf-symbol-id='PyExc_FileNotFoundError'/>
+    <var-decl name='PyExc_IsADirectoryError' type-id='type-id-16' mangled-name='PyExc_IsADirectoryError' visibility='default' filepath='./Include/pyerrors.h' line='123' column='1' elf-symbol-id='PyExc_IsADirectoryError'/>
+    <var-decl name='PyExc_NotADirectoryError' type-id='type-id-16' mangled-name='PyExc_NotADirectoryError' visibility='default' filepath='./Include/pyerrors.h' line='124' column='1' elf-symbol-id='PyExc_NotADirectoryError'/>
+    <var-decl name='PyExc_InterruptedError' type-id='type-id-16' mangled-name='PyExc_InterruptedError' visibility='default' filepath='./Include/pyerrors.h' line='122' column='1' elf-symbol-id='PyExc_InterruptedError'/>
+    <var-decl name='PyExc_PermissionError' type-id='type-id-16' mangled-name='PyExc_PermissionError' visibility='default' filepath='./Include/pyerrors.h' line='125' column='1' elf-symbol-id='PyExc_PermissionError'/>
+    <var-decl name='PyExc_ProcessLookupError' type-id='type-id-16' mangled-name='PyExc_ProcessLookupError' visibility='default' filepath='./Include/pyerrors.h' line='126' column='1' elf-symbol-id='PyExc_ProcessLookupError'/>
+    <var-decl name='PyExc_TimeoutError' type-id='type-id-16' mangled-name='PyExc_TimeoutError' visibility='default' filepath='./Include/pyerrors.h' line='127' column='1' elf-symbol-id='PyExc_TimeoutError'/>
+    <var-decl name='PyExc_EOFError' type-id='type-id-16' mangled-name='PyExc_EOFError' visibility='default' filepath='./Include/pyerrors.h' line='79' column='1' elf-symbol-id='PyExc_EOFError'/>
+    <var-decl name='PyExc_RuntimeError' type-id='type-id-16' mangled-name='PyExc_RuntimeError' visibility='default' filepath='./Include/pyerrors.h' line='92' column='1' elf-symbol-id='PyExc_RuntimeError'/>
+    <var-decl name='PyExc_RecursionError' type-id='type-id-16' mangled-name='PyExc_RecursionError' visibility='default' filepath='./Include/pyerrors.h' line='94' column='1' elf-symbol-id='PyExc_RecursionError'/>
+    <var-decl name='PyExc_NotImplementedError' type-id='type-id-16' mangled-name='PyExc_NotImplementedError' visibility='default' filepath='./Include/pyerrors.h' line='96' column='1' elf-symbol-id='PyExc_NotImplementedError'/>
+    <var-decl name='PyExc_NameError' type-id='type-id-16' mangled-name='PyExc_NameError' visibility='default' filepath='./Include/pyerrors.h' line='90' column='1' elf-symbol-id='PyExc_NameError'/>
+    <var-decl name='PyExc_UnboundLocalError' type-id='type-id-16' mangled-name='PyExc_UnboundLocalError' visibility='default' filepath='./Include/pyerrors.h' line='104' column='1' elf-symbol-id='PyExc_UnboundLocalError'/>
+    <var-decl name='PyExc_AttributeError' type-id='type-id-16' mangled-name='PyExc_AttributeError' visibility='default' filepath='./Include/pyerrors.h' line='77' column='1' elf-symbol-id='PyExc_AttributeError'/>
+    <var-decl name='PyExc_SyntaxError' type-id='type-id-16' mangled-name='PyExc_SyntaxError' visibility='default' filepath='./Include/pyerrors.h' line='97' column='1' elf-symbol-id='PyExc_SyntaxError'/>
+    <var-decl name='PyExc_IndentationError' type-id='type-id-16' mangled-name='PyExc_IndentationError' visibility='default' filepath='./Include/pyerrors.h' line='98' column='1' elf-symbol-id='PyExc_IndentationError'/>
+    <var-decl name='PyExc_TabError' type-id='type-id-16' mangled-name='PyExc_TabError' visibility='default' filepath='./Include/pyerrors.h' line='99' column='1' elf-symbol-id='PyExc_TabError'/>
+    <var-decl name='PyExc_LookupError' type-id='type-id-16' mangled-name='PyExc_LookupError' visibility='default' filepath='./Include/pyerrors.h' line='74' column='1' elf-symbol-id='PyExc_LookupError'/>
+    <var-decl name='PyExc_IndexError' type-id='type-id-16' mangled-name='PyExc_IndexError' visibility='default' filepath='./Include/pyerrors.h' line='86' column='1' elf-symbol-id='PyExc_IndexError'/>
+    <var-decl name='PyExc_KeyError' type-id='type-id-16' mangled-name='PyExc_KeyError' visibility='default' filepath='./Include/pyerrors.h' line='87' column='1' elf-symbol-id='PyExc_KeyError'/>
+    <var-decl name='PyExc_ValueError' type-id='type-id-16' mangled-name='PyExc_ValueError' visibility='default' filepath='./Include/pyerrors.h' line='109' column='1' elf-symbol-id='PyExc_ValueError'/>
+    <var-decl name='PyExc_UnicodeError' type-id='type-id-16' mangled-name='PyExc_UnicodeError' visibility='default' filepath='./Include/pyerrors.h' line='105' column='1' elf-symbol-id='PyExc_UnicodeError'/>
+    <var-decl name='PyExc_UnicodeEncodeError' type-id='type-id-16' mangled-name='PyExc_UnicodeEncodeError' visibility='default' filepath='./Include/pyerrors.h' line='106' column='1' elf-symbol-id='PyExc_UnicodeEncodeError'/>
+    <var-decl name='PyExc_UnicodeDecodeError' type-id='type-id-16' mangled-name='PyExc_UnicodeDecodeError' visibility='default' filepath='./Include/pyerrors.h' line='107' column='1' elf-symbol-id='PyExc_UnicodeDecodeError'/>
+    <var-decl name='PyExc_UnicodeTranslateError' type-id='type-id-16' mangled-name='PyExc_UnicodeTranslateError' visibility='default' filepath='./Include/pyerrors.h' line='108' column='1' elf-symbol-id='PyExc_UnicodeTranslateError'/>
+    <var-decl name='PyExc_AssertionError' type-id='type-id-16' mangled-name='PyExc_AssertionError' visibility='default' filepath='./Include/pyerrors.h' line='76' column='1' elf-symbol-id='PyExc_AssertionError'/>
+    <var-decl name='PyExc_ArithmeticError' type-id='type-id-16' mangled-name='PyExc_ArithmeticError' visibility='default' filepath='./Include/pyerrors.h' line='73' column='1' elf-symbol-id='PyExc_ArithmeticError'/>
+    <var-decl name='PyExc_FloatingPointError' type-id='type-id-16' mangled-name='PyExc_FloatingPointError' visibility='default' filepath='./Include/pyerrors.h' line='80' column='1' elf-symbol-id='PyExc_FloatingPointError'/>
+    <var-decl name='PyExc_OverflowError' type-id='type-id-16' mangled-name='PyExc_OverflowError' visibility='default' filepath='./Include/pyerrors.h' line='91' column='1' elf-symbol-id='PyExc_OverflowError'/>
+    <var-decl name='PyExc_ZeroDivisionError' type-id='type-id-16' mangled-name='PyExc_ZeroDivisionError' visibility='default' filepath='./Include/pyerrors.h' line='110' column='1' elf-symbol-id='PyExc_ZeroDivisionError'/>
+    <var-decl name='PyExc_SystemError' type-id='type-id-16' mangled-name='PyExc_SystemError' visibility='default' filepath='./Include/pyerrors.h' line='101' column='1' elf-symbol-id='PyExc_SystemError'/>
+    <var-decl name='PyExc_ReferenceError' type-id='type-id-16' mangled-name='PyExc_ReferenceError' visibility='default' filepath='./Include/pyerrors.h' line='100' column='1' elf-symbol-id='PyExc_ReferenceError'/>
+    <var-decl name='PyExc_MemoryError' type-id='type-id-16' mangled-name='PyExc_MemoryError' visibility='default' filepath='./Include/pyerrors.h' line='89' column='1' elf-symbol-id='PyExc_MemoryError'/>
+    <var-decl name='PyExc_BufferError' type-id='type-id-16' mangled-name='PyExc_BufferError' visibility='default' filepath='./Include/pyerrors.h' line='78' column='1' elf-symbol-id='PyExc_BufferError'/>
+    <var-decl name='PyExc_Warning' type-id='type-id-16' mangled-name='PyExc_Warning' visibility='default' filepath='./Include/pyerrors.h' line='139' column='1' elf-symbol-id='PyExc_Warning'/>
+    <var-decl name='PyExc_UserWarning' type-id='type-id-16' mangled-name='PyExc_UserWarning' visibility='default' filepath='./Include/pyerrors.h' line='140' column='1' elf-symbol-id='PyExc_UserWarning'/>
+    <var-decl name='PyExc_DeprecationWarning' type-id='type-id-16' mangled-name='PyExc_DeprecationWarning' visibility='default' filepath='./Include/pyerrors.h' line='141' column='1' elf-symbol-id='PyExc_DeprecationWarning'/>
+    <var-decl name='PyExc_PendingDeprecationWarning' type-id='type-id-16' mangled-name='PyExc_PendingDeprecationWarning' visibility='default' filepath='./Include/pyerrors.h' line='142' column='1' elf-symbol-id='PyExc_PendingDeprecationWarning'/>
+    <var-decl name='PyExc_SyntaxWarning' type-id='type-id-16' mangled-name='PyExc_SyntaxWarning' visibility='default' filepath='./Include/pyerrors.h' line='143' column='1' elf-symbol-id='PyExc_SyntaxWarning'/>
+    <var-decl name='PyExc_RuntimeWarning' type-id='type-id-16' mangled-name='PyExc_RuntimeWarning' visibility='default' filepath='./Include/pyerrors.h' line='144' column='1' elf-symbol-id='PyExc_RuntimeWarning'/>
+    <var-decl name='PyExc_FutureWarning' type-id='type-id-16' mangled-name='PyExc_FutureWarning' visibility='default' filepath='./Include/pyerrors.h' line='145' column='1' elf-symbol-id='PyExc_FutureWarning'/>
+    <var-decl name='PyExc_ImportWarning' type-id='type-id-16' mangled-name='PyExc_ImportWarning' visibility='default' filepath='./Include/pyerrors.h' line='146' column='1' elf-symbol-id='PyExc_ImportWarning'/>
+    <var-decl name='PyExc_UnicodeWarning' type-id='type-id-16' mangled-name='PyExc_UnicodeWarning' visibility='default' filepath='./Include/pyerrors.h' line='147' column='1' elf-symbol-id='PyExc_UnicodeWarning'/>
+    <var-decl name='PyExc_BytesWarning' type-id='type-id-16' mangled-name='PyExc_BytesWarning' visibility='default' filepath='./Include/pyerrors.h' line='148' column='1' elf-symbol-id='PyExc_BytesWarning'/>
+    <var-decl name='PyExc_EncodingWarning' type-id='type-id-16' mangled-name='PyExc_EncodingWarning' visibility='default' filepath='./Include/pyerrors.h' line='149' column='1' elf-symbol-id='PyExc_EncodingWarning'/>
+    <var-decl name='PyExc_ResourceWarning' type-id='type-id-16' mangled-name='PyExc_ResourceWarning' visibility='default' filepath='./Include/pyerrors.h' line='150' column='1' elf-symbol-id='PyExc_ResourceWarning'/>
     <function-decl name='_PyErr_TrySetFromCause' mangled-name='_PyErr_TrySetFromCause' filepath='Objects/exceptions.c' line='2939' 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='2939' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicodeTranslateError_Create' mangled-name='_PyUnicodeTranslateError_Create' filepath='Objects/exceptions.c' line='2341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeTranslateError_Create'>
-      <parameter type-id='type-id-15' name='object' filepath='Objects/exceptions.c' line='2342' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/exceptions.c' line='2343' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='2343' column='1'/>
+      <parameter type-id='type-id-16' name='object' filepath='Objects/exceptions.c' line='2342' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/exceptions.c' line='2343' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/exceptions.c' line='2343' column='1'/>
       <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2343' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <typedef-decl name='Py_UNICODE' type-id='type-id-327' filepath='./Include/cpython/unicodeobject.h' line='10' column='1' id='type-id-436'/>
     <qualified-type-def type-id='type-id-436' const='yes' id='type-id-437'/>
     <pointer-type-def type-id='type-id-437' size-in-bits='64' id='type-id-438'/>
     <function-decl name='PyUnicodeTranslateError_Create' mangled-name='PyUnicodeTranslateError_Create' filepath='Objects/exceptions.c' line='2332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_Create'>
       <parameter type-id='type-id-438' name='object' filepath='Objects/exceptions.c' line='2333' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/exceptions.c' line='2333' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/exceptions.c' line='2334' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='2334' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/exceptions.c' line='2333' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/exceptions.c' line='2334' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/exceptions.c' line='2334' column='1'/>
       <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2334' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicodeDecodeError_Create' mangled-name='PyUnicodeDecodeError_Create' filepath='Objects/exceptions.c' line='2234' 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='2235' column='1'/>
       <parameter type-id='type-id-3' name='object' filepath='Objects/exceptions.c' line='2235' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/exceptions.c' line='2235' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/exceptions.c' line='2236' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='2236' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/exceptions.c' line='2235' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/exceptions.c' line='2236' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/exceptions.c' line='2236' column='1'/>
       <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2236' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicodeEncodeError_Create' mangled-name='PyUnicodeEncodeError_Create' filepath='Objects/exceptions.c' line='2118' 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='2119' column='1'/>
       <parameter type-id='type-id-438' name='object' filepath='Objects/exceptions.c' line='2119' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/exceptions.c' line='2119' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/exceptions.c' line='2120' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='2120' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/exceptions.c' line='2119' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/exceptions.c' line='2120' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/exceptions.c' line='2120' column='1'/>
       <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2120' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicodeTranslateError_SetReason' mangled-name='PyUnicodeTranslateError_SetReason' filepath='Objects/exceptions.c' line='1972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_SetReason'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1972' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1972' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeDecodeError_SetReason' mangled-name='PyUnicodeDecodeError_SetReason' filepath='Objects/exceptions.c' line='1964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_SetReason'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1972' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1972' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeEncodeError_SetReason' mangled-name='PyUnicodeEncodeError_SetReason' filepath='Objects/exceptions.c' line='1956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetReason'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1972' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1972' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeTranslateError_GetReason' mangled-name='PyUnicodeTranslateError_GetReason' filepath='Objects/exceptions.c' line='1949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetReason'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicodeDecodeError_GetReason' mangled-name='PyUnicodeDecodeError_GetReason' filepath='Objects/exceptions.c' line='1942' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetReason'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicodeEncodeError_GetReason' mangled-name='PyUnicodeEncodeError_GetReason' filepath='Objects/exceptions.c' line='1935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetReason'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicodeTranslateError_SetEnd' mangled-name='PyUnicodeTranslateError_SetEnd' filepath='Objects/exceptions.c' line='1928' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_SetEnd'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeDecodeError_SetEnd' mangled-name='PyUnicodeDecodeError_SetEnd' filepath='Objects/exceptions.c' line='1920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_SetEnd'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeEncodeError_SetEnd' mangled-name='PyUnicodeEncodeError_SetEnd' filepath='Objects/exceptions.c' line='1912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetEnd'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicodeTranslateError_GetEnd' mangled-name='PyUnicodeTranslateError_GetEnd' filepath='Objects/exceptions.c' line='1905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetEnd'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1905' column='1'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1905' column='1'/>
       <parameter type-id='type-id-125' name='end' filepath='Objects/exceptions.c' line='1905' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicodeDecodeError_GetEnd' mangled-name='PyUnicodeDecodeError_GetEnd' filepath='Objects/exceptions.c' line='1887' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetEnd'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
       <parameter type-id='type-id-125' name='end' filepath='Objects/exceptions.c' line='1887' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicodeEncodeError_GetEnd' mangled-name='PyUnicodeEncodeError_GetEnd' filepath='Objects/exceptions.c' line='1868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetEnd'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
       <parameter type-id='type-id-125' name='end' filepath='Objects/exceptions.c' line='1887' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeTranslateError_SetStart' mangled-name='PyUnicodeTranslateError_SetStart' filepath='Objects/exceptions.c' line='1860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_SetStart'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeDecodeError_SetStart' mangled-name='PyUnicodeDecodeError_SetStart' filepath='Objects/exceptions.c' line='1852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_SetStart'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeEncodeError_SetStart' mangled-name='PyUnicodeEncodeError_SetStart' filepath='Objects/exceptions.c' line='1844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetStart'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/exceptions.c' line='1928' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicodeTranslateError_GetStart' mangled-name='PyUnicodeTranslateError_GetStart' filepath='Objects/exceptions.c' line='1837' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetStart'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1905' column='1'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1905' column='1'/>
       <parameter type-id='type-id-125' name='end' filepath='Objects/exceptions.c' line='1905' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicodeDecodeError_GetStart' mangled-name='PyUnicodeDecodeError_GetStart' filepath='Objects/exceptions.c' line='1819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetStart'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
       <parameter type-id='type-id-125' name='end' filepath='Objects/exceptions.c' line='1887' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicodeEncodeError_GetStart' mangled-name='PyUnicodeEncodeError_GetStart' filepath='Objects/exceptions.c' line='1800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetStart'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
       <parameter type-id='type-id-125' name='end' filepath='Objects/exceptions.c' line='1887' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicodeTranslateError_GetObject' mangled-name='PyUnicodeTranslateError_GetObject' filepath='Objects/exceptions.c' line='1794' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetObject'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicodeDecodeError_GetObject' mangled-name='PyUnicodeDecodeError_GetObject' filepath='Objects/exceptions.c' line='1788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetObject'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicodeEncodeError_GetObject' mangled-name='PyUnicodeEncodeError_GetObject' filepath='Objects/exceptions.c' line='1782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetObject'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicodeDecodeError_GetEncoding' mangled-name='PyUnicodeDecodeError_GetEncoding' filepath='Objects/exceptions.c' line='1776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetEncoding'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicodeEncodeError_GetEncoding' mangled-name='PyUnicodeEncodeError_GetEncoding' filepath='Objects/exceptions.c' line='1770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetEncoding'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyExceptionClass_Name' mangled-name='PyExceptionClass_Name' filepath='Objects/exceptions.c' line='368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyExceptionClass_Name'>
-      <parameter type-id='type-id-15' name='ob' filepath='Objects/exceptions.c' line='368' column='1'/>
+      <parameter type-id='type-id-16' name='ob' filepath='Objects/exceptions.c' line='368' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
     <function-decl name='PyException_SetContext' mangled-name='PyException_SetContext' filepath='Objects/exceptions.c' line='362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetContext'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/exceptions.c' line='362' column='1'/>
-      <parameter type-id='type-id-15' name='context' filepath='Objects/exceptions.c' line='362' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/exceptions.c' line='362' column='1'/>
+      <parameter type-id='type-id-16' name='context' filepath='Objects/exceptions.c' line='362' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyException_GetContext' mangled-name='PyException_GetContext' filepath='Objects/exceptions.c' line='353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetContext'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/exceptions.c' line='353' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyException_SetCause' mangled-name='PyException_SetCause' filepath='Objects/exceptions.c' line='345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetCause'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/exceptions.c' line='345' column='1'/>
-      <parameter type-id='type-id-15' name='cause' filepath='Objects/exceptions.c' line='345' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/exceptions.c' line='345' column='1'/>
+      <parameter type-id='type-id-16' name='cause' filepath='Objects/exceptions.c' line='345' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyException_GetCause' mangled-name='PyException_GetCause' filepath='Objects/exceptions.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetCause'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/exceptions.c' line='353' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyException_SetTraceback' mangled-name='PyException_SetTraceback' filepath='Objects/exceptions.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetTraceback'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/exceptions.c' line='330' column='1'/>
+      <parameter type-id='type-id-16' name='tb' filepath='Objects/exceptions.c' line='330' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyException_GetTraceback' mangled-name='PyException_GetTraceback' filepath='Objects/exceptions.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetTraceback'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/exceptions.c' line='353' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetEncoding' mangled-name='PyUnicodeEncodeError_GetEncoding' filepath='Objects/exceptions.c' line='1770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetEncoding'>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetObject' mangled-name='PyUnicodeEncodeError_GetObject' filepath='Objects/exceptions.c' line='1782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetObject'>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetStart' mangled-name='PyUnicodeEncodeError_SetStart' filepath='Objects/exceptions.c' line='1844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetStart'>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1844' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/exceptions.c' line='1844' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetEnd' mangled-name='PyUnicodeEncodeError_SetEnd' filepath='Objects/exceptions.c' line='1912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetEnd'>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1844' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/exceptions.c' line='1844' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetReason' mangled-name='PyUnicodeEncodeError_GetReason' filepath='Objects/exceptions.c' line='1935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetReason'>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetReason' mangled-name='PyUnicodeEncodeError_SetReason' filepath='Objects/exceptions.c' line='1956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetReason'>
+      <parameter type-id='type-id-16' name='exc' filepath='Objects/exceptions.c' line='1956' column='1'/>
+      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1956' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyErr_NormalizeException' mangled-name='PyErr_NormalizeException' filepath='./Include/pyerrors.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_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='265' 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='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='67' 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='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/genericaliasobject.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='Py_GenericAliasType' type-id='type-id-149' 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='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GenericAlias'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='387' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='387' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='Py_GenericAlias' mangled-name='Py_GenericAlias' filepath='Objects/genericaliasobject.c' line='660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GenericAlias'>
+      <parameter type-id='type-id-16' name='origin' filepath='Objects/genericaliasobject.c' line='660' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/genericaliasobject.c' line='660' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyObject_Dir' mangled-name='PyObject_Dir' filepath='./Include/object.h' line='295' 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='1018' 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='272' 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='694' 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='678' 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='278' 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='_PyAsyncGenAThrow_Type' type-id='type-id-149' mangled-name='_PyAsyncGenAThrow_Type' visibility='default' filepath='./Include/genobject.h' line='83' column='1' elf-symbol-id='_PyAsyncGenAThrow_Type'/>
     <function-decl name='PyAsyncGen_New' mangled-name='PyAsyncGen_New' filepath='Objects/genobject.c' line='1457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAsyncGen_New'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/genobject.c' line='1457' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/genobject.c' line='1457' column='1'/>
-      <parameter type-id='type-id-15' name='qualname' filepath='Objects/genobject.c' line='1457' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/genobject.c' line='1457' column='1'/>
+      <parameter type-id='type-id-16' name='qualname' filepath='Objects/genobject.c' line='1457' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyCoro_New' mangled-name='PyCoro_New' filepath='Objects/genobject.c' line='1185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCoro_New'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/genobject.c' line='1185' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/genobject.c' line='1185' column='1'/>
-      <parameter type-id='type-id-15' name='qualname' filepath='Objects/genobject.c' line='1185' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/genobject.c' line='1185' column='1'/>
+      <parameter type-id='type-id-16' name='qualname' filepath='Objects/genobject.c' line='1185' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyGen_New' mangled-name='PyGen_New' filepath='Objects/genobject.c' line='856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGen_New'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/genobject.c' line='856' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyGen_NewWithQualName' mangled-name='PyGen_NewWithQualName' filepath='Objects/genobject.c' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGen_NewWithQualName'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/genobject.c' line='850' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/genobject.c' line='850' column='1'/>
-      <parameter type-id='type-id-15' name='qualname' filepath='Objects/genobject.c' line='850' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/genobject.c' line='850' column='1'/>
+      <parameter type-id='type-id-16' name='qualname' filepath='Objects/genobject.c' line='850' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyGen_FetchStopIterationValue' mangled-name='_PyGen_FetchStopIterationValue' filepath='Objects/genobject.c' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_FetchStopIterationValue'>
       <parameter type-id='type-id-86' name='pvalue' filepath='Objects/genobject.c' line='614' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
+    </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-16' 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='575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_SetStopIterationValue'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/genobject.c' line='575' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='self' filepath='Objects/genobject.c' line='44' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyErr_FormatFromCause' mangled-name='_PyErr_FormatFromCause' filepath='./Include/cpython/pyerrors.h' line='105' 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='PyIter_Check' mangled-name='PyIter_Check' filepath='./Include/abstract.h' line='382' 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='40' 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='222' 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='_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>
+    <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>
   </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-149' mangled-name='PyStdPrinter_Type' visibility='default' filepath='./Include/cpython/fileobject.h' line='10' column='1' elf-symbol-id='PyStdPrinter_Type'/>
     <function-decl name='PyFile_OpenCode' mangled-name='PyFile_OpenCode' filepath='Objects/fileobject.c' line='562' 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='562' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyFile_OpenCodeObject' mangled-name='PyFile_OpenCodeObject' filepath='Objects/fileobject.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_OpenCodeObject'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2819' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFile_SetOpenCodeHook' mangled-name='PyFile_SetOpenCodeHook' filepath='Objects/fileobject.c' line='516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_SetOpenCodeHook'>
       <parameter type-id='type-id-258' name='hook' filepath='Objects/fileobject.c' line='516' column='1'/>
-      <parameter type-id='type-id-20' name='userData' filepath='Objects/fileobject.c' line='516' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-21' name='userData' filepath='Objects/fileobject.c' line='516' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyFile_NewStdPrinter' mangled-name='PyFile_NewStdPrinter' filepath='Objects/fileobject.c' line='329' 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='329' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='fd' filepath='Objects/fileobject.c' line='329' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='Py_UniversalNewlineFgets' mangled-name='Py_UniversalNewlineFgets' filepath='Objects/fileobject.c' line='252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UniversalNewlineFgets'>
       <parameter type-id='type-id-72' name='buf' filepath='Objects/fileobject.c' line='252' column='1'/>
-      <parameter type-id='type-id-8' name='n' filepath='Objects/fileobject.c' line='252' column='1'/>
+      <parameter type-id='type-id-9' name='n' filepath='Objects/fileobject.c' line='252' column='1'/>
       <parameter type-id='type-id-188' name='stream' filepath='Objects/fileobject.c' line='252' column='1'/>
-      <parameter type-id='type-id-15' name='fobj' filepath='Objects/fileobject.c' line='252' column='1'/>
+      <parameter type-id='type-id-16' name='fobj' filepath='Objects/fileobject.c' line='252' column='1'/>
       <return type-id='type-id-72'/>
     </function-decl>
     <function-decl name='_PyLong_FileDescriptor_Converter' mangled-name='_PyLong_FileDescriptor_Converter' filepath='Objects/fileobject.c' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FileDescriptor_Converter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/fileobject.c' line='227' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/fileobject.c' line='227' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='o' filepath='Objects/fileobject.c' line='180' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/fileobject.c' line='180' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='f' filepath='Objects/fileobject.c' line='150' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='f' filepath='Objects/fileobject.c' line='150' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='v' filepath='Objects/fileobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-15' 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'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/fileobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-16' name='f' filepath='Objects/fileobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Objects/fileobject.c' line='119' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' 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-15'/>
+      <parameter type-id='type-id-16' name='f' filepath='Objects/fileobject.c' line='54' column='1'/>
+      <parameter type-id='type-id-9' name='n' filepath='Objects/fileobject.c' line='54' column='1'/>
+      <return type-id='type-id-16'/>
     </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-9' 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-9' 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-15'/>
+      <parameter type-id='type-id-9' name='closefd' filepath='Objects/fileobject.c' line='34' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyFile_OpenCodeObject' mangled-name='PyFile_OpenCodeObject' filepath='Objects/fileobject.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_OpenCodeObject'>
+      <parameter type-id='type-id-16' name='path' filepath='Objects/fileobject.c' line='536' column='1'/>
+      <return type-id='type-id-16'/>
+    </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='_Py_write' mangled-name='_Py_write' filepath='./Include/cpython/fileutils.h' line='110' 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='776' 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'>
     <pointer-type-def type-id='type-id-439' size-in-bits='64' id='type-id-440'/>
     <function-decl name='_PyFloat_Unpack8' mangled-name='_PyFloat_Unpack8' filepath='Objects/floatobject.c' line='2568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack8'>
       <parameter type-id='type-id-440' name='p' filepath='Objects/floatobject.c' line='2568' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2568' column='1'/>
+      <parameter type-id='type-id-9' name='le' filepath='Objects/floatobject.c' line='2568' column='1'/>
       <return type-id='type-id-371'/>
     </function-decl>
     <function-decl name='_PyFloat_Unpack4' mangled-name='_PyFloat_Unpack4' filepath='Objects/floatobject.c' line='2490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack4'>
       <parameter type-id='type-id-440' name='p' filepath='Objects/floatobject.c' line='2568' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2568' column='1'/>
+      <parameter type-id='type-id-9' name='le' filepath='Objects/floatobject.c' line='2568' column='1'/>
       <return type-id='type-id-371'/>
     </function-decl>
     <function-decl name='_PyFloat_Unpack2' mangled-name='_PyFloat_Unpack2' filepath='Objects/floatobject.c' line='2420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack2'>
       <parameter type-id='type-id-440' name='p' filepath='Objects/floatobject.c' line='2420' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2420' column='1'/>
+      <parameter type-id='type-id-9' name='le' filepath='Objects/floatobject.c' line='2420' column='1'/>
       <return type-id='type-id-371'/>
     </function-decl>
     <function-decl name='_PyFloat_Pack8' mangled-name='_PyFloat_Pack8' filepath='Objects/floatobject.c' line='2291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack8'>
       <parameter type-id='type-id-371' name='x' filepath='Objects/floatobject.c' line='2291' column='1'/>
       <parameter type-id='type-id-339' name='p' filepath='Objects/floatobject.c' line='2291' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2291' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='le' filepath='Objects/floatobject.c' line='2291' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyFloat_Pack4' mangled-name='_PyFloat_Pack4' filepath='Objects/floatobject.c' line='2184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack4'>
-      <parameter type-id='type-id-371' name='x' filepath='Objects/floatobject.c' line='2291' column='1'/>
-      <parameter type-id='type-id-339' name='p' filepath='Objects/floatobject.c' line='2291' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2291' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-371' name='x' filepath='Objects/floatobject.c' line='2184' column='1'/>
+      <parameter type-id='type-id-339' name='p' filepath='Objects/floatobject.c' line='2184' column='1'/>
+      <parameter type-id='type-id-9' name='le' filepath='Objects/floatobject.c' line='2184' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyFloat_Pack2' mangled-name='_PyFloat_Pack2' filepath='Objects/floatobject.c' line='2080' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack2'>
       <parameter type-id='type-id-371' name='x' filepath='Objects/floatobject.c' line='2080' column='1'/>
       <parameter type-id='type-id-339' name='p' filepath='Objects/floatobject.c' line='2080' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2080' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='le' filepath='Objects/floatobject.c' line='2080' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyFloat_DebugMallocStats' mangled-name='_PyFloat_DebugMallocStats' filepath='Objects/floatobject.c' line='2059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_DebugMallocStats'>
       <parameter type-id='type-id-188' name='out' filepath='Objects/floatobject.c' line='2059' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyFloat_AsDouble' mangled-name='PyFloat_AsDouble' filepath='Objects/floatobject.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_AsDouble'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/floatobject.c' line='253' column='1'/>
-      <return type-id='type-id-371'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyFloat_FromString' mangled-name='PyFloat_FromString' filepath='Objects/floatobject.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_FromString'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/floatobject.c' line='181' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/floatobject.c' line='181' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFloat_FromDouble' mangled-name='PyFloat_FromDouble' filepath='Objects/floatobject.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_FromDouble'>
       <parameter type-id='type-id-371' name='fval' filepath='Objects/floatobject.c' line='124' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFloat_GetInfo' mangled-name='PyFloat_GetInfo' filepath='Objects/floatobject.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetInfo'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFloat_GetMin' mangled-name='PyFloat_GetMin' filepath='Objects/floatobject.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetMin'>
       <return type-id='type-id-371'/>
     <function-decl name='PyFloat_GetMax' mangled-name='PyFloat_GetMax' filepath='Objects/floatobject.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetMax'>
       <return type-id='type-id-371'/>
     </function-decl>
+    <function-decl name='PyFloat_AsDouble' mangled-name='PyFloat_AsDouble' filepath='Objects/floatobject.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_AsDouble'>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/floatobject.c' line='253' column='1'/>
+      <return type-id='type-id-371'/>
+    </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='157' 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='214' 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='473' 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='124' 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-149' mangled-name='PyFrame_Type' visibility='default' filepath='./Include/cpython/frameobject.h' line='66' column='1' elf-symbol-id='PyFrame_Type'/>
     </function-decl>
     <function-decl name='_PyFrame_DebugMallocStats' mangled-name='_PyFrame_DebugMallocStats' filepath='Objects/frameobject.c' line='1151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFrame_DebugMallocStats'>
       <parameter type-id='type-id-188' name='out' filepath='Objects/floatobject.c' line='2059' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyFrame_LocalsToFast' mangled-name='PyFrame_LocalsToFast' filepath='Objects/frameobject.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_LocalsToFast'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/frameobject.c' line='1085' column='1'/>
-      <parameter type-id='type-id-8' name='clear' filepath='Objects/frameobject.c' line='1085' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-9' name='clear' filepath='Objects/frameobject.c' line='1085' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyFrame_FastToLocals' mangled-name='PyFrame_FastToLocals' filepath='Objects/frameobject.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_FastToLocals'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/frameobject.c' line='1073' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyFrame_FastToLocalsWithError' mangled-name='PyFrame_FastToLocalsWithError' filepath='Objects/frameobject.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_FastToLocalsWithError'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/frameobject.c' line='1013' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <pointer-type-def type-id='type-id-345' size-in-bits='64' id='type-id-441'/>
     <function-decl name='PyFrame_BlockPop' mangled-name='PyFrame_BlockPop' filepath='Objects/frameobject.c' line='904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_BlockPop'>
     </function-decl>
     <function-decl name='PyFrame_BlockSetup' mangled-name='PyFrame_BlockSetup' filepath='Objects/frameobject.c' line='891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_BlockSetup'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/frameobject.c' line='891' column='1'/>
-      <parameter type-id='type-id-8' name='type' filepath='Objects/frameobject.c' line='891' column='1'/>
-      <parameter type-id='type-id-8' name='handler' filepath='Objects/frameobject.c' line='891' column='1'/>
-      <parameter type-id='type-id-8' name='level' filepath='Objects/frameobject.c' line='891' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-9' name='type' filepath='Objects/frameobject.c' line='891' column='1'/>
+      <parameter type-id='type-id-9' name='handler' filepath='Objects/frameobject.c' line='891' column='1'/>
+      <parameter type-id='type-id-9' name='level' filepath='Objects/frameobject.c' line='891' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyFrame_New' mangled-name='PyFrame_New' filepath='Objects/frameobject.c' line='863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_New'>
       <parameter type-id='type-id-331' name='tstate' filepath='Objects/frameobject.c' line='863' column='1'/>
       <parameter type-id='type-id-334' name='code' filepath='Objects/frameobject.c' line='863' column='1'/>
-      <parameter type-id='type-id-15' name='globals' filepath='Objects/frameobject.c' line='864' column='1'/>
-      <parameter type-id='type-id-15' name='locals' filepath='Objects/frameobject.c' line='864' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Objects/frameobject.c' line='864' column='1'/>
+      <parameter type-id='type-id-16' name='locals' filepath='Objects/frameobject.c' line='864' column='1'/>
       <return type-id='type-id-223'/>
     </function-decl>
     <function-decl name='PyFrame_GetLineNumber' mangled-name='PyFrame_GetLineNumber' filepath='Objects/frameobject.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_GetLineNumber'>
       <parameter type-id='type-id-223' name='f' filepath='Objects/frameobject.c' line='42' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
+    </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='_PyEval_GetBuiltins' mangled-name='_PyEval_GetBuiltins' filepath='./Include/internal/pycore_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='_PyDict_GetItemIdWithError' mangled-name='_PyDict_GetItemIdWithError' filepath='./Include/cpython/dictobject.h' line='32' 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='_PyCode_InitAddressRange' mangled-name='_PyCode_InitAddressRange' filepath='./Include/cpython/code.h' line='175' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLineTable_NextAddressRange' mangled-name='PyLineTable_NextAddressRange' filepath='./Include/cpython/code.h' line='181' 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='46' 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='PyClassMethod_Type' type-id='type-id-149' mangled-name='PyClassMethod_Type' visibility='default' filepath='./Include/funcobject.h' line='100' column='1' elf-symbol-id='PyClassMethod_Type'/>
     <var-decl name='PyStaticMethod_Type' type-id='type-id-149' mangled-name='PyStaticMethod_Type' visibility='default' filepath='./Include/funcobject.h' line='101' column='1' elf-symbol-id='PyStaticMethod_Type'/>
     <function-decl name='PyStaticMethod_New' mangled-name='PyStaticMethod_New' filepath='Objects/funcobject.c' line='1145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStaticMethod_New'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyClassMethod_New' mangled-name='PyClassMethod_New' filepath='Objects/funcobject.c' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyClassMethod_New'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFunction_SetAnnotations' mangled-name='PyFunction_SetAnnotations' filepath='Objects/funcobject.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetAnnotations'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <parameter type-id='type-id-15' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
+      <parameter type-id='type-id-16' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyFunction_GetAnnotations' mangled-name='PyFunction_GetAnnotations' filepath='Objects/funcobject.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetAnnotations'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFunction_SetClosure' mangled-name='PyFunction_SetClosure' filepath='Objects/funcobject.c' line='203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetClosure'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <parameter type-id='type-id-15' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
+      <parameter type-id='type-id-16' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyFunction_GetClosure' mangled-name='PyFunction_GetClosure' filepath='Objects/funcobject.c' line='193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetClosure'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFunction_SetKwDefaults' mangled-name='PyFunction_SetKwDefaults' filepath='Objects/funcobject.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetKwDefaults'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <parameter type-id='type-id-15' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
+      <parameter type-id='type-id-16' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyFunction_GetKwDefaults' mangled-name='PyFunction_GetKwDefaults' filepath='Objects/funcobject.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetKwDefaults'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFunction_SetDefaults' mangled-name='PyFunction_SetDefaults' filepath='Objects/funcobject.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetDefaults'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <parameter type-id='type-id-15' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
+      <parameter type-id='type-id-16' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyFunction_GetDefaults' mangled-name='PyFunction_GetDefaults' filepath='Objects/funcobject.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetDefaults'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFunction_GetModule' mangled-name='PyFunction_GetModule' filepath='Objects/funcobject.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetModule'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFunction_GetGlobals' mangled-name='PyFunction_GetGlobals' filepath='Objects/funcobject.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetGlobals'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFunction_GetCode' mangled-name='PyFunction_GetCode' filepath='Objects/funcobject.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetCode'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyFunction_New' mangled-name='PyFunction_New' filepath='Objects/funcobject.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_New'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='code' filepath='Objects/funcobject.c' line='96' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Objects/funcobject.c' line='96' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='code' filepath='Objects/funcobject.c' line='11' column='1'/>
-      <parameter type-id='type-id-15' name='globals' filepath='Objects/funcobject.c' line='11' column='1'/>
-      <parameter type-id='type-id-15' name='qualname' filepath='Objects/funcobject.c' line='11' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='code' filepath='Objects/funcobject.c' line='11' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Objects/funcobject.c' line='11' column='1'/>
+      <parameter type-id='type-id-16' name='qualname' filepath='Objects/funcobject.c' line='11' column='1'/>
+      <return type-id='type-id-16'/>
+    </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>
+    <function-decl name='_PyEval_BuiltinsFromGlobals' mangled-name='_PyEval_BuiltinsFromGlobals' filepath='./Include/internal/pycore_ceval.h' line='38' 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='next' type-id='type-id-225' visibility='default' filepath='./Include/internal/pycore_interp.h' line='222' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tstate_head' type-id='type-id-10' visibility='default' filepath='./Include/internal/pycore_interp.h' line='223' column='1'/>
+        <var-decl name='tstate_head' type-id='type-id-11' visibility='default' filepath='./Include/internal/pycore_interp.h' line='223' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='runtime' type-id='type-id-443' visibility='default' filepath='./Include/internal/pycore_interp.h' line='228' column='1'/>
         <var-decl name='id_refcount' type-id='type-id-227' visibility='default' filepath='./Include/internal/pycore_interp.h' line='231' 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='232' column='1'/>
+        <var-decl name='requires_idref' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='232' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
         <var-decl name='id_mutex' type-id='type-id-228' visibility='default' filepath='./Include/internal/pycore_interp.h' line='233' 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='235' column='1'/>
+        <var-decl name='finalizing' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='235' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
         <var-decl name='ceval' type-id='type-id-229' visibility='default' filepath='./Include/internal/pycore_interp.h' line='237' column='1'/>
         <var-decl name='gc' type-id='type-id-230' visibility='default' filepath='./Include/internal/pycore_interp.h' line='238' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6848'>
-        <var-decl name='modules' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='241' column='1'/>
+        <var-decl name='modules' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='241' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6912'>
-        <var-decl name='modules_by_index' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='242' column='1'/>
+        <var-decl name='modules_by_index' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='242' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6976'>
-        <var-decl name='sysdict' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='244' column='1'/>
+        <var-decl name='sysdict' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='244' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7040'>
-        <var-decl name='builtins' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='246' column='1'/>
+        <var-decl name='builtins' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='246' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7104'>
-        <var-decl name='importlib' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='248' column='1'/>
+        <var-decl name='importlib' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='248' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7168'>
-        <var-decl name='num_threads' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_interp.h' line='251' column='1'/>
+        <var-decl name='num_threads' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_interp.h' line='251' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7232'>
         <var-decl name='pythread_stacksize' type-id='type-id-157' visibility='default' filepath='./Include/internal/pycore_interp.h' line='256' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7296'>
-        <var-decl name='codec_search_path' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='258' column='1'/>
+        <var-decl name='codec_search_path' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='258' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7360'>
-        <var-decl name='codec_search_cache' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='259' column='1'/>
+        <var-decl name='codec_search_cache' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='259' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7424'>
-        <var-decl name='codec_error_registry' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='260' column='1'/>
+        <var-decl name='codec_error_registry' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='260' 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='261' column='1'/>
+        <var-decl name='codecs_initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='261' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7552'>
         <var-decl name='config' type-id='type-id-231' visibility='default' filepath='./Include/internal/pycore_interp.h' line='263' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10688'>
-        <var-decl name='dlopenflags' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='265' column='1'/>
+        <var-decl name='dlopenflags' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='265' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10752'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='268' column='1'/>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='268' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10816'>
-        <var-decl name='builtins_copy' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='270' column='1'/>
+        <var-decl name='builtins_copy' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='270' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10880'>
-        <var-decl name='import_func' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='271' column='1'/>
+        <var-decl name='import_func' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='271' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10944'>
         <var-decl name='eval_frame' type-id='type-id-232' visibility='default' filepath='./Include/internal/pycore_interp.h' line='273' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11008'>
-        <var-decl name='co_extra_user_count' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_interp.h' line='275' column='1'/>
+        <var-decl name='co_extra_user_count' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_interp.h' line='275' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11072'>
         <var-decl name='co_extra_freefuncs' type-id='type-id-233' visibility='default' filepath='./Include/internal/pycore_interp.h' line='276' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27392'>
-        <var-decl name='before_forkers' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='279' column='1'/>
+        <var-decl name='before_forkers' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='279' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27456'>
-        <var-decl name='after_forkers_parent' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='280' column='1'/>
+        <var-decl name='after_forkers_parent' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='280' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27520'>
-        <var-decl name='after_forkers_child' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='281' column='1'/>
+        <var-decl name='after_forkers_child' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='281' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27584'>
-        <var-decl name='tstate_next_unique_id' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_interp.h' line='284' column='1'/>
+        <var-decl name='tstate_next_unique_id' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_interp.h' line='284' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27648'>
         <var-decl name='warnings' type-id='type-id-234' visibility='default' filepath='./Include/internal/pycore_interp.h' line='286' column='1'/>
         <var-decl name='atexit' type-id='type-id-235' visibility='default' filepath='./Include/internal/pycore_interp.h' line='287' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='28032'>
-        <var-decl name='audit_hooks' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='289' column='1'/>
+        <var-decl name='audit_hooks' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='289' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='28096'>
         <var-decl name='small_ints' type-id='type-id-236' visibility='default' filepath='./Include/internal/pycore_interp.h' line='296' column='1'/>
     <pointer-type-def type-id='type-id-445' size-in-bits='64' id='type-id-443'/>
     <class-decl name='_Py_frame_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='138' column='1' id='type-id-444'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='free_list' type-id='type-id-12' visibility='default' filepath='./Include/internal/pycore_interp.h' line='139' column='1'/>
+        <var-decl name='free_list' type-id='type-id-13' visibility='default' filepath='./Include/internal/pycore_interp.h' line='139' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='141' column='1'/>
+        <var-decl name='numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='141' column='1'/>
       </data-member>
     </class-decl>
     <function-decl name='_PyInterpreterID_LookUp' mangled-name='_PyInterpreterID_LookUp' filepath='Objects/interpreteridobject.c' line='287' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterID_LookUp'>
-      <parameter type-id='type-id-15' name='requested_id' filepath='Objects/interpreteridobject.c' line='287' column='1'/>
+      <parameter type-id='type-id-16' name='requested_id' filepath='Objects/interpreteridobject.c' line='287' column='1'/>
       <return type-id='type-id-222'/>
     </function-decl>
     <function-decl name='_PyInterpreterState_GetIDObject' mangled-name='_PyInterpreterState_GetIDObject' filepath='Objects/interpreteridobject.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetIDObject'>
       <parameter type-id='type-id-222' name='interp' filepath='Objects/interpreteridobject.c' line='274' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyInterpreterID_New' mangled-name='_PyInterpreterID_New' filepath='Objects/interpreteridobject.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterID_New'>
       <parameter type-id='type-id-227' name='id' filepath='Objects/interpreteridobject.c' line='268' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </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='334' 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='337' 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='338' 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='336' 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='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='PyCallIter_Type' type-id='type-id-149' mangled-name='PyCallIter_Type' visibility='default' filepath='./Include/iterobject.h' line='9' column='1' elf-symbol-id='PyCallIter_Type'/>
     <var-decl name='_PyAnextAwaitable_Type' type-id='type-id-149' visibility='default' filepath='./Include/iterobject.h' line='11' column='1'/>
     <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-15' name='callable' filepath='Objects/call.c' line='387' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='387' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/iterobject.c' line='181' column='1'/>
+      <parameter type-id='type-id-16' name='sentinel' filepath='Objects/iterobject.c' line='181' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='seq' filepath='Objects/iterobject.c' line='15' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyCoro_GetAwaitableIter' mangled-name='_PyCoro_GetAwaitableIter' filepath='./Include/genobject.h' line='58' 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='./Include/genobject.h' line='43' 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='_PyObject_HasLen' mangled-name='_PyObject_HasLen' filepath='./Include/cpython/abstract.h' line='253' 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='PyListIter_Type' type-id='type-id-149' 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-149' 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='2504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_AsTuple'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/listobject.c' line='2504' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyList_Reverse' mangled-name='PyList_Reverse' filepath='Objects/listobject.c' line='2490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Reverse'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/listobject.c' line='2490' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyList_Sort' mangled-name='PyList_Sort' filepath='Objects/listobject.c' line='2461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Sort'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/listobject.c' line='2461' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyList_Extend' mangled-name='_PyList_Extend' filepath='Objects/listobject.c' line='978' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyList_Extend'>
       <parameter type-id='type-id-382' name='self' filepath='Objects/listobject.c' line='978' column='1'/>
-      <parameter type-id='type-id-15' name='iterable' filepath='Objects/listobject.c' line='978' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='iterable' filepath='Objects/listobject.c' line='978' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyList_SetSlice' mangled-name='PyList_SetSlice' filepath='Objects/listobject.c' line='723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_SetSlice'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/listobject.c' line='723' column='1'/>
-      <parameter type-id='type-id-30' name='ilow' filepath='Objects/listobject.c' line='723' column='1'/>
-      <parameter type-id='type-id-30' name='ihigh' filepath='Objects/listobject.c' line='723' column='1'/>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/listobject.c' line='723' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='a' filepath='Objects/listobject.c' line='723' column='1'/>
+      <parameter type-id='type-id-31' name='ilow' filepath='Objects/listobject.c' line='723' column='1'/>
+      <parameter type-id='type-id-31' name='ihigh' filepath='Objects/listobject.c' line='723' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/listobject.c' line='723' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyList_GetSlice' mangled-name='PyList_GetSlice' filepath='Objects/listobject.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_GetSlice'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/listobject.c' line='482' column='1'/>
-      <parameter type-id='type-id-30' name='ilow' filepath='Objects/listobject.c' line='482' column='1'/>
-      <parameter type-id='type-id-30' name='ihigh' filepath='Objects/listobject.c' line='482' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='a' filepath='Objects/listobject.c' line='482' column='1'/>
+      <parameter type-id='type-id-31' name='ilow' filepath='Objects/listobject.c' line='482' column='1'/>
+      <parameter type-id='type-id-31' name='ihigh' filepath='Objects/listobject.c' line='482' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyList_Append' mangled-name='PyList_Append' filepath='Objects/listobject.c' line='320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Append'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/listobject.c' line='320' column='1'/>
+      <parameter type-id='type-id-16' name='newitem' filepath='Objects/listobject.c' line='320' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyList_Insert' mangled-name='PyList_Insert' filepath='Objects/listobject.c' line='295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Insert'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/listobject.c' line='295' column='1'/>
-      <parameter type-id='type-id-30' name='where' filepath='Objects/listobject.c' line='295' column='1'/>
-      <parameter type-id='type-id-15' name='newitem' filepath='Objects/listobject.c' line='295' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/listobject.c' line='295' column='1'/>
+      <parameter type-id='type-id-31' name='where' filepath='Objects/listobject.c' line='295' column='1'/>
+      <parameter type-id='type-id-16' name='newitem' filepath='Objects/listobject.c' line='295' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyList_SetItem' mangled-name='PyList_SetItem' filepath='Objects/listobject.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_SetItem'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/listobject.c' line='245' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/listobject.c' line='245' column='1'/>
+      <parameter type-id='type-id-16' name='newitem' filepath='Objects/listobject.c' line='246' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyList_GetItem' mangled-name='PyList_GetItem' filepath='Objects/listobject.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_GetItem'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/listobject.c' line='225' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/listobject.c' line='225' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/listobject.c' line='225' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/listobject.c' line='225' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyList_Size' mangled-name='PyList_Size' filepath='Objects/listobject.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/bytesobject.c' line='1224' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyList_New' mangled-name='PyList_New' filepath='Objects/listobject.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_New'>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/listobject.c' line='140' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/listobject.c' line='140' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyList_DebugMallocStats' mangled-name='_PyList_DebugMallocStats' filepath='Objects/listobject.c' line='131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyList_DebugMallocStats'>
       <parameter type-id='type-id-188' name='out' filepath='Objects/floatobject.c' line='2059' column='1'/>
-      <return type-id='type-id-69'/>
+      <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='30' 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='671' 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='300' 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='299' 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'>
 
     <array-type-def dimensions='1' type-id='type-id-341' size-in-bits='2048' id='type-id-446'>
-      <subrange length='256' type-id='type-id-18' id='type-id-362'/>
+      <subrange length='256' type-id='type-id-19' id='type-id-362'/>
 
     </array-type-def>
     <var-decl name='_PyLong_DigitValue' type-id='type-id-446' 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-149' 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='5688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_GetInfo'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_DivmodNear' mangled-name='_PyLong_DivmodNear' filepath='Objects/longobject.c' line='5064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_DivmodNear'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/longobject.c' line='5064' column='1'/>
-      <parameter type-id='type-id-15' name='b' filepath='Objects/longobject.c' line='5064' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='a' filepath='Objects/longobject.c' line='5064' column='1'/>
+      <parameter type-id='type-id-16' name='b' filepath='Objects/longobject.c' line='5064' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_GCD' mangled-name='_PyLong_GCD' filepath='Objects/longobject.c' line='4702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_GCD'>
-      <parameter type-id='type-id-15' name='aarg' filepath='Objects/longobject.c' line='4702' column='1'/>
-      <parameter type-id='type-id-15' name='barg' filepath='Objects/longobject.c' line='4702' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='aarg' filepath='Objects/longobject.c' line='4702' column='1'/>
+      <parameter type-id='type-id-16' name='barg' filepath='Objects/longobject.c' line='4702' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_Lshift' mangled-name='_PyLong_Lshift' filepath='Objects/longobject.c' line='4510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Lshift'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/longobject.c' line='4510' column='1'/>
+      <parameter type-id='type-id-16' name='a' filepath='Objects/longobject.c' line='4510' column='1'/>
       <parameter type-id='type-id-157' name='shiftby' filepath='Objects/longobject.c' line='4510' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_Rshift' mangled-name='_PyLong_Rshift' filepath='Objects/longobject.c' line='4439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Rshift'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/longobject.c' line='4510' column='1'/>
+      <parameter type-id='type-id-16' name='a' filepath='Objects/longobject.c' line='4510' column='1'/>
       <parameter type-id='type-id-157' name='shiftby' filepath='Objects/longobject.c' line='4510' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyLong_AsDouble' mangled-name='PyLong_AsDouble' filepath='Objects/longobject.c' line='2850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsDouble'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/longobject.c' line='2850' column='1'/>
-      <return type-id='type-id-371'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_Frexp' mangled-name='_PyLong_Frexp' filepath='Objects/longobject.c' line='2738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Frexp'>
       <parameter type-id='type-id-356' name='a' filepath='Objects/longobject.c' line='2738' column='1'/>
       <return type-id='type-id-371'/>
     </function-decl>
     <function-decl name='PyLong_FromUnicodeObject' mangled-name='PyLong_FromUnicodeObject' filepath='Objects/longobject.c' line='2497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnicodeObject'>
-      <parameter type-id='type-id-15' name='u' filepath='Objects/longobject.c' line='2497' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2497' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='u' filepath='Objects/longobject.c' line='2497' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Objects/longobject.c' line='2497' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_FromBytes' mangled-name='_PyLong_FromBytes' filepath='Objects/longobject.c' line='2477' 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='2477' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/longobject.c' line='2477' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2477' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/longobject.c' line='2477' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Objects/longobject.c' line='2477' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyLong_FromString' mangled-name='PyLong_FromString' filepath='Objects/longobject.c' line='2116' 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='2116' column='1'/>
       <parameter type-id='type-id-215' name='pend' filepath='Objects/longobject.c' line='2116' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2116' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='base' filepath='Objects/longobject.c' line='2116' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_FormatBytesWriter' mangled-name='_PyLong_FormatBytesWriter' filepath='Objects/longobject.c' line='1965' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FormatBytesWriter'>
       <parameter type-id='type-id-214' name='writer' filepath='Objects/longobject.c' line='1965' column='1'/>
       <parameter type-id='type-id-72' name='str' filepath='Objects/longobject.c' line='1965' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/longobject.c' line='1966' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='1967' column='1'/>
-      <parameter type-id='type-id-8' name='alternate' filepath='Objects/longobject.c' line='1967' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='1966' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Objects/longobject.c' line='1967' column='1'/>
+      <parameter type-id='type-id-9' name='alternate' filepath='Objects/longobject.c' line='1967' column='1'/>
       <return type-id='type-id-72'/>
     </function-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-447' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='603' column='1' id='type-id-448'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='buffer' type-id='type-id-15' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='604' column='1'/>
+        <var-decl name='buffer' type-id='type-id-16' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='604' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='data' type-id='type-id-20' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='605' column='1'/>
+        <var-decl name='data' type-id='type-id-21' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='605' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='kind' type-id='type-id-449' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='606' column='1'/>
         <var-decl name='maxchar' type-id='type-id-450' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='607' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='608' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='608' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='pos' type-id='type-id-30' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='609' column='1'/>
+        <var-decl name='pos' type-id='type-id-31' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='609' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='min_length' type-id='type-id-30' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='612' column='1'/>
+        <var-decl name='min_length' type-id='type-id-31' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='612' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
         <var-decl name='min_char' type-id='type-id-450' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='615' column='1'/>
     <pointer-type-def type-id='type-id-447' size-in-bits='64' id='type-id-451'/>
     <function-decl name='_PyLong_FormatWriter' mangled-name='_PyLong_FormatWriter' filepath='Objects/longobject.c' line='1952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FormatWriter'>
       <parameter type-id='type-id-451' name='writer' filepath='Objects/longobject.c' line='1952' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/longobject.c' line='1953' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='1954' column='1'/>
-      <parameter type-id='type-id-8' name='alternate' filepath='Objects/longobject.c' line='1954' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='1953' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Objects/longobject.c' line='1954' column='1'/>
+      <parameter type-id='type-id-9' name='alternate' filepath='Objects/longobject.c' line='1954' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyLong_Format' mangled-name='_PyLong_Format' filepath='Objects/longobject.c' line='1938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Format'>
-      <parameter type-id='type-id-15' name='n' filepath='Objects/abstract.c' line='1702' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/abstract.c' line='1702' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='1938' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Objects/longobject.c' line='1938' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_Size_t_Converter' mangled-name='_PyLong_Size_t_Converter' filepath='Objects/longobject.c' line='1424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Size_t_Converter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='1424' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/longobject.c' line='1424' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyLong_UnsignedLongLong_Converter' mangled-name='_PyLong_UnsignedLongLong_Converter' filepath='Objects/longobject.c' line='1407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedLongLong_Converter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='1424' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/longobject.c' line='1424' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyLong_UnsignedLong_Converter' mangled-name='_PyLong_UnsignedLong_Converter' filepath='Objects/longobject.c' line='1390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedLong_Converter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='1424' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/longobject.c' line='1424' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyLong_UnsignedInt_Converter' mangled-name='_PyLong_UnsignedInt_Converter' filepath='Objects/longobject.c' line='1368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedInt_Converter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='1368' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/longobject.c' line='1368' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyLong_UnsignedShort_Converter' mangled-name='_PyLong_UnsignedShort_Converter' filepath='Objects/longobject.c' line='1346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedShort_Converter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='1368' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/longobject.c' line='1368' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-452'/>
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-452'/>
     <function-decl name='PyLong_AsLongLongAndOverflow' mangled-name='PyLong_AsLongLongAndOverflow' filepath='Objects/longobject.c' line='1270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongLongAndOverflow'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='1270' column='1'/>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='1270' column='1'/>
       <parameter type-id='type-id-452' name='overflow' filepath='Objects/longobject.c' line='1270' column='1'/>
       <return type-id='type-id-286'/>
     </function-decl>
     <function-decl name='PyLong_AsUnsignedLongLongMask' mangled-name='PyLong_AsUnsignedLongLongMask' filepath='Objects/longobject.c' line='1236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongLongMask'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/longobject.c' line='1236' column='1'/>
-      <return type-id='type-id-289'/>
-    </function-decl>
-    <function-decl name='PyLong_AsUnsignedLongLong' mangled-name='PyLong_AsUnsignedLongLong' filepath='Objects/longobject.c' line='1171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongLong'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='1171' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/longobject.c' line='1236' column='1'/>
       <return type-id='type-id-289'/>
     </function-decl>
     <function-decl name='PyLong_AsLongLong' mangled-name='PyLong_AsLongLong' filepath='Objects/longobject.c' line='1119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongLong'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='1119' column='1'/>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='1119' column='1'/>
       <return type-id='type-id-286'/>
     </function-decl>
-    <function-decl name='PyLong_FromSsize_t' mangled-name='PyLong_FromSsize_t' filepath='Objects/longobject.c' line='1075' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromSsize_t'>
-      <parameter type-id='type-id-30' name='ival' filepath='Objects/longobject.c' line='1075' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyLong_FromLongLong' mangled-name='PyLong_FromLongLong' filepath='Objects/longobject.c' line='1028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromLongLong'>
-      <parameter type-id='type-id-286' name='ival' filepath='Objects/longobject.c' line='1028' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyLong_AsVoidPtr' mangled-name='PyLong_AsVoidPtr' filepath='Objects/longobject.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsVoidPtr'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='122' column='1'/>
-      <return type-id='type-id-20'/>
+    <function-decl name='PyLong_AsVoidPtr' mangled-name='PyLong_AsVoidPtr' filepath='Objects/longobject.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsVoidPtr'>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='991' column='1'/>
+      <return type-id='type-id-21'/>
     </function-decl>
     <function-decl name='PyLong_FromVoidPtr' mangled-name='PyLong_FromVoidPtr' filepath='Objects/longobject.c' line='974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromVoidPtr'>
-      <parameter type-id='type-id-20' name='p' filepath='Objects/longobject.c' line='974' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-21' name='p' filepath='Objects/longobject.c' line='974' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_AsByteArray' mangled-name='_PyLong_AsByteArray' filepath='Objects/longobject.c' line='839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_AsByteArray'>
       <parameter type-id='type-id-356' name='v' filepath='Objects/longobject.c' line='839' column='1'/>
       <parameter type-id='type-id-339' name='bytes' filepath='Objects/longobject.c' line='840' column='1'/>
       <parameter type-id='type-id-157' name='n' filepath='Objects/longobject.c' line='840' column='1'/>
-      <parameter type-id='type-id-8' name='little_endian' filepath='Objects/longobject.c' line='841' column='1'/>
-      <parameter type-id='type-id-8' name='is_signed' filepath='Objects/longobject.c' line='841' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='little_endian' filepath='Objects/longobject.c' line='841' column='1'/>
+      <parameter type-id='type-id-9' name='is_signed' filepath='Objects/longobject.c' line='841' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyLong_FromByteArray' mangled-name='_PyLong_FromByteArray' filepath='Objects/longobject.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromByteArray'>
       <parameter type-id='type-id-440' name='bytes' filepath='Objects/longobject.c' line='728' column='1'/>
       <parameter type-id='type-id-157' name='n' filepath='Objects/longobject.c' line='728' column='1'/>
-      <parameter type-id='type-id-8' name='little_endian' filepath='Objects/longobject.c' line='729' column='1'/>
-      <parameter type-id='type-id-8' name='is_signed' filepath='Objects/longobject.c' line='729' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='little_endian' filepath='Objects/longobject.c' line='729' column='1'/>
+      <parameter type-id='type-id-9' name='is_signed' filepath='Objects/longobject.c' line='729' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_NumBits' mangled-name='_PyLong_NumBits' filepath='Objects/longobject.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_NumBits'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='698' column='1'/>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='698' column='1'/>
       <return type-id='type-id-157'/>
     </function-decl>
     <function-decl name='_PyLong_Sign' mangled-name='_PyLong_Sign' filepath='Objects/longobject.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Sign'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyLong_AsUnsignedLongMask' mangled-name='PyLong_AsUnsignedLongMask' filepath='Objects/longobject.c' line='656' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongMask'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/longobject.c' line='656' column='1'/>
-      <return type-id='type-id-18'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/longobject.c' line='656' column='1'/>
+      <return type-id='type-id-19'/>
     </function-decl>
     <function-decl name='PyLong_AsSize_t' mangled-name='PyLong_AsSize_t' filepath='Objects/longobject.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsSize_t'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='583' column='1'/>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='583' column='1'/>
       <return type-id='type-id-157'/>
     </function-decl>
     <function-decl name='PyLong_AsUnsignedLong' mangled-name='PyLong_AsUnsignedLong' filepath='Objects/longobject.c' line='539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLong'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='539' column='1'/>
-      <return type-id='type-id-18'/>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='539' column='1'/>
+      <return type-id='type-id-19'/>
     </function-decl>
     <function-decl name='PyLong_AsSsize_t' mangled-name='PyLong_AsSsize_t' filepath='Objects/longobject.c' line='484' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsSsize_t'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='484' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='484' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='_PyLong_AsInt' mangled-name='_PyLong_AsInt' filepath='Objects/longobject.c' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_AsInt'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='300' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyLong_AsLong' mangled-name='PyLong_AsLong' filepath='Objects/longobject.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLong'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/longobject.c' line='449' column='1'/>
-      <return type-id='type-id-32'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='466' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyLong_AsLongAndOverflow' mangled-name='PyLong_AsLongAndOverflow' filepath='Objects/longobject.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongAndOverflow'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='370' column='1'/>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='370' column='1'/>
       <parameter type-id='type-id-452' name='overflow' filepath='Objects/longobject.c' line='370' column='1'/>
-      <return type-id='type-id-32'/>
+      <return type-id='type-id-33'/>
     </function-decl>
     <function-decl name='PyLong_FromDouble' mangled-name='PyLong_FromDouble' filepath='Objects/longobject.c' line='293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromDouble'>
       <parameter type-id='type-id-371' name='dval' filepath='Objects/longobject.c' line='293' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyLong_FromSize_t' mangled-name='PyLong_FromSize_t' filepath='Objects/longobject.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromSize_t'>
       <parameter type-id='type-id-157' name='ival' filepath='Objects/longobject.c' line='285' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyLong_FromUnsignedLongLong' mangled-name='PyLong_FromUnsignedLongLong' filepath='Objects/longobject.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnsignedLongLong'>
       <parameter type-id='type-id-289' name='ival' filepath='Objects/longobject.c' line='277' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyLong_FromUnsignedLong' mangled-name='PyLong_FromUnsignedLong' filepath='Objects/longobject.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnsignedLong'>
-      <parameter type-id='type-id-18' name='ival' filepath='Objects/longobject.c' line='269' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyLong_FromLong' mangled-name='PyLong_FromLong' filepath='Objects/longobject.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromLong'>
-      <parameter type-id='type-id-32' name='ival' filepath='Objects/longobject.c' line='173' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_Copy' mangled-name='_PyLong_Copy' filepath='Objects/longobject.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Copy'>
       <parameter type-id='type-id-356' name='src' filepath='Objects/longobject.c' line='145' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyLong_New' mangled-name='_PyLong_New' filepath='Objects/longobject.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_New'>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/longobject.c' line='121' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/longobject.c' line='121' column='1'/>
       <return type-id='type-id-356'/>
     </function-decl>
+    <function-decl name='PyLong_FromLong' mangled-name='PyLong_FromLong' filepath='Objects/longobject.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromLong'>
+      <parameter type-id='type-id-33' name='ival' filepath='Objects/longobject.c' line='173' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyLong_FromUnsignedLong' mangled-name='PyLong_FromUnsignedLong' filepath='Objects/longobject.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnsignedLong'>
+      <parameter type-id='type-id-19' name='ival' filepath='Objects/longobject.c' line='269' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyLong_AsLong' mangled-name='PyLong_AsLong' filepath='Objects/longobject.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLong'>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/longobject.c' line='449' column='1'/>
+      <return type-id='type-id-33'/>
+    </function-decl>
+    <function-decl name='PyLong_FromLongLong' mangled-name='PyLong_FromLongLong' filepath='Objects/longobject.c' line='1028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromLongLong'>
+      <parameter type-id='type-id-286' name='ival' filepath='Objects/longobject.c' line='1028' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyLong_FromSsize_t' mangled-name='PyLong_FromSsize_t' filepath='Objects/longobject.c' line='1075' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromSsize_t'>
+      <parameter type-id='type-id-31' name='ival' filepath='Objects/longobject.c' line='1075' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyLong_AsUnsignedLongLong' mangled-name='PyLong_AsUnsignedLongLong' filepath='Objects/longobject.c' line='1171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongLong'>
+      <parameter type-id='type-id-16' name='vv' filepath='Objects/longobject.c' line='1171' column='1'/>
+      <return type-id='type-id-289'/>
+    </function-decl>
+    <function-decl name='PyLong_AsDouble' mangled-name='PyLong_AsDouble' filepath='Objects/longobject.c' line='2850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsDouble'>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/longobject.c' line='2850' column='1'/>
+      <return type-id='type-id-371'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_PrepareInternal' mangled-name='_PyUnicodeWriter_PrepareInternal' filepath='./Include/cpython/unicodeobject.h' line='648' 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='1010' 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='268' 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='193' 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-149' mangled-name='PyDict_Type' visibility='default' filepath='./Include/dictobject.h' line='15' column='1' elf-symbol-id='PyDict_Type'/>
     <var-decl name='PyDictItems_Type' type-id='type-id-149' mangled-name='PyDictItems_Type' visibility='default' filepath='./Include/dictobject.h' line='68' column='1' elf-symbol-id='PyDictItems_Type'/>
     <var-decl name='PyDictValues_Type' type-id='type-id-149' mangled-name='PyDictValues_Type' visibility='default' filepath='./Include/dictobject.h' line='67' column='1' elf-symbol-id='PyDictValues_Type'/>
     <function-decl name='PyObject_GenericGetDict' mangled-name='PyObject_GenericGetDict' filepath='Objects/dictobject.c' line='4990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericGetDict'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/dictobject.c' line='4990' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/dictobject.c' line='4990' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/dictobject.c' line='4990' column='1'/>
+      <parameter type-id='type-id-21' name='context' filepath='Objects/dictobject.c' line='4990' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyDictView_Intersect' mangled-name='_PyDictView_Intersect' filepath='Objects/dictobject.c' line='4441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDictView_Intersect'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/dictobject.c' line='4441' column='1'/>
-      <parameter type-id='type-id-15' name='other' filepath='Objects/dictobject.c' line='4441' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyDictView_New' mangled-name='_PyDictView_New' filepath='Objects/dictobject.c' line='4214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDictView_New'>
-      <parameter type-id='type-id-15' name='dict' filepath='Objects/dictobject.c' line='4214' column='1'/>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/dictobject.c' line='4214' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/dictobject.c' line='4441' column='1'/>
+      <parameter type-id='type-id-16' name='other' filepath='Objects/dictobject.c' line='4441' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyDict_DelItemString' mangled-name='PyDict_DelItemString' filepath='Objects/dictobject.c' line='3629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_DelItemString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='269' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='269' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/dictobject.c' line='3629' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='3629' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-453'/>
     <function-decl name='_PyDict_DelItemId' mangled-name='_PyDict_DelItemId' filepath='Objects/dictobject.c' line='3620' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItemId'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/dictobject.c' line='3620' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/dictobject.c' line='3620' column='1'/>
       <parameter type-id='type-id-453' name='key' filepath='Objects/dictobject.c' line='3620' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_SetItemString' mangled-name='PyDict_SetItemString' filepath='Objects/dictobject.c' line='3606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetItemString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/dictobject.c' line='3606' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='3606' column='1'/>
+      <parameter type-id='type-id-16' name='item' filepath='Objects/dictobject.c' line='3606' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyDict_SetItemId' mangled-name='_PyDict_SetItemId' filepath='Objects/dictobject.c' line='3596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SetItemId'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/dictobject.c' line='3596' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/dictobject.c' line='3596' column='1'/>
       <parameter type-id='type-id-219' name='key' filepath='Objects/dictobject.c' line='3596' column='1'/>
-      <parameter type-id='type-id-15' name='item' filepath='Objects/dictobject.c' line='3596' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='item' filepath='Objects/dictobject.c' line='3596' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_GetItemString' mangled-name='PyDict_GetItemString' filepath='Objects/dictobject.c' line='3582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItemString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/dictobject.c' line='3582' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='3582' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyDict_ContainsId' mangled-name='_PyDict_ContainsId' filepath='Objects/dictobject.c' line='3425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_ContainsId'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='3425' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='3425' column='1'/>
       <parameter type-id='type-id-219' name='key' filepath='Objects/dictobject.c' line='3425' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyDict_Contains_KnownHash' mangled-name='_PyDict_Contains_KnownHash' filepath='Objects/dictobject.c' line='3412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Contains_KnownHash'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='3412' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='3412' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='3412' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='3412' column='1'/>
       <parameter type-id='type-id-117' name='hash' filepath='Objects/dictobject.c' line='3412' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_Contains' mangled-name='PyDict_Contains' filepath='Objects/dictobject.c' line='3391' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Contains'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='3391' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='3391' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='3391' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='3391' column='1'/>
+      <return type-id='type-id-9'/>
     </function-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-389'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='dk_refcnt' type-id='type-id-30' visibility='default' filepath='Objects/dict-common.h' line='23' column='1'/>
+        <var-decl name='dk_refcnt' type-id='type-id-31' 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-30' visibility='default' filepath='Objects/dict-common.h' line='26' column='1'/>
+        <var-decl name='dk_size' type-id='type-id-31' 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-454' 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-30' visibility='default' filepath='Objects/dict-common.h' line='44' column='1'/>
+        <var-decl name='dk_usable' type-id='type-id-31' 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-30' visibility='default' filepath='Objects/dict-common.h' line='47' column='1'/>
+        <var-decl name='dk_nentries' type-id='type-id-31' 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-209' visibility='default' filepath='Objects/dict-common.h' line='62' column='1'/>
     <typedef-decl name='dict_lookup_func' type-id='type-id-456' filepath='Objects/dict-common.h' line='14' column='1' id='type-id-454'/>
     <function-decl name='_PyDict_SizeOf' mangled-name='_PyDict_SizeOf' filepath='Objects/dictobject.c' line='3272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SizeOf'>
       <parameter type-id='type-id-391' name='mp' filepath='Objects/dictobject.c' line='3272' column='1'/>
-      <return type-id='type-id-30'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyDict_SetDefault' mangled-name='PyDict_SetDefault' filepath='Objects/dictobject.c' line='3021' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetDefault'>
-      <parameter type-id='type-id-15' name='d' filepath='Objects/dictobject.c' line='3021' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='3021' column='1'/>
-      <parameter type-id='type-id-15' name='defaultobj' filepath='Objects/dictobject.c' line='3021' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='d' filepath='Objects/dictobject.c' line='3021' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='3021' column='1'/>
+      <parameter type-id='type-id-16' name='defaultobj' filepath='Objects/dictobject.c' line='3021' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyDict_Items' mangled-name='PyDict_Items' filepath='Objects/dictobject.c' line='2872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Items'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='mp' filepath='Objects/dictobject.c' line='2872' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyDict_Values' mangled-name='PyDict_Values' filepath='Objects/dictobject.c' line='2862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Values'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='mp' filepath='Objects/dictobject.c' line='2872' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyDict_Keys' mangled-name='PyDict_Keys' filepath='Objects/dictobject.c' line='2852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Keys'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='mp' filepath='Objects/dictobject.c' line='2872' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyDict_Size' mangled-name='PyDict_Size' filepath='Objects/dictobject.c' line='2842' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/bytesobject.c' line='1224' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyDict_Copy' mangled-name='PyDict_Copy' filepath='Objects/dictobject.c' line='2749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Copy'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/dictobject.c' line='2749' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/dictobject.c' line='2749' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyDict_MergeEx' mangled-name='_PyDict_MergeEx' filepath='Objects/dictobject.c' line='2737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_MergeEx'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/dictobject.c' line='2737' column='1'/>
-      <parameter type-id='type-id-15' name='b' filepath='Objects/dictobject.c' line='2737' column='1'/>
-      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2737' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='a' filepath='Objects/dictobject.c' line='2737' column='1'/>
+      <parameter type-id='type-id-16' name='b' filepath='Objects/dictobject.c' line='2737' column='1'/>
+      <parameter type-id='type-id-9' name='override' filepath='Objects/dictobject.c' line='2737' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_Merge' mangled-name='PyDict_Merge' filepath='Objects/dictobject.c' line='2730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Merge'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/dictobject.c' line='2737' column='1'/>
-      <parameter type-id='type-id-15' name='b' filepath='Objects/dictobject.c' line='2737' column='1'/>
-      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2737' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='a' filepath='Objects/dictobject.c' line='2737' column='1'/>
+      <parameter type-id='type-id-16' name='b' filepath='Objects/dictobject.c' line='2737' column='1'/>
+      <parameter type-id='type-id-9' name='override' filepath='Objects/dictobject.c' line='2737' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_Update' mangled-name='PyDict_Update' filepath='Objects/dictobject.c' line='2724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Update'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/abstract.c' line='2296' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='2296' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_MergeFromSeq2' mangled-name='PyDict_MergeFromSeq2' filepath='Objects/dictobject.c' line='2462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_MergeFromSeq2'>
-      <parameter type-id='type-id-15' name='d' filepath='Objects/dictobject.c' line='2462' column='1'/>
-      <parameter type-id='type-id-15' name='seq2' filepath='Objects/dictobject.c' line='2462' column='1'/>
-      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2462' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyDict_Pop' mangled-name='_PyDict_Pop' filepath='Objects/dictobject.c' line='1944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Pop'>
-      <parameter type-id='type-id-15' name='callable' filepath='Objects/call.c' line='354' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/call.c' line='355' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Objects/call.c' line='355' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='d' filepath='Objects/dictobject.c' line='2462' column='1'/>
+      <parameter type-id='type-id-16' name='seq2' filepath='Objects/dictobject.c' line='2462' column='1'/>
+      <parameter type-id='type-id-9' name='override' filepath='Objects/dictobject.c' line='2462' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_Next' mangled-name='PyDict_Next' filepath='Objects/dictobject.c' line='1880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Next'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1880' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1880' column='1'/>
       <parameter type-id='type-id-125' name='ppos' filepath='Objects/dictobject.c' line='1880' column='1'/>
       <parameter type-id='type-id-86' name='pkey' filepath='Objects/dictobject.c' line='1880' column='1'/>
       <parameter type-id='type-id-86' name='pvalue' filepath='Objects/dictobject.c' line='1880' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-117' size-in-bits='64' id='type-id-457'/>
-    <function-decl name='_PyDict_Next' mangled-name='_PyDict_Next' filepath='Objects/dictobject.c' line='1818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Next'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1818' column='1'/>
-      <parameter type-id='type-id-125' name='ppos' filepath='Objects/dictobject.c' line='1818' column='1'/>
-      <parameter type-id='type-id-86' name='pkey' filepath='Objects/dictobject.c' line='1818' column='1'/>
-      <parameter type-id='type-id-86' name='pvalue' filepath='Objects/dictobject.c' line='1819' column='1'/>
-      <parameter type-id='type-id-457' name='phash' filepath='Objects/dictobject.c' line='1819' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyDict_Clear' mangled-name='PyDict_Clear' filepath='Objects/dictobject.c' line='1777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Clear'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/genobject.c' line='44' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyDict_DelItemIf' mangled-name='_PyDict_DelItemIf' filepath='Objects/dictobject.c' line='1727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItemIf'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1727' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='1727' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1727' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='1727' column='1'/>
       <parameter type-id='type-id-97' name='predicate' filepath='Objects/dictobject.c' line='1728' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyDict_DelItem_KnownHash' mangled-name='_PyDict_DelItem_KnownHash' filepath='Objects/dictobject.c' line='1689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItem_KnownHash'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='3412' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='3412' column='1'/>
-      <parameter type-id='type-id-117' name='hash' filepath='Objects/dictobject.c' line='3412' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1689' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='1689' column='1'/>
+      <parameter type-id='type-id-117' name='hash' filepath='Objects/dictobject.c' line='1689' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_DelItem' mangled-name='PyDict_DelItem' filepath='Objects/dictobject.c' line='1674' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_DelItem'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1674' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='1674' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyDict_SetItem_KnownHash' mangled-name='_PyDict_SetItem_KnownHash' filepath='Objects/dictobject.c' line='1627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SetItem_KnownHash'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1627' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='1627' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/dictobject.c' line='1627' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1627' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='1627' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/dictobject.c' line='1627' column='1'/>
       <parameter type-id='type-id-117' name='hash' filepath='Objects/dictobject.c' line='1628' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyDict_SetItem' mangled-name='PyDict_SetItem' filepath='Objects/dictobject.c' line='1600' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetItem'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1600' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='1600' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/dictobject.c' line='1600' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyDict_GetItemStringWithError' mangled-name='_PyDict_GetItemStringWithError' filepath='Objects/dictobject.c' line='1545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItemStringWithError'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/dictobject.c' line='1545' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='1545' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyDict_GetItemIdWithError' mangled-name='_PyDict_GetItemIdWithError' filepath='Objects/dictobject.c' line='1533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItemIdWithError'>
-      <parameter type-id='type-id-15' name='dp' filepath='Objects/dictobject.c' line='1533' column='1'/>
+      <parameter type-id='type-id-16' name='dp' filepath='Objects/dictobject.c' line='1533' column='1'/>
       <parameter type-id='type-id-219' name='key' filepath='Objects/dictobject.c' line='1533' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyDict_GetItemWithError' mangled-name='PyDict_GetItemWithError' filepath='Objects/dictobject.c' line='1506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItemWithError'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1506' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='1506' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyDict_GetItem_KnownHash' mangled-name='_PyDict_GetItem_KnownHash' filepath='Objects/dictobject.c' line='1483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItem_KnownHash'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1483' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='1483' column='1'/>
-      <parameter type-id='type-id-117' name='hash' filepath='Objects/dictobject.c' line='1483' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyDict_GetItem' mangled-name='PyDict_GetItem' filepath='Objects/dictobject.c' line='1398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItem'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1398' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='1398' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1398' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='1398' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyDict_NewPresized' mangled-name='_PyDict_NewPresized' filepath='Objects/dictobject.c' line='1361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_NewPresized'>
-      <parameter type-id='type-id-30' name='minused' filepath='Objects/dictobject.c' line='1361' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='minused' filepath='Objects/dictobject.c' line='1361' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyDict_MaybeUntrack' mangled-name='_PyDict_MaybeUntrack' filepath='Objects/dictobject.c' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_MaybeUntrack'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1002' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1002' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyDict_HasOnlyStringKeys' mangled-name='_PyDict_HasOnlyStringKeys' filepath='Objects/dictobject.c' line='977' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_HasOnlyStringKeys'>
-      <parameter type-id='type-id-15' name='dict' filepath='Objects/dictobject.c' line='977' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='dict' filepath='Objects/dictobject.c' line='977' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyDict_New' mangled-name='PyDict_New' filepath='Objects/dictobject.c' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_New'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyDict_CheckConsistency' mangled-name='_PyDict_CheckConsistency' filepath='Objects/dictobject.c' line='495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_CheckConsistency'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='495' column='1'/>
-      <parameter type-id='type-id-8' name='check_content' filepath='Objects/dictobject.c' line='495' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='495' column='1'/>
+      <parameter type-id='type-id-9' name='check_content' filepath='Objects/dictobject.c' line='495' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyDict_DebugMallocStats' mangled-name='_PyDict_DebugMallocStats' filepath='Objects/dictobject.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DebugMallocStats'>
       <parameter type-id='type-id-188' name='out' filepath='Objects/floatobject.c' line='2059' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItem_KnownHash' mangled-name='_PyDict_GetItem_KnownHash' filepath='Objects/dictobject.c' line='1483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItem_KnownHash'>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1483' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='1483' column='1'/>
+      <parameter type-id='type-id-117' name='hash' filepath='Objects/dictobject.c' line='1483' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyDict_GetItemWithError' mangled-name='PyDict_GetItemWithError' filepath='Objects/dictobject.c' line='1506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItemWithError'>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1506' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='1506' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyDict_SetItem' mangled-name='PyDict_SetItem' filepath='Objects/dictobject.c' line='1600' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetItem'>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1600' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/dictobject.c' line='1600' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/dictobject.c' line='1600' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyDict_Clear' mangled-name='PyDict_Clear' filepath='Objects/dictobject.c' line='1777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Clear'>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1777' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-117' size-in-bits='64' id='type-id-457'/>
+    <function-decl name='_PyDict_Next' mangled-name='_PyDict_Next' filepath='Objects/dictobject.c' line='1818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Next'>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/dictobject.c' line='1818' column='1'/>
+      <parameter type-id='type-id-125' name='ppos' filepath='Objects/dictobject.c' line='1818' column='1'/>
+      <parameter type-id='type-id-86' name='pkey' filepath='Objects/dictobject.c' line='1818' column='1'/>
+      <parameter type-id='type-id-86' name='pvalue' filepath='Objects/dictobject.c' line='1819' column='1'/>
+      <parameter type-id='type-id-457' name='phash' filepath='Objects/dictobject.c' line='1819' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyDict_Pop' mangled-name='_PyDict_Pop' filepath='Objects/dictobject.c' line='1944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Pop'>
+      <parameter type-id='type-id-16' name='callable' filepath='Objects/call.c' line='322' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/call.c' line='322' column='1'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Objects/call.c' line='322' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyDictView_New' mangled-name='_PyDictView_New' filepath='Objects/dictobject.c' line='4214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDictView_New'>
+      <parameter type-id='type-id-16' name='dict' filepath='Objects/dictobject.c' line='4214' column='1'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/dictobject.c' line='4214' column='1'/>
+      <return type-id='type-id-16'/>
+    </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='219' 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='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='PySequence_List' mangled-name='PySequence_List' filepath='./Include/abstract.h' line='706' 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='83' 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='86' 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='834' 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='_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-455'>
       <parameter type-id='type-id-391'/>
-      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-16'/>
       <parameter type-id='type-id-117'/>
       <parameter type-id='type-id-86'/>
-      <return type-id='type-id-30'/>
+      <return type-id='type-id-31'/>
     </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='PyODictItems_Type' type-id='type-id-149' mangled-name='PyODictItems_Type' visibility='default' filepath='./Include/cpython/odictobject.h' line='18' column='1' elf-symbol-id='PyODictItems_Type'/>
     <var-decl name='PyODictValues_Type' type-id='type-id-149' mangled-name='PyODictValues_Type' visibility='default' filepath='./Include/cpython/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='1675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_DelItem'>
-      <parameter type-id='type-id-15' name='od' filepath='Objects/odictobject.c' line='1675' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/odictobject.c' line='1675' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='od' filepath='Objects/odictobject.c' line='1675' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/odictobject.c' line='1675' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyODict_SetItem' mangled-name='PyODict_SetItem' filepath='Objects/odictobject.c' line='1666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_SetItem'>
-      <parameter type-id='type-id-15' name='od' filepath='Objects/odictobject.c' line='1666' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/odictobject.c' line='1666' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/odictobject.c' line='1666' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='od' filepath='Objects/odictobject.c' line='1666' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/odictobject.c' line='1666' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/odictobject.c' line='1666' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyODict_New' mangled-name='PyODict_New' filepath='Objects/odictobject.c' line='1642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_New'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyDictView_New' mangled-name='_PyDictView_New' filepath='./Include/cpython/dictobject.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_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='39' 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='92' 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='37' 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='30' 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='55' 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='58' 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-149' 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-149' 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='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_ToContiguous'>
-      <parameter type-id='type-id-20' name='buf' filepath='Objects/memoryobject.c' line='985' column='1'/>
+      <parameter type-id='type-id-21' name='buf' filepath='Objects/memoryobject.c' line='985' column='1'/>
       <parameter type-id='type-id-127' name='src' filepath='Objects/memoryobject.c' line='985' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/memoryobject.c' line='985' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/memoryobject.c' line='985' column='1'/>
       <parameter type-id='type-id-1' name='order' filepath='Objects/memoryobject.c' line='985' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyMemoryView_GetContiguous' mangled-name='PyMemoryView_GetContiguous' filepath='Objects/memoryobject.c' line='920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_GetContiguous'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/memoryobject.c' line='920' column='1'/>
-      <parameter type-id='type-id-8' name='buffertype' filepath='Objects/memoryobject.c' line='920' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/memoryobject.c' line='920' column='1'/>
+      <parameter type-id='type-id-9' name='buffertype' filepath='Objects/memoryobject.c' line='920' column='1'/>
       <parameter type-id='type-id-1' name='order' filepath='Objects/memoryobject.c' line='920' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyMemoryView_FromObject' mangled-name='PyMemoryView_FromObject' filepath='Objects/memoryobject.c' line='788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromObject'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1641' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyMemoryView_FromBuffer' mangled-name='PyMemoryView_FromBuffer' filepath='Objects/memoryobject.c' line='758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromBuffer'>
       <parameter type-id='type-id-127' name='info' filepath='Objects/memoryobject.c' line='758' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyMemoryView_FromMemory' mangled-name='PyMemoryView_FromMemory' filepath='Objects/memoryobject.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromMemory'>
       <parameter type-id='type-id-72' name='mem' filepath='Objects/memoryobject.c' line='729' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/memoryobject.c' line='729' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/memoryobject.c' line='729' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/memoryobject.c' line='729' column='1'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Objects/memoryobject.c' line='729' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyMemoryView_FromObject' mangled-name='PyMemoryView_FromObject' filepath='Objects/memoryobject.c' line='788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromObject'>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/memoryobject.c' line='788' column='1'/>
+      <return type-id='type-id-16'/>
+    </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_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='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='656' 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-149' 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-149' 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-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/methodobject.c' line='139' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='op' filepath='Objects/methodobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/methodobject.c' line='119' column='1'/>
       <return type-id='type-id-140'/>
     </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-435' name='ml' filepath='Objects/methodobject.c' line='44' column='1'/>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/methodobject.c' line='44' column='1'/>
-      <parameter type-id='type-id-15' name='module' filepath='Objects/methodobject.c' line='44' column='1'/>
-      <parameter type-id='type-id-31' name='cls' filepath='Objects/methodobject.c' line='44' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/methodobject.c' line='44' column='1'/>
+      <parameter type-id='type-id-16' name='module' filepath='Objects/methodobject.c' line='44' column='1'/>
+      <parameter type-id='type-id-32' name='cls' filepath='Objects/methodobject.c' line='44' column='1'/>
+      <return type-id='type-id-16'/>
     </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-435' name='ml' filepath='Objects/methodobject.c' line='38' column='1'/>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/methodobject.c' line='38' column='1'/>
-      <parameter type-id='type-id-15' name='module' filepath='Objects/methodobject.c' line='38' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/methodobject.c' line='38' column='1'/>
+      <parameter type-id='type-id-16' name='module' filepath='Objects/methodobject.c' line='38' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyCFunction_New' mangled-name='PyCFunction_New' filepath='Objects/methodobject.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_New'>
       <parameter type-id='type-id-435' name='ml' filepath='Objects/methodobject.c' line='32' column='1'/>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/methodobject.c' line='32' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/methodobject.c' line='32' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyVectorcall_Call' mangled-name='PyVectorcall_Call' filepath='./Include/cpython/abstract.h' line='146' 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-149' 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-149' 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='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModuleSpec_IsInitializing'>
-      <parameter type-id='type-id-15' name='spec' filepath='Objects/moduleobject.c' line='705' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='spec' filepath='Objects/moduleobject.c' line='705' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyModule_ClearDict' mangled-name='_PyModule_ClearDict' filepath='Objects/moduleobject.c' line='573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_ClearDict'>
-      <parameter type-id='type-id-15' name='d' filepath='Objects/moduleobject.c' line='573' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='d' filepath='Objects/moduleobject.c' line='573' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyModule_Clear' mangled-name='_PyModule_Clear' filepath='Objects/moduleobject.c' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_Clear'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='565' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='565' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyModule_GetState' mangled-name='PyModule_GetState' filepath='Objects/moduleobject.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetState'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='555' column='1'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='555' column='1'/>
+      <return type-id='type-id-21'/>
     </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-458'>
       <data-member access='public' layout-offset-in-bits='0'>
         <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='m_size' type-id='type-id-30' visibility='default' filepath='./Include/moduleobject.h' line='79' column='1'/>
+        <var-decl name='m_size' type-id='type-id-31' visibility='default' filepath='./Include/moduleobject.h' line='79' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
         <var-decl name='m_methods' type-id='type-id-435' visibility='default' filepath='./Include/moduleobject.h' line='80' column='1'/>
         <var-decl name='m_slots' type-id='type-id-460' visibility='default' filepath='./Include/moduleobject.h' line='81' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='m_traverse' type-id='type-id-50' visibility='default' filepath='./Include/moduleobject.h' line='82' column='1'/>
+        <var-decl name='m_traverse' type-id='type-id-51' visibility='default' filepath='./Include/moduleobject.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='m_clear' type-id='type-id-51' visibility='default' filepath='./Include/moduleobject.h' line='83' column='1'/>
+        <var-decl name='m_clear' type-id='type-id-52' visibility='default' filepath='./Include/moduleobject.h' line='83' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='m_free' type-id='type-id-64' visibility='default' filepath='./Include/moduleobject.h' line='84' column='1'/>
+        <var-decl name='m_free' type-id='type-id-65' visibility='default' filepath='./Include/moduleobject.h' line='84' 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-461'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/moduleobject.h' line='45' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' visibility='default' filepath='./Include/moduleobject.h' line='45' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='m_init' type-id='type-id-462' visibility='default' filepath='./Include/moduleobject.h' line='46' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='m_index' type-id='type-id-30' visibility='default' filepath='./Include/moduleobject.h' line='47' column='1'/>
+        <var-decl name='m_index' type-id='type-id-31' visibility='default' filepath='./Include/moduleobject.h' line='47' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='m_copy' type-id='type-id-15' visibility='default' filepath='./Include/moduleobject.h' line='48' column='1'/>
+        <var-decl name='m_copy' type-id='type-id-16' visibility='default' filepath='./Include/moduleobject.h' line='48' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-463' size-in-bits='64' id='type-id-462'/>
     <typedef-decl name='PyModuleDef_Base' type-id='type-id-461' filepath='./Include/moduleobject.h' line='49' column='1' id='type-id-459'/>
     <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-464'>
       <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'/>
+        <var-decl name='slot' type-id='type-id-9' visibility='default' filepath='./Include/moduleobject.h' line='62' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='value' type-id='type-id-20' visibility='default' filepath='./Include/moduleobject.h' line='63' column='1'/>
+        <var-decl name='value' type-id='type-id-21' visibility='default' filepath='./Include/moduleobject.h' line='63' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-464' size-in-bits='64' id='type-id-460'/>
     <typedef-decl name='PyModuleDef' type-id='type-id-458' filepath='./Include/moduleobject.h' line='85' column='1' id='type-id-465'/>
     <pointer-type-def type-id='type-id-465' size-in-bits='64' id='type-id-466'/>
     <function-decl name='PyModule_GetDef' mangled-name='PyModule_GetDef' filepath='Objects/moduleobject.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetDef'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='545' column='1'/>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='545' column='1'/>
       <return type-id='type-id-466'/>
     </function-decl>
     <function-decl name='PyModule_GetFilename' mangled-name='PyModule_GetFilename' filepath='Objects/moduleobject.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetFilename'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='532' column='1'/>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='532' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyModule_GetFilenameObject' mangled-name='PyModule_GetFilenameObject' filepath='Objects/moduleobject.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetFilenameObject'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2819' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
     <function-decl name='PyModule_GetName' mangled-name='PyModule_GetName' filepath='Objects/moduleobject.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetName'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='98' column='1'/>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='498' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyModule_GetNameObject' mangled-name='PyModule_GetNameObject' filepath='Objects/moduleobject.c' line='475' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetNameObject'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
     <function-decl name='PyModule_GetDict' mangled-name='PyModule_GetDict' filepath='Objects/moduleobject.c' line='465' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetDict'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='mp' filepath='Objects/dictobject.c' line='2872' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyModule_SetDocString' mangled-name='PyModule_SetDocString' filepath='Objects/moduleobject.c' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_SetDocString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='451' column='1'/>
+      <parameter type-id='type-id-3' name='doc' filepath='Objects/moduleobject.c' line='451' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyModule_AddFunctions' mangled-name='PyModule_AddFunctions' filepath='Objects/moduleobject.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddFunctions'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='437' column='1'/>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='437' column='1'/>
       <parameter type-id='type-id-435' name='functions' filepath='Objects/moduleobject.c' line='437' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyModule_ExecDef' mangled-name='PyModule_ExecDef' filepath='Objects/moduleobject.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_ExecDef'>
-      <parameter type-id='type-id-15' name='module' filepath='Objects/moduleobject.c' line='372' column='1'/>
+      <parameter type-id='type-id-16' name='module' filepath='Objects/moduleobject.c' line='372' column='1'/>
       <parameter type-id='type-id-466' name='def' filepath='Objects/moduleobject.c' line='372' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyModule_FromDefAndSpec2' mangled-name='PyModule_FromDefAndSpec2' filepath='Objects/moduleobject.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_FromDefAndSpec2'>
       <parameter type-id='type-id-466' name='def' filepath='Objects/moduleobject.c' line='248' column='1'/>
-      <parameter type-id='type-id-15' name='spec' filepath='Objects/moduleobject.c' line='248' column='1'/>
-      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='248' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='spec' filepath='Objects/moduleobject.c' line='248' column='1'/>
+      <parameter type-id='type-id-9' name='module_api_version' filepath='Objects/moduleobject.c' line='248' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyModule_CreateInitialized' mangled-name='_PyModule_CreateInitialized' filepath='Objects/moduleobject.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_CreateInitialized'>
       <parameter type-id='type-id-466' name='module' filepath='Objects/moduleobject.c' line='185' column='1'/>
-      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='185' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='module_api_version' filepath='Objects/moduleobject.c' line='185' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyModule_Create2' mangled-name='PyModule_Create2' filepath='Objects/moduleobject.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_Create2'>
       <parameter type-id='type-id-466' name='module' filepath='Objects/moduleobject.c' line='174' column='1'/>
-      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='174' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='module_api_version' filepath='Objects/moduleobject.c' line='174' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyModule_New' mangled-name='PyModule_New' filepath='Objects/moduleobject.c' line='114' 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='562' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyModule_NewObject' mangled-name='PyModule_NewObject' filepath='Objects/moduleobject.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_NewObject'>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/moduleobject.c' line='92' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/moduleobject.c' line='92' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyModuleDef_Init' mangled-name='PyModuleDef_Init' filepath='Objects/moduleobject.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModuleDef_Init'>
       <parameter type-id='type-id-466' name='def' filepath='Objects/moduleobject.c' line='47' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyModule_GetNameObject' mangled-name='PyModule_GetNameObject' filepath='Objects/moduleobject.c' line='475' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetNameObject'>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='475' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyModule_GetFilenameObject' mangled-name='PyModule_GetFilenameObject' filepath='Objects/moduleobject.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetFilenameObject'>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='508' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyDict_ContainsId' mangled-name='_PyDict_ContainsId' filepath='./Include/cpython/dictobject.h' line='50' 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='69' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </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='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='7' 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-463'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </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-149' 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-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/cellobject.c' line='7' column='1'/>
+      <return type-id='type-id-16'/>
+    </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-467'>
-      <subrange length='infinite' id='type-id-6'/>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='infinite' id='type-id-467'>
+      <subrange length='infinite' id='type-id-7'/>
 
     </array-type-def>
     <var-decl name='_Py_SwappedOp' type-id='type-id-467' 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-149' 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-68' mangled-name='_Py_NoneStruct' visibility='default' filepath='./Include/object.h' line='605' column='1' elf-symbol-id='_Py_NoneStruct'/>
+    <var-decl name='_Py_NoneStruct' type-id='type-id-69' mangled-name='_Py_NoneStruct' visibility='default' filepath='./Include/object.h' line='605' column='1' elf-symbol-id='_Py_NoneStruct'/>
     <var-decl name='_PyNotImplemented_Type' type-id='type-id-149' 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-68' mangled-name='_Py_NotImplementedStruct' visibility='default' filepath='./Include/object.h' line='619' column='1' elf-symbol-id='_Py_NotImplementedStruct'/>
+    <var-decl name='_Py_NotImplementedStruct' type-id='type-id-69' mangled-name='_Py_NotImplementedStruct' visibility='default' filepath='./Include/object.h' line='619' column='1' elf-symbol-id='_Py_NotImplementedStruct'/>
     <function-decl name='Py_IsFalse' mangled-name='Py_IsFalse' filepath='Objects/object.c' line='2337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IsFalse'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='x' filepath='Objects/object.c' line='2337' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='Py_IsTrue' mangled-name='Py_IsTrue' filepath='Objects/object.c' line='2332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IsTrue'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='x' filepath='Objects/object.c' line='2337' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='Py_IsNone' mangled-name='Py_IsNone' filepath='Objects/object.c' line='2327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IsNone'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='x' filepath='Objects/object.c' line='2337' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='Py_Is' mangled-name='Py_Is' filepath='Objects/object.c' line='2322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Is'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='x' filepath='Objects/object.c' line='2322' column='1'/>
+      <parameter type-id='type-id-16' name='y' filepath='Objects/object.c' line='2322' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='Py_XNewRef' mangled-name='Py_XNewRef' filepath='Objects/object.c' line='2310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_XNewRef'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='Py_NewRef' mangled-name='Py_NewRef' filepath='Objects/object.c' line='2304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewRef'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_GET_WEAKREFS_LISTPTR' mangled-name='PyObject_GET_WEAKREFS_LISTPTR' filepath='Objects/object.c' line='2293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GET_WEAKREFS_LISTPTR'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='2293' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='2293' column='1'/>
       <return type-id='type-id-86'/>
     </function-decl>
     <function-decl name='_Py_Dealloc' mangled-name='_Py_Dealloc' filepath='Objects/object.c' line='2282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Dealloc'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='565' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='m' filepath='Objects/moduleobject.c' line='565' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyObject_AssertFailed' mangled-name='_PyObject_AssertFailed' filepath='Objects/object.c' line='2226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_AssertFailed'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/object.c' line='2226' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='2226' column='1'/>
       <parameter type-id='type-id-3' name='expr' filepath='Objects/object.c' line='2226' column='1'/>
       <parameter type-id='type-id-3' name='msg' filepath='Objects/object.c' line='2226' column='1'/>
       <parameter type-id='type-id-3' name='file' filepath='Objects/object.c' line='2227' column='1'/>
-      <parameter type-id='type-id-8' name='line' filepath='Objects/object.c' line='2227' column='1'/>
+      <parameter type-id='type-id-9' name='line' filepath='Objects/object.c' line='2227' column='1'/>
       <parameter type-id='type-id-3' name='function' filepath='Objects/object.c' line='2227' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyTrash_cond' mangled-name='_PyTrash_cond' filepath='Objects/object.c' line='2219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_cond'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='2219' column='1'/>
-      <parameter type-id='type-id-37' name='dealloc' filepath='Objects/object.c' line='2219' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='2219' column='1'/>
+      <parameter type-id='type-id-38' name='dealloc' filepath='Objects/object.c' line='2219' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <class-decl name='_pycontextobject' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_context.h' line='10' column='1' id='type-id-399'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/internal/pycore_context.h' line='11' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' visibility='default' filepath='./Include/internal/pycore_context.h' line='11' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='ctx_prev' type-id='type-id-398' visibility='default' filepath='./Include/internal/pycore_context.h' line='12' column='1'/>
         <var-decl name='ctx_vars' type-id='type-id-468' visibility='default' filepath='./Include/internal/pycore_context.h' line='13' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='ctx_weakreflist' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_context.h' line='14' column='1'/>
+        <var-decl name='ctx_weakreflist' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_context.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='ctx_entered' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_context.h' line='15' column='1'/>
+        <var-decl name='ctx_entered' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_context.h' line='15' 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-469' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='21' column='1' id='type-id-470'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='22' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='22' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='h_root' type-id='type-id-471' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='23' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='h_weakreflist' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='24' column='1'/>
+        <var-decl name='h_weakreflist' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='24' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='h_count' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='25' column='1'/>
+        <var-decl name='h_count' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_hamt.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-472' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='15' column='1' id='type-id-473'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='16' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='16' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='PyHamtNode' type-id='type-id-473' filepath='./Include/internal/pycore_hamt.h' line='17' column='1' id='type-id-472'/>
     <pointer-type-def type-id='type-id-469' size-in-bits='64' id='type-id-468'/>
     <function-decl name='_PyTrash_end' mangled-name='_PyTrash_end' filepath='Objects/object.c' line='2207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_end'>
       <parameter type-id='type-id-331' name='tstate' filepath='Objects/object.c' line='2207' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyTrash_begin' mangled-name='_PyTrash_begin' filepath='Objects/object.c' line='2193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_begin'>
       <parameter type-id='type-id-331' name='tstate' filepath='Objects/object.c' line='2193' column='1'/>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='2193' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='2193' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyTrash_thread_destroy_chain' mangled-name='_PyTrash_thread_destroy_chain' filepath='Objects/object.c' line='2155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_thread_destroy_chain'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyTrash_destroy_chain' mangled-name='_PyTrash_destroy_chain' filepath='Objects/object.c' line='2128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_destroy_chain'>
-      <return type-id='type-id-69'/>
+      <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='2114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_thread_deposit_object'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='565' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='2114' 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='2100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_deposit_object'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='2100' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='2100' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='Py_ReprLeave' mangled-name='Py_ReprLeave' filepath='Objects/object.c' line='2062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ReprLeave'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/object.c' line='2062' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='2062' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='Py_ReprEnter' mangled-name='Py_ReprEnter' filepath='Objects/object.c' line='2028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ReprEnter'>
-      <parameter type-id='type-id-15' name='dict' filepath='Objects/dictobject.c' line='977' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='2028' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyObject_DebugTypeStats' mangled-name='_PyObject_DebugTypeStats' filepath='Objects/object.c' line='2006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_DebugTypeStats'>
       <parameter type-id='type-id-188' name='out' filepath='Objects/object.c' line='2006' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_Py_NewReference' mangled-name='_Py_NewReference' filepath='Objects/object.c' line='1891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_NewReference'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='1891' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='1891' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyObject_Dir' mangled-name='PyObject_Dir' filepath='Objects/object.c' line='1547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Dir'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='1547' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyCallable_Check' mangled-name='PyCallable_Check' filepath='Objects/object.c' line='1475' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCallable_Check'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_Not' mangled-name='PyObject_Not' filepath='Objects/object.c' line='1463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Not'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyObject_IsTrue' mangled-name='PyObject_IsTrue' filepath='Objects/object.c' line='1435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsTrue'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='1463' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_GenericSetDict' mangled-name='PyObject_GenericSetDict' filepath='Objects/object.c' line='1407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericSetDict'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/object.c' line='1407' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/object.c' line='1407' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/object.c' line='1407' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='1407' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/object.c' line='1407' column='1'/>
+      <parameter type-id='type-id-21' name='context' filepath='Objects/object.c' line='1407' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_GenericSetAttr' mangled-name='PyObject_GenericSetAttr' filepath='Objects/object.c' line='1401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericSetAttr'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/object.c' line='1401' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/object.c' line='1401' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/object.c' line='1401' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='1401' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/object.c' line='1401' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/object.c' line='1401' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyObject_GenericSetAttrWithDict' mangled-name='_PyObject_GenericSetAttrWithDict' filepath='Objects/object.c' line='1326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GenericSetAttrWithDict'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/object.c' line='1326' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/object.c' line='1326' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/object.c' line='1327' column='1'/>
-      <parameter type-id='type-id-15' name='dict' filepath='Objects/object.c' line='1327' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='1326' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/object.c' line='1326' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/object.c' line='1327' column='1'/>
+      <parameter type-id='type-id-16' name='dict' filepath='Objects/object.c' line='1327' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_GenericGetAttr' mangled-name='PyObject_GenericGetAttr' filepath='Objects/object.c' line='1320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericGetAttr'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='code' filepath='Objects/funcobject.c' line='96' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Objects/funcobject.c' line='96' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_GenericGetAttrWithDict' mangled-name='_PyObject_GenericGetAttrWithDict' filepath='Objects/object.c' line='1207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GenericGetAttrWithDict'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/object.c' line='1207' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/object.c' line='1207' column='1'/>
-      <parameter type-id='type-id-15' name='dict' filepath='Objects/object.c' line='1208' column='1'/>
-      <parameter type-id='type-id-8' name='suppress' filepath='Objects/object.c' line='1208' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='1207' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/object.c' line='1207' column='1'/>
+      <parameter type-id='type-id-16' name='dict' filepath='Objects/object.c' line='1208' column='1'/>
+      <parameter type-id='type-id-9' name='suppress' filepath='Objects/object.c' line='1208' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_GetMethod' mangled-name='_PyObject_GetMethod' filepath='Objects/object.c' line='1125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetMethod'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/object.c' line='1125' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/object.c' line='1125' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='1125' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/object.c' line='1125' column='1'/>
       <parameter type-id='type-id-86' name='method' filepath='Objects/object.c' line='1125' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyObject_NextNotImplemented' mangled-name='_PyObject_NextNotImplemented' filepath='Objects/object.c' line='1105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_NextNotImplemented'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyObject_SelfIter' mangled-name='PyObject_SelfIter' filepath='Objects/object.c' line='1093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SelfIter'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_GetDictPtr' mangled-name='_PyObject_GetDictPtr' filepath='Objects/object.c' line='1070' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetDictPtr'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/object.c' line='1070' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='1070' column='1'/>
       <return type-id='type-id-86'/>
     </function-decl>
     <function-decl name='PyObject_SetAttr' mangled-name='PyObject_SetAttr' filepath='Objects/object.c' line='1019' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetAttr'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='1019' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/object.c' line='1019' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/object.c' line='1019' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='1019' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/object.c' line='1019' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Objects/object.c' line='1019' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_HasAttr' mangled-name='PyObject_HasAttr' filepath='Objects/object.c' line='1004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HasAttr'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2772' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='1004' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/object.c' line='1004' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyObject_LookupAttrId' mangled-name='_PyObject_LookupAttrId' filepath='Objects/object.c' line='993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupAttrId'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='993' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='993' column='1'/>
       <parameter type-id='type-id-453' name='name' filepath='Objects/object.c' line='993' column='1'/>
       <parameter type-id='type-id-86' name='result' filepath='Objects/object.c' line='993' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyObject_LookupAttr' mangled-name='_PyObject_LookupAttr' filepath='Objects/object.c' line='944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupAttr'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='944' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/object.c' line='944' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='944' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/object.c' line='944' column='1'/>
       <parameter type-id='type-id-86' name='result' filepath='Objects/object.c' line='944' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_GetAttr' mangled-name='PyObject_GetAttr' filepath='Objects/object.c' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetAttr'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='910' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/object.c' line='910' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='910' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/object.c' line='910' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_SetAttrId' mangled-name='_PyObject_SetAttrId' filepath='Objects/object.c' line='877' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_SetAttrId'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='877' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='877' column='1'/>
       <parameter type-id='type-id-453' name='name' filepath='Objects/object.c' line='877' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/object.c' line='877' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/object.c' line='877' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyObject_GetAttrId' mangled-name='_PyObject_GetAttrId' filepath='Objects/object.c' line='866' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetAttrId'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='866' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='866' column='1'/>
       <parameter type-id='type-id-453' name='name' filepath='Objects/object.c' line='866' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_IsAbstract' mangled-name='_PyObject_IsAbstract' filepath='Objects/object.c' line='849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_IsAbstract'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='300' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/object.c' line='849' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_SetAttrString' mangled-name='PyObject_SetAttrString' filepath='Objects/object.c' line='833' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetAttrString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='833' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/object.c' line='833' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/object.c' line='833' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_HasAttrString' mangled-name='PyObject_HasAttrString' filepath='Objects/object.c' line='821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HasAttrString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2385' column='1'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2385' column='1'/>
       <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyObject_GetAttrString' mangled-name='PyObject_GetAttrString' filepath='Objects/object.c' line='806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetAttrString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_Hash' mangled-name='PyObject_Hash' filepath='Objects/object.c' line='785' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Hash'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='785' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='785' column='1'/>
       <return type-id='type-id-117'/>
     </function-decl>
     <function-decl name='PyObject_HashNotImplemented' mangled-name='PyObject_HashNotImplemented' filepath='Objects/object.c' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HashNotImplemented'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='777' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='777' column='1'/>
       <return type-id='type-id-117'/>
     </function-decl>
     <function-decl name='PyObject_RichCompareBool' mangled-name='PyObject_RichCompareBool' filepath='Objects/object.c' line='751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_RichCompareBool'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='751' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/object.c' line='751' column='1'/>
-      <parameter type-id='type-id-8' name='op' filepath='Objects/object.c' line='751' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='751' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/object.c' line='751' column='1'/>
+      <parameter type-id='type-id-9' name='op' filepath='Objects/object.c' line='751' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_RichCompare' mangled-name='PyObject_RichCompare' filepath='Objects/object.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_RichCompare'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/object.c' line='729' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/object.c' line='729' column='1'/>
-      <parameter type-id='type-id-8' name='op' filepath='Objects/object.c' line='729' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='729' column='1'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/object.c' line='729' column='1'/>
+      <parameter type-id='type-id-9' name='op' filepath='Objects/object.c' line='729' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_FunctionStr' mangled-name='_PyObject_FunctionStr' filepath='Objects/object.c' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_FunctionStr'>
-      <parameter type-id='type-id-15' name='x' filepath='Objects/object.c' line='597' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='x' filepath='Objects/object.c' line='597' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_Bytes' mangled-name='PyObject_Bytes' filepath='Objects/object.c' line='549' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Bytes'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='549' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_ASCII' mangled-name='PyObject_ASCII' filepath='Objects/object.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_ASCII'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2819' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyObject_Str' mangled-name='PyObject_Str' filepath='Objects/object.c' line='462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Str'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyObject_Repr' mangled-name='PyObject_Repr' filepath='Objects/object.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Repr'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyObject_Dump' mangled-name='_PyObject_Dump' filepath='Objects/object.c' line='368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Dump'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1002' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2819' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyObject_IsFreed' mangled-name='_PyObject_IsFreed' filepath='Objects/object.c' line='347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_IsFreed'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='347' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_Py_BreakPoint' mangled-name='_Py_BreakPoint' filepath='Objects/object.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_BreakPoint'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyObject_Print' mangled-name='PyObject_Print' filepath='Objects/object.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Print'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='264' column='1'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='264' column='1'/>
       <parameter type-id='type-id-188' name='fp' filepath='Objects/object.c' line='264' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/object.c' line='264' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Objects/object.c' line='264' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_CallFinalizerFromDealloc' mangled-name='PyObject_CallFinalizerFromDealloc' filepath='Objects/object.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFinalizerFromDealloc'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='300' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/object.c' line='222' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyObject_CallFinalizer' mangled-name='PyObject_CallFinalizer' filepath='Objects/object.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFinalizer'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='565' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/object.c' line='205' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-474'/>
+    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-474'/>
     <function-decl name='_PyObject_NewVar' mangled-name='_PyObject_NewVar' filepath='Objects/object.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_NewVar'>
-      <parameter type-id='type-id-31' name='tp' filepath='Objects/object.c' line='192' column='1'/>
-      <parameter type-id='type-id-30' name='nitems' filepath='Objects/object.c' line='192' column='1'/>
+      <parameter type-id='type-id-32' name='tp' filepath='Objects/object.c' line='192' column='1'/>
+      <parameter type-id='type-id-31' name='nitems' filepath='Objects/object.c' line='192' column='1'/>
       <return type-id='type-id-474'/>
     </function-decl>
     <function-decl name='_PyObject_New' mangled-name='_PyObject_New' filepath='Objects/object.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_New'>
-      <parameter type-id='type-id-31' name='tp' filepath='Objects/object.c' line='181' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-32' name='tp' filepath='Objects/object.c' line='181' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyObject_InitVar' mangled-name='PyObject_InitVar' filepath='Objects/object.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_InitVar'>
       <parameter type-id='type-id-474' name='op' filepath='Objects/object.c' line='170' column='1'/>
-      <parameter type-id='type-id-31' name='tp' filepath='Objects/object.c' line='170' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/object.c' line='170' column='1'/>
+      <parameter type-id='type-id-32' name='tp' filepath='Objects/object.c' line='170' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/object.c' line='170' column='1'/>
       <return type-id='type-id-474'/>
     </function-decl>
     <function-decl name='PyObject_Init' mangled-name='PyObject_Init' filepath='Objects/object.c' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Init'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='159' column='1'/>
-      <parameter type-id='type-id-31' name='tp' filepath='Objects/object.c' line='159' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='159' column='1'/>
+      <parameter type-id='type-id-32' name='tp' filepath='Objects/object.c' line='159' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_Py_DecRef' mangled-name='_Py_DecRef' filepath='Objects/object.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DecRef'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='1891' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/object.c' line='153' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_Py_IncRef' mangled-name='_Py_IncRef' filepath='Objects/object.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IncRef'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='1891' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/object.c' line='153' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='Py_DecRef' mangled-name='Py_DecRef' filepath='Objects/object.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_DecRef'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='1891' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/object.c' line='153' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='Py_IncRef' mangled-name='Py_IncRef' filepath='Objects/object.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IncRef'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='1891' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/object.c' line='153' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyObject_CheckConsistency' mangled-name='_PyObject_CheckConsistency' filepath='Objects/object.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckConsistency'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='37' column='1'/>
-      <parameter type-id='type-id-8' name='check_content' filepath='Objects/object.c' line='37' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='37' column='1'/>
+      <parameter type-id='type-id-9' name='check_content' filepath='Objects/object.c' line='37' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyObject_SelfIter' mangled-name='PyObject_SelfIter' filepath='Objects/object.c' line='1093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SelfIter'>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyObject_IsTrue' mangled-name='PyObject_IsTrue' filepath='Objects/object.c' line='1435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsTrue'>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='830' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyObject_Repr' mangled-name='PyObject_Repr' filepath='Objects/object.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Repr'>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='409' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyObject_Str' mangled-name='PyObject_Str' filepath='Objects/object.c' line='462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Str'>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='462' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyObject_Dump' mangled-name='_PyObject_Dump' filepath='Objects/object.c' line='368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Dump'>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/object.c' line='368' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GetAttrString' mangled-name='PyObject_GetAttrString' filepath='Objects/object.c' line='806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetAttrString'>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/object.c' line='806' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/object.c' line='806' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyMem_DumpTraceback' mangled-name='_PyMem_DumpTraceback' filepath='Objects/object.c' line='28' 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='70' 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='92' 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='25' 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='28' 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/internal/pycore_object.h' line='22' 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='76' 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='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDescr_IsData' mangled-name='PyDescr_IsData' filepath='./Include/descrobject.h' line='96' 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='36' 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='891' 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='650' 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'>
         <var-decl name='initialized' type-id='type-id-476' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='79' 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='83' column='1'/>
+        <var-decl name='tracing' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='83' 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='87' column='1'/>
+        <var-decl name='max_nframe' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='87' column='1'/>
       </data-member>
     </class-decl>
     <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/internal/pycore_pymem.h' line='75' column='1' id='type-id-476'>
       <enumerator name='TRACEMALLOC_FINALIZED' value='2'/>
     </enum-decl>
     <var-decl name='_Py_tracemalloc_config' type-id='type-id-475' mangled-name='_Py_tracemalloc_config' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='95' column='1' elf-symbol-id='_Py_tracemalloc_config'/>
-    <function-decl name='_PyObject_DebugMallocStats' mangled-name='_PyObject_DebugMallocStats' filepath='Objects/obmalloc.c' line='2911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_DebugMallocStats'>
-      <parameter type-id='type-id-188' name='out' filepath='Objects/obmalloc.c' line='2911' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
     <function-decl name='_PyDebugAllocatorStats' mangled-name='_PyDebugAllocatorStats' filepath='Objects/obmalloc.c' line='2866' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDebugAllocatorStats'>
       <parameter type-id='type-id-188' name='out' filepath='Objects/obmalloc.c' line='2866' column='1'/>
       <parameter type-id='type-id-3' name='block_name' filepath='Objects/obmalloc.c' line='2867' column='1'/>
-      <parameter type-id='type-id-8' name='num_blocks' filepath='Objects/obmalloc.c' line='2867' column='1'/>
+      <parameter type-id='type-id-9' name='num_blocks' filepath='Objects/obmalloc.c' line='2867' column='1'/>
       <parameter type-id='type-id-157' name='sizeof_block' filepath='Objects/obmalloc.c' line='2867' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_Py_GetAllocatedBlocks' mangled-name='_Py_GetAllocatedBlocks' filepath='Objects/obmalloc.c' line='1246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetAllocatedBlocks'>
-      <return type-id='type-id-30'/>
+      <return type-id='type-id-31'/>
     </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-20' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-21' 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-20' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
       <parameter type-id='type-id-157' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-157' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
       <parameter type-id='type-id-157' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-157' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-325'/>
     </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-20' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-21' 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-20' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
       <parameter type-id='type-id-157' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-157' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
       <parameter type-id='type-id-157' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-157' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-20' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-21' 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-20' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
       <parameter type-id='type-id-157' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-157' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
       <parameter type-id='type-id-157' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-157' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </function-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-479' visibility='default' filepath='./Include/cpython/objimpl.h' line='64' column='1' id='type-id-480'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ctx' type-id='type-id-20' visibility='default' filepath='./Include/cpython/objimpl.h' line='66' column='1'/>
+        <var-decl name='ctx' type-id='type-id-21' visibility='default' filepath='./Include/cpython/objimpl.h' line='66' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='alloc' type-id='type-id-481' visibility='default' filepath='./Include/cpython/objimpl.h' line='69' column='1'/>
     <pointer-type-def type-id='type-id-479' size-in-bits='64' id='type-id-485'/>
     <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-485' name='allocator' filepath='Objects/obmalloc.c' line='556' column='1'/>
-      <return type-id='type-id-69'/>
+      <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-485' name='allocator' filepath='Objects/obmalloc.c' line='556' column='1'/>
-      <return type-id='type-id-69'/>
+      <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='34' column='1' id='type-id-486'>
+      <underlying-type type-id='type-id-83'/>
+      <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-486' filepath='./Include/cpython/pymem.h' line='44' column='1' id='type-id-487'/>
+    <pointer-type-def type-id='type-id-487' size-in-bits='64' id='type-id-488'/>
+    <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-488' name='allocator' filepath='Objects/obmalloc.c' line='271' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pymem.h' line='23' column='1' id='type-id-486'>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pymem.h' line='23' column='1' id='type-id-489'>
       <underlying-type type-id='type-id-83'/>
       <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-486' filepath='./Include/cpython/pymem.h' line='32' column='1' id='type-id-487'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-488' visibility='default' filepath='./Include/cpython/pymem.h' line='47' column='1' id='type-id-489'>
+    <typedef-decl name='PyMemAllocatorDomain' type-id='type-id-489' filepath='./Include/cpython/pymem.h' line='32' column='1' id='type-id-490'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-491' visibility='default' filepath='./Include/cpython/pymem.h' line='47' column='1' id='type-id-492'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ctx' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pymem.h' line='49' column='1'/>
+        <var-decl name='ctx' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pymem.h' line='49' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='malloc' type-id='type-id-481' visibility='default' filepath='./Include/cpython/pymem.h' line='52' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='calloc' type-id='type-id-490' visibility='default' filepath='./Include/cpython/pymem.h' line='55' column='1'/>
+        <var-decl name='calloc' type-id='type-id-493' visibility='default' filepath='./Include/cpython/pymem.h' line='55' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='realloc' type-id='type-id-491' visibility='default' filepath='./Include/cpython/pymem.h' line='58' column='1'/>
+        <var-decl name='realloc' type-id='type-id-494' visibility='default' filepath='./Include/cpython/pymem.h' line='58' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='free' type-id='type-id-492' visibility='default' filepath='./Include/cpython/pymem.h' line='61' column='1'/>
+        <var-decl name='free' type-id='type-id-495' visibility='default' filepath='./Include/cpython/pymem.h' line='61' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-493' size-in-bits='64' id='type-id-490'/>
-    <pointer-type-def type-id='type-id-494' size-in-bits='64' id='type-id-491'/>
-    <pointer-type-def type-id='type-id-495' size-in-bits='64' id='type-id-492'/>
-    <typedef-decl name='PyMemAllocatorEx' type-id='type-id-489' filepath='./Include/cpython/pymem.h' line='62' column='1' id='type-id-488'/>
-    <pointer-type-def type-id='type-id-488' size-in-bits='64' id='type-id-496'/>
-    <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-487' name='domain' filepath='Objects/obmalloc.c' line='538' column='1'/>
-      <parameter type-id='type-id-496' name='allocator' filepath='Objects/obmalloc.c' line='538' column='1'/>
-      <return type-id='type-id-69'/>
+    <pointer-type-def type-id='type-id-496' size-in-bits='64' id='type-id-493'/>
+    <pointer-type-def type-id='type-id-497' size-in-bits='64' id='type-id-494'/>
+    <pointer-type-def type-id='type-id-498' size-in-bits='64' id='type-id-495'/>
+    <typedef-decl name='PyMemAllocatorEx' type-id='type-id-492' filepath='./Include/cpython/pymem.h' line='62' column='1' id='type-id-491'/>
+    <pointer-type-def type-id='type-id-491' size-in-bits='64' id='type-id-499'/>
+    <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-490' name='domain' filepath='Objects/obmalloc.c' line='258' column='1'/>
+      <parameter type-id='type-id-499' name='old_alloc' filepath='Objects/obmalloc.c' line='259' column='1'/>
+      <return type-id='type-id-9'/>
     </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-487' name='domain' filepath='Objects/obmalloc.c' line='538' column='1'/>
-      <parameter type-id='type-id-496' name='allocator' filepath='Objects/obmalloc.c' line='538' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-490' name='domain' filepath='Objects/obmalloc.c' line='520' column='1'/>
+      <parameter type-id='type-id-499' name='allocator' filepath='Objects/obmalloc.c' line='520' 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-69'/>
+    <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-490' name='domain' filepath='Objects/obmalloc.c' line='520' column='1'/>
+      <parameter type-id='type-id-499' name='allocator' filepath='Objects/obmalloc.c' line='520' column='1'/>
+      <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 name='_PyObject_DebugMallocStats' mangled-name='_PyObject_DebugMallocStats' filepath='Objects/obmalloc.c' line='2911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_DebugMallocStats'>
+      <parameter type-id='type-id-188' name='out' filepath='Objects/obmalloc.c' line='2911' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pymem.h' line='34' column='1' id='type-id-497'>
-      <underlying-type type-id='type-id-83'/>
-      <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-497' filepath='./Include/cpython/pymem.h' line='44' column='1' id='type-id-498'/>
-    <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-498' name='allocator' filepath='Objects/obmalloc.c' line='307' column='1'/>
-      <return type-id='type-id-8'/>
+    <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>
-    <pointer-type-def type-id='type-id-498' size-in-bits='64' id='type-id-499'/>
-    <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-499' name='allocator' filepath='Objects/obmalloc.c' line='271' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_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-487' name='domain' filepath='Objects/obmalloc.c' line='258' column='1'/>
-      <parameter type-id='type-id-496' name='old_alloc' filepath='Objects/obmalloc.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-type size-in-bits='64' id='type-id-495'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyGILState_Check' mangled-name='PyGILState_Check' filepath='./Include/cpython/pystate.h' line='173' 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='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='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='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='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-type size-in-bits='64' id='type-id-498'>
+      <parameter type-id='type-id-21'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-4'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-484'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
+      <parameter type-id='type-id-21'/>
+      <parameter type-id='type-id-21'/>
       <parameter type-id='type-id-157'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-type>
     <function-type size-in-bits='64' id='type-id-483'>
-      <parameter type-id='type-id-20'/>
+      <parameter type-id='type-id-21'/>
       <parameter type-id='type-id-157'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </function-type>
-    <function-type size-in-bits='64' id='type-id-493'>
-      <parameter type-id='type-id-20'/>
+    <function-type size-in-bits='64' id='type-id-496'>
+      <parameter type-id='type-id-21'/>
       <parameter type-id='type-id-157'/>
       <parameter type-id='type-id-157'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </function-type>
-    <function-type size-in-bits='64' id='type-id-494'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
+    <function-type size-in-bits='64' id='type-id-497'>
+      <parameter type-id='type-id-21'/>
+      <parameter type-id='type-id-21'/>
       <parameter type-id='type-id-157'/>
-      <return type-id='type-id-20'/>
+      <return type-id='type-id-21'/>
     </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-149' mangled-name='PyPickleBuffer_Type' visibility='default' filepath='./Include/cpython/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-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/picklebufobject.c' line='55' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='obj' filepath='Objects/picklebufobject.c' line='36' column='1'/>
-      <return type-id='type-id-196'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/picklebufobject.c' line='36' column='1'/>
+      <return type-id='type-id-198'/>
     </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-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='base' filepath='Objects/picklebufobject.c' line='17' column='1'/>
+      <return type-id='type-id-16'/>
+    </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-149' 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-149' 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-149' 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-149' 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-149' 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-149' 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-15' mangled-name='_PySet_Dummy' visibility='default' filepath='./Include/setobject.h' line='69' column='1' elf-symbol-id='_PySet_Dummy'/>
+    <function-decl name='PyNumber_Subtract' mangled-name='PyNumber_Subtract' filepath='./Include/abstract.h' line='427' 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='432' 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='350' 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='286' 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='454' 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='443' 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-149' 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-149' 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-149' 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-16' 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='2328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySet_Update'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='set' filepath='Objects/setobject.c' line='2328' column='1'/>
+      <parameter type-id='type-id-16' name='iterable' filepath='Objects/setobject.c' line='2328' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySet_Pop' mangled-name='PySet_Pop' filepath='Objects/setobject.c' line='2318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Pop'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/listobject.c' line='2504' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PySet_NextEntry' mangled-name='_PySet_NextEntry' filepath='Objects/setobject.c' line='2302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySet_NextEntry'>
-      <parameter type-id='type-id-15' name='set' filepath='Objects/setobject.c' line='2302' column='1'/>
+      <parameter type-id='type-id-16' name='set' filepath='Objects/setobject.c' line='2302' column='1'/>
       <parameter type-id='type-id-125' name='pos' filepath='Objects/setobject.c' line='2302' column='1'/>
       <parameter type-id='type-id-86' name='key' filepath='Objects/setobject.c' line='2302' column='1'/>
       <parameter type-id='type-id-457' name='hash' filepath='Objects/setobject.c' line='2302' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySet_Add' mangled-name='PySet_Add' filepath='Objects/setobject.c' line='2291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Add'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='anyset' filepath='Objects/setobject.c' line='2291' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/setobject.c' line='2291' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySet_Discard' mangled-name='PySet_Discard' filepath='Objects/setobject.c' line='2281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Discard'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='set' filepath='Objects/setobject.c' line='2281' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/setobject.c' line='2281' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySet_Contains' mangled-name='PySet_Contains' filepath='Objects/setobject.c' line='2271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Contains'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='anyset' filepath='Objects/setobject.c' line='2291' column='1'/>
+      <parameter type-id='type-id-16' name='key' filepath='Objects/setobject.c' line='2291' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySet_Clear' mangled-name='PySet_Clear' filepath='Objects/setobject.c' line='2261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Clear'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='set' filepath='Objects/setobject.c' line='2261' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySet_Size' mangled-name='PySet_Size' filepath='Objects/setobject.c' line='2251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='anyset' filepath='Objects/setobject.c' line='2251' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyFrozenSet_New' mangled-name='PyFrozenSet_New' filepath='Objects/setobject.c' line='2245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrozenSet_New'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySet_New' mangled-name='PySet_New' filepath='Objects/setobject.c' line='2239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_New'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyDict_Next' mangled-name='_PyDict_Next' filepath='./Include/cpython/dictobject.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_Contains_KnownHash' mangled-name='_PyDict_Contains_KnownHash' 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='_PyUnicode_EQ' mangled-name='_PyUnicode_EQ' filepath='./Include/cpython/unicodeobject.h' line='1164' 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-149' 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-68' mangled-name='_Py_EllipsisObject' visibility='default' filepath='./Include/sliceobject.h' line='9' column='1' elf-symbol-id='_Py_EllipsisObject'/>
+    <var-decl name='_Py_EllipsisObject' type-id='type-id-69' 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-149' mangled-name='PySlice_Type' visibility='default' filepath='./Include/sliceobject.h' line='28' column='1' elf-symbol-id='PySlice_Type'/>
     <function-decl name='_PySlice_GetLongIndices' mangled-name='_PySlice_GetLongIndices' filepath='Objects/sliceobject.c' line='381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySlice_GetLongIndices'>
       <parameter type-id='type-id-240' name='self' filepath='Objects/sliceobject.c' line='381' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/sliceobject.c' line='381' column='1'/>
+      <parameter type-id='type-id-16' name='length' filepath='Objects/sliceobject.c' line='381' column='1'/>
       <parameter type-id='type-id-86' name='start_ptr' filepath='Objects/sliceobject.c' line='382' column='1'/>
       <parameter type-id='type-id-86' name='stop_ptr' filepath='Objects/sliceobject.c' line='382' column='1'/>
       <parameter type-id='type-id-86' name='step_ptr' filepath='Objects/sliceobject.c' line='383' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySlice_GetIndicesEx' mangled-name='PySlice_GetIndicesEx' filepath='Objects/sliceobject.c' line='292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_GetIndicesEx'>
-      <parameter type-id='type-id-15' name='_r' filepath='Objects/sliceobject.c' line='292' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/sliceobject.c' line='292' column='1'/>
+      <parameter type-id='type-id-16' name='_r' filepath='Objects/sliceobject.c' line='292' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/sliceobject.c' line='292' column='1'/>
       <parameter type-id='type-id-125' name='start' filepath='Objects/sliceobject.c' line='293' column='1'/>
       <parameter type-id='type-id-125' name='stop' filepath='Objects/sliceobject.c' line='293' column='1'/>
       <parameter type-id='type-id-125' name='step' filepath='Objects/sliceobject.c' line='293' column='1'/>
       <parameter type-id='type-id-125' name='slicelength' filepath='Objects/sliceobject.c' line='294' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySlice_AdjustIndices' mangled-name='PySlice_AdjustIndices' filepath='Objects/sliceobject.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_AdjustIndices'>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/sliceobject.c' line='248' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/sliceobject.c' line='248' column='1'/>
       <parameter type-id='type-id-125' name='start' filepath='Objects/sliceobject.c' line='249' column='1'/>
       <parameter type-id='type-id-125' name='stop' filepath='Objects/sliceobject.c' line='249' column='1'/>
-      <parameter type-id='type-id-30' name='step' filepath='Objects/sliceobject.c' line='249' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-31' name='step' filepath='Objects/sliceobject.c' line='249' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PySlice_Unpack' mangled-name='PySlice_Unpack' filepath='Objects/sliceobject.c' line='203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_Unpack'>
-      <parameter type-id='type-id-15' name='_r' filepath='Objects/sliceobject.c' line='203' column='1'/>
+      <parameter type-id='type-id-16' name='_r' filepath='Objects/sliceobject.c' line='203' column='1'/>
       <parameter type-id='type-id-125' name='start' filepath='Objects/sliceobject.c' line='204' column='1'/>
       <parameter type-id='type-id-125' name='stop' filepath='Objects/sliceobject.c' line='204' column='1'/>
       <parameter type-id='type-id-125' name='step' filepath='Objects/sliceobject.c' line='204' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PySlice_GetIndices' mangled-name='PySlice_GetIndices' filepath='Objects/sliceobject.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_GetIndices'>
-      <parameter type-id='type-id-15' name='_r' filepath='Objects/sliceobject.c' line='171' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/sliceobject.c' line='171' column='1'/>
+      <parameter type-id='type-id-16' name='_r' filepath='Objects/sliceobject.c' line='171' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/sliceobject.c' line='171' column='1'/>
       <parameter type-id='type-id-125' name='start' filepath='Objects/sliceobject.c' line='172' column='1'/>
       <parameter type-id='type-id-125' name='stop' filepath='Objects/sliceobject.c' line='172' column='1'/>
       <parameter type-id='type-id-125' name='step' filepath='Objects/sliceobject.c' line='172' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PySlice_FromIndices' mangled-name='_PySlice_FromIndices' filepath='Objects/sliceobject.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySlice_FromIndices'>
-      <parameter type-id='type-id-30' name='istart' filepath='Objects/sliceobject.c' line='152' column='1'/>
-      <parameter type-id='type-id-30' name='istop' filepath='Objects/sliceobject.c' line='152' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='istart' filepath='Objects/sliceobject.c' line='152' column='1'/>
+      <parameter type-id='type-id-31' name='istop' filepath='Objects/sliceobject.c' line='152' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PySlice_New' mangled-name='PySlice_New' filepath='Objects/sliceobject.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_New'>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/sliceobject.c' line='114' column='1'/>
-      <parameter type-id='type-id-15' name='stop' filepath='Objects/sliceobject.c' line='114' column='1'/>
-      <parameter type-id='type-id-15' name='step' filepath='Objects/sliceobject.c' line='114' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='start' filepath='Objects/sliceobject.c' line='114' column='1'/>
+      <parameter type-id='type-id-16' name='stop' filepath='Objects/sliceobject.c' line='114' column='1'/>
+      <parameter type-id='type-id-16' name='step' filepath='Objects/sliceobject.c' line='114' column='1'/>
+      <return type-id='type-id-16'/>
     </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-4' visibility='default' filepath='./Include/structseq.h' line='22' column='1'/>
+    <var-decl name='PyStructSequence_UnnamedField' type-id='type-id-5' 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-500'>
       <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'/>
         <var-decl name='fields' type-id='type-id-501' 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'/>
+        <var-decl name='n_in_sequence' type-id='type-id-9' 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-502'>
     <pointer-type-def type-id='type-id-503' size-in-bits='64' id='type-id-504'/>
     <function-decl name='PyStructSequence_NewType' mangled-name='PyStructSequence_NewType' filepath='Objects/structseq.c' line='535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_NewType'>
       <parameter type-id='type-id-504' name='desc' filepath='Objects/structseq.c' line='535' column='1'/>
-      <return type-id='type-id-31'/>
+      <return type-id='type-id-32'/>
     </function-decl>
     <function-decl name='PyStructSequence_InitType' mangled-name='PyStructSequence_InitType' filepath='Objects/structseq.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_InitType'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/structseq.c' line='529' column='1'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/structseq.c' line='529' column='1'/>
       <parameter type-id='type-id-504' name='desc' filepath='Objects/structseq.c' line='529' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyStructSequence_InitType2' mangled-name='PyStructSequence_InitType2' filepath='Objects/structseq.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_InitType2'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/structseq.c' line='523' column='1'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/structseq.c' line='523' column='1'/>
       <parameter type-id='type-id-504' name='desc' filepath='Objects/structseq.c' line='523' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyStructSequence_InitType' mangled-name='_PyStructSequence_InitType' filepath='Objects/structseq.c' line='465' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyStructSequence_InitType'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/structseq.c' line='465' column='1'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/structseq.c' line='465' column='1'/>
       <parameter type-id='type-id-504' name='desc' filepath='Objects/structseq.c' line='465' column='1'/>
-      <parameter type-id='type-id-18' name='tp_flags' filepath='Objects/structseq.c' line='466' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-19' name='tp_flags' filepath='Objects/structseq.c' line='466' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyStructSequence_GetItem' mangled-name='PyStructSequence_GetItem' filepath='Objects/structseq.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_GetItem'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/listobject.c' line='225' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/listobject.c' line='225' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/structseq.c' line='86' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/structseq.c' line='86' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyStructSequence_SetItem' mangled-name='PyStructSequence_SetItem' filepath='Objects/structseq.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_SetItem'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/structseq.c' line='80' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/structseq.c' line='80' column='1'/>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/structseq.c' line='80' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/structseq.c' line='80' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/structseq.c' line='80' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/structseq.c' line='80' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyStructSequence_New' mangled-name='PyStructSequence_New' filepath='Objects/structseq.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_New'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/structseq.c' line='55' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/structseq.c' line='55' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyType_FromSpecWithBases' mangled-name='PyType_FromSpecWithBases' filepath='./Include/object.h' line='232' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItemStringWithError' mangled-name='_PyDict_GetItemStringWithError' 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>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='Objects/tupleobject.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyTupleIter_Type' type-id='type-id-149' 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='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_Resize'>
       <parameter type-id='type-id-86' name='pv' filepath='Objects/tupleobject.c' line='952' column='1'/>
-      <parameter type-id='type-id-30' name='newsize' filepath='Objects/tupleobject.c' line='952' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-31' name='newsize' filepath='Objects/tupleobject.c' line='952' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyTuple_GetSlice' mangled-name='PyTuple_GetSlice' filepath='Objects/tupleobject.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_GetSlice'>
-      <parameter type-id='type-id-15' name='a' filepath='Objects/listobject.c' line='482' column='1'/>
-      <parameter type-id='type-id-30' name='ilow' filepath='Objects/listobject.c' line='482' column='1'/>
-      <parameter type-id='type-id-30' name='ihigh' filepath='Objects/listobject.c' line='482' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/tupleobject.c' line='498' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/tupleobject.c' line='498' column='1'/>
+      <parameter type-id='type-id-31' name='j' filepath='Objects/tupleobject.c' line='498' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyTuple_Pack' mangled-name='PyTuple_Pack' filepath='Objects/tupleobject.c' line='236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_Pack'>
-      <parameter type-id='type-id-30' name='n' filepath='Objects/tupleobject.c' line='236' column='1'/>
+      <parameter type-id='type-id-31' name='n' filepath='Objects/tupleobject.c' line='236' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyTuple_MaybeUntrack' mangled-name='_PyTuple_MaybeUntrack' filepath='Objects/tupleobject.c' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_MaybeUntrack'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/tupleobject.c' line='214' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/tupleobject.c' line='214' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyTuple_SetItem' mangled-name='PyTuple_SetItem' filepath='Objects/tupleobject.c' line='194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_SetItem'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='1933' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/tupleobject.c' line='194' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/tupleobject.c' line='194' column='1'/>
+      <parameter type-id='type-id-16' name='newitem' filepath='Objects/tupleobject.c' line='194' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyTuple_GetItem' mangled-name='PyTuple_GetItem' filepath='Objects/tupleobject.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_GetItem'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/listobject.c' line='225' column='1'/>
-      <parameter type-id='type-id-30' name='i' filepath='Objects/listobject.c' line='225' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/tupleobject.c' line='180' column='1'/>
+      <parameter type-id='type-id-31' name='i' filepath='Objects/tupleobject.c' line='180' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyTuple_Size' mangled-name='PyTuple_Size' filepath='Objects/tupleobject.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_Size'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='PyTuple_New' mangled-name='PyTuple_New' filepath='Objects/tupleobject.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_New'>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/tupleobject.c' line='149' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/bytesobject.c' line='1224' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='_PyTuple_DebugMallocStats' mangled-name='_PyTuple_DebugMallocStats' filepath='Objects/tupleobject.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_DebugMallocStats'>
       <parameter type-id='type-id-188' name='out' filepath='Objects/tupleobject.c' line='37' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTuple_New' mangled-name='PyTuple_New' filepath='Objects/tupleobject.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_New'>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/tupleobject.c' line='149' column='1'/>
+      <return type-id='type-id-16'/>
     </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-149' mangled-name='PyType_Type' visibility='default' filepath='./Include/object.h' line='251' column='1' elf-symbol-id='PyType_Type'/>
     <var-decl name='PyBaseObject_Type' type-id='type-id-149' mangled-name='PyBaseObject_Type' visibility='default' filepath='./Include/object.h' line='252' column='1' elf-symbol-id='PyBaseObject_Type'/>
     <var-decl name='PySuper_Type' type-id='type-id-149' mangled-name='PySuper_Type' visibility='default' filepath='./Include/object.h' line='253' column='1' elf-symbol-id='PySuper_Type'/>
-    <function-decl name='PyType_Ready' mangled-name='PyType_Ready' filepath='Objects/typeobject.c' line='6343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_Ready'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='6343' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyType_LookupId' mangled-name='_PyType_LookupId' filepath='Objects/typeobject.c' line='3853' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_LookupId'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='3853' column='1'/>
+      <parameter type-id='type-id-219' name='name' filepath='Objects/typeobject.c' line='3853' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyType_LookupId' mangled-name='_PyType_LookupId' filepath='Objects/typeobject.c' line='3845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_LookupId'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='3845' column='1'/>
-      <parameter type-id='type-id-219' name='name' filepath='Objects/typeobject.c' line='3845' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyType_Lookup' mangled-name='_PyType_Lookup' filepath='Objects/typeobject.c' line='3787' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_Lookup'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='3787' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Objects/typeobject.c' line='3787' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyType_Lookup' mangled-name='_PyType_Lookup' filepath='Objects/typeobject.c' line='3795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_Lookup'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='3795' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Objects/typeobject.c' line='3795' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <pointer-type-def type-id='type-id-458' size-in-bits='64' id='type-id-505'/>
-    <function-decl name='_PyType_GetModuleByDef' mangled-name='_PyType_GetModuleByDef' filepath='Objects/typeobject.c' line='3685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_GetModuleByDef'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='3685' column='1'/>
-      <parameter type-id='type-id-505' name='def' filepath='Objects/typeobject.c' line='3685' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyType_GetModuleState' mangled-name='PyType_GetModuleState' filepath='Objects/typeobject.c' line='3667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetModuleState'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='3667' column='1'/>
-      <return type-id='type-id-20'/>
+    <function-decl name='_PyType_GetModuleByDef' mangled-name='_PyType_GetModuleByDef' filepath='Objects/typeobject.c' line='3693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_GetModuleByDef'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='3693' column='1'/>
+      <parameter type-id='type-id-505' name='def' filepath='Objects/typeobject.c' line='3693' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyType_GetModule' mangled-name='PyType_GetModule' filepath='Objects/typeobject.c' line='3643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetModule'>
-      <parameter type-id='type-id-31' name='tp' filepath='Objects/object.c' line='181' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyType_GetModuleState' mangled-name='PyType_GetModuleState' filepath='Objects/typeobject.c' line='3675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetModuleState'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='3675' column='1'/>
+      <return type-id='type-id-21'/>
     </function-decl>
-    <function-decl name='PyType_GetSlot' mangled-name='PyType_GetSlot' filepath='Objects/typeobject.c' line='3621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetSlot'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='3621' column='1'/>
-      <parameter type-id='type-id-8' name='slot' filepath='Objects/typeobject.c' line='3621' column='1'/>
-      <return type-id='type-id-20'/>
+    <function-decl name='PyType_GetSlot' mangled-name='PyType_GetSlot' filepath='Objects/typeobject.c' line='3629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetSlot'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='3629' column='1'/>
+      <parameter type-id='type-id-9' name='slot' filepath='Objects/typeobject.c' line='3629' column='1'/>
+      <return type-id='type-id-21'/>
     </function-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-506' visibility='default' filepath='./Include/object.h' line='222' column='1' id='type-id-507'>
       <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='223' 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='224' column='1'/>
+        <var-decl name='basicsize' type-id='type-id-9' visibility='default' filepath='./Include/object.h' line='224' 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='225' column='1'/>
+        <var-decl name='itemsize' type-id='type-id-9' visibility='default' filepath='./Include/object.h' line='225' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='flags' type-id='type-id-65' visibility='default' filepath='./Include/object.h' line='226' column='1'/>
+        <var-decl name='flags' type-id='type-id-66' visibility='default' filepath='./Include/object.h' line='226' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
         <var-decl name='slots' type-id='type-id-508' visibility='default' filepath='./Include/object.h' line='227' column='1'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-509' visibility='default' filepath='./Include/object.h' line='217' column='1' id='type-id-510'>
       <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='218' column='1'/>
+        <var-decl name='slot' type-id='type-id-9' visibility='default' filepath='./Include/object.h' line='218' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='pfunc' type-id='type-id-20' visibility='default' filepath='./Include/object.h' line='219' column='1'/>
+        <var-decl name='pfunc' type-id='type-id-21' visibility='default' filepath='./Include/object.h' line='219' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='PyType_Slot' type-id='type-id-510' filepath='./Include/object.h' line='220' column='1' id='type-id-509'/>
     <pointer-type-def type-id='type-id-506' size-in-bits='64' id='type-id-511'/>
     <function-decl name='PyType_FromSpec' mangled-name='PyType_FromSpec' filepath='Objects/typeobject.c' line='3615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromSpec'>
       <parameter type-id='type-id-511' name='spec' filepath='Objects/typeobject.c' line='3615' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyType_FromModuleAndSpec' mangled-name='PyType_FromModuleAndSpec' filepath='Objects/typeobject.c' line='3365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromModuleAndSpec'>
-      <parameter type-id='type-id-15' name='module' filepath='Objects/typeobject.c' line='3365' column='1'/>
+      <parameter type-id='type-id-16' name='module' filepath='Objects/typeobject.c' line='3365' column='1'/>
       <parameter type-id='type-id-511' name='spec' filepath='Objects/typeobject.c' line='3365' column='1'/>
-      <parameter type-id='type-id-15' name='bases' filepath='Objects/typeobject.c' line='3365' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='bases' filepath='Objects/typeobject.c' line='3365' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyType_FromSpecWithBases' mangled-name='PyType_FromSpecWithBases' filepath='Objects/typeobject.c' line='3359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromSpecWithBases'>
       <parameter type-id='type-id-511' name='spec' filepath='Objects/typeobject.c' line='3359' column='1'/>
-      <parameter type-id='type-id-15' name='bases' filepath='Objects/typeobject.c' line='3359' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='bases' filepath='Objects/typeobject.c' line='3359' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyType_CalculateMetaclass' mangled-name='_PyType_CalculateMetaclass' filepath='Objects/typeobject.c' line='2465' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_CalculateMetaclass'>
-      <parameter type-id='type-id-31' name='metatype' filepath='Objects/typeobject.c' line='2465' column='1'/>
-      <parameter type-id='type-id-15' name='bases' filepath='Objects/typeobject.c' line='2465' column='1'/>
-      <return type-id='type-id-31'/>
+      <parameter type-id='type-id-32' name='metatype' filepath='Objects/typeobject.c' line='2465' column='1'/>
+      <parameter type-id='type-id-16' name='bases' filepath='Objects/typeobject.c' line='2465' column='1'/>
+      <return type-id='type-id-32'/>
     </function-decl>
     <function-decl name='PyType_GetFlags' mangled-name='PyType_GetFlags' filepath='Objects/typeobject.c' line='2458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetFlags'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='2458' column='1'/>
-      <return type-id='type-id-18'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='2458' column='1'/>
+      <return type-id='type-id-19'/>
     </function-decl>
     <function-decl name='_PyObject_LookupSpecial' mangled-name='_PyObject_LookupSpecial' filepath='Objects/typeobject.c' line='1559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupSpecial'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/typeobject.c' line='1559' column='1'/>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/typeobject.c' line='1559' column='1'/>
       <parameter type-id='type-id-453' name='attrid' filepath='Objects/typeobject.c' line='1559' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyType_IsSubtype' mangled-name='PyType_IsSubtype' filepath='Objects/typeobject.c' line='1521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_IsSubtype'>
-      <parameter type-id='type-id-31' name='a' filepath='Objects/typeobject.c' line='1521' column='1'/>
-      <parameter type-id='type-id-31' name='b' filepath='Objects/typeobject.c' line='1521' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyType_GenericNew' mangled-name='PyType_GenericNew' filepath='Objects/typeobject.c' line='1175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GenericNew'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='1175' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/typeobject.c' line='1175' column='1'/>
-      <parameter type-id='type-id-15' name='kwds' filepath='Objects/typeobject.c' line='1175' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='1175' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/typeobject.c' line='1175' column='1'/>
+      <parameter type-id='type-id-16' name='kwds' filepath='Objects/typeobject.c' line='1175' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyType_GenericAlloc' mangled-name='PyType_GenericAlloc' filepath='Objects/typeobject.c' line='1142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GenericAlloc'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='1142' column='1'/>
-      <parameter type-id='type-id-30' name='nitems' filepath='Objects/typeobject.c' line='1142' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='1142' column='1'/>
+      <parameter type-id='type-id-31' name='nitems' filepath='Objects/typeobject.c' line='1142' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyType_Name' mangled-name='_PyType_Name' filepath='Objects/typeobject.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_Name'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='480' column='1'/>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='480' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyType_Modified' mangled-name='PyType_Modified' filepath='Objects/typeobject.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_Modified'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='311' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
     <function-decl name='PyType_ClearCache' mangled-name='PyType_ClearCache' filepath='Objects/typeobject.c' line='293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_ClearCache'>
-      <return type-id='type-id-65'/>
+      <return type-id='type-id-66'/>
     </function-decl>
-    <function-decl name='_PyType_GetTextSignatureFromInternalDoc' mangled-name='_PyType_GetTextSignatureFromInternalDoc' filepath='Objects/typeobject.c' line='196' 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='196' column='1'/>
-      <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='196' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyType_CheckConsistency' mangled-name='_PyType_CheckConsistency' filepath='Objects/typeobject.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_CheckConsistency'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='143' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyType_GetDocFromInternalDoc' mangled-name='_PyType_GetDocFromInternalDoc' filepath='Objects/typeobject.c' line='184' 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='184' column='1'/>
       <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='184' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyType_CheckConsistency' mangled-name='_PyType_CheckConsistency' filepath='Objects/typeobject.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_CheckConsistency'>
-      <parameter type-id='type-id-31' name='type' filepath='Objects/typeobject.c' line='143' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyType_GetTextSignatureFromInternalDoc' mangled-name='_PyType_GetTextSignatureFromInternalDoc' filepath='Objects/typeobject.c' line='196' 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='196' column='1'/>
+      <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='196' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyType_Modified' mangled-name='PyType_Modified' filepath='Objects/typeobject.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_Modified'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='311' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyType_IsSubtype' mangled-name='PyType_IsSubtype' filepath='Objects/typeobject.c' line='1521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_IsSubtype'>
+      <parameter type-id='type-id-32' name='a' filepath='Objects/typeobject.c' line='1521' column='1'/>
+      <parameter type-id='type-id-32' name='b' filepath='Objects/typeobject.c' line='1521' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyType_GetModule' mangled-name='PyType_GetModule' filepath='Objects/typeobject.c' line='3651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetModule'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='3651' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyType_Ready' mangled-name='PyType_Ready' filepath='Objects/typeobject.c' line='6351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_Ready'>
+      <parameter type-id='type-id-32' name='type' filepath='Objects/typeobject.c' line='6351' column='1'/>
+      <return type-id='type-id-9'/>
+    </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='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='_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='284' 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='4024' 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='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='43' 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='1040' 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/internal/pycore_compile.h' line='26' 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='PyStaticMethod_New' mangled-name='PyStaticMethod_New' filepath='./Include/funcobject.h' line='104' 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/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='_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='93' 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='313' 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='_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>
+    <function-decl name='_PyDict_KeysSize' mangled-name='_PyDict_KeysSize' 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='_PyObject_RealIsInstance' mangled-name='_PyObject_RealIsInstance' filepath='./Include/cpython/abstract.h' line='355' 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='103' 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='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='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='PyDict_SetDefault' mangled-name='PyDict_SetDefault' filepath='./Include/cpython/dictobject.h' line='35' 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>
   </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-439' size-in-bits='infinite' id='type-id-512'>
-      <subrange length='infinite' id='type-id-6'/>
+      <subrange length='infinite' id='type-id-7'/>
 
     </array-type-def>
     <qualified-type-def type-id='type-id-512' const='yes' id='type-id-513'/>
-    <var-decl name='_Py_ascii_whitespace' type-id='type-id-513' mangled-name='_Py_ascii_whitespace' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='1031' column='1' elf-symbol-id='_Py_ascii_whitespace'/>
+    <var-decl name='_Py_ascii_whitespace' type-id='type-id-513' mangled-name='_Py_ascii_whitespace' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='1048' column='1' elf-symbol-id='_Py_ascii_whitespace'/>
     <var-decl name='PyUnicode_Type' type-id='type-id-149' 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-149' 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='16310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__string'>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_InternFromString' mangled-name='PyUnicode_InternFromString' filepath='Objects/unicodeobject.c' line='15841' 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='15841' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_InternImmortal' mangled-name='PyUnicode_InternImmortal' filepath='Objects/unicodeobject.c' line='15822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternImmortal'>
-      <parameter type-id='type-id-86' name='p' filepath='Objects/unicodeobject.c' line='15822' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyUnicode_InternInPlace' mangled-name='PyUnicode_InternInPlace' filepath='Objects/unicodeobject.c' line='15765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternInPlace'>
-      <parameter type-id='type-id-86' name='p' filepath='Objects/unicodeobject.c' line='15765' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Format' mangled-name='PyUnicode_Format' filepath='Objects/unicodeobject.c' line='15446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Format'>
-      <parameter type-id='type-id-15' name='format' filepath='Objects/unicodeobject.c' line='15446' column='1'/>
-      <parameter type-id='type-id-15' name='args' filepath='Objects/unicodeobject.c' line='15446' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_FormatLong' mangled-name='_PyUnicode_FormatLong' filepath='Objects/unicodeobject.c' line='14684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FormatLong'>
-      <parameter type-id='type-id-15' name='val' filepath='Objects/unicodeobject.c' line='14684' column='1'/>
-      <parameter type-id='type-id-8' name='alt' filepath='Objects/unicodeobject.c' line='14684' column='1'/>
-      <parameter type-id='type-id-8' name='prec' filepath='Objects/unicodeobject.c' line='14684' column='1'/>
-      <parameter type-id='type-id-8' name='type' filepath='Objects/unicodeobject.c' line='14684' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_Dealloc' mangled-name='_PyUnicodeWriter_Dealloc' filepath='Objects/unicodeobject.c' line='14321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Dealloc'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14321' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_Finish' mangled-name='_PyUnicodeWriter_Finish' filepath='Objects/unicodeobject.c' line='14289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Finish'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14289' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteLatin1String' mangled-name='_PyUnicodeWriter_WriteLatin1String' filepath='Objects/unicodeobject.c' line='14275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteLatin1String'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14275' column='1'/>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='14276' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/unicodeobject.c' line='14276' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteASCIIString' mangled-name='_PyUnicodeWriter_WriteASCIIString' filepath='Objects/unicodeobject.c' line='14215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteASCIIString'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14215' column='1'/>
-      <parameter type-id='type-id-3' name='ascii' filepath='Objects/unicodeobject.c' line='14216' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/unicodeobject.c' line='14216' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteSubstring' mangled-name='_PyUnicodeWriter_WriteSubstring' filepath='Objects/unicodeobject.c' line='14180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteSubstring'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14180' column='1'/>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='14180' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='14181' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/unicodeobject.c' line='14181' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteStr' mangled-name='_PyUnicodeWriter_WriteStr' filepath='Objects/unicodeobject.c' line='14149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteStr'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14149' column='1'/>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='14149' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteChar' mangled-name='_PyUnicodeWriter_WriteChar' filepath='Objects/unicodeobject.c' line='14143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteChar'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14143' column='1'/>
-      <parameter type-id='type-id-450' name='ch' filepath='Objects/unicodeobject.c' line='14143' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_PrepareKindInternal' mangled-name='_PyUnicodeWriter_PrepareKindInternal' filepath='Objects/unicodeobject.c' line='14111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareKindInternal'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14111' column='1'/>
-      <parameter type-id='type-id-449' name='kind' filepath='Objects/unicodeobject.c' line='14112' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_PrepareInternal' mangled-name='_PyUnicodeWriter_PrepareInternal' filepath='Objects/unicodeobject.c' line='14034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareInternal'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14034' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/unicodeobject.c' line='14035' column='1'/>
-      <parameter type-id='type-id-450' name='maxchar' filepath='Objects/unicodeobject.c' line='14035' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicodeWriter_Init' mangled-name='_PyUnicodeWriter_Init' filepath='Objects/unicodeobject.c' line='14010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Init'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14010' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyUnicode_RSplit' mangled-name='PyUnicode_RSplit' filepath='Objects/unicodeobject.c' line='13585' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RSplit'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/unicodeobject.c' line='13585' column='1'/>
-      <parameter type-id='type-id-15' name='sep' filepath='Objects/unicodeobject.c' line='13585' column='1'/>
-      <parameter type-id='type-id-30' name='maxsplit' filepath='Objects/unicodeobject.c' line='13585' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_RPartition' mangled-name='PyUnicode_RPartition' filepath='Objects/unicodeobject.c' line='13491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RPartition'>
-      <parameter type-id='type-id-15' name='str_obj' filepath='Objects/unicodeobject.c' line='13491' column='1'/>
-      <parameter type-id='type-id-15' name='sep_obj' filepath='Objects/unicodeobject.c' line='13491' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Partition' mangled-name='PyUnicode_Partition' filepath='Objects/unicodeobject.c' line='13439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Partition'>
-      <parameter type-id='type-id-15' name='str_obj' filepath='Objects/unicodeobject.c' line='13491' column='1'/>
-      <parameter type-id='type-id-15' name='sep_obj' filepath='Objects/unicodeobject.c' line='13491' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Split' mangled-name='PyUnicode_Split' filepath='Objects/unicodeobject.c' line='13401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Split'>
-      <parameter type-id='type-id-15' name='s' filepath='Objects/unicodeobject.c' line='13585' column='1'/>
-      <parameter type-id='type-id-15' name='sep' filepath='Objects/unicodeobject.c' line='13585' column='1'/>
-      <parameter type-id='type-id-30' name='maxsplit' filepath='Objects/unicodeobject.c' line='13585' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Replace' mangled-name='PyUnicode_Replace' filepath='Objects/unicodeobject.c' line='13049' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Replace'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='13049' column='1'/>
-      <parameter type-id='type-id-15' name='substr' filepath='Objects/unicodeobject.c' line='13050' column='1'/>
-      <parameter type-id='type-id-15' name='replstr' filepath='Objects/unicodeobject.c' line='13051' column='1'/>
-      <parameter type-id='type-id-30' name='maxcount' filepath='Objects/unicodeobject.c' line='13052' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Substring' mangled-name='PyUnicode_Substring' filepath='Objects/unicodeobject.c' line='12807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Substring'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/unicodeobject.c' line='12807' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='12807' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/unicodeobject.c' line='12807' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_XStrip' mangled-name='_PyUnicode_XStrip' filepath='Objects/unicodeobject.c' line='12757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_XStrip'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/unicodeobject.c' line='12757' column='1'/>
-      <parameter type-id='type-id-8' name='striptype' filepath='Objects/unicodeobject.c' line='12757' column='1'/>
-      <parameter type-id='type-id-15' name='sepobj' filepath='Objects/unicodeobject.c' line='12757' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_IsIdentifier' mangled-name='PyUnicode_IsIdentifier' filepath='Objects/unicodeobject.c' line='12571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_IsIdentifier'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/unicodeobject.c' line='12571' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_ScanIdentifier' mangled-name='_PyUnicode_ScanIdentifier' filepath='Objects/unicodeobject.c' line='12534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ScanIdentifier'>
-      <parameter type-id='type-id-15' name='self' filepath='Objects/unicodeobject.c' line='12534' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='PyUnicode_AppendAndDel' mangled-name='PyUnicode_AppendAndDel' filepath='Objects/unicodeobject.c' line='11806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AppendAndDel'>
+    <function-decl name='PyInit__string' mangled-name='PyInit__string' filepath='Objects/unicodeobject.c' line='16359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__string'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_InternFromString' mangled-name='PyUnicode_InternFromString' filepath='Objects/unicodeobject.c' line='15890' 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='15890' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_InternImmortal' mangled-name='PyUnicode_InternImmortal' filepath='Objects/unicodeobject.c' line='15871' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternImmortal'>
+      <parameter type-id='type-id-86' name='p' filepath='Objects/unicodeobject.c' line='15871' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_InternInPlace' mangled-name='PyUnicode_InternInPlace' filepath='Objects/unicodeobject.c' line='15814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternInPlace'>
+      <parameter type-id='type-id-86' name='p' filepath='Objects/unicodeobject.c' line='15814' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Format' mangled-name='PyUnicode_Format' filepath='Objects/unicodeobject.c' line='15495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Format'>
+      <parameter type-id='type-id-16' name='format' filepath='Objects/unicodeobject.c' line='15495' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Objects/unicodeobject.c' line='15495' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FormatLong' mangled-name='_PyUnicode_FormatLong' filepath='Objects/unicodeobject.c' line='14733' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FormatLong'>
+      <parameter type-id='type-id-16' name='val' filepath='Objects/unicodeobject.c' line='14733' column='1'/>
+      <parameter type-id='type-id-9' name='alt' filepath='Objects/unicodeobject.c' line='14733' column='1'/>
+      <parameter type-id='type-id-9' name='prec' filepath='Objects/unicodeobject.c' line='14733' column='1'/>
+      <parameter type-id='type-id-9' name='type' filepath='Objects/unicodeobject.c' line='14733' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_Dealloc' mangled-name='_PyUnicodeWriter_Dealloc' filepath='Objects/unicodeobject.c' line='14370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Dealloc'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14370' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteLatin1String' mangled-name='_PyUnicodeWriter_WriteLatin1String' filepath='Objects/unicodeobject.c' line='14324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteLatin1String'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14324' column='1'/>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='14325' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/unicodeobject.c' line='14325' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteASCIIString' mangled-name='_PyUnicodeWriter_WriteASCIIString' filepath='Objects/unicodeobject.c' line='14264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteASCIIString'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14264' column='1'/>
+      <parameter type-id='type-id-3' name='ascii' filepath='Objects/unicodeobject.c' line='14265' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/unicodeobject.c' line='14265' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteStr' mangled-name='_PyUnicodeWriter_WriteStr' filepath='Objects/unicodeobject.c' line='14198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteStr'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14198' column='1'/>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='14198' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteChar' mangled-name='_PyUnicodeWriter_WriteChar' filepath='Objects/unicodeobject.c' line='14192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteChar'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14192' column='1'/>
+      <parameter type-id='type-id-450' name='ch' filepath='Objects/unicodeobject.c' line='14192' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_PrepareKindInternal' mangled-name='_PyUnicodeWriter_PrepareKindInternal' filepath='Objects/unicodeobject.c' line='14160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareKindInternal'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14160' column='1'/>
+      <parameter type-id='type-id-449' name='kind' filepath='Objects/unicodeobject.c' line='14161' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_PrepareInternal' mangled-name='_PyUnicodeWriter_PrepareInternal' filepath='Objects/unicodeobject.c' line='14083' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareInternal'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14083' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/unicodeobject.c' line='14084' column='1'/>
+      <parameter type-id='type-id-450' name='maxchar' filepath='Objects/unicodeobject.c' line='14084' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_Init' mangled-name='_PyUnicodeWriter_Init' filepath='Objects/unicodeobject.c' line='14059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Init'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14059' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_RSplit' mangled-name='PyUnicode_RSplit' filepath='Objects/unicodeobject.c' line='13634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RSplit'>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/unicodeobject.c' line='13634' column='1'/>
+      <parameter type-id='type-id-16' name='sep' filepath='Objects/unicodeobject.c' line='13634' column='1'/>
+      <parameter type-id='type-id-31' name='maxsplit' filepath='Objects/unicodeobject.c' line='13634' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Split' mangled-name='PyUnicode_Split' filepath='Objects/unicodeobject.c' line='13450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Split'>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/unicodeobject.c' line='13634' column='1'/>
+      <parameter type-id='type-id-16' name='sep' filepath='Objects/unicodeobject.c' line='13634' column='1'/>
+      <parameter type-id='type-id-31' name='maxsplit' filepath='Objects/unicodeobject.c' line='13634' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Replace' mangled-name='PyUnicode_Replace' filepath='Objects/unicodeobject.c' line='13098' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Replace'>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='13098' column='1'/>
+      <parameter type-id='type-id-16' name='substr' filepath='Objects/unicodeobject.c' line='13099' column='1'/>
+      <parameter type-id='type-id-16' name='replstr' filepath='Objects/unicodeobject.c' line='13100' column='1'/>
+      <parameter type-id='type-id-31' name='maxcount' filepath='Objects/unicodeobject.c' line='13101' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Substring' mangled-name='PyUnicode_Substring' filepath='Objects/unicodeobject.c' line='12856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Substring'>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/unicodeobject.c' line='12856' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='12856' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/unicodeobject.c' line='12856' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_XStrip' mangled-name='_PyUnicode_XStrip' filepath='Objects/unicodeobject.c' line='12806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_XStrip'>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/unicodeobject.c' line='12806' column='1'/>
+      <parameter type-id='type-id-9' name='striptype' filepath='Objects/unicodeobject.c' line='12806' column='1'/>
+      <parameter type-id='type-id-16' name='sepobj' filepath='Objects/unicodeobject.c' line='12806' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_IsIdentifier' mangled-name='PyUnicode_IsIdentifier' filepath='Objects/unicodeobject.c' line='12620' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_IsIdentifier'>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/unicodeobject.c' line='12620' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ScanIdentifier' mangled-name='_PyUnicode_ScanIdentifier' filepath='Objects/unicodeobject.c' line='12583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ScanIdentifier'>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/unicodeobject.c' line='12583' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AppendAndDel' mangled-name='PyUnicode_AppendAndDel' filepath='Objects/unicodeobject.c' line='11855' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AppendAndDel'>
       <parameter type-id='type-id-86' name='pv' filepath='Objects/bytesobject.c' line='2988' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/bytesobject.c' line='2988' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Append' mangled-name='PyUnicode_Append' filepath='Objects/unicodeobject.c' line='11723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Append'>
-      <parameter type-id='type-id-86' name='p_left' filepath='Objects/unicodeobject.c' line='11723' column='1'/>
-      <parameter type-id='type-id-15' name='right' filepath='Objects/unicodeobject.c' line='11723' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Concat' mangled-name='PyUnicode_Concat' filepath='Objects/unicodeobject.c' line='11672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Concat'>
-      <parameter type-id='type-id-15' name='left' filepath='Objects/unicodeobject.c' line='11672' column='1'/>
-      <parameter type-id='type-id-15' name='right' filepath='Objects/unicodeobject.c' line='11672' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Contains' mangled-name='PyUnicode_Contains' filepath='Objects/unicodeobject.c' line='11609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Contains'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='11609' column='1'/>
-      <parameter type-id='type-id-15' name='substr' filepath='Objects/unicodeobject.c' line='11609' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_EQ' mangled-name='_PyUnicode_EQ' filepath='Objects/unicodeobject.c' line='11603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EQ'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicode_RichCompare' mangled-name='PyUnicode_RichCompare' filepath='Objects/unicodeobject.c' line='11564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RichCompare'>
-      <parameter type-id='type-id-15' name='left' filepath='Objects/unicodeobject.c' line='11564' column='1'/>
-      <parameter type-id='type-id-15' name='right' filepath='Objects/unicodeobject.c' line='11564' column='1'/>
-      <parameter type-id='type-id-8' name='op' filepath='Objects/unicodeobject.c' line='11564' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_EqualToASCIIId' mangled-name='_PyUnicode_EqualToASCIIId' filepath='Objects/unicodeobject.c' line='11520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIId'>
-      <parameter type-id='type-id-15' name='left' filepath='Objects/unicodeobject.c' line='11520' column='1'/>
-      <parameter type-id='type-id-453' name='right' filepath='Objects/unicodeobject.c' line='11520' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_EqualToASCIIString' mangled-name='_PyUnicode_EqualToASCIIString' filepath='Objects/unicodeobject.c' line='11497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIString'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2385' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicode_CompareWithASCIIString' mangled-name='PyUnicode_CompareWithASCIIString' filepath='Objects/unicodeobject.c' line='11418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_CompareWithASCIIString'>
-      <parameter type-id='type-id-15' name='uni' filepath='Objects/unicodeobject.c' line='11418' column='1'/>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='11418' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Compare' mangled-name='PyUnicode_Compare' filepath='Objects/unicodeobject.c' line='11397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Compare'>
-      <parameter type-id='type-id-15' name='derived' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <parameter type-id='type-id-15' name='cls' filepath='Objects/abstract.c' line='2786' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Splitlines' mangled-name='PyUnicode_Splitlines' filepath='Objects/unicodeobject.c' line='10586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Splitlines'>
-      <parameter type-id='type-id-15' name='string' filepath='Objects/unicodeobject.c' line='10586' column='1'/>
-      <parameter type-id='type-id-8' name='keepends' filepath='Objects/unicodeobject.c' line='10586' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Fill' mangled-name='PyUnicode_Fill' filepath='Objects/unicodeobject.c' line='10510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Fill'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='10510' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='10510' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/unicodeobject.c' line='10510' column='1'/>
-      <parameter type-id='type-id-450' name='fill_char' filepath='Objects/unicodeobject.c' line='10511' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_FastFill' mangled-name='_PyUnicode_FastFill' filepath='Objects/unicodeobject.c' line='10496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastFill'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='10496' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='10496' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/unicodeobject.c' line='10496' column='1'/>
-      <parameter type-id='type-id-450' name='fill_char' filepath='Objects/unicodeobject.c' line='10497' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_JoinArray' mangled-name='_PyUnicode_JoinArray' filepath='Objects/unicodeobject.c' line='10324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_JoinArray'>
-      <parameter type-id='type-id-15' name='separator' filepath='Objects/unicodeobject.c' line='10324' column='1'/>
-      <parameter type-id='type-id-156' name='items' filepath='Objects/unicodeobject.c' line='10324' column='1'/>
-      <parameter type-id='type-id-30' name='seqlen' filepath='Objects/unicodeobject.c' line='10324' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Join' mangled-name='PyUnicode_Join' filepath='Objects/unicodeobject.c' line='10300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Join'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1506' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='1506' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Tailmatch' mangled-name='PyUnicode_Tailmatch' filepath='Objects/unicodeobject.c' line='10053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Tailmatch'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='10053' column='1'/>
-      <parameter type-id='type-id-15' name='substr' filepath='Objects/unicodeobject.c' line='10054' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='10055' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/unicodeobject.c' line='10056' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='10057' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='PyUnicode_FindChar' mangled-name='PyUnicode_FindChar' filepath='Objects/unicodeobject.c' line='9964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FindChar'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='9964' column='1'/>
-      <parameter type-id='type-id-450' name='ch' filepath='Objects/unicodeobject.c' line='9964' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='9965' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/unicodeobject.c' line='9965' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9966' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Find' mangled-name='PyUnicode_Find' filepath='Objects/unicodeobject.c' line='9951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Find'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='10053' column='1'/>
-      <parameter type-id='type-id-15' name='substr' filepath='Objects/unicodeobject.c' line='10054' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='10055' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/unicodeobject.c' line='10056' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='10057' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Count' mangled-name='PyUnicode_Count' filepath='Objects/unicodeobject.c' line='9877' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Count'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='9877' column='1'/>
-      <parameter type-id='type-id-15' name='substr' filepath='Objects/unicodeobject.c' line='9878' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='9879' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/unicodeobject.c' line='9880' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='w' filepath='Objects/bytesobject.c' line='2988' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Append' mangled-name='PyUnicode_Append' filepath='Objects/unicodeobject.c' line='11772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Append'>
+      <parameter type-id='type-id-86' name='p_left' filepath='Objects/unicodeobject.c' line='11772' column='1'/>
+      <parameter type-id='type-id-16' name='right' filepath='Objects/unicodeobject.c' line='11772' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Concat' mangled-name='PyUnicode_Concat' filepath='Objects/unicodeobject.c' line='11721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Concat'>
+      <parameter type-id='type-id-16' name='left' filepath='Objects/unicodeobject.c' line='11721' column='1'/>
+      <parameter type-id='type-id-16' name='right' filepath='Objects/unicodeobject.c' line='11721' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EQ' mangled-name='_PyUnicode_EQ' filepath='Objects/unicodeobject.c' line='11652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EQ'>
+      <parameter type-id='type-id-16' name='self' filepath='Objects/exceptions.c' line='330' column='1'/>
+      <parameter type-id='type-id-16' name='tb' filepath='Objects/exceptions.c' line='330' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EqualToASCIIId' mangled-name='_PyUnicode_EqualToASCIIId' filepath='Objects/unicodeobject.c' line='11569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIId'>
+      <parameter type-id='type-id-16' name='left' filepath='Objects/unicodeobject.c' line='11569' column='1'/>
+      <parameter type-id='type-id-453' name='right' filepath='Objects/unicodeobject.c' line='11569' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicode_CompareWithASCIIString' mangled-name='PyUnicode_CompareWithASCIIString' filepath='Objects/unicodeobject.c' line='11467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_CompareWithASCIIString'>
+      <parameter type-id='type-id-16' name='uni' filepath='Objects/unicodeobject.c' line='11467' column='1'/>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='11467' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Compare' mangled-name='PyUnicode_Compare' filepath='Objects/unicodeobject.c' line='11446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Compare'>
+      <parameter type-id='type-id-16' name='left' filepath='Objects/unicodeobject.c' line='11446' column='1'/>
+      <parameter type-id='type-id-16' name='right' filepath='Objects/unicodeobject.c' line='11446' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Splitlines' mangled-name='PyUnicode_Splitlines' filepath='Objects/unicodeobject.c' line='10635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Splitlines'>
+      <parameter type-id='type-id-16' name='string' filepath='Objects/unicodeobject.c' line='10635' column='1'/>
+      <parameter type-id='type-id-9' name='keepends' filepath='Objects/unicodeobject.c' line='10635' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Fill' mangled-name='PyUnicode_Fill' filepath='Objects/unicodeobject.c' line='10559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Fill'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='10559' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='10559' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/unicodeobject.c' line='10559' column='1'/>
+      <parameter type-id='type-id-450' name='fill_char' filepath='Objects/unicodeobject.c' line='10560' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FastFill' mangled-name='_PyUnicode_FastFill' filepath='Objects/unicodeobject.c' line='10545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastFill'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='10545' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='10545' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/unicodeobject.c' line='10545' column='1'/>
+      <parameter type-id='type-id-450' name='fill_char' filepath='Objects/unicodeobject.c' line='10546' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_JoinArray' mangled-name='_PyUnicode_JoinArray' filepath='Objects/unicodeobject.c' line='10373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_JoinArray'>
+      <parameter type-id='type-id-16' name='separator' filepath='Objects/unicodeobject.c' line='10373' column='1'/>
+      <parameter type-id='type-id-156' name='items' filepath='Objects/unicodeobject.c' line='10373' column='1'/>
+      <parameter type-id='type-id-31' name='seqlen' filepath='Objects/unicodeobject.c' line='10373' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Join' mangled-name='PyUnicode_Join' filepath='Objects/unicodeobject.c' line='10349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Join'>
+      <parameter type-id='type-id-16' name='separator' filepath='Objects/unicodeobject.c' line='10349' column='1'/>
+      <parameter type-id='type-id-16' name='seq' filepath='Objects/unicodeobject.c' line='10349' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Tailmatch' mangled-name='PyUnicode_Tailmatch' filepath='Objects/unicodeobject.c' line='10102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Tailmatch'>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='10102' column='1'/>
+      <parameter type-id='type-id-16' name='substr' filepath='Objects/unicodeobject.c' line='10103' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='10104' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/unicodeobject.c' line='10105' column='1'/>
+      <parameter type-id='type-id-9' name='direction' filepath='Objects/unicodeobject.c' line='10106' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FindChar' mangled-name='PyUnicode_FindChar' filepath='Objects/unicodeobject.c' line='10013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FindChar'>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='10013' column='1'/>
+      <parameter type-id='type-id-450' name='ch' filepath='Objects/unicodeobject.c' line='10013' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='10014' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/unicodeobject.c' line='10014' column='1'/>
+      <parameter type-id='type-id-9' name='direction' filepath='Objects/unicodeobject.c' line='10015' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Find' mangled-name='PyUnicode_Find' filepath='Objects/unicodeobject.c' line='10000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Find'>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='10102' column='1'/>
+      <parameter type-id='type-id-16' name='substr' filepath='Objects/unicodeobject.c' line='10103' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='10104' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/unicodeobject.c' line='10105' column='1'/>
+      <parameter type-id='type-id-9' name='direction' filepath='Objects/unicodeobject.c' line='10106' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Count' mangled-name='PyUnicode_Count' filepath='Objects/unicodeobject.c' line='9926' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Count'>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='9926' column='1'/>
+      <parameter type-id='type-id-16' name='substr' filepath='Objects/unicodeobject.c' line='9927' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='9928' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/unicodeobject.c' line='9929' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <pointer-type-def type-id='type-id-450' size-in-bits='64' id='type-id-514'/>
-    <function-decl name='_PyUnicode_InsertThousandsGrouping' mangled-name='_PyUnicode_InsertThousandsGrouping' filepath='Objects/unicodeobject.c' line='9757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_InsertThousandsGrouping'>
-      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='9758' column='1'/>
-      <parameter type-id='type-id-30' name='n_buffer' filepath='Objects/unicodeobject.c' line='9759' column='1'/>
-      <parameter type-id='type-id-15' name='digits' filepath='Objects/unicodeobject.c' line='9760' column='1'/>
-      <parameter type-id='type-id-30' name='d_pos' filepath='Objects/unicodeobject.c' line='9761' column='1'/>
-      <parameter type-id='type-id-30' name='n_digits' filepath='Objects/unicodeobject.c' line='9762' column='1'/>
-      <parameter type-id='type-id-30' name='min_width' filepath='Objects/unicodeobject.c' line='9763' column='1'/>
-      <parameter type-id='type-id-3' name='grouping' filepath='Objects/unicodeobject.c' line='9764' column='1'/>
-      <parameter type-id='type-id-15' name='thousands_sep' filepath='Objects/unicodeobject.c' line='9765' column='1'/>
-      <parameter type-id='type-id-514' name='maxchar' filepath='Objects/unicodeobject.c' line='9766' column='1'/>
-      <return type-id='type-id-30'/>
+    <function-decl name='_PyUnicode_InsertThousandsGrouping' mangled-name='_PyUnicode_InsertThousandsGrouping' filepath='Objects/unicodeobject.c' line='9806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_InsertThousandsGrouping'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='9807' column='1'/>
+      <parameter type-id='type-id-31' name='n_buffer' filepath='Objects/unicodeobject.c' line='9808' column='1'/>
+      <parameter type-id='type-id-16' name='digits' filepath='Objects/unicodeobject.c' line='9809' column='1'/>
+      <parameter type-id='type-id-31' name='d_pos' filepath='Objects/unicodeobject.c' line='9810' column='1'/>
+      <parameter type-id='type-id-31' name='n_digits' filepath='Objects/unicodeobject.c' line='9811' column='1'/>
+      <parameter type-id='type-id-31' name='min_width' filepath='Objects/unicodeobject.c' line='9812' column='1'/>
+      <parameter type-id='type-id-3' name='grouping' filepath='Objects/unicodeobject.c' line='9813' column='1'/>
+      <parameter type-id='type-id-16' name='thousands_sep' filepath='Objects/unicodeobject.c' line='9814' column='1'/>
+      <parameter type-id='type-id-514' name='maxchar' filepath='Objects/unicodeobject.c' line='9815' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <pointer-type-def type-id='type-id-436' size-in-bits='64' id='type-id-515'/>
-    <function-decl name='PyUnicode_EncodeDecimal' mangled-name='PyUnicode_EncodeDecimal' filepath='Objects/unicodeobject.c' line='9568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeDecimal'>
-      <parameter type-id='type-id-515' name='s' filepath='Objects/unicodeobject.c' line='9568' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/unicodeobject.c' line='9569' column='1'/>
-      <parameter type-id='type-id-72' name='output' filepath='Objects/unicodeobject.c' line='9570' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9571' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyUnicode_TransformDecimalToASCII' mangled-name='PyUnicode_TransformDecimalToASCII' filepath='Objects/unicodeobject.c' line='9527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_TransformDecimalToASCII'>
-      <parameter type-id='type-id-515' name='s' filepath='Objects/unicodeobject.c' line='9527' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/unicodeobject.c' line='9528' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_TransformDecimalAndSpaceToASCII' mangled-name='_PyUnicode_TransformDecimalAndSpaceToASCII' filepath='Objects/unicodeobject.c' line='9478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_TransformDecimalAndSpaceToASCII'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='9478' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Translate' mangled-name='PyUnicode_Translate' filepath='Objects/unicodeobject.c' line='9468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Translate'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='9468' column='1'/>
-      <parameter type-id='type-id-15' name='mapping' filepath='Objects/unicodeobject.c' line='9469' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9470' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_TranslateCharmap' mangled-name='PyUnicode_TranslateCharmap' filepath='Objects/unicodeobject.c' line='9453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_TranslateCharmap'>
-      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='9453' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='9454' column='1'/>
-      <parameter type-id='type-id-15' name='mapping' filepath='Objects/unicodeobject.c' line='9455' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9456' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_AsCharmapString' mangled-name='PyUnicode_AsCharmapString' filepath='Objects/unicodeobject.c' line='9028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsCharmapString'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_EncodeCharmap' mangled-name='PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='9013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeCharmap'>
-      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='9453' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='9454' column='1'/>
-      <parameter type-id='type-id-15' name='mapping' filepath='Objects/unicodeobject.c' line='9455' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9456' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_EncodeCharmap' mangled-name='_PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='8941' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeCharmap'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='8941' column='1'/>
-      <parameter type-id='type-id-15' name='mapping' filepath='Objects/unicodeobject.c' line='8942' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='8943' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_BuildEncodingMap' mangled-name='PyUnicode_BuildEncodingMap' filepath='Objects/unicodeobject.c' line='8528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_BuildEncodingMap'>
-      <parameter type-id='type-id-15' name='string' filepath='Objects/unicodeobject.c' line='8528' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_DecodeCharmap' mangled-name='PyUnicode_DecodeCharmap' filepath='Objects/unicodeobject.c' line='8427' 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='8427' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='8428' column='1'/>
-      <parameter type-id='type-id-15' name='mapping' filepath='Objects/unicodeobject.c' line='8429' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='8430' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_AsASCIIString' mangled-name='PyUnicode_AsASCIIString' filepath='Objects/unicodeobject.c' line='7462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsASCIIString'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_AsASCIIString' mangled-name='_PyUnicode_AsASCIIString' filepath='Objects/unicodeobject.c' line='7445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsASCIIString'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_EncodeASCII' mangled-name='PyUnicode_EncodeASCII' filepath='Objects/unicodeobject.c' line='7431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeASCII'>
-      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='7431' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='7432' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7433' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_DecodeASCII' mangled-name='PyUnicode_DecodeASCII' filepath='Objects/unicodeobject.c' line='7331' 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='7331' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='7332' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7333' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_AsLatin1String' mangled-name='PyUnicode_AsLatin1String' filepath='Objects/unicodeobject.c' line='7323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsLatin1String'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_AsLatin1String' mangled-name='_PyUnicode_AsLatin1String' filepath='Objects/unicodeobject.c' line='7304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsLatin1String'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_EncodeLatin1' mangled-name='PyUnicode_EncodeLatin1' filepath='Objects/unicodeobject.c' line='7290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeLatin1'>
-      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='7431' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='7432' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7433' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_DecodeLatin1' mangled-name='PyUnicode_DecodeLatin1' filepath='Objects/unicodeobject.c' line='7007' 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='7007' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='7008' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7009' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_EncodeRawUnicodeEscape' mangled-name='PyUnicode_EncodeRawUnicodeEscape' filepath='Objects/unicodeobject.c' line='6992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeRawUnicodeEscape'>
-      <parameter type-id='type-id-438' name='s' filepath='Objects/unicodeobject.c' line='6992' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6993' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_AsRawUnicodeEscapeString' mangled-name='PyUnicode_AsRawUnicodeEscapeString' filepath='Objects/unicodeobject.c' line='6913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsRawUnicodeEscapeString'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='6913' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_DecodeRawUnicodeEscape' mangled-name='PyUnicode_DecodeRawUnicodeEscape' filepath='Objects/unicodeobject.c' line='6794' 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='6794' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6795' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6796' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_EncodeUnicodeEscape' mangled-name='PyUnicode_EncodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUnicodeEscape'>
-      <parameter type-id='type-id-438' name='s' filepath='Objects/unicodeobject.c' line='6992' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6993' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_AsUnicodeEscapeString' mangled-name='PyUnicode_AsUnicodeEscapeString' filepath='Objects/unicodeobject.c' line='6659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeEscapeString'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='6913' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_DecodeUnicodeEscape' mangled-name='PyUnicode_DecodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6636' 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='6636' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6637' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6638' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_DecodeUnicodeEscape' mangled-name='_PyUnicode_DecodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_DecodeUnicodeEscape'>
+    <function-decl name='PyUnicode_EncodeDecimal' mangled-name='PyUnicode_EncodeDecimal' filepath='Objects/unicodeobject.c' line='9617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeDecimal'>
+      <parameter type-id='type-id-515' name='s' filepath='Objects/unicodeobject.c' line='9617' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/unicodeobject.c' line='9618' column='1'/>
+      <parameter type-id='type-id-72' name='output' filepath='Objects/unicodeobject.c' line='9619' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9620' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicode_TransformDecimalToASCII' mangled-name='PyUnicode_TransformDecimalToASCII' filepath='Objects/unicodeobject.c' line='9576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_TransformDecimalToASCII'>
+      <parameter type-id='type-id-515' name='s' filepath='Objects/unicodeobject.c' line='9576' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/unicodeobject.c' line='9577' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_TransformDecimalAndSpaceToASCII' mangled-name='_PyUnicode_TransformDecimalAndSpaceToASCII' filepath='Objects/unicodeobject.c' line='9527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_TransformDecimalAndSpaceToASCII'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='9527' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Translate' mangled-name='PyUnicode_Translate' filepath='Objects/unicodeobject.c' line='9517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Translate'>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='9517' column='1'/>
+      <parameter type-id='type-id-16' name='mapping' filepath='Objects/unicodeobject.c' line='9518' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9519' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_TranslateCharmap' mangled-name='PyUnicode_TranslateCharmap' filepath='Objects/unicodeobject.c' line='9502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_TranslateCharmap'>
+      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='9502' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='9503' column='1'/>
+      <parameter type-id='type-id-16' name='mapping' filepath='Objects/unicodeobject.c' line='9504' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9505' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsCharmapString' mangled-name='PyUnicode_AsCharmapString' filepath='Objects/unicodeobject.c' line='9077' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsCharmapString'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='9077' column='1'/>
+      <parameter type-id='type-id-16' name='mapping' filepath='Objects/unicodeobject.c' line='9078' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeCharmap' mangled-name='PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='9062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeCharmap'>
+      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='9502' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='9503' column='1'/>
+      <parameter type-id='type-id-16' name='mapping' filepath='Objects/unicodeobject.c' line='9504' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9505' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeCharmap' mangled-name='_PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='8990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeCharmap'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='8990' column='1'/>
+      <parameter type-id='type-id-16' name='mapping' filepath='Objects/unicodeobject.c' line='8991' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='8992' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_BuildEncodingMap' mangled-name='PyUnicode_BuildEncodingMap' filepath='Objects/unicodeobject.c' line='8577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_BuildEncodingMap'>
+      <parameter type-id='type-id-16' name='string' filepath='Objects/unicodeobject.c' line='8577' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeCharmap' mangled-name='PyUnicode_DecodeCharmap' filepath='Objects/unicodeobject.c' line='8476' 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='8476' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='8477' column='1'/>
+      <parameter type-id='type-id-16' name='mapping' filepath='Objects/unicodeobject.c' line='8478' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='8479' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsASCIIString' mangled-name='PyUnicode_AsASCIIString' filepath='Objects/unicodeobject.c' line='7511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsASCIIString'>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeASCII' mangled-name='PyUnicode_EncodeASCII' filepath='Objects/unicodeobject.c' line='7480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeASCII'>
+      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='7480' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7481' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7482' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeASCII' mangled-name='PyUnicode_DecodeASCII' filepath='Objects/unicodeobject.c' line='7380' 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='7380' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7381' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7382' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsLatin1String' mangled-name='PyUnicode_AsLatin1String' filepath='Objects/unicodeobject.c' line='7372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsLatin1String'>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeLatin1' mangled-name='PyUnicode_EncodeLatin1' filepath='Objects/unicodeobject.c' line='7339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeLatin1'>
+      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='7480' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7481' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7482' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeLatin1' mangled-name='PyUnicode_DecodeLatin1' filepath='Objects/unicodeobject.c' line='7056' 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='7056' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7057' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7058' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeRawUnicodeEscape' mangled-name='PyUnicode_EncodeRawUnicodeEscape' filepath='Objects/unicodeobject.c' line='7041' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeRawUnicodeEscape'>
+      <parameter type-id='type-id-438' name='s' filepath='Objects/unicodeobject.c' line='7041' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7042' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsRawUnicodeEscapeString' mangled-name='PyUnicode_AsRawUnicodeEscapeString' filepath='Objects/unicodeobject.c' line='6962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsRawUnicodeEscapeString'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='6962' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeRawUnicodeEscape' mangled-name='PyUnicode_DecodeRawUnicodeEscape' filepath='Objects/unicodeobject.c' line='6953' 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='7056' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7057' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7058' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeRawUnicodeEscapeStateful' mangled-name='_PyUnicode_DecodeRawUnicodeEscapeStateful' filepath='Objects/unicodeobject.c' line='6817' 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='6817' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='6818' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6819' column='1'/>
+      <parameter type-id='type-id-125' name='consumed' filepath='Objects/unicodeobject.c' line='6820' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeUnicodeEscape' mangled-name='PyUnicode_EncodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUnicodeEscape'>
+      <parameter type-id='type-id-438' name='s' filepath='Objects/unicodeobject.c' line='7041' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7042' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUnicodeEscapeString' mangled-name='PyUnicode_AsUnicodeEscapeString' filepath='Objects/unicodeobject.c' line='6682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeEscapeString'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='6962' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUnicodeEscape' mangled-name='PyUnicode_DecodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6672' 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='7056' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7057' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7058' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeUnicodeEscapeStateful' mangled-name='_PyUnicode_DecodeUnicodeEscapeStateful' filepath='Objects/unicodeobject.c' line='6649' 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='6649' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='6650' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6651' column='1'/>
+      <parameter type-id='type-id-125' name='consumed' filepath='Objects/unicodeobject.c' line='6652' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeUnicodeEscapeInternal' mangled-name='_PyUnicode_DecodeUnicodeEscapeInternal' filepath='Objects/unicodeobject.c' line='6411' 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='6411' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6412' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='6412' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6413' column='1'/>
-      <parameter type-id='type-id-198' name='first_invalid_escape' filepath='Objects/unicodeobject.c' line='6414' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-125' name='consumed' filepath='Objects/unicodeobject.c' line='6414' column='1'/>
+      <parameter type-id='type-id-196' name='first_invalid_escape' filepath='Objects/unicodeobject.c' line='6415' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUTF16String' mangled-name='PyUnicode_AsUTF16String' filepath='Objects/unicodeobject.c' line='6401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF16String'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_EncodeUTF16' mangled-name='PyUnicode_EncodeUTF16' filepath='Objects/unicodeobject.c' line='6386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF16'>
       <parameter type-id='type-id-438' name='s' filepath='Objects/unicodeobject.c' line='6386' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6387' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='6387' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6388' column='1'/>
-      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6389' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='byteorder' filepath='Objects/unicodeobject.c' line='6389' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicode_EncodeUTF16' mangled-name='_PyUnicode_EncodeUTF16' filepath='Objects/unicodeobject.c' line='6220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF16'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='6220' column='1'/>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='6220' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6221' column='1'/>
-      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6222' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='byteorder' filepath='Objects/unicodeobject.c' line='6222' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeUTF16Stateful' mangled-name='PyUnicode_DecodeUTF16Stateful' filepath='Objects/unicodeobject.c' line='6065' 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='6065' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6066' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='6066' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6067' column='1'/>
       <parameter type-id='type-id-452' name='byteorder' filepath='Objects/unicodeobject.c' line='6068' column='1'/>
       <parameter type-id='type-id-125' name='consumed' filepath='Objects/unicodeobject.c' line='6069' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeUTF16' mangled-name='PyUnicode_DecodeUTF16' filepath='Objects/unicodeobject.c' line='6056' 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='6056' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6057' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='6057' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6058' column='1'/>
       <parameter type-id='type-id-452' name='byteorder' filepath='Objects/unicodeobject.c' line='6059' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUTF32String' mangled-name='PyUnicode_AsUTF32String' filepath='Objects/unicodeobject.c' line='6048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF32String'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_EncodeUTF32' mangled-name='PyUnicode_EncodeUTF32' filepath='Objects/unicodeobject.c' line='6033' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF32'>
       <parameter type-id='type-id-438' name='s' filepath='Objects/unicodeobject.c' line='6386' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6387' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='6387' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6388' column='1'/>
-      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6389' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='byteorder' filepath='Objects/unicodeobject.c' line='6389' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicode_EncodeUTF32' mangled-name='_PyUnicode_EncodeUTF32' filepath='Objects/unicodeobject.c' line='5886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF32'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='5886' column='1'/>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='5886' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5887' column='1'/>
-      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='5888' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='byteorder' filepath='Objects/unicodeobject.c' line='5888' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeUTF32Stateful' mangled-name='PyUnicode_DecodeUTF32Stateful' filepath='Objects/unicodeobject.c' line='5741' 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='5741' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='5742' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='5742' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5743' column='1'/>
       <parameter type-id='type-id-452' name='byteorder' filepath='Objects/unicodeobject.c' line='5744' column='1'/>
       <parameter type-id='type-id-125' name='consumed' filepath='Objects/unicodeobject.c' line='5745' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeUTF32' mangled-name='PyUnicode_DecodeUTF32' filepath='Objects/unicodeobject.c' line='5732' 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='6056' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='6057' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='6057' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6058' column='1'/>
       <parameter type-id='type-id-452' name='byteorder' filepath='Objects/unicodeobject.c' line='6059' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUTF8String' mangled-name='PyUnicode_AsUTF8String' filepath='Objects/unicodeobject.c' line='5724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8String'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_EncodeUTF8' mangled-name='PyUnicode_EncodeUTF8' filepath='Objects/unicodeobject.c' line='5709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF8'>
-      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='7431' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='7432' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7433' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-438' name='p' filepath='Objects/unicodeobject.c' line='7480' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7481' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7482' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicode_AsUTF8String' mangled-name='_PyUnicode_AsUTF8String' filepath='Objects/unicodeobject.c' line='5702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsUTF8String'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='5702' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5702' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeUTF8Stateful' mangled-name='PyUnicode_DecodeUTF8Stateful' filepath='Objects/unicodeobject.c' line='5311' 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='5311' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='5312' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='5312' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5313' column='1'/>
       <parameter type-id='type-id-125' name='consumed' filepath='Objects/unicodeobject.c' line='5314' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeUTF8' mangled-name='PyUnicode_DecodeUTF8' filepath='Objects/unicodeobject.c' line='5076' 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='7007' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='7008' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7009' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='7056' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7057' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7058' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_EncodeUTF7' mangled-name='PyUnicode_EncodeUTF7' filepath='Objects/unicodeobject.c' line='5051' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF7'>
       <parameter type-id='type-id-438' name='s' filepath='Objects/unicodeobject.c' line='5051' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='5052' column='1'/>
-      <parameter type-id='type-id-8' name='base64SetO' filepath='Objects/unicodeobject.c' line='5053' column='1'/>
-      <parameter type-id='type-id-8' name='base64WhiteSpace' filepath='Objects/unicodeobject.c' line='5054' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='5052' column='1'/>
+      <parameter type-id='type-id-9' name='base64SetO' filepath='Objects/unicodeobject.c' line='5053' column='1'/>
+      <parameter type-id='type-id-9' name='base64WhiteSpace' filepath='Objects/unicodeobject.c' line='5054' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5055' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicode_EncodeUTF7' mangled-name='_PyUnicode_EncodeUTF7' filepath='Objects/unicodeobject.c' line='4950' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF7'>
-      <parameter type-id='type-id-15' name='str' filepath='Objects/unicodeobject.c' line='4950' column='1'/>
-      <parameter type-id='type-id-8' name='base64SetO' filepath='Objects/unicodeobject.c' line='4951' column='1'/>
-      <parameter type-id='type-id-8' name='base64WhiteSpace' filepath='Objects/unicodeobject.c' line='4952' column='1'/>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='4950' column='1'/>
+      <parameter type-id='type-id-9' name='base64SetO' filepath='Objects/unicodeobject.c' line='4951' column='1'/>
+      <parameter type-id='type-id-9' name='base64WhiteSpace' filepath='Objects/unicodeobject.c' line='4952' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4953' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeUTF7Stateful' mangled-name='PyUnicode_DecodeUTF7Stateful' filepath='Objects/unicodeobject.c' line='4752' 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='4752' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='4753' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='4753' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4754' column='1'/>
       <parameter type-id='type-id-125' name='consumed' filepath='Objects/unicodeobject.c' line='4755' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeUTF7' mangled-name='PyUnicode_DecodeUTF7' filepath='Objects/unicodeobject.c' line='4737' 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='7007' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='7008' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7009' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='7056' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='7057' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7058' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_GetDefaultEncoding' mangled-name='PyUnicode_GetDefaultEncoding' filepath='Objects/unicodeobject.c' line='4388' 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='4365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_WriteChar'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='4365' column='1'/>
-      <parameter type-id='type-id-30' name='index' filepath='Objects/unicodeobject.c' line='4365' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4365' column='1'/>
+      <parameter type-id='type-id-31' name='index' filepath='Objects/unicodeobject.c' line='4365' column='1'/>
       <parameter type-id='type-id-450' name='ch' filepath='Objects/unicodeobject.c' line='4365' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicode_ReadChar' mangled-name='PyUnicode_ReadChar' filepath='Objects/unicodeobject.c' line='4343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_ReadChar'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='4343' column='1'/>
-      <parameter type-id='type-id-30' name='index' filepath='Objects/unicodeobject.c' line='4343' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4343' column='1'/>
+      <parameter type-id='type-id-31' name='index' filepath='Objects/unicodeobject.c' line='4343' column='1'/>
       <return type-id='type-id-450'/>
     </function-decl>
     <function-decl name='PyUnicode_GetLength' mangled-name='PyUnicode_GetLength' filepath='Objects/unicodeobject.c' line='4331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetLength'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2342' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4331' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyUnicode_GetSize' mangled-name='PyUnicode_GetSize' filepath='Objects/unicodeobject.c' line='4312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetSize'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='4312' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_AsUnicode' mangled-name='_PyUnicode_AsUnicode' filepath='Objects/unicodeobject.c' line='4297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsUnicode'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='4297' column='1'/>
-      <return type-id='type-id-438'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4312' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUnicode' mangled-name='PyUnicode_AsUnicode' filepath='Objects/unicodeobject.c' line='4291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicode'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='4291' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4291' column='1'/>
       <return type-id='type-id-515'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUnicodeAndSize' mangled-name='PyUnicode_AsUnicodeAndSize' filepath='Objects/unicodeobject.c' line='4252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeAndSize'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='4252' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4252' column='1'/>
       <parameter type-id='type-id-125' name='size' filepath='Objects/unicodeobject.c' line='4252' column='1'/>
       <return type-id='type-id-515'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUTF8' mangled-name='PyUnicode_AsUTF8' filepath='Objects/unicodeobject.c' line='4246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8'>
-      <parameter type-id='type-id-15' name='ob' filepath='Objects/exceptions.c' line='368' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4246' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUTF8AndSize' mangled-name='PyUnicode_AsUTF8AndSize' filepath='Objects/unicodeobject.c' line='4225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8AndSize'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='4225' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4225' column='1'/>
       <parameter type-id='type-id-125' name='psize' filepath='Objects/unicodeobject.c' line='4225' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
     <function-decl name='PyUnicode_FSDecoder' mangled-name='PyUnicode_FSDecoder' filepath='Objects/unicodeobject.c' line='4152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FSDecoder'>
-      <parameter type-id='type-id-15' name='arg' filepath='Objects/unicodeobject.c' line='4152' column='1'/>
-      <parameter type-id='type-id-20' name='addr' filepath='Objects/unicodeobject.c' line='4152' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='arg' filepath='Objects/unicodeobject.c' line='4152' column='1'/>
+      <parameter type-id='type-id-21' name='addr' filepath='Objects/unicodeobject.c' line='4152' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicode_FSConverter' mangled-name='PyUnicode_FSConverter' filepath='Objects/unicodeobject.c' line='4112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FSConverter'>
-      <parameter type-id='type-id-15' name='arg' filepath='Objects/unicodeobject.c' line='4112' column='1'/>
-      <parameter type-id='type-id-20' name='addr' filepath='Objects/unicodeobject.c' line='4112' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='arg' filepath='Objects/unicodeobject.c' line='4112' column='1'/>
+      <parameter type-id='type-id-21' name='addr' filepath='Objects/unicodeobject.c' line='4112' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeFSDefaultAndSize' mangled-name='PyUnicode_DecodeFSDefaultAndSize' filepath='Objects/unicodeobject.c' line='4076' 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='4076' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='4076' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='4076' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeFSDefault' mangled-name='PyUnicode_DecodeFSDefault' filepath='Objects/unicodeobject.c' line='4070' 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='15841' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='4070' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeLocale' mangled-name='PyUnicode_DecodeLocale' filepath='Objects/unicodeobject.c' line='4061' 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='196' column='1'/>
-      <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='196' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='4061' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4061' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_DecodeLocaleAndSize' mangled-name='PyUnicode_DecodeLocaleAndSize' filepath='Objects/unicodeobject.c' line='4053' 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='4053' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Objects/unicodeobject.c' line='4053' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Objects/unicodeobject.c' line='4053' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4054' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_AsEncodedUnicode' mangled-name='PyUnicode_AsEncodedUnicode' filepath='Objects/unicodeobject.c' line='3973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedUnicode'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='3973' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3973' column='1'/>
       <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3974' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3975' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_AsEncodedString' mangled-name='PyUnicode_AsEncodedString' filepath='Objects/unicodeobject.c' line='3873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedString'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='3873' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3874' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3875' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_EncodeFSDefault' mangled-name='PyUnicode_EncodeFSDefault' filepath='Objects/unicodeobject.c' line='3839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeFSDefault'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2793' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3839' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_EncodeLocale' mangled-name='PyUnicode_EncodeLocale' filepath='Objects/unicodeobject.c' line='3832' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeLocale'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='3832' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3832' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3832' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_AsEncodedObject' mangled-name='PyUnicode_AsEncodedObject' filepath='Objects/unicodeobject.c' line='3750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedObject'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='3973' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3974' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3975' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3750' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3751' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3752' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_Encode' mangled-name='PyUnicode_Encode' filepath='Objects/unicodeobject.c' line='3734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Encode'>
       <parameter type-id='type-id-438' name='s' filepath='Objects/unicodeobject.c' line='3734' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='3735' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='3735' column='1'/>
       <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3736' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3737' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_AsDecodedUnicode' mangled-name='PyUnicode_AsDecodedUnicode' filepath='Objects/unicodeobject.c' line='3695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsDecodedUnicode'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='3973' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3974' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3975' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3695' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3696' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3697' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_AsDecodedObject' mangled-name='PyUnicode_AsDecodedObject' filepath='Objects/unicodeobject.c' line='3673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsDecodedObject'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='3673' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3673' column='1'/>
       <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3674' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3675' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Decode' mangled-name='PyUnicode_Decode' filepath='Objects/unicodeobject.c' line='3583' 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='3583' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='3584' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3585' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3586' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_FromEncodedObject' mangled-name='PyUnicode_FromEncodedObject' filepath='Objects/unicodeobject.c' line='3481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromEncodedObject'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/unicodeobject.c' line='3481' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/unicodeobject.c' line='3481' column='1'/>
       <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3482' column='1'/>
       <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3483' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_FromObject' mangled-name='PyUnicode_FromObject' filepath='Objects/unicodeobject.c' line='3459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromObject'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_FromOrdinal' mangled-name='PyUnicode_FromOrdinal' filepath='Objects/unicodeobject.c' line='3447' 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='3447' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicode_WideCharString_Opt_Converter' mangled-name='_PyUnicode_WideCharString_Opt_Converter' filepath='Objects/unicodeobject.c' line='3411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_WideCharString_Opt_Converter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/unicodeobject.c' line='3411' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/unicodeobject.c' line='3411' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyUnicode_WideCharString_Converter' mangled-name='_PyUnicode_WideCharString_Converter' filepath='Objects/unicodeobject.c' line='3379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_WideCharString_Converter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/unicodeobject.c' line='3411' column='1'/>
+      <parameter type-id='type-id-21' name='ptr' filepath='Objects/unicodeobject.c' line='3411' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicode_AsWideCharString' mangled-name='PyUnicode_AsWideCharString' filepath='Objects/unicodeobject.c' line='3331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsWideCharString'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='3331' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3331' column='1'/>
       <parameter type-id='type-id-125' name='size' filepath='Objects/unicodeobject.c' line='3332' column='1'/>
       <return type-id='type-id-325'/>
     </function-decl>
     <function-decl name='PyUnicode_AsWideChar' mangled-name='PyUnicode_AsWideChar' filepath='Objects/unicodeobject.c' line='3289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsWideChar'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='3289' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3289' column='1'/>
       <parameter type-id='type-id-325' name='w' filepath='Objects/unicodeobject.c' line='3290' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='3291' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='3291' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='PyUnicode_FromFormat' mangled-name='PyUnicode_FromFormat' filepath='Objects/unicodeobject.c' line='3179' 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='410' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_FromFormatV' mangled-name='PyUnicode_FromFormatV' filepath='Objects/unicodeobject.c' line='3122' 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='3122' column='1'/>
       <parameter type-id='type-id-217' name='vargs' filepath='Objects/unicodeobject.c' line='3122' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUCS4Copy' mangled-name='PyUnicode_AsUCS4Copy' filepath='Objects/unicodeobject.c' line='2746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUCS4Copy'>
-      <parameter type-id='type-id-15' name='string' filepath='Objects/unicodeobject.c' line='2746' column='1'/>
+      <parameter type-id='type-id-16' name='string' filepath='Objects/unicodeobject.c' line='2746' column='1'/>
       <return type-id='type-id-514'/>
     </function-decl>
     <function-decl name='PyUnicode_AsUCS4' mangled-name='PyUnicode_AsUCS4' filepath='Objects/unicodeobject.c' line='2735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUCS4'>
-      <parameter type-id='type-id-15' name='string' filepath='Objects/unicodeobject.c' line='2735' column='1'/>
+      <parameter type-id='type-id-16' name='string' filepath='Objects/unicodeobject.c' line='2735' column='1'/>
       <parameter type-id='type-id-514' name='target' filepath='Objects/unicodeobject.c' line='2735' column='1'/>
-      <parameter type-id='type-id-30' name='targetsize' filepath='Objects/unicodeobject.c' line='2735' column='1'/>
-      <parameter type-id='type-id-8' name='copy_null' filepath='Objects/unicodeobject.c' line='2736' column='1'/>
+      <parameter type-id='type-id-31' name='targetsize' filepath='Objects/unicodeobject.c' line='2735' column='1'/>
+      <parameter type-id='type-id-9' name='copy_null' filepath='Objects/unicodeobject.c' line='2736' column='1'/>
       <return type-id='type-id-514'/>
     </function-decl>
     <function-decl name='_PyUnicode_Copy' mangled-name='_PyUnicode_Copy' filepath='Objects/unicodeobject.c' line='2612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_Copy'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='x' filepath='Objects/bytesobject.c' line='2818' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicode_FindMaxChar' mangled-name='_PyUnicode_FindMaxChar' filepath='Objects/unicodeobject.c' line='2529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FindMaxChar'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='2529' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Objects/unicodeobject.c' line='2529' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Objects/unicodeobject.c' line='2529' column='1'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='2529' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='2529' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/unicodeobject.c' line='2529' column='1'/>
       <return type-id='type-id-450'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromKindAndData' mangled-name='PyUnicode_FromKindAndData' filepath='Objects/unicodeobject.c' line='2509' 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='2509' column='1'/>
-      <parameter type-id='type-id-20' name='buffer' filepath='Objects/unicodeobject.c' line='2509' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='2509' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyUnicode_FromASCII' mangled-name='_PyUnicode_FromASCII' filepath='Objects/unicodeobject.c' line='2398' 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='106' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/bytearrayobject.c' line='106' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
     <function-decl name='_PyUnicode_FromId' mangled-name='_PyUnicode_FromId' filepath='Objects/unicodeobject.c' line='2319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FromId'>
       <parameter type-id='type-id-453' name='id' filepath='Objects/unicodeobject.c' line='2319' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_FromString' mangled-name='PyUnicode_FromString' filepath='Objects/unicodeobject.c' line='2307' 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='15841' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='4070' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_FromStringAndSize' mangled-name='PyUnicode_FromStringAndSize' filepath='Objects/unicodeobject.c' line='2284' 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='2284' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='2284' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='2284' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_FromWideChar' mangled-name='PyUnicode_FromWideChar' filepath='Objects/unicodeobject.c' line='2202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromWideChar'>
       <parameter type-id='type-id-478' name='u' filepath='Objects/unicodeobject.c' line='2202' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='2202' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='2202' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyUnicode_FromUnicode' mangled-name='PyUnicode_FromUnicode' filepath='Objects/unicodeobject.c' line='2180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromUnicode'>
       <parameter type-id='type-id-438' name='u' filepath='Objects/unicodeobject.c' line='2180' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='2180' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyUnicode_Resize' mangled-name='PyUnicode_Resize' filepath='Objects/unicodeobject.c' line='2061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Resize'>
-      <parameter type-id='type-id-86' name='p_unicode' filepath='Objects/unicodeobject.c' line='2061' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='Objects/unicodeobject.c' line='2061' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='2180' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicode_Ready' mangled-name='_PyUnicode_Ready' filepath='Objects/unicodeobject.c' line='1802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_Ready'>
-      <parameter type-id='type-id-15' name='unicode' filepath='Objects/unicodeobject.c' line='1802' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='1802' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyUnicode_CopyCharacters' mangled-name='PyUnicode_CopyCharacters' filepath='Objects/unicodeobject.c' line='1701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_CopyCharacters'>
-      <parameter type-id='type-id-15' name='to' filepath='Objects/unicodeobject.c' line='1701' column='1'/>
-      <parameter type-id='type-id-30' name='to_start' filepath='Objects/unicodeobject.c' line='1701' column='1'/>
-      <parameter type-id='type-id-15' name='from' filepath='Objects/unicodeobject.c' line='1702' column='1'/>
-      <parameter type-id='type-id-30' name='from_start' filepath='Objects/unicodeobject.c' line='1702' column='1'/>
-      <parameter type-id='type-id-30' name='how_many' filepath='Objects/unicodeobject.c' line='1703' column='1'/>
-      <return type-id='type-id-30'/>
+      <parameter type-id='type-id-16' name='to' filepath='Objects/unicodeobject.c' line='1701' column='1'/>
+      <parameter type-id='type-id-31' name='to_start' filepath='Objects/unicodeobject.c' line='1701' column='1'/>
+      <parameter type-id='type-id-16' name='from' filepath='Objects/unicodeobject.c' line='1702' column='1'/>
+      <parameter type-id='type-id-31' name='from_start' filepath='Objects/unicodeobject.c' line='1702' column='1'/>
+      <parameter type-id='type-id-31' name='how_many' filepath='Objects/unicodeobject.c' line='1703' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
     <function-decl name='_PyUnicode_FastCopyCharacters' mangled-name='_PyUnicode_FastCopyCharacters' filepath='Objects/unicodeobject.c' line='1693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastCopyCharacters'>
-      <parameter type-id='type-id-15' name='to' filepath='Objects/unicodeobject.c' line='1694' column='1'/>
-      <parameter type-id='type-id-30' name='to_start' filepath='Objects/unicodeobject.c' line='1694' column='1'/>
-      <parameter type-id='type-id-15' name='from' filepath='Objects/unicodeobject.c' line='1695' column='1'/>
-      <parameter type-id='type-id-30' name='from_start' filepath='Objects/unicodeobject.c' line='1695' column='1'/>
-      <parameter type-id='type-id-30' name='how_many' filepath='Objects/unicodeobject.c' line='1695' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='to' filepath='Objects/unicodeobject.c' line='1694' column='1'/>
+      <parameter type-id='type-id-31' name='to_start' filepath='Objects/unicodeobject.c' line='1694' column='1'/>
+      <parameter type-id='type-id-16' name='from' filepath='Objects/unicodeobject.c' line='1695' column='1'/>
+      <parameter type-id='type-id-31' name='from_start' filepath='Objects/unicodeobject.c' line='1695' column='1'/>
+      <parameter type-id='type-id-31' name='how_many' filepath='Objects/unicodeobject.c' line='1695' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyUnicode_New' mangled-name='PyUnicode_New' filepath='Objects/unicodeobject.c' line='1388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_New'>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/unicodeobject.c' line='1388' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='1388' column='1'/>
       <parameter type-id='type-id-450' name='maxchar' filepath='Objects/unicodeobject.c' line='1388' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyUnicode_CheckConsistency' mangled-name='_PyUnicode_CheckConsistency' filepath='Objects/unicodeobject.c' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_CheckConsistency'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/unicodeobject.c' line='489' column='1'/>
-      <parameter type-id='type-id-8' name='check_content' filepath='Objects/unicodeobject.c' line='489' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='op' filepath='Objects/unicodeobject.c' line='489' column='1'/>
+      <parameter type-id='type-id-9' name='check_content' filepath='Objects/unicodeobject.c' line='489' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_Py_GetErrorHandler' mangled-name='_Py_GetErrorHandler' filepath='Objects/unicodeobject.c' line='385' 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='385' column='1'/>
       <return type-id='type-id-366'/>
     </function-decl>
+    <function-decl name='PyUnicode_RichCompare' mangled-name='PyUnicode_RichCompare' filepath='Objects/unicodeobject.c' line='11613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RichCompare'>
+      <parameter type-id='type-id-16' name='left' filepath='Objects/unicodeobject.c' line='11613' column='1'/>
+      <parameter type-id='type-id-16' name='right' filepath='Objects/unicodeobject.c' line='11613' column='1'/>
+      <parameter type-id='type-id-9' name='op' filepath='Objects/unicodeobject.c' line='11613' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Contains' mangled-name='PyUnicode_Contains' filepath='Objects/unicodeobject.c' line='11658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Contains'>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='11658' column='1'/>
+      <parameter type-id='type-id-16' name='substr' filepath='Objects/unicodeobject.c' line='11658' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Resize' mangled-name='PyUnicode_Resize' filepath='Objects/unicodeobject.c' line='2061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Resize'>
+      <parameter type-id='type-id-86' name='p_unicode' filepath='Objects/unicodeobject.c' line='2061' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='Objects/unicodeobject.c' line='2061' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FromASCII' mangled-name='_PyUnicode_FromASCII' filepath='Objects/unicodeobject.c' line='2398' 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='2398' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='2398' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromKindAndData' mangled-name='PyUnicode_FromKindAndData' filepath='Objects/unicodeobject.c' line='2509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromKindAndData'>
+      <parameter type-id='type-id-9' name='kind' filepath='Objects/unicodeobject.c' line='2509' column='1'/>
+      <parameter type-id='type-id-21' name='buffer' filepath='Objects/unicodeobject.c' line='2509' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='2509' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromOrdinal' mangled-name='PyUnicode_FromOrdinal' filepath='Objects/unicodeobject.c' line='3447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromOrdinal'>
+      <parameter type-id='type-id-9' name='ordinal' filepath='Objects/unicodeobject.c' line='3447' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromObject' mangled-name='PyUnicode_FromObject' filepath='Objects/unicodeobject.c' line='3459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromObject'>
+      <parameter type-id='type-id-16' name='obj' filepath='Objects/unicodeobject.c' line='3459' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_AsUnicode' mangled-name='_PyUnicode_AsUnicode' filepath='Objects/unicodeobject.c' line='4297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsUnicode'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='4297' column='1'/>
+      <return type-id='type-id-438'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_AsLatin1String' mangled-name='_PyUnicode_AsLatin1String' filepath='Objects/unicodeobject.c' line='7353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsLatin1String'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='7353' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7353' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_AsASCIIString' mangled-name='_PyUnicode_AsASCIIString' filepath='Objects/unicodeobject.c' line='7494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsASCIIString'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='7494' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7494' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsEncodedString' mangled-name='PyUnicode_AsEncodedString' filepath='Objects/unicodeobject.c' line='3873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedString'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='3873' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3874' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3875' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EqualToASCIIString' mangled-name='_PyUnicode_EqualToASCIIString' filepath='Objects/unicodeobject.c' line='11546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIString'>
+      <parameter type-id='type-id-16' name='unicode' filepath='Objects/unicodeobject.c' line='11546' column='1'/>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='11546' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Partition' mangled-name='PyUnicode_Partition' filepath='Objects/unicodeobject.c' line='13488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Partition'>
+      <parameter type-id='type-id-16' name='str_obj' filepath='Objects/unicodeobject.c' line='13488' column='1'/>
+      <parameter type-id='type-id-16' name='sep_obj' filepath='Objects/unicodeobject.c' line='13488' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_RPartition' mangled-name='PyUnicode_RPartition' filepath='Objects/unicodeobject.c' line='13540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RPartition'>
+      <parameter type-id='type-id-16' name='str_obj' filepath='Objects/unicodeobject.c' line='13488' column='1'/>
+      <parameter type-id='type-id-16' name='sep_obj' filepath='Objects/unicodeobject.c' line='13488' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteSubstring' mangled-name='_PyUnicodeWriter_WriteSubstring' filepath='Objects/unicodeobject.c' line='14229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteSubstring'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14229' column='1'/>
+      <parameter type-id='type-id-16' name='str' filepath='Objects/unicodeobject.c' line='14229' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Objects/unicodeobject.c' line='14230' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Objects/unicodeobject.c' line='14230' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_Finish' mangled-name='_PyUnicodeWriter_Finish' filepath='Objects/unicodeobject.c' line='14338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Finish'>
+      <parameter type-id='type-id-451' name='writer' filepath='Objects/unicodeobject.c' line='14338' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Decode' mangled-name='PyUnicode_Decode' filepath='Objects/unicodeobject.c' line='3583' 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='3583' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Objects/unicodeobject.c' line='3584' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3585' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3586' column='1'/>
+      <return type-id='type-id-16'/>
+    </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='_PyInterpreterState_GetConfig' mangled-name='_PyInterpreterState_GetConfig' filepath='./Include/cpython/pystate.h' line='213' 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='37' 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='57' 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='20' 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='178' 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='634' 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='1125' 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='1069' 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='1073' 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_IsWhitespace' mangled-name='_PyUnicode_IsWhitespace' filepath='./Include/cpython/unicodeobject.h' line='1077' 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='1081' 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='1117' 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='1121' 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='222' 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='276' 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='288' 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='188' 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='305' 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='219' 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='274' 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='286' 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='297' 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='PyMem_RawMalloc' mangled-name='PyMem_RawMalloc' filepath='./Include/cpython/pymem.h' line='5' 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='275' 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='287' 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='301' 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='248' 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='263' 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='87' 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='103' 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='195' 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='1107' 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='1097' 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='1061' 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='1057' 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='./Include/cpython/unicodeobject.h' line='1145' 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='./Include/cpython/unicodeobject.h' line='1141' 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='./Include/cpython/unicodeobject.h' line='1137' 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='1153' 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='1065' 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='1112' 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='1102' 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='128' 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='134' 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='720' 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>
   </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
       <parameter type-id='type-id-514' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <parameter type-id='type-id-514' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-450' name='ch' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <parameter type-id='type-id-514' name='res' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <parameter type-id='type-id-514' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-450' name='ch' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <parameter type-id='type-id-514' name='res' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <parameter type-id='type-id-514' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-450' name='ch' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <parameter type-id='type-id-514' name='res' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='202' column='1'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='130' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='130' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-450' name='ch' filepath='Objects/unicodectype.c' line='202' column='1'/>
     <qualified-type-def type-id='type-id-450' const='yes' id='type-id-516'/>
     <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-516' name='ch' filepath='Objects/unicodetype_db.h' line='6249' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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-516' name='ch' filepath='Objects/unicodetype_db.h' line='6249' column='1'/>
-      <return type-id='type-id-8'/>
-    </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-450' name='ch' filepath='Objects/unicodetype_db.h' line='4187' column='1'/>
-      <return type-id='type-id-371'/>
+      <return type-id='type-id-9'/>
     </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='Objects/unionobject.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='_PyUnion_Type' type-id='type-id-149' visibility='default' filepath='./Include/internal/pycore_unionobject.h' line='11' column='1'/>
+    <function-decl name='_Py_make_parameters' mangled-name='_Py_make_parameters' filepath='./Include/internal/pycore_unionobject.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_subs_parameters' mangled-name='_Py_subs_parameters' filepath='./Include/internal/pycore_unionobject.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_IsSubclass' mangled-name='PyObject_IsSubclass' filepath='./Include/abstract.h' line='862' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_IsInstance' mangled-name='PyObject_IsInstance' filepath='./Include/abstract.h' line='859' 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-149' 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-149' 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-149' 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-15' name='object' filepath='Objects/weakrefobject.c' line='967' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' 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-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <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-15' name='obj' filepath='Objects/abstract.c' line='767' column='1'/>
-      <parameter type-id='type-id-15' name='format_spec' filepath='Objects/abstract.c' line='767' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='ob' filepath='Objects/weakrefobject.c' line='870' column='1'/>
+      <parameter type-id='type-id-16' name='callback' filepath='Objects/weakrefobject.c' line='870' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <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-15' name='ob' filepath='Objects/weakrefobject.c' line='811' column='1'/>
-      <parameter type-id='type-id-15' name='callback' filepath='Objects/weakrefobject.c' line='811' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='ob' filepath='Objects/weakrefobject.c' line='811' column='1'/>
+      <parameter type-id='type-id-16' name='callback' filepath='Objects/weakrefobject.c' line='811' column='1'/>
+      <return type-id='type-id-16'/>
     </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-517'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/weakrefobject.h' line='17' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-69' 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-15' visibility='default' filepath='./Include/weakrefobject.h' line='23' column='1'/>
+        <var-decl name='wr_object' type-id='type-id-16' 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-15' visibility='default' filepath='./Include/weakrefobject.h' line='26' column='1'/>
+        <var-decl name='wr_callback' type-id='type-id-16' 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-117' visibility='default' filepath='./Include/weakrefobject.h' line='31' column='1'/>
     <pointer-type-def type-id='type-id-519' size-in-bits='64' id='type-id-518'/>
     <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-518' name='self' filepath='Objects/weakrefobject.c' line='92' column='1'/>
-      <return type-id='type-id-69'/>
+      <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-518' name='head' filepath='Objects/weakrefobject.c' line='11' column='1'/>
-      <return type-id='type-id-30'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceMatrixMultiply' mangled-name='PyNumber_InPlaceMatrixMultiply' filepath='./Include/abstract.h' line='569' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_MatrixMultiply' mangled-name='PyNumber_MatrixMultiply' filepath='./Include/abstract.h' line='436' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceOr' mangled-name='PyNumber_InPlaceOr' filepath='./Include/abstract.h' line='628' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceXor' mangled-name='PyNumber_InPlaceXor' filepath='./Include/abstract.h' line='622' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceAnd' mangled-name='PyNumber_InPlaceAnd' filepath='./Include/abstract.h' line='616' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceRshift' mangled-name='PyNumber_InPlaceRshift' filepath='./Include/abstract.h' line='610' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceLshift' mangled-name='PyNumber_InPlaceLshift' filepath='./Include/abstract.h' line='604' 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='./Include/abstract.h' line='597' 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='./Include/abstract.h' line='590' 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='583' 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='576' 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='565' 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='559' 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='553' 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='510' 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='505' 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='499' 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='493' 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='./Include/abstract.h' line='488' 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='./Include/abstract.h' line='483' 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='./Include/abstract.h' line='478' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Power' mangled-name='PyNumber_Power' filepath='./Include/abstract.h' line='467' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Divmod' mangled-name='PyNumber_Divmod' filepath='./Include/abstract.h' line='461' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_TrueDivide' mangled-name='PyNumber_TrueDivide' filepath='./Include/abstract.h' line='449' 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='1389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWarnings_Init'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyErr_WarnExplicitFormat' mangled-name='PyErr_WarnExplicitFormat' filepath='Python/_warnings.c' line='1249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicitFormat'>
-      <parameter type-id='type-id-15' name='category' filepath='Python/_warnings.c' line='1249' column='1'/>
+      <parameter type-id='type-id-16' name='category' filepath='Python/_warnings.c' line='1249' column='1'/>
       <parameter type-id='type-id-3' name='filename_str' filepath='Python/_warnings.c' line='1250' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1250' column='1'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/_warnings.c' line='1250' column='1'/>
       <parameter type-id='type-id-3' name='module_str' filepath='Python/_warnings.c' line='1251' column='1'/>
-      <parameter type-id='type-id-15' name='registry' filepath='Python/_warnings.c' line='1251' column='1'/>
+      <parameter type-id='type-id-16' name='registry' filepath='Python/_warnings.c' line='1251' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1252' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyErr_WarnExplicit' mangled-name='PyErr_WarnExplicit' filepath='Python/_warnings.c' line='1221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicit'>
-      <parameter type-id='type-id-15' name='category' filepath='Python/_warnings.c' line='1221' column='1'/>
+      <parameter type-id='type-id-16' name='category' filepath='Python/_warnings.c' line='1221' column='1'/>
       <parameter type-id='type-id-3' name='text' filepath='Python/_warnings.c' line='1221' column='1'/>
       <parameter type-id='type-id-3' name='filename_str' filepath='Python/_warnings.c' line='1222' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1222' column='1'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/_warnings.c' line='1222' column='1'/>
       <parameter type-id='type-id-3' name='module_str' filepath='Python/_warnings.c' line='1223' column='1'/>
-      <parameter type-id='type-id-15' name='registry' filepath='Python/_warnings.c' line='1223' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='registry' filepath='Python/_warnings.c' line='1223' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyErr_WarnExplicitObject' mangled-name='PyErr_WarnExplicitObject' filepath='Python/_warnings.c' line='1205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicitObject'>
-      <parameter type-id='type-id-15' name='category' filepath='Python/_warnings.c' line='1205' column='1'/>
-      <parameter type-id='type-id-15' name='message' filepath='Python/_warnings.c' line='1205' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/_warnings.c' line='1206' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1206' column='1'/>
-      <parameter type-id='type-id-15' name='module' filepath='Python/_warnings.c' line='1207' column='1'/>
-      <parameter type-id='type-id-15' name='registry' filepath='Python/_warnings.c' line='1207' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='category' filepath='Python/_warnings.c' line='1205' column='1'/>
+      <parameter type-id='type-id-16' name='message' filepath='Python/_warnings.c' line='1205' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/_warnings.c' line='1206' column='1'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/_warnings.c' line='1206' column='1'/>
+      <parameter type-id='type-id-16' name='module' filepath='Python/_warnings.c' line='1207' column='1'/>
+      <parameter type-id='type-id-16' name='registry' filepath='Python/_warnings.c' line='1207' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyErr_WarnEx' mangled-name='PyErr_WarnEx' filepath='Python/_warnings.c' line='1181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnEx'>
-      <parameter type-id='type-id-15' name='category' filepath='Python/_warnings.c' line='1181' column='1'/>
+      <parameter type-id='type-id-16' name='category' filepath='Python/_warnings.c' line='1181' column='1'/>
       <parameter type-id='type-id-3' name='text' filepath='Python/_warnings.c' line='1181' column='1'/>
-      <parameter type-id='type-id-30' name='stack_level' filepath='Python/_warnings.c' line='1181' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-31' name='stack_level' filepath='Python/_warnings.c' line='1181' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyErr_ResourceWarning' mangled-name='PyErr_ResourceWarning' filepath='Python/_warnings.c' line='1162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ResourceWarning'>
-      <parameter type-id='type-id-15' name='source' filepath='Python/_warnings.c' line='1162' column='1'/>
-      <parameter type-id='type-id-30' name='stack_level' filepath='Python/_warnings.c' line='1162' column='1'/>
+      <parameter type-id='type-id-16' name='source' filepath='Python/_warnings.c' line='1162' column='1'/>
+      <parameter type-id='type-id-31' name='stack_level' filepath='Python/_warnings.c' line='1162' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1163' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyErr_WarnFormat' mangled-name='PyErr_WarnFormat' filepath='Python/_warnings.c' line='1128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnFormat'>
-      <parameter type-id='type-id-15' name='source' filepath='Python/_warnings.c' line='1162' column='1'/>
-      <parameter type-id='type-id-30' name='stack_level' filepath='Python/_warnings.c' line='1162' column='1'/>
+      <parameter type-id='type-id-16' name='source' filepath='Python/_warnings.c' line='1162' column='1'/>
+      <parameter type-id='type-id-31' name='stack_level' filepath='Python/_warnings.c' line='1162' column='1'/>
       <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1163' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </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='11998' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__ast'>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyModule_AddObjectRef' mangled-name='PyModule_AddObjectRef' filepath='./Include/modsupport.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_Splitlines' mangled-name='PyUnicode_Splitlines' filepath='./Include/unicodeobject.h' line='862' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyFrame_GetBack' mangled-name='PyFrame_GetBack' filepath='./Include/cpython/frameobject.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_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='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='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='_PySys_GetObjectId' mangled-name='_PySys_GetObjectId' filepath='./Include/cpython/sysmodule.h' line='5' 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='./Include/cpython/traceback.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_IsFinalizing' mangled-name='_Py_IsFinalizing' filepath='./Include/cpython/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='PyUnicode_Contains' mangled-name='PyUnicode_Contains' filepath='./Include/unicodeobject.h' line='1033' 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='11998' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__ast'>
+      <return type-id='type-id-16'/>
+    </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>
+    <function-decl name='PyType_FromSpec' mangled-name='PyType_FromSpec' filepath='./Include/object.h' line='230' 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='259' 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='./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='PyModule_AddIntConstant' mangled-name='PyModule_AddIntConstant' filepath='./Include/modsupport.h' line='148' 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='762' 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='235' 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='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>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/ast_opt.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyAST_GetDocString' mangled-name='_PyAST_GetDocString' filepath='./Include/internal/pycore_ast.h' line='850' 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_unparse.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyUnicode_Find' mangled-name='PyUnicode_Find' filepath='./Include/unicodeobject.h' line='942' 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='./Include/unicodeobject.h' line='973' 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-149' 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-149' 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-149' 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='229' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyObject_GetAIter' mangled-name='PyObject_GetAIter' filepath='./Include/abstract.h' line='377' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyMapping_SetItemString' mangled-name='PyMapping_SetItemString' filepath='./Include/abstract.h' line='855' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyType_CalculateMetaclass' mangled-name='_PyType_CalculateMetaclass' 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='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='PyAnextAwaitable_New' mangled-name='PyAnextAwaitable_New' filepath='Python/bltinmodule.c' line='1616' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_SourceAsString' mangled-name='_Py_SourceAsString' filepath='./Include/cpython/pythonrun.h' line='73' 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='./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='PyRun_StringFlags' mangled-name='PyRun_StringFlags' filepath='./Include/cpython/pythonrun.h' line='44' 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='./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='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='_PyArena_New' mangled-name='_PyArena_New' filepath='./Include/internal/pycore_pyarena.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyAST_obj2mod' mangled-name='PyAST_obj2mod' filepath='./Include/internal/pycore_ast.h' line='839' 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='./Include/internal/pycore_ast.h' line='842' 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='./Include/internal/pycore_pyarena.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Compile' mangled-name='_PyAST_Compile' filepath='./Include/internal/pycore_compile.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyAST_Check' mangled-name='PyAST_Check' filepath='./Include/internal/pycore_ast.h' line='840' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_CompileStringObject' mangled-name='Py_CompileStringObject' filepath='./Include/cpython/pythonrun.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_FSDecoder' mangled-name='PyUnicode_FSDecoder' filepath='./Include/unicodeobject.h' line='773' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromOrdinal' mangled-name='PyUnicode_FromOrdinal' filepath='./Include/unicodeobject.h' line='332' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCallIter_New' mangled-name='PyCallIter_New' filepath='./Include/iterobject.h' line='21' 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='./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='Python/ceval.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='Py_LeaveRecursiveCall' mangled-name='Py_LeaveRecursiveCall' filepath='Python/ceval.c' line='6520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_LeaveRecursiveCall'>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='Py_EnterRecursiveCall' mangled-name='Py_EnterRecursiveCall' filepath='Python/ceval.c' line='6513' 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='6513' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_EnterRecursiveCall' mangled-name='Py_EnterRecursiveCall' filepath='Python/ceval.c' line='6521' 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='6521' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_PyEval_RequestCodeExtraIndex' mangled-name='_PyEval_RequestCodeExtraIndex' filepath='Python/ceval.c' line='6435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_RequestCodeExtraIndex'>
-      <parameter type-id='type-id-64' name='free' filepath='Python/ceval.c' line='6435' column='1'/>
-      <return type-id='type-id-30'/>
+    <function-decl name='_PyEval_RequestCodeExtraIndex' mangled-name='_PyEval_RequestCodeExtraIndex' filepath='Python/ceval.c' line='6443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_RequestCodeExtraIndex'>
+      <parameter type-id='type-id-65' name='free' filepath='Python/ceval.c' line='6443' column='1'/>
+      <return type-id='type-id-31'/>
     </function-decl>
-    <function-decl name='_PyEval_SliceIndexNotNone' mangled-name='_PyEval_SliceIndexNotNone' filepath='Python/ceval.c' line='5972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndexNotNone'>
-      <parameter type-id='type-id-15' name='exc' filepath='Objects/exceptions.c' line='1887' column='1'/>
-      <parameter type-id='type-id-125' name='end' filepath='Objects/exceptions.c' line='1887' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_SliceIndexNotNone' mangled-name='_PyEval_SliceIndexNotNone' filepath='Python/ceval.c' line='5980' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndexNotNone'>
+      <parameter type-id='type-id-16' name='v' filepath='Python/ceval.c' line='5980' column='1'/>
+      <parameter type-id='type-id-125' name='pi' filepath='Python/ceval.c' line='5980' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_PyEval_SliceIndex' mangled-name='_PyEval_SliceIndex' filepath='Python/ceval.c' line='5950' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndex'>
-      <parameter type-id='type-id-15' name='v' filepath='Python/ceval.c' line='5950' column='1'/>
-      <parameter type-id='type-id-125' name='pi' filepath='Python/ceval.c' line='5950' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_SliceIndex' mangled-name='_PyEval_SliceIndex' filepath='Python/ceval.c' line='5958' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndex'>
+      <parameter type-id='type-id-16' name='v' filepath='Python/ceval.c' line='5958' column='1'/>
+      <parameter type-id='type-id-125' name='pi' filepath='Python/ceval.c' line='5958' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyEval_GetFuncDesc' mangled-name='PyEval_GetFuncDesc' filepath='Python/ceval.c' line='5790' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncDesc'>
-      <parameter type-id='type-id-15' name='ob' filepath='Objects/exceptions.c' line='368' column='1'/>
+    <function-decl name='PyEval_GetFuncDesc' mangled-name='PyEval_GetFuncDesc' filepath='Python/ceval.c' line='5798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncDesc'>
+      <parameter type-id='type-id-16' name='func' filepath='Python/ceval.c' line='5798' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyEval_GetFuncName' mangled-name='PyEval_GetFuncName' filepath='Python/ceval.c' line='5777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncName'>
-      <parameter type-id='type-id-15' name='ob' filepath='Objects/exceptions.c' line='368' column='1'/>
+    <function-decl name='PyEval_GetFuncName' mangled-name='PyEval_GetFuncName' filepath='Python/ceval.c' line='5785' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncName'>
+      <parameter type-id='type-id-16' name='func' filepath='Python/ceval.c' line='5785' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-520' visibility='default' filepath='./Include/cpython/compile.h' line='24' column='1' id='type-id-521'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='cf_flags' type-id='type-id-8' visibility='default' filepath='./Include/cpython/compile.h' line='25' column='1'/>
+        <var-decl name='cf_flags' type-id='type-id-9' visibility='default' filepath='./Include/cpython/compile.h' line='25' 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/cpython/compile.h' line='26' column='1'/>
+        <var-decl name='cf_feature_version' type-id='type-id-9' visibility='default' filepath='./Include/cpython/compile.h' line='26' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='PyCompilerFlags' type-id='type-id-521' filepath='./Include/cpython/compile.h' line='27' column='1' id='type-id-520'/>
     <pointer-type-def type-id='type-id-520' size-in-bits='64' id='type-id-522'/>
-    <function-decl name='PyEval_MergeCompilerFlags' mangled-name='PyEval_MergeCompilerFlags' filepath='Python/ceval.c' line='5752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_MergeCompilerFlags'>
-      <parameter type-id='type-id-522' name='cf' filepath='Python/ceval.c' line='5752' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyEval_MergeCompilerFlags' mangled-name='PyEval_MergeCompilerFlags' filepath='Python/ceval.c' line='5760' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_MergeCompilerFlags'>
+      <parameter type-id='type-id-522' name='cf' filepath='Python/ceval.c' line='5760' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyEval_GetGlobals' mangled-name='PyEval_GetGlobals' filepath='Python/ceval.c' line='5739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetGlobals'>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyEval_GetGlobals' mangled-name='PyEval_GetGlobals' filepath='Python/ceval.c' line='5747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetGlobals'>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyEval_GetLocals' mangled-name='PyEval_GetLocals' filepath='Python/ceval.c' line='5721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetLocals'>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyEval_GetLocals' mangled-name='PyEval_GetLocals' filepath='Python/ceval.c' line='5729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetLocals'>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyEval_GetBuiltinId' mangled-name='_PyEval_GetBuiltinId' filepath='Python/ceval.c' line='5707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetBuiltinId'>
-      <parameter type-id='type-id-453' name='name' filepath='Python/ceval.c' line='5707' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyEval_GetBuiltinId' mangled-name='_PyEval_GetBuiltinId' filepath='Python/ceval.c' line='5715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetBuiltinId'>
+      <parameter type-id='type-id-453' name='name' filepath='Python/ceval.c' line='5715' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyEval_GetBuiltins' mangled-name='PyEval_GetBuiltins' filepath='Python/ceval.c' line='5699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetBuiltins'>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyEval_GetBuiltins' mangled-name='PyEval_GetBuiltins' filepath='Python/ceval.c' line='5707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetBuiltins'>
+      <return type-id='type-id-16'/>
     </function-decl>
     <class-decl name='_frame' size-in-bits='2880' is-struct='yes' visibility='default' filepath='./Include/cpython/frameobject.h' line='28' column='1' id='type-id-523'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-36' visibility='default' filepath='./Include/cpython/frameobject.h' line='29' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-37' visibility='default' filepath='./Include/cpython/frameobject.h' line='29' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
         <var-decl name='f_back' type-id='type-id-333' visibility='default' filepath='./Include/cpython/frameobject.h' line='30' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='f_code' type-id='type-id-422' visibility='default' filepath='./Include/cpython/frameobject.h' line='31' column='1'/>
+        <var-decl name='f_code' type-id='type-id-418' visibility='default' filepath='./Include/cpython/frameobject.h' line='31' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='f_builtins' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='32' column='1'/>
+        <var-decl name='f_builtins' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='32' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='f_globals' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='33' column='1'/>
+        <var-decl name='f_globals' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='33' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='f_locals' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='34' column='1'/>
+        <var-decl name='f_locals' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='34' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
         <var-decl name='f_valuestack' type-id='type-id-86' visibility='default' filepath='./Include/cpython/frameobject.h' line='35' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='f_trace' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='36' column='1'/>
+        <var-decl name='f_trace' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='36' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='f_stackdepth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='37' column='1'/>
+        <var-decl name='f_stackdepth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='37' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='672'>
         <var-decl name='f_trace_lines' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='38' column='1'/>
         <var-decl name='f_trace_opcodes' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='39' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='f_gen' type-id='type-id-15' visibility='default' filepath='./Include/cpython/frameobject.h' line='42' column='1'/>
+        <var-decl name='f_gen' type-id='type-id-16' visibility='default' filepath='./Include/cpython/frameobject.h' line='42' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='f_lasti' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='44' column='1'/>
+        <var-decl name='f_lasti' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='44' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='800'>
-        <var-decl name='f_lineno' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='45' column='1'/>
+        <var-decl name='f_lineno' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='45' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='f_iblock' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='46' column='1'/>
+        <var-decl name='f_iblock' type-id='type-id-9' visibility='default' filepath='./Include/cpython/frameobject.h' line='46' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='864'>
         <var-decl name='f_state' type-id='type-id-335' visibility='default' filepath='./Include/cpython/frameobject.h' line='47' column='1'/>
     </class-decl>
     <typedef-decl name='PyFrameObject' type-id='type-id-523' filepath='./Include/pyframe.h' line='12' column='1' id='type-id-524'/>
     <pointer-type-def type-id='type-id-524' size-in-bits='64' id='type-id-525'/>
-    <function-decl name='PyEval_GetFrame' mangled-name='PyEval_GetFrame' filepath='Python/ceval.c' line='5682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFrame'>
+    <function-decl name='PyEval_GetFrame' mangled-name='PyEval_GetFrame' filepath='Python/ceval.c' line='5690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFrame'>
       <return type-id='type-id-525'/>
     </function-decl>
-    <function-decl name='_PyEval_GetAsyncGenFinalizer' mangled-name='_PyEval_GetAsyncGenFinalizer' filepath='Python/ceval.c' line='5675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetAsyncGenFinalizer'>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyEval_GetAsyncGenFinalizer' mangled-name='_PyEval_GetAsyncGenFinalizer' filepath='Python/ceval.c' line='5683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetAsyncGenFinalizer'>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyEval_SetAsyncGenFinalizer' mangled-name='_PyEval_SetAsyncGenFinalizer' filepath='Python/ceval.c' line='5661' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetAsyncGenFinalizer'>
-      <parameter type-id='type-id-15' name='finalizer' filepath='Python/ceval.c' line='5661' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_SetAsyncGenFinalizer' mangled-name='_PyEval_SetAsyncGenFinalizer' filepath='Python/ceval.c' line='5669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetAsyncGenFinalizer'>
+      <parameter type-id='type-id-16' name='finalizer' filepath='Python/ceval.c' line='5669' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_PyEval_GetAsyncGenFirstiter' mangled-name='_PyEval_GetAsyncGenFirstiter' filepath='Python/ceval.c' line='5654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetAsyncGenFirstiter'>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyEval_GetAsyncGenFirstiter' mangled-name='_PyEval_GetAsyncGenFirstiter' filepath='Python/ceval.c' line='5662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetAsyncGenFirstiter'>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyEval_SetAsyncGenFirstiter' mangled-name='_PyEval_SetAsyncGenFirstiter' filepath='Python/ceval.c' line='5640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetAsyncGenFirstiter'>
-      <parameter type-id='type-id-15' name='finalizer' filepath='Python/ceval.c' line='5661' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_SetAsyncGenFirstiter' mangled-name='_PyEval_SetAsyncGenFirstiter' filepath='Python/ceval.c' line='5648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetAsyncGenFirstiter'>
+      <parameter type-id='type-id-16' name='finalizer' filepath='Python/ceval.c' line='5669' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_PyEval_GetCoroutineOriginTrackingDepth' mangled-name='_PyEval_GetCoroutineOriginTrackingDepth' filepath='Python/ceval.c' line='5633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetCoroutineOriginTrackingDepth'>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_GetCoroutineOriginTrackingDepth' mangled-name='_PyEval_GetCoroutineOriginTrackingDepth' filepath='Python/ceval.c' line='5641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetCoroutineOriginTrackingDepth'>
+      <return type-id='type-id-9'/>
     </function-decl>
     <class-decl name='_ts' size-in-bits='2240' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='62' column='1' id='type-id-526'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prev' type-id='type-id-10' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
+        <var-decl name='prev' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='./Include/cpython/pystate.h' line='66' column='1'/>
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='66' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='interp' type-id='type-id-222' visibility='default' filepath='./Include/cpython/pystate.h' line='67' column='1'/>
         <var-decl name='frame' type-id='type-id-525' visibility='default' filepath='./Include/cpython/pystate.h' line='70' 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='71' column='1'/>
+        <var-decl name='recursion_depth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='recursion_headroom' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='72' column='1'/>
+        <var-decl name='recursion_headroom' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='72' 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='73' column='1'/>
+        <var-decl name='stackcheck_counter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='73' 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='78' column='1'/>
+        <var-decl name='tracing' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='78' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='cframe' type-id='type-id-13' visibility='default' filepath='./Include/cpython/pystate.h' line='82' column='1'/>
+        <var-decl name='cframe' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='c_profilefunc' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='84' column='1'/>
+        <var-decl name='c_profilefunc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='84' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='c_tracefunc' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='85' column='1'/>
+        <var-decl name='c_tracefunc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='85' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='c_profileobj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
+        <var-decl name='c_profileobj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='c_traceobj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='87' column='1'/>
+        <var-decl name='c_traceobj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='87' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='curexc_type' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
+        <var-decl name='curexc_type' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='curexc_value' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='91' column='1'/>
+        <var-decl name='curexc_value' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='91' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='curexc_traceback' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
+        <var-decl name='curexc_traceback' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='exc_state' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
+        <var-decl name='exc_state' type-id='type-id-17' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='exc_info' type-id='type-id-17' visibility='default' filepath='./Include/cpython/pystate.h' line='101' column='1'/>
+        <var-decl name='exc_info' type-id='type-id-18' visibility='default' filepath='./Include/cpython/pystate.h' line='101' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='103' column='1'/>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='103' 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='105' column='1'/>
+        <var-decl name='gilstate_counter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='105' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='async_exc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='107' column='1'/>
+        <var-decl name='async_exc' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='107' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='thread_id' type-id='type-id-18' visibility='default' filepath='./Include/cpython/pystate.h' line='108' column='1'/>
+        <var-decl name='thread_id' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='108' 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='110' column='1'/>
+        <var-decl name='trash_delete_nesting' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='110' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='trash_delete_later' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='111' column='1'/>
+        <var-decl name='trash_delete_later' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='111' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='on_delete' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='136' column='1'/>
+        <var-decl name='on_delete' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='136' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='on_delete_data' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
+        <var-decl name='on_delete_data' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='137' 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='139' column='1'/>
+        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='139' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='async_gen_firstiter' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='141' column='1'/>
+        <var-decl name='async_gen_firstiter' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='141' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='async_gen_finalizer' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='142' column='1'/>
+        <var-decl name='async_gen_finalizer' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='142' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='context' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='144' column='1'/>
+        <var-decl name='context' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='144' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='context_ver' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='145' column='1'/>
+        <var-decl name='context_ver' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='145' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='id' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='148' column='1'/>
+        <var-decl name='id' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='148' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2112'>
-        <var-decl name='root_cframe' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='150' column='1'/>
+        <var-decl name='root_cframe' type-id='type-id-23' visibility='default' filepath='./Include/cpython/pystate.h' line='150' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='_is' size-in-bits='908160' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='220' column='1' id='type-id-527'>
         <var-decl name='next' type-id='type-id-225' visibility='default' filepath='./Include/internal/pycore_interp.h' line='222' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tstate_head' type-id='type-id-10' visibility='default' filepath='./Include/internal/pycore_interp.h' line='223' column='1'/>
+        <var-decl name='tstate_head' type-id='type-id-11' visibility='default' filepath='./Include/internal/pycore_interp.h' line='223' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='runtime' type-id='type-id-528' visibility='default' filepath='./Include/internal/pycore_interp.h' line='228' column='1'/>
         <var-decl name='id_refcount' type-id='type-id-227' visibility='default' filepath='./Include/internal/pycore_interp.h' line='231' 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='232' column='1'/>
+        <var-decl name='requires_idref' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='232' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
         <var-decl name='id_mutex' type-id='type-id-228' visibility='default' filepath='./Include/internal/pycore_interp.h' line='233' 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='235' column='1'/>
+        <var-decl name='finalizing' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='235' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
         <var-decl name='ceval' type-id='type-id-229' visibility='default' filepath='./Include/internal/pycore_interp.h' line='237' column='1'/>
         <var-decl name='gc' type-id='type-id-230' visibility='default' filepath='./Include/internal/pycore_interp.h' line='238' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6848'>
-        <var-decl name='modules' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='241' column='1'/>
+        <var-decl name='modules' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='241' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6912'>
-        <var-decl name='modules_by_index' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='242' column='1'/>
+        <var-decl name='modules_by_index' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='242' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6976'>
-        <var-decl name='sysdict' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='244' column='1'/>
+        <var-decl name='sysdict' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='244' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7040'>
-        <var-decl name='builtins' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='246' column='1'/>
+        <var-decl name='builtins' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='246' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7104'>
-        <var-decl name='importlib' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='248' column='1'/>
+        <var-decl name='importlib' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='248' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7168'>
-        <var-decl name='num_threads' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_interp.h' line='251' column='1'/>
+        <var-decl name='num_threads' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_interp.h' line='251' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7232'>
         <var-decl name='pythread_stacksize' type-id='type-id-157' visibility='default' filepath='./Include/internal/pycore_interp.h' line='256' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7296'>
-        <var-decl name='codec_search_path' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='258' column='1'/>
+        <var-decl name='codec_search_path' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='258' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7360'>
-        <var-decl name='codec_search_cache' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='259' column='1'/>
+        <var-decl name='codec_search_cache' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='259' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7424'>
-        <var-decl name='codec_error_registry' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='260' column='1'/>
+        <var-decl name='codec_error_registry' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='260' 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='261' column='1'/>
+        <var-decl name='codecs_initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='261' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7552'>
         <var-decl name='config' type-id='type-id-231' visibility='default' filepath='./Include/internal/pycore_interp.h' line='263' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10688'>
-        <var-decl name='dlopenflags' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='265' column='1'/>
+        <var-decl name='dlopenflags' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='265' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10752'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='268' column='1'/>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='268' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10816'>
-        <var-decl name='builtins_copy' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='270' column='1'/>
+        <var-decl name='builtins_copy' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='270' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10880'>
-        <var-decl name='import_func' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='271' column='1'/>
+        <var-decl name='import_func' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='271' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10944'>
         <var-decl name='eval_frame' type-id='type-id-232' visibility='default' filepath='./Include/internal/pycore_interp.h' line='273' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11008'>
-        <var-decl name='co_extra_user_count' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_interp.h' line='275' column='1'/>
+        <var-decl name='co_extra_user_count' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_interp.h' line='275' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11072'>
         <var-decl name='co_extra_freefuncs' type-id='type-id-233' visibility='default' filepath='./Include/internal/pycore_interp.h' line='276' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27392'>
-        <var-decl name='before_forkers' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='279' column='1'/>
+        <var-decl name='before_forkers' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='279' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27456'>
-        <var-decl name='after_forkers_parent' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='280' column='1'/>
+        <var-decl name='after_forkers_parent' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='280' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27520'>
-        <var-decl name='after_forkers_child' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='281' column='1'/>
+        <var-decl name='after_forkers_child' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='281' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27584'>
-        <var-decl name='tstate_next_unique_id' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_interp.h' line='284' column='1'/>
+        <var-decl name='tstate_next_unique_id' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_interp.h' line='284' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27648'>
         <var-decl name='warnings' type-id='type-id-234' visibility='default' filepath='./Include/internal/pycore_interp.h' line='286' column='1'/>
         <var-decl name='atexit' type-id='type-id-235' visibility='default' filepath='./Include/internal/pycore_interp.h' line='287' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='28032'>
-        <var-decl name='audit_hooks' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='289' column='1'/>
+        <var-decl name='audit_hooks' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='289' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='28096'>
         <var-decl name='small_ints' type-id='type-id-236' visibility='default' filepath='./Include/internal/pycore_interp.h' line='296' column='1'/>
     </class-decl>
     <class-decl name='pyruntimestate' size-in-bits='5376' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='61' column='1' id='type-id-530'>
       <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='63' column='1'/>
+        <var-decl name='preinitializing' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='63' 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='66' column='1'/>
+        <var-decl name='preinitialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='66' 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='69' column='1'/>
+        <var-decl name='core_initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='69' 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='72' column='1'/>
+        <var-decl name='initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='72' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='_finalizing' type-id='type-id-251' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='79' column='1'/>
         <var-decl name='xidregistry' type-id='type-id-253' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='99' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='main_thread' type-id='type-id-18' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='101' column='1'/>
+        <var-decl name='main_thread' type-id='type-id-19' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='101' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
         <var-decl name='exitfuncs' type-id='type-id-254' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='104' 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='105' column='1'/>
+        <var-decl name='nexitfuncs' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='105' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2752'>
         <var-decl name='ceval' type-id='type-id-255' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='107' column='1'/>
         <var-decl name='open_code_hook' type-id='type-id-258' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='114' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5120'>
-        <var-decl name='open_code_userdata' type-id='type-id-20' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='115' column='1'/>
+        <var-decl name='open_code_userdata' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='115' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='5184'>
         <var-decl name='audit_hook_head' type-id='type-id-531' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='116' column='1'/>
         <var-decl name='free_list' type-id='type-id-525' visibility='default' filepath='./Include/internal/pycore_interp.h' line='139' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='numfree' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='141' column='1'/>
+        <var-decl name='numfree' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='141' column='1'/>
       </data-member>
     </class-decl>
     <typedef-decl name='PyThreadState' type-id='type-id-526' filepath='./Include/pystate.h' line='20' column='1' id='type-id-532'/>
     <pointer-type-def type-id='type-id-532' size-in-bits='64' id='type-id-533'/>
-    <function-decl name='_PyEval_SetCoroutineOriginTrackingDepth' mangled-name='_PyEval_SetCoroutineOriginTrackingDepth' filepath='Python/ceval.c' line='5626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetCoroutineOriginTrackingDepth'>
-      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='5626' column='1'/>
-      <parameter type-id='type-id-8' name='new_depth' filepath='Python/ceval.c' line='5626' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyEval_SetTrace' mangled-name='PyEval_SetTrace' filepath='Python/ceval.c' line='5615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetTrace'>
-      <parameter type-id='type-id-14' name='func' filepath='Python/ceval.c' line='5615' column='1'/>
-      <parameter type-id='type-id-15' name='arg' filepath='Python/ceval.c' line='5615' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyEval_SetTrace' mangled-name='_PyEval_SetTrace' filepath='Python/ceval.c' line='5582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetTrace'>
-      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='5582' column='1'/>
-      <parameter type-id='type-id-14' name='func' filepath='Python/ceval.c' line='5582' column='1'/>
-      <parameter type-id='type-id-15' name='arg' filepath='Python/ceval.c' line='5582' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyEval_SetProfile' mangled-name='PyEval_SetProfile' filepath='Python/ceval.c' line='5572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetProfile'>
-      <parameter type-id='type-id-14' name='func' filepath='Python/ceval.c' line='5615' column='1'/>
-      <parameter type-id='type-id-15' name='arg' filepath='Python/ceval.c' line='5615' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyEval_SetProfile' mangled-name='_PyEval_SetProfile' filepath='Python/ceval.c' line='5541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetProfile'>
-      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='5582' column='1'/>
-      <parameter type-id='type-id-14' name='func' filepath='Python/ceval.c' line='5582' column='1'/>
-      <parameter type-id='type-id-15' name='arg' filepath='Python/ceval.c' line='5582' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyEval_CallTracing' mangled-name='_PyEval_CallTracing' filepath='Python/ceval.c' line='5496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_CallTracing'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/dictobject.c' line='1506' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/dictobject.c' line='1506' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyEval_EvalCodeEx' mangled-name='PyEval_EvalCodeEx' filepath='Python/ceval.c' line='5094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalCodeEx'>
-      <parameter type-id='type-id-15' name='_co' filepath='Python/ceval.c' line='5094' column='1'/>
-      <parameter type-id='type-id-15' name='globals' filepath='Python/ceval.c' line='5094' column='1'/>
-      <parameter type-id='type-id-15' name='locals' filepath='Python/ceval.c' line='5094' column='1'/>
-      <parameter type-id='type-id-156' name='args' filepath='Python/ceval.c' line='5095' column='1'/>
-      <parameter type-id='type-id-8' name='argcount' filepath='Python/ceval.c' line='5095' column='1'/>
-      <parameter type-id='type-id-156' name='kws' filepath='Python/ceval.c' line='5096' column='1'/>
-      <parameter type-id='type-id-8' name='kwcount' filepath='Python/ceval.c' line='5096' column='1'/>
-      <parameter type-id='type-id-156' name='defs' filepath='Python/ceval.c' line='5097' column='1'/>
-      <parameter type-id='type-id-8' name='defcount' filepath='Python/ceval.c' line='5097' column='1'/>
-      <parameter type-id='type-id-15' name='kwdefs' filepath='Python/ceval.c' line='5098' column='1'/>
-      <parameter type-id='type-id-15' name='closure' filepath='Python/ceval.c' line='5098' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyEval_EvalFrameDefault' mangled-name='_PyEval_EvalFrameDefault' filepath='Python/ceval.c' line='1578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_EvalFrameDefault'>
-      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='1578' column='1'/>
-      <parameter type-id='type-id-525' name='f' filepath='Python/ceval.c' line='1578' column='1'/>
-      <parameter type-id='type-id-8' name='throwflag' filepath='Python/ceval.c' line='1578' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyEval_SetCoroutineOriginTrackingDepth' mangled-name='_PyEval_SetCoroutineOriginTrackingDepth' filepath='Python/ceval.c' line='5634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetCoroutineOriginTrackingDepth'>
+      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='5634' column='1'/>
+      <parameter type-id='type-id-9' name='new_depth' filepath='Python/ceval.c' line='5634' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_SetTrace' mangled-name='PyEval_SetTrace' filepath='Python/ceval.c' line='5623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetTrace'>
+      <parameter type-id='type-id-15' name='func' filepath='Python/ceval.c' line='5623' column='1'/>
+      <parameter type-id='type-id-16' name='arg' filepath='Python/ceval.c' line='5623' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_SetTrace' mangled-name='_PyEval_SetTrace' filepath='Python/ceval.c' line='5590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetTrace'>
+      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='5590' column='1'/>
+      <parameter type-id='type-id-15' name='func' filepath='Python/ceval.c' line='5590' column='1'/>
+      <parameter type-id='type-id-16' name='arg' filepath='Python/ceval.c' line='5590' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyEval_SetProfile' mangled-name='PyEval_SetProfile' filepath='Python/ceval.c' line='5580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetProfile'>
+      <parameter type-id='type-id-15' name='func' filepath='Python/ceval.c' line='5623' column='1'/>
+      <parameter type-id='type-id-16' name='arg' filepath='Python/ceval.c' line='5623' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_SetProfile' mangled-name='_PyEval_SetProfile' filepath='Python/ceval.c' line='5549' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetProfile'>
+      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='5590' column='1'/>
+      <parameter type-id='type-id-15' name='func' filepath='Python/ceval.c' line='5590' column='1'/>
+      <parameter type-id='type-id-16' name='arg' filepath='Python/ceval.c' line='5590' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyEval_CallTracing' mangled-name='_PyEval_CallTracing' filepath='Python/ceval.c' line='5504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_CallTracing'>
+      <parameter type-id='type-id-16' name='func' filepath='Python/ceval.c' line='5504' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Python/ceval.c' line='5504' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyEval_EvalFrameDefault' mangled-name='_PyEval_EvalFrameDefault' filepath='Python/ceval.c' line='1577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_EvalFrameDefault'>
+      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='1577' column='1'/>
+      <parameter type-id='type-id-525' name='f' filepath='Python/ceval.c' line='1577' column='1'/>
+      <parameter type-id='type-id-9' name='throwflag' filepath='Python/ceval.c' line='1577' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyEval_EvalFrameEx' mangled-name='PyEval_EvalFrameEx' filepath='Python/ceval.c' line='1149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalFrameEx'>
       <parameter type-id='type-id-525' name='f' filepath='Python/ceval.c' line='1149' column='1'/>
-      <parameter type-id='type-id-8' name='throwflag' filepath='Python/ceval.c' line='1149' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='throwflag' filepath='Python/ceval.c' line='1149' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyEval_EvalFrame' mangled-name='PyEval_EvalFrame' filepath='Python/ceval.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalFrame'>
       <parameter type-id='type-id-525' name='f' filepath='Python/ceval.c' line='1141' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyEval_EvalCode' mangled-name='PyEval_EvalCode' filepath='Python/ceval.c' line='1114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalCode'>
-      <parameter type-id='type-id-15' name='co' filepath='Python/ceval.c' line='1114' column='1'/>
-      <parameter type-id='type-id-15' name='globals' filepath='Python/ceval.c' line='1114' column='1'/>
-      <parameter type-id='type-id-15' name='locals' filepath='Python/ceval.c' line='1114' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_Py_CheckRecursiveCall' mangled-name='_Py_CheckRecursiveCall' filepath='Python/ceval.c' line='860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CheckRecursiveCall'>
-      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='860' column='1'/>
-      <parameter type-id='type-id-3' name='where' filepath='Python/ceval.c' line='860' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='co' filepath='Python/ceval.c' line='1114' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Python/ceval.c' line='1114' column='1'/>
+      <parameter type-id='type-id-16' name='locals' filepath='Python/ceval.c' line='1114' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='Py_SetRecursionLimit' mangled-name='Py_SetRecursionLimit' filepath='Python/ceval.c' line='848' 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='848' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-9' name='new_limit' filepath='Python/ceval.c' line='848' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='Py_GetRecursionLimit' mangled-name='Py_GetRecursionLimit' filepath='Python/ceval.c' line='841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetRecursionLimit'>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='Py_MakePendingCalls' mangled-name='Py_MakePendingCalls' filepath='Python/ceval.c' line='774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_MakePendingCalls'>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='Py_AddPendingCall' mangled-name='Py_AddPendingCall' filepath='Python/ceval.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AddPendingCall'>
       <parameter type-id='type-id-313' name='func' filepath='Python/ceval.c' line='653' column='1'/>
-      <parameter type-id='type-id-20' name='arg' filepath='Python/ceval.c' line='653' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-21' name='arg' filepath='Python/ceval.c' line='653' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyEval_AddPendingCall' mangled-name='_PyEval_AddPendingCall' filepath='Python/ceval.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_AddPendingCall'>
       <parameter type-id='type-id-222' name='interp' filepath='Python/ceval.c' line='634' column='1'/>
       <parameter type-id='type-id-313' name='func' filepath='Python/ceval.c' line='635' column='1'/>
-      <parameter type-id='type-id-20' name='arg' filepath='Python/ceval.c' line='635' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-21' name='arg' filepath='Python/ceval.c' line='635' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyEval_SignalReceived' mangled-name='_PyEval_SignalReceived' filepath='Python/ceval.c' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalReceived'>
       <parameter type-id='type-id-222' name='interp' filepath='Python/ceval.c' line='577' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyEval_RestoreThread' mangled-name='PyEval_RestoreThread' filepath='Python/ceval.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_RestoreThread'>
       <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='543' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyEval_SaveThread' mangled-name='PyEval_SaveThread' filepath='Python/ceval.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SaveThread'>
       <return type-id='type-id-533'/>
     </function-decl>
     <function-decl name='_PyEval_SignalAsyncExc' mangled-name='_PyEval_SignalAsyncExc' filepath='Python/ceval.c' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalAsyncExc'>
       <parameter type-id='type-id-222' name='interp' filepath='Python/ceval.c' line='514' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyEval_ReleaseThread' mangled-name='PyEval_ReleaseThread' filepath='Python/ceval.c' line='464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseThread'>
       <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='464' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyEval_AcquireThread' mangled-name='PyEval_AcquireThread' filepath='Python/ceval.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireThread'>
-      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='543' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='447' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyEval_ReleaseLock' mangled-name='PyEval_ReleaseLock' filepath='Python/ceval.c' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseLock'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyEval_AcquireLock' mangled-name='PyEval_AcquireLock' filepath='Python/ceval.c' line='416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireLock'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyEval_InitThreads' mangled-name='PyEval_InitThreads' filepath='Python/ceval.c' line='362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_InitThreads'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyEval_ThreadsInitialized' mangled-name='PyEval_ThreadsInitialized' filepath='Python/ceval.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ThreadsInitialized'>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_Py_FatalError_TstateNULL' mangled-name='_Py_FatalError_TstateNULL' filepath='Python/ceval.c' line='269' 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='269' column='1'/>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyEval_GetSwitchInterval' mangled-name='_PyEval_GetSwitchInterval' filepath='Python/ceval_gil.h' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetSwitchInterval'>
-      <return type-id='type-id-18'/>
+      <return type-id='type-id-19'/>
     </function-decl>
     <function-decl name='_PyEval_SetSwitchInterval' mangled-name='_PyEval_SetSwitchInterval' filepath='Python/ceval_gil.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetSwitchInterval'>
-      <parameter type-id='type-id-18' name='microseconds' filepath='Python/ceval_gil.h' line='329' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-19' name='microseconds' filepath='Python/ceval_gil.h' line='329' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_CheckRecursiveCall' mangled-name='_Py_CheckRecursiveCall' filepath='Python/ceval.c' line='860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CheckRecursiveCall'>
+      <parameter type-id='type-id-533' name='tstate' filepath='Python/ceval.c' line='860' column='1'/>
+      <parameter type-id='type-id-3' name='where' filepath='Python/ceval.c' line='860' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Append' mangled-name='PyUnicode_Append' filepath='./Include/unicodeobject.h' line='827' 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='154' 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='89' 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_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='_PyFrame_New_NoTrack' mangled-name='_PyFrame_New_NoTrack' 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='PyUnicode_Concat' mangled-name='PyUnicode_Concat' filepath='./Include/unicodeobject.h' line='819' 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='1022' 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='44' 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='87' 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='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyIter_Send' mangled-name='PyIter_Send' filepath='./Include/abstract.h' line='408' 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='90' 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='83' 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='73' 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='1001' 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='66' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItemHint' mangled-name='_PyDict_GetItemHint' 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='PyFrame_LocalsToFast' mangled-name='PyFrame_LocalsToFast' filepath='./Include/cpython/frameobject.h' line='87' 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='206' 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='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>
+    <function-decl name='PyFrame_BlockSetup' mangled-name='PyFrame_BlockSetup' filepath='./Include/cpython/frameobject.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyFunction_NewWithQualName' mangled-name='PyFunction_NewWithQualName' filepath='./Include/funcobject.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyException_SetTraceback' mangled-name='PyException_SetTraceback' filepath='./Include/pyerrors.h' line='39' 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='./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='_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='_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='_PyThreadState_Swap' mangled-name='_PyThreadState_Swap' filepath='./Include/internal/pycore_pystate.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCode_InitOpcache' mangled-name='_PyCode_InitOpcache' filepath='./Include/internal/pycore_code.h' line='28' 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='./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='PyAsyncGen_New' mangled-name='PyAsyncGen_New' filepath='./Include/genobject.h' line='85' 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='41' 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='59' 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='./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='_PyErr_Print' mangled-name='_PyErr_Print' filepath='./Include/internal/pycore_pylifecycle.h' line='130' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_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='_PyThreadState_DeleteExcept' mangled-name='_PyThreadState_DeleteExcept' filepath='./Include/internal/pycore_pystate.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='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='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='_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='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='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='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='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='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='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='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='_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>
   </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='242' 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-15' name='exc' filepath='Python/codecs.c' line='959' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/codecs.c' line='959' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='exc' filepath='Python/codecs.c' line='850' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/codecs.c' line='850' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='exc' filepath='Python/codecs.c' line='959' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/codecs.c' line='959' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='o' filepath='Objects/dictobject.c' line='2749' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/codecs.c' line='699' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
-    </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-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/codecs.c' line='675' column='1'/>
+      <return type-id='type-id-16'/>
     </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='utf8path' filepath='Objects/fileobject.c' line='562' column='1'/>
-      <return type-id='type-id-15'/>
-    </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-15' name='error' filepath='Python/codecs.c' line='622' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/codecs.c' line='638' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='object' filepath='Python/codecs.c' line='603' column='1'/>
+      <parameter type-id='type-id-16' 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-15'/>
+      <return type-id='type-id-16'/>
     </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-15' name='object' filepath='Python/codecs.c' line='603' column='1'/>
+      <parameter type-id='type-id-16' 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-15'/>
+      <return type-id='type-id-16'/>
     </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-15'/>
+      <return type-id='type-id-16'/>
     </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-15' 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-15'/>
+      <parameter type-id='type-id-16' 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-16'/>
     </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-15' 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-15'/>
+      <parameter type-id='type-id-16' 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-16'/>
     </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-15' name='stream' filepath='Python/codecs.c' line='380' column='1'/>
+      <parameter type-id='type-id-16' 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-15'/>
+      <return type-id='type-id-16'/>
     </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-15' name='stream' filepath='Python/codecs.c' line='380' column='1'/>
+      <parameter type-id='type-id-16' 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-15'/>
+      <return type-id='type-id-16'/>
     </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'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </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-15'/>
+      <return type-id='type-id-16'/>
     </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-15'/>
+      <return type-id='type-id-16'/>
     </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-15'/>
+      <return type-id='type-id-16'/>
     </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-15' name='unicode' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' 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-16'/>
     </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-15' name='unicode' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7445' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' 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-16'/>
     </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'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyCodec_Lookup' mangled-name='_PyCodec_Lookup' filepath='Python/codecs.c' line='126' 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='126' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyCodec_Unregister' mangled-name='PyCodec_Unregister' filepath='Python/codecs.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Unregister'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/fileobject.c' line='180' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='search_function' filepath='Python/codecs.c' line='54' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='search_function' filepath='Python/codecs.c' line='34' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='search_function' filepath='Python/codecs.c' line='34' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-16' name='error' filepath='Python/codecs.c' line='622' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-16' name='mp' filepath='Objects/dictobject.c' line='2872' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetStart' mangled-name='PyUnicodeEncodeError_GetStart' filepath='./Include/pyerrors.h' line='268' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetEnd' mangled-name='PyUnicodeEncodeError_GetEnd' filepath='./Include/pyerrors.h' line='280' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetObject' mangled-name='PyUnicodeEncodeError_GetObject' filepath='./Include/pyerrors.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_GetStart' mangled-name='PyUnicodeDecodeError_GetStart' filepath='./Include/pyerrors.h' line='269' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_GetEnd' mangled-name='PyUnicodeDecodeError_GetEnd' filepath='./Include/pyerrors.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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>
+    <function-decl name='PyUnicodeEncodeError_GetEncoding' mangled-name='PyUnicodeEncodeError_GetEncoding' filepath='./Include/pyerrors.h' line='258' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_GetEncoding' mangled-name='PyUnicodeDecodeError_GetEncoding' filepath='./Include/pyerrors.h' line='259' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeTranslateError_GetStart' mangled-name='PyUnicodeTranslateError_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='PyUnicodeTranslateError_GetEnd' mangled-name='PyUnicodeTranslateError_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='PyUnicodeTranslateError_GetObject' mangled-name='PyUnicodeTranslateError_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='_PyErr_TrySetFromCause' mangled-name='_PyErr_TrySetFromCause' filepath='./Include/cpython/pyerrors.h' line='136' 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='78' 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>
+    <function-decl name='PyInterpreterState_Get' mangled-name='PyInterpreterState_Get' filepath='./Include/pystate.h' line='36' 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='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='Python/compile.c' line='7879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Optimize'>
-      <parameter type-id='type-id-15' name='code' filepath='Python/compile.c' line='7879' column='1'/>
-      <parameter type-id='type-id-15' name='_unused_consts' filepath='Python/compile.c' line='7879' column='1'/>
-      <parameter type-id='type-id-15' name='_unused_names' filepath='Python/compile.c' line='7880' column='1'/>
-      <parameter type-id='type-id-15' name='_unused_lnotab_obj' filepath='Python/compile.c' line='7880' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='Python/compile.c' line='7912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Optimize'>
+      <parameter type-id='type-id-16' name='code' filepath='Python/compile.c' line='7912' column='1'/>
+      <parameter type-id='type-id-16' name='_unused_consts' filepath='Python/compile.c' line='7912' column='1'/>
+      <parameter type-id='type-id-16' name='_unused_names' filepath='Python/compile.c' line='7913' column='1'/>
+      <parameter type-id='type-id-16' name='_unused_lnotab_obj' filepath='Python/compile.c' line='7913' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyCompile_OpcodeStackEffect' mangled-name='PyCompile_OpcodeStackEffect' filepath='Python/compile.c' line='1226' 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='110' column='1'/>
-      <parameter type-id='type-id-8' name='c2' filepath='Parser/token.c' line='110' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='opcode' filepath='Python/compile.c' line='1226' column='1'/>
+      <parameter type-id='type-id-9' name='oparg' filepath='Python/compile.c' line='1226' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyCompile_OpcodeStackEffectWithJump' mangled-name='PyCompile_OpcodeStackEffectWithJump' filepath='Python/compile.c' line='1220' 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='194' column='1'/>
-      <parameter type-id='type-id-8' name='c2' filepath='Parser/token.c' line='194' column='1'/>
-      <parameter type-id='type-id-8' name='c3' filepath='Parser/token.c' line='194' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='opcode' filepath='Python/compile.c' line='1220' column='1'/>
+      <parameter type-id='type-id-9' name='oparg' filepath='Python/compile.c' line='1220' column='1'/>
+      <parameter type-id='type-id-9' name='jump' filepath='Python/compile.c' line='1220' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <class-decl name='_mod' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ast.h' line='153' column='1' id='type-id-534'>
       <data-member access='public' layout-offset-in-bits='0'>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-543' visibility='default' filepath='./Include/internal/pycore_ast.h' line='62' column='1' id='type-id-544'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='63' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='63' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='63' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='63' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-545' visibility='default' filepath='./Include/internal/pycore_ast.h' line='64' column='1'/>
         <var-decl name='v' type-id='type-id-548' visibility='default' filepath='./Include/internal/pycore_ast.h' line='325' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='326' column='1'/>
+        <var-decl name='lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='326' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='480'>
-        <var-decl name='col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='327' column='1'/>
+        <var-decl name='col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='327' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='328' column='1'/>
+        <var-decl name='end_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='328' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='544'>
-        <var-decl name='end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='329' column='1'/>
+        <var-decl name='end_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='329' column='1'/>
       </data-member>
     </class-decl>
     <enum-decl name='_stmt_kind' filepath='./Include/internal/pycore_ast.h' line='177' column='1' id='type-id-547'>
         <var-decl name='type_comment' type-id='type-id-570' visibility='default' filepath='./Include/internal/pycore_ast.h' line='194' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='identifier' type-id='type-id-15' filepath='./Include/internal/pycore_asdl.h' line='13' column='1' id='type-id-566'/>
+    <typedef-decl name='identifier' type-id='type-id-16' filepath='./Include/internal/pycore_asdl.h' line='13' column='1' id='type-id-566'/>
     <class-decl name='_arguments' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ast.h' line='513' column='1' id='type-id-571'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='posonlyargs' type-id='type-id-572' visibility='default' filepath='./Include/internal/pycore_ast.h' line='514' column='1'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-574' visibility='default' filepath='./Include/internal/pycore_ast.h' line='99' column='1' id='type-id-575'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='100' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='100' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='100' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='100' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-576' visibility='default' filepath='./Include/internal/pycore_ast.h' line='101' column='1'/>
         <var-decl name='type_comment' type-id='type-id-570' visibility='default' filepath='./Include/internal/pycore_ast.h' line='526' 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/internal/pycore_ast.h' line='527' column='1'/>
+        <var-decl name='lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='527' 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/internal/pycore_ast.h' line='528' column='1'/>
+        <var-decl name='col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='528' 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/internal/pycore_ast.h' line='529' column='1'/>
+        <var-decl name='end_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='529' 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/internal/pycore_ast.h' line='530' column='1'/>
+        <var-decl name='end_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='530' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='_expr' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ast.h' line='340' column='1' id='type-id-578'>
         <var-decl name='v' type-id='type-id-580' visibility='default' filepath='./Include/internal/pycore_ast.h' line='482' 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/internal/pycore_ast.h' line='483' column='1'/>
+        <var-decl name='lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='483' 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/internal/pycore_ast.h' line='484' column='1'/>
+        <var-decl name='col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='484' 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/internal/pycore_ast.h' line='485' column='1'/>
+        <var-decl name='end_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='485' 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/internal/pycore_ast.h' line='486' column='1'/>
+        <var-decl name='end_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='486' column='1'/>
       </data-member>
     </class-decl>
     <enum-decl name='_expr_kind' filepath='./Include/internal/pycore_ast.h' line='332' column='1' id='type-id-579'>
     <typedef-decl name='boolop_ty' type-id='type-id-603' filepath='./Include/internal/pycore_ast.h' line='23' column='1' id='type-id-602'/>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-604' visibility='default' filepath='./Include/internal/pycore_ast.h' line='69' column='1' id='type-id-605'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='70' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='70' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='70' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='70' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-606' visibility='default' filepath='./Include/internal/pycore_ast.h' line='71' column='1'/>
     <typedef-decl name='expr_ty' type-id='type-id-607' filepath='./Include/internal/pycore_ast.h' line='19' column='1' id='type-id-569'/>
 
     <array-type-def dimensions='1' type-id='type-id-569' size-in-bits='64' id='type-id-606'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_expr_seq' type-id='type-id-605' filepath='./Include/internal/pycore_ast.h' line='72' column='1' id='type-id-604'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-614' visibility='default' filepath='./Include/internal/pycore_ast.h' line='76' column='1' id='type-id-615'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='77' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='77' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='77' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='77' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-616' visibility='default' filepath='./Include/internal/pycore_ast.h' line='78' column='1'/>
         <var-decl name='ifs' type-id='type-id-568' visibility='default' filepath='./Include/internal/pycore_ast.h' line='492' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='is_async' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='493' column='1'/>
+        <var-decl name='is_async' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='493' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-617' size-in-bits='64' id='type-id-618'/>
     <typedef-decl name='comprehension_ty' type-id='type-id-618' filepath='./Include/internal/pycore_ast.h' line='34' column='1' id='type-id-619'/>
 
     <array-type-def dimensions='1' type-id='type-id-619' size-in-bits='64' id='type-id-616'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_comprehension_seq' type-id='type-id-615' filepath='./Include/internal/pycore_ast.h' line='79' column='1' id='type-id-614'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-621' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='42' column='1' id='type-id-622'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='43' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='43' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='43' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='43' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-623' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='44' column='1'/>
       </data-member>
     </class-decl>
 
-    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='32' id='type-id-623'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='32' id='type-id-623'>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_int_seq' type-id='type-id-622' filepath='./Include/internal/pycore_asdl.h' line='45' column='1' id='type-id-621'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-625' visibility='default' filepath='./Include/internal/pycore_ast.h' line='106' column='1' id='type-id-626'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='107' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='107' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='107' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='107' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-627' visibility='default' filepath='./Include/internal/pycore_ast.h' line='108' column='1'/>
         <var-decl name='value' type-id='type-id-569' visibility='default' filepath='./Include/internal/pycore_ast.h' line='535' 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/internal/pycore_ast.h' line='536' column='1'/>
+        <var-decl name='lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='536' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='537' column='1'/>
+        <var-decl name='col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='537' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='538' column='1'/>
+        <var-decl name='end_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='538' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='539' column='1'/>
+        <var-decl name='end_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='539' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-628' size-in-bits='64' id='type-id-629'/>
     <typedef-decl name='keyword_ty' type-id='type-id-629' filepath='./Include/internal/pycore_ast.h' line='42' column='1' id='type-id-630'/>
 
     <array-type-def dimensions='1' type-id='type-id-630' size-in-bits='64' id='type-id-627'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_keyword_seq' type-id='type-id-626' filepath='./Include/internal/pycore_ast.h' line='109' column='1' id='type-id-625'/>
         <var-decl name='value' type-id='type-id-569' visibility='default' filepath='./Include/internal/pycore_ast.h' line='430' 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/internal/pycore_ast.h' line='431' column='1'/>
+        <var-decl name='conversion' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='431' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='format_spec' type-id='type-id-569' visibility='default' filepath='./Include/internal/pycore_ast.h' line='432' column='1'/>
         <var-decl name='kind' type-id='type-id-570' visibility='default' filepath='./Include/internal/pycore_ast.h' line='441' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='constant' type-id='type-id-15' filepath='./Include/internal/pycore_asdl.h' line='16' column='1' id='type-id-631'/>
-    <typedef-decl name='string' type-id='type-id-15' filepath='./Include/internal/pycore_asdl.h' line='14' column='1' id='type-id-570'/>
+    <typedef-decl name='constant' type-id='type-id-16' filepath='./Include/internal/pycore_asdl.h' line='16' column='1' id='type-id-631'/>
+    <typedef-decl name='string' type-id='type-id-16' filepath='./Include/internal/pycore_asdl.h' line='14' column='1' id='type-id-570'/>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_ast.h' line='444' column='1' id='type-id-596'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='value' type-id='type-id-569' visibility='default' filepath='./Include/internal/pycore_ast.h' line='445' column='1'/>
     <typedef-decl name='arg_ty' type-id='type-id-634' filepath='./Include/internal/pycore_ast.h' line='40' column='1' id='type-id-573'/>
 
     <array-type-def dimensions='1' type-id='type-id-573' size-in-bits='64' id='type-id-576'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_arg_seq' type-id='type-id-575' filepath='./Include/internal/pycore_ast.h' line='102' column='1' id='type-id-574'/>
         <var-decl name='value' type-id='type-id-569' visibility='default' filepath='./Include/internal/pycore_ast.h' line='237' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='simple' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='238' column='1'/>
+        <var-decl name='simple' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='238' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_ast.h' line='241' column='1' id='type-id-556'>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-636' visibility='default' filepath='./Include/internal/pycore_ast.h' line='120' column='1' id='type-id-637'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='121' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='121' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='121' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='121' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-638' visibility='default' filepath='./Include/internal/pycore_ast.h' line='122' column='1'/>
     <typedef-decl name='withitem_ty' type-id='type-id-640' filepath='./Include/internal/pycore_ast.h' line='46' column='1' id='type-id-641'/>
 
     <array-type-def dimensions='1' type-id='type-id-641' size-in-bits='64' id='type-id-638'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_withitem_seq' type-id='type-id-637' filepath='./Include/internal/pycore_ast.h' line='123' column='1' id='type-id-636'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-643' visibility='default' filepath='./Include/internal/pycore_ast.h' line='127' column='1' id='type-id-644'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='128' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='128' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='128' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='128' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-645' visibility='default' filepath='./Include/internal/pycore_ast.h' line='129' column='1'/>
         <var-decl name='v' type-id='type-id-650' visibility='default' filepath='./Include/internal/pycore_ast.h' line='607' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='608' column='1'/>
+        <var-decl name='lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='608' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='352'>
-        <var-decl name='col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='609' column='1'/>
+        <var-decl name='col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='609' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='610' column='1'/>
+        <var-decl name='end_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='610' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='416'>
-        <var-decl name='end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='611' column='1'/>
+        <var-decl name='end_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='611' column='1'/>
       </data-member>
     </class-decl>
     <enum-decl name='_pattern_kind' filepath='./Include/internal/pycore_ast.h' line='562' column='1' id='type-id-649'>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-658' visibility='default' filepath='./Include/internal/pycore_ast.h' line='135' column='1' id='type-id-659'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='136' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='136' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='136' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='136' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-660' visibility='default' filepath='./Include/internal/pycore_ast.h' line='137' column='1'/>
     <typedef-decl name='pattern_ty' type-id='type-id-661' filepath='./Include/internal/pycore_ast.h' line='50' column='1' id='type-id-647'/>
 
     <array-type-def dimensions='1' type-id='type-id-647' size-in-bits='64' id='type-id-660'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_pattern_seq' type-id='type-id-659' filepath='./Include/internal/pycore_ast.h' line='138' column='1' id='type-id-658'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-663' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='37' column='1' id='type-id-664'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='38' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='38' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='38' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='38' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-337' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='39' column='1'/>
     <typedef-decl name='match_case_ty' type-id='type-id-665' filepath='./Include/internal/pycore_ast.h' line='48' column='1' id='type-id-666'/>
 
     <array-type-def dimensions='1' type-id='type-id-666' size-in-bits='64' id='type-id-645'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_match_case_seq' type-id='type-id-644' filepath='./Include/internal/pycore_ast.h' line='130' column='1' id='type-id-643'/>
     </class-decl>
     <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/internal/pycore_ast.h' line='84' column='1' id='type-id-669'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='85' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='85' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='85' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='85' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-670' visibility='default' filepath='./Include/internal/pycore_ast.h' line='86' column='1'/>
         <var-decl name='v' type-id='type-id-673' visibility='default' filepath='./Include/internal/pycore_ast.h' line='506' 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/internal/pycore_ast.h' line='507' column='1'/>
+        <var-decl name='lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='507' 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/internal/pycore_ast.h' line='508' column='1'/>
+        <var-decl name='col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='508' 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/internal/pycore_ast.h' line='509' column='1'/>
+        <var-decl name='end_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='509' 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/internal/pycore_ast.h' line='510' column='1'/>
+        <var-decl name='end_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='510' column='1'/>
       </data-member>
     </class-decl>
     <enum-decl name='_excepthandler_kind' filepath='./Include/internal/pycore_ast.h' line='496' column='1' id='type-id-672'>
     <typedef-decl name='excepthandler_ty' type-id='type-id-675' filepath='./Include/internal/pycore_ast.h' line='36' column='1' id='type-id-676'/>
 
     <array-type-def dimensions='1' type-id='type-id-676' size-in-bits='64' id='type-id-670'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_excepthandler_seq' type-id='type-id-669' filepath='./Include/internal/pycore_ast.h' line='87' column='1' id='type-id-668'/>
     </class-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-678' visibility='default' filepath='./Include/internal/pycore_ast.h' line='113' column='1' id='type-id-679'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='114' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='114' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='114' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='114' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-680' visibility='default' filepath='./Include/internal/pycore_ast.h' line='115' column='1'/>
         <var-decl name='asname' type-id='type-id-566' visibility='default' filepath='./Include/internal/pycore_ast.h' line='544' 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/internal/pycore_ast.h' line='545' column='1'/>
+        <var-decl name='lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='545' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='546' column='1'/>
+        <var-decl name='col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='546' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='547' column='1'/>
+        <var-decl name='end_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='547' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='548' column='1'/>
+        <var-decl name='end_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='548' column='1'/>
       </data-member>
     </class-decl>
     <pointer-type-def type-id='type-id-681' size-in-bits='64' id='type-id-682'/>
     <typedef-decl name='alias_ty' type-id='type-id-682' filepath='./Include/internal/pycore_ast.h' line='44' column='1' id='type-id-683'/>
 
     <array-type-def dimensions='1' type-id='type-id-683' size-in-bits='64' id='type-id-680'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_alias_seq' type-id='type-id-679' filepath='./Include/internal/pycore_ast.h' line='116' column='1' id='type-id-678'/>
         <var-decl name='names' type-id='type-id-677' visibility='default' filepath='./Include/internal/pycore_ast.h' line='309' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='level' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='310' column='1'/>
+        <var-decl name='level' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='310' 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_ast.h' line='313' column='1' id='type-id-565'>
     <typedef-decl name='stmt_ty' type-id='type-id-684' filepath='./Include/internal/pycore_ast.h' line='17' column='1' id='type-id-685'/>
 
     <array-type-def dimensions='1' type-id='type-id-685' size-in-bits='64' id='type-id-545'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-686' visibility='default' filepath='./Include/internal/pycore_ast.h' line='142' column='1' id='type-id-687'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_ast.h' line='143' column='1'/>
+        <var-decl name='size' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_ast.h' line='143' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-197' visibility='default' filepath='./Include/internal/pycore_ast.h' line='143' column='1'/>
+        <var-decl name='elements' type-id='type-id-195' visibility='default' filepath='./Include/internal/pycore_ast.h' line='143' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='typed_elements' type-id='type-id-688' visibility='default' filepath='./Include/internal/pycore_ast.h' line='144' column='1'/>
     </union-decl>
     <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_ast.h' line='618' column='1' id='type-id-692'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ast.h' line='619' column='1'/>
+        <var-decl name='lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_ast.h' line='619' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='tag' type-id='type-id-570' visibility='default' filepath='./Include/internal/pycore_ast.h' line='620' column='1'/>
     <typedef-decl name='type_ignore_ty' type-id='type-id-693' filepath='./Include/internal/pycore_ast.h' line='52' column='1' id='type-id-694'/>
 
     <array-type-def dimensions='1' type-id='type-id-694' size-in-bits='64' id='type-id-688'>
-      <subrange length='1' type-id='type-id-18' id='type-id-182'/>
+      <subrange length='1' type-id='type-id-19' id='type-id-182'/>
 
     </array-type-def>
     <typedef-decl name='asdl_type_ignore_seq' type-id='type-id-687' filepath='./Include/internal/pycore_ast.h' line='145' column='1' id='type-id-686'/>
     <pointer-type-def type-id='type-id-698' size-in-bits='64' id='type-id-699'/>
     <function-decl name='_PyAST_Compile' mangled-name='_PyAST_Compile' filepath='Python/compile.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAST_Compile'>
       <parameter type-id='type-id-696' name='mod' filepath='Python/compile.c' line='401' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/compile.c' line='401' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/compile.c' line='401' column='1'/>
       <parameter type-id='type-id-522' name='flags' filepath='Python/compile.c' line='401' column='1'/>
-      <parameter type-id='type-id-8' name='optimize' filepath='Python/compile.c' line='402' column='1'/>
+      <parameter type-id='type-id-9' name='optimize' filepath='Python/compile.c' line='402' column='1'/>
       <parameter type-id='type-id-699' name='arena' filepath='Python/compile.c' line='402' column='1'/>
       <return type-id='type-id-334'/>
     </function-decl>
+    <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='PyUnicode_FindChar' mangled-name='PyUnicode_FindChar' filepath='./Include/unicodeobject.h' line='952' 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='_PyAST_ExprAsUnicode' mangled-name='_PyAST_ExprAsUnicode' filepath='./Include/internal/pycore_ast.h' line='845' 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/internal/pycore_symtable.h' line='75' 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='PySequence_DelItem' mangled-name='PySequence_DelItem' filepath='./Include/abstract.h' line='684' 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='PySymtable_Lookup' mangled-name='PySymtable_Lookup' filepath='./Include/internal/pycore_symtable.h' line='81' 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/internal/pycore_symtable.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyFuture_FromAST' mangled-name='_PyFuture_FromAST' filepath='./Include/internal/pycore_compile.h' line='21' 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/internal/pycore_compile.h' line='36' 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='./Include/internal/pycore_symtable.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCode_ConstantKey' mangled-name='_PyCode_ConstantKey' filepath='./Include/cpython/code.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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>
   </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-149' 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-149' 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-149' 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='295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Reset'>
-      <parameter type-id='type-id-15' name='ovar' filepath='Python/context.c' line='295' column='1'/>
-      <parameter type-id='type-id-15' name='otok' filepath='Python/context.c' line='295' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyContextVar_Set' mangled-name='PyContextVar_Set' filepath='Python/context.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Set'>
-      <parameter type-id='type-id-15' name='ovar' filepath='Python/context.c' line='259' column='1'/>
-      <parameter type-id='type-id-15' name='val' filepath='Python/context.c' line='259' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='ovar' filepath='Python/context.c' line='295' column='1'/>
+      <parameter type-id='type-id-16' name='otok' filepath='Python/context.c' line='295' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyContextVar_Get' mangled-name='PyContextVar_Get' filepath='Python/context.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Get'>
-      <parameter type-id='type-id-15' name='ovar' filepath='Python/context.c' line='196' column='1'/>
-      <parameter type-id='type-id-15' name='def' filepath='Python/context.c' line='196' column='1'/>
+      <parameter type-id='type-id-16' name='ovar' filepath='Python/context.c' line='196' column='1'/>
+      <parameter type-id='type-id-16' name='def' filepath='Python/context.c' line='196' column='1'/>
       <parameter type-id='type-id-86' name='val' filepath='Python/context.c' line='196' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyContextVar_New' mangled-name='PyContextVar_New' filepath='Python/context.c' line='183' 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='183' column='1'/>
-      <parameter type-id='type-id-15' name='def' filepath='Python/context.c' line='183' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='def' filepath='Python/context.c' line='183' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyContext_Exit' mangled-name='PyContext_Exit' filepath='Python/context.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Exit'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='octx' filepath='Python/context.c' line='174' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyContext_Enter' mangled-name='PyContext_Enter' filepath='Python/context.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Enter'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-16' name='octx' filepath='Python/context.c' line='174' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyContext_CopyCurrent' mangled-name='PyContext_CopyCurrent' filepath='Python/context.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_CopyCurrent'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyContext_Copy' mangled-name='PyContext_Copy' filepath='Python/context.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Copy'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2473' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='iter' filepath='Objects/abstract.c' line='2863' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyContext_New' mangled-name='PyContext_New' filepath='Python/context.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_New'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='_PyContext_NewHamtForTests' mangled-name='_PyContext_NewHamtForTests' filepath='Python/context.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyContext_NewHamtForTests'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyContextVar_Set' mangled-name='PyContextVar_Set' filepath='Python/context.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Set'>
+      <parameter type-id='type-id-16' name='ovar' filepath='Python/context.c' line='259' column='1'/>
+      <parameter type-id='type-id-16' name='val' filepath='Python/context.c' line='259' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <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='_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='_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='_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-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='_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='_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>
+    <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='_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='_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='_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='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='Python/errors.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyErr_ProgramTextObject' mangled-name='PyErr_ProgramTextObject' filepath='Python/errors.c' line='1781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ProgramTextObject'>
-      <parameter type-id='type-id-15' name='n' filepath='Objects/abstract.c' line='1702' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/abstract.c' line='1702' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-16' name='n' filepath='Objects/abstract.c' line='1702' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Objects/abstract.c' line='1702' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyErr_ProgramText' mangled-name='PyErr_ProgramText' filepath='Python/errors.c' line='1764' 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='1764' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1764' column='1'/>
-      <return type-id='type-id-15'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/errors.c' line='1764' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyErr_SyntaxLocationEx' mangled-name='PyErr_SyntaxLocationEx' filepath='Python/errors.c' line='1703' 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='1703' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1703' column='1'/>
-      <parameter type-id='type-id-8' name='col_offset' filepath='Python/errors.c' line='1703' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/errors.c' line='1703' column='1'/>
+      <parameter type-id='type-id-9' name='col_offset' filepath='Python/errors.c' line='1703' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyErr_RangedSyntaxLocationObject' mangled-name='PyErr_RangedSyntaxLocationObject' filepath='Python/errors.c' line='1697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_RangedSyntaxLocationObject'>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/errors.c' line='1697' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1697' column='1'/>
-      <parameter type-id='type-id-8' name='col_offset' filepath='Python/errors.c' line='1697' column='1'/>
-      <parameter type-id='type-id-8' name='end_lineno' filepath='Python/errors.c' line='1698' column='1'/>
-      <parameter type-id='type-id-8' name='end_col_offset' filepath='Python/errors.c' line='1698' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/errors.c' line='1697' column='1'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/errors.c' line='1697' column='1'/>
+      <parameter type-id='type-id-9' name='col_offset' filepath='Python/errors.c' line='1697' column='1'/>
+      <parameter type-id='type-id-9' name='end_lineno' filepath='Python/errors.c' line='1698' column='1'/>
+      <parameter type-id='type-id-9' name='end_col_offset' filepath='Python/errors.c' line='1698' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyErr_SyntaxLocationObject' mangled-name='PyErr_SyntaxLocationObject' filepath='Python/errors.c' line='1692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SyntaxLocationObject'>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/errors.c' line='1692' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1692' column='1'/>
-      <parameter type-id='type-id-8' name='col_offset' filepath='Python/errors.c' line='1692' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/errors.c' line='1692' column='1'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/errors.c' line='1692' column='1'/>
+      <parameter type-id='type-id-9' name='col_offset' filepath='Python/errors.c' line='1692' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyErr_SyntaxLocation' mangled-name='PyErr_SyntaxLocation' filepath='Python/errors.c' line='1564' 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='1564' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1564' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/errors.c' line='1564' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyErr_WriteUnraisable' mangled-name='PyErr_WriteUnraisable' filepath='Python/errors.c' line='1557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WriteUnraisable'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='1891' column='1'/>
-      <return type-id='type-id-69'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/errors.c' line='1557' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='_PyErr_WriteUnraisableMsg' mangled-name='_PyErr_WriteUnraisableMsg' filepath='Python/errors.c' line='1454' 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='1454' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/errors.c' line='1454' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_NewExceptionWithDoc' mangled-name='PyErr_NewExceptionWithDoc' filepath='Python/errors.c' line='1164' 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='1164' column='1'/>
-      <parameter type-id='type-id-3' name='doc' filepath='Python/errors.c' line='1164' column='1'/>
-      <parameter type-id='type-id-15' name='base' filepath='Python/errors.c' line='1165' column='1'/>
-      <parameter type-id='type-id-15' name='dict' filepath='Python/errors.c' line='1165' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_NewException' mangled-name='PyErr_NewException' filepath='Python/errors.c' line='1107' 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='1107' column='1'/>
-      <parameter type-id='type-id-15' name='base' filepath='Python/errors.c' line='1107' column='1'/>
-      <parameter type-id='type-id-15' name='dict' filepath='Python/errors.c' line='1107' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_Format' mangled-name='PyErr_Format' filepath='Python/errors.c' line='1091' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Format'>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='1091' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1091' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyErr_Format' mangled-name='_PyErr_Format' filepath='Python/errors.c' line='1075' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Format'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='1075' column='1'/>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='1075' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1076' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_FormatV' mangled-name='PyErr_FormatV' filepath='Python/errors.c' line='1067' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_FormatV'>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='1067' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1067' column='1'/>
-      <parameter type-id='type-id-217' name='vargs' filepath='Python/errors.c' line='1067' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_BadInternalCall' mangled-name='PyErr_BadInternalCall' filepath='Python/errors.c' line='1038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_BadInternalCall'>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_BadInternalCall' mangled-name='_PyErr_BadInternalCall' filepath='Python/errors.c' line='1026' 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='1026' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1026' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_SetImportError' mangled-name='PyErr_SetImportError' filepath='Python/errors.c' line='1020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetImportError'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <parameter type-id='type-id-15' name='z' filepath='Objects/abstract.c' line='1328' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_SetImportErrorSubclass' mangled-name='PyErr_SetImportErrorSubclass' filepath='Python/errors.c' line='967' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetImportErrorSubclass'>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='967' column='1'/>
-      <parameter type-id='type-id-15' name='msg' filepath='Python/errors.c' line='967' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Python/errors.c' line='968' column='1'/>
-      <parameter type-id='type-id-15' name='path' filepath='Python/errors.c' line='968' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_SetFromErrno' mangled-name='PyErr_SetFromErrno' filepath='Python/errors.c' line='817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrno'>
-      <parameter type-id='type-id-15' name='input' filepath='Objects/bytearrayobject.c' line='80' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_SetFromErrnoWithFilename' mangled-name='PyErr_SetFromErrnoWithFilename' filepath='Python/errors.c' line='797' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilename'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2349' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_SetFromErrnoWithFilenameObjects' mangled-name='PyErr_SetFromErrnoWithFilenameObjects' filepath='Python/errors.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilenameObjects'>
-      <parameter type-id='type-id-15' name='exc' filepath='Python/errors.c' line='698' column='1'/>
-      <parameter type-id='type-id-15' name='filenameObject' filepath='Python/errors.c' line='698' column='1'/>
-      <parameter type-id='type-id-15' name='filenameObject2' filepath='Python/errors.c' line='698' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_SetFromErrnoWithFilenameObject' mangled-name='PyErr_SetFromErrnoWithFilenameObject' filepath='Python/errors.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilenameObject'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <parameter type-id='type-id-15' name='w' filepath='Objects/abstract.c' line='1321' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_NoMemory' mangled-name='PyErr_NoMemory' filepath='Python/errors.c' line='685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NoMemory'>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyErr_NoMemory' mangled-name='_PyErr_NoMemory' filepath='Python/errors.c' line='672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_NoMemory'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='672' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_BadArgument' mangled-name='PyErr_BadArgument' filepath='Python/errors.c' line='663' 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='646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_FormatFromCause'>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='1091' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1091' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyErr_FormatFromCauseTstate' mangled-name='_PyErr_FormatFromCauseTstate' filepath='Python/errors.c' line='631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_FormatFromCauseTstate'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='1075' column='1'/>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='1075' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1076' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyErr_ChainStackItem' mangled-name='_PyErr_ChainStackItem' filepath='Python/errors.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ChainStackItem'>
-      <parameter type-id='type-id-17' name='exc_info' filepath='Python/errors.c' line='555' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_ChainExceptions' mangled-name='_PyErr_ChainExceptions' filepath='Python/errors.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ChainExceptions'>
-      <parameter type-id='type-id-15' name='exc' filepath='Python/errors.c' line='513' column='1'/>
-      <parameter type-id='type-id-15' name='val' filepath='Python/errors.c' line='513' column='1'/>
-      <parameter type-id='type-id-15' name='tb' filepath='Python/errors.c' line='513' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_SetExcInfo' mangled-name='PyErr_SetExcInfo' filepath='Python/errors.c' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetExcInfo'>
-      <parameter type-id='type-id-15' name='p_type' filepath='Python/errors.c' line='489' column='1'/>
-      <parameter type-id='type-id-15' name='p_value' filepath='Python/errors.c' line='489' column='1'/>
-      <parameter type-id='type-id-15' name='p_traceback' filepath='Python/errors.c' line='489' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_GetExcInfo' mangled-name='PyErr_GetExcInfo' filepath='Python/errors.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_GetExcInfo'>
-      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='482' column='1'/>
-      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='482' column='1'/>
-      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='482' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_GetExcInfo' mangled-name='_PyErr_GetExcInfo' filepath='Python/errors.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_GetExcInfo'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='467' column='1'/>
-      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='468' column='1'/>
-      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='468' column='1'/>
-      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='468' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_Clear' mangled-name='PyErr_Clear' filepath='Python/errors.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Clear'>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_Clear' mangled-name='_PyErr_Clear' filepath='Python/errors.c' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Clear'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='452' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_Fetch' mangled-name='PyErr_Fetch' filepath='Python/errors.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Fetch'>
-      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='482' column='1'/>
-      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='482' column='1'/>
-      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='482' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_Fetch' mangled-name='_PyErr_Fetch' filepath='Python/errors.c' line='430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Fetch'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='430' column='1'/>
-      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='430' column='1'/>
-      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='430' column='1'/>
-      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='431' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_NormalizeException' mangled-name='PyErr_NormalizeException' filepath='Python/errors.c' line='422' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NormalizeException'>
-      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='482' column='1'/>
-      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='482' column='1'/>
-      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='482' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_NormalizeException' mangled-name='_PyErr_NormalizeException' filepath='Python/errors.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_NormalizeException'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='315' column='1'/>
-      <parameter type-id='type-id-86' name='exc' filepath='Python/errors.c' line='315' column='1'/>
-      <parameter type-id='type-id-86' name='val' filepath='Python/errors.c' line='316' column='1'/>
-      <parameter type-id='type-id-86' name='tb' filepath='Python/errors.c' line='316' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_ExceptionMatches' mangled-name='PyErr_ExceptionMatches' filepath='Python/errors.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ExceptionMatches'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyErr_ExceptionMatches' mangled-name='_PyErr_ExceptionMatches' filepath='Python/errors.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ExceptionMatches'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='290' column='1'/>
-      <parameter type-id='type-id-15' name='exc' filepath='Python/errors.c' line='290' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyErr_GivenExceptionMatches' mangled-name='PyErr_GivenExceptionMatches' filepath='Python/errors.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_GivenExceptionMatches'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <parameter type-id='type-id-15' name='annotations' filepath='Objects/funcobject.c' line='235' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyErr_Occurred' mangled-name='PyErr_Occurred' filepath='Python/errors.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Occurred'>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_SetString' mangled-name='PyErr_SetString' filepath='Python/errors.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetString'>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='239' column='1'/>
-      <parameter type-id='type-id-3' name='string' filepath='Python/errors.c' line='239' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_SetString' mangled-name='_PyErr_SetString' filepath='Python/errors.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetString'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='230' column='1'/>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='230' column='1'/>
-      <parameter type-id='type-id-3' name='string' filepath='Python/errors.c' line='231' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_SetNone' mangled-name='PyErr_SetNone' filepath='Python/errors.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetNone'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='565' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_SetNone' mangled-name='_PyErr_SetNone' filepath='Python/errors.c' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetNone'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='215' column='1'/>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='215' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_SetKeyError' mangled-name='_PyErr_SetKeyError' filepath='Python/errors.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetKeyError'>
-      <parameter type-id='type-id-15' name='op' filepath='Objects/object.c' line='2100' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_SetObject' mangled-name='PyErr_SetObject' filepath='Python/errors.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetObject'>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='192' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Python/errors.c' line='192' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_SetObject' mangled-name='_PyErr_SetObject' filepath='Python/errors.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetObject'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='114' column='1'/>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/errors.c' line='114' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Python/errors.c' line='114' column='1'/>
-      <return type-id='type-id-69'/>
-    </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-166' name='tstate' filepath='Python/errors.c' line='76' column='1'/>
-      <return type-id='type-id-17'/>
-    </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-15' name='type' filepath='Python/errors.c' line='68' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Python/errors.c' line='68' column='1'/>
-      <parameter type-id='type-id-15' name='traceback' filepath='Python/errors.c' line='68' column='1'/>
-      <return type-id='type-id-69'/>
-    </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-166' name='tstate' filepath='Python/errors.c' line='40' column='1'/>
-      <parameter type-id='type-id-15' name='type' filepath='Python/errors.c' line='40' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Python/errors.c' line='40' column='1'/>
-      <parameter type-id='type-id-15' name='traceback' filepath='Python/errors.c' line='41' column='1'/>
-      <return type-id='type-id-69'/>
-    </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-215' name='argv' filepath='Python/frozenmain.c' line='17' column='1'/>
-      <return type-id='type-id-8'/>
-    </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='2761' 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='2761' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Python/getargs.c' line='2761' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_NoPositional' mangled-name='_PyArg_NoPositional' filepath='Python/getargs.c' line='2744' 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='2761' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Python/getargs.c' line='2761' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_NoKeywords' mangled-name='_PyArg_NoKeywords' filepath='Python/getargs.c' line='2725' 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='2761' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Python/getargs.c' line='2761' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_UnpackStack' mangled-name='_PyArg_UnpackStack' filepath='Python/getargs.c' line='2698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_UnpackStack'>
-      <parameter type-id='type-id-156' name='args' filepath='Python/getargs.c' line='2698' column='1'/>
-      <parameter type-id='type-id-30' name='nargs' filepath='Python/getargs.c' line='2698' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2698' column='1'/>
-      <parameter type-id='type-id-30' name='min' filepath='Python/getargs.c' line='2699' column='1'/>
-      <parameter type-id='type-id-30' name='max' filepath='Python/getargs.c' line='2699' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/errors.c' line='1454' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_NewExceptionWithDoc' mangled-name='PyErr_NewExceptionWithDoc' filepath='Python/errors.c' line='1165' 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='1165' column='1'/>
+      <parameter type-id='type-id-3' name='doc' filepath='Python/errors.c' line='1165' column='1'/>
+      <parameter type-id='type-id-16' name='base' filepath='Python/errors.c' line='1166' column='1'/>
+      <parameter type-id='type-id-16' name='dict' filepath='Python/errors.c' line='1166' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_NewException' mangled-name='PyErr_NewException' filepath='Python/errors.c' line='1108' 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='1108' column='1'/>
+      <parameter type-id='type-id-16' name='base' filepath='Python/errors.c' line='1108' column='1'/>
+      <parameter type-id='type-id-16' name='dict' filepath='Python/errors.c' line='1108' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_Format' mangled-name='PyErr_Format' filepath='Python/errors.c' line='1092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Format'>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/errors.c' line='1092' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1092' column='1'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyArg_UnpackTuple' mangled-name='PyArg_UnpackTuple' filepath='Python/getargs.c' line='2672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_UnpackTuple'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='2672' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2672' column='1'/>
-      <parameter type-id='type-id-30' name='min' filepath='Python/getargs.c' line='2672' column='1'/>
-      <parameter type-id='type-id-30' name='max' filepath='Python/getargs.c' line='2672' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_CheckPositional' mangled-name='_PyArg_CheckPositional' filepath='Python/getargs.c' line='2610' 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='2610' column='1'/>
-      <parameter type-id='type-id-30' name='nargs' filepath='Python/getargs.c' line='2610' column='1'/>
-      <parameter type-id='type-id-30' name='min' filepath='Python/getargs.c' line='2611' column='1'/>
-      <parameter type-id='type-id-30' name='max' filepath='Python/getargs.c' line='2611' column='1'/>
-      <return type-id='type-id-8'/>
-    </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-700'>
+    <class-decl name='_ts' size-in-bits='2240' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='62' column='1' id='type-id-700'>
       <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='prev' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='keywords' type-id='type-id-701' visibility='default' filepath='./Include/modsupport.h' line='94' column='1'/>
+        <var-decl name='next' type-id='type-id-11' visibility='default' filepath='./Include/cpython/pystate.h' line='66' 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'/>
+        <var-decl name='interp' type-id='type-id-222' visibility='default' filepath='./Include/cpython/pystate.h' line='67' 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'/>
+        <var-decl name='frame' type-id='type-id-13' visibility='default' filepath='./Include/cpython/pystate.h' line='70' 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'/>
+        <var-decl name='recursion_depth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='71' 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'/>
+        <var-decl name='recursion_headroom' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='72' 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'/>
+        <var-decl name='stackcheck_counter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='352'>
+        <var-decl name='tracing' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='78' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='kwtuple' type-id='type-id-15' visibility='default' filepath='./Include/modsupport.h' line='100' column='1'/>
+        <var-decl name='cframe' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='next' type-id='type-id-702' visibility='default' filepath='./Include/modsupport.h' line='101' column='1'/>
+        <var-decl name='c_profilefunc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='84' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-701'/>
-    <pointer-type-def type-id='type-id-700' size-in-bits='64' id='type-id-702'/>
-    <function-decl name='_PyArg_UnpackKeywords' mangled-name='_PyArg_UnpackKeywords' filepath='Python/getargs.c' line='2268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_UnpackKeywords'>
-      <parameter type-id='type-id-156' name='args' filepath='Python/getargs.c' line='2268' column='1'/>
-      <parameter type-id='type-id-30' name='nargs' filepath='Python/getargs.c' line='2268' column='1'/>
-      <parameter type-id='type-id-15' name='kwargs' filepath='Python/getargs.c' line='2269' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Python/getargs.c' line='2269' column='1'/>
-      <parameter type-id='type-id-702' name='parser' filepath='Python/getargs.c' line='2270' column='1'/>
-      <parameter type-id='type-id-8' name='minpos' filepath='Python/getargs.c' line='2271' column='1'/>
-      <parameter type-id='type-id-8' name='maxpos' filepath='Python/getargs.c' line='2271' column='1'/>
-      <parameter type-id='type-id-8' name='minkw' filepath='Python/getargs.c' line='2271' column='1'/>
-      <parameter type-id='type-id-86' name='buf' filepath='Python/getargs.c' line='2272' column='1'/>
-      <return type-id='type-id-156'/>
-    </function-decl>
-    <function-decl name='PyArg_ValidateKeywordArguments' mangled-name='PyArg_ValidateKeywordArguments' filepath='Python/getargs.c' line='1557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ValidateKeywordArguments'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_VaParseTupleAndKeywordsFast_SizeT' mangled-name='_PyArg_VaParseTupleAndKeywordsFast_SizeT' filepath='Python/getargs.c' line='1543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywordsFast_SizeT'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='1543' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Python/getargs.c' line='1543' column='1'/>
-      <parameter type-id='type-id-702' name='parser' filepath='Python/getargs.c' line='1544' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/getargs.c' line='1544' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_VaParseTupleAndKeywordsFast' mangled-name='_PyArg_VaParseTupleAndKeywordsFast' filepath='Python/getargs.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywordsFast'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='1543' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Python/getargs.c' line='1543' column='1'/>
-      <parameter type-id='type-id-702' name='parser' filepath='Python/getargs.c' line='1544' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/getargs.c' line='1544' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_ParseStackAndKeywords_SizeT' mangled-name='_PyArg_ParseStackAndKeywords_SizeT' filepath='Python/getargs.c' line='1515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStackAndKeywords_SizeT'>
-      <parameter type-id='type-id-156' name='args' filepath='Python/getargs.c' line='1515' column='1'/>
-      <parameter type-id='type-id-30' name='nargs' filepath='Python/getargs.c' line='1515' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Python/getargs.c' line='1515' column='1'/>
-      <parameter type-id='type-id-702' name='parser' filepath='Python/getargs.c' line='1516' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_ParseStackAndKeywords' mangled-name='_PyArg_ParseStackAndKeywords' filepath='Python/getargs.c' line='1502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStackAndKeywords'>
-      <parameter type-id='type-id-156' name='args' filepath='Python/getargs.c' line='1515' column='1'/>
-      <parameter type-id='type-id-30' name='nargs' filepath='Python/getargs.c' line='1515' column='1'/>
-      <parameter type-id='type-id-15' name='kwnames' filepath='Python/getargs.c' line='1515' column='1'/>
-      <parameter type-id='type-id-702' name='parser' filepath='Python/getargs.c' line='1516' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_ParseTupleAndKeywordsFast_SizeT' mangled-name='_PyArg_ParseTupleAndKeywordsFast_SizeT' filepath='Python/getargs.c' line='1489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywordsFast_SizeT'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='1489' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Python/getargs.c' line='1489' column='1'/>
-      <parameter type-id='type-id-702' name='parser' filepath='Python/getargs.c' line='1490' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_ParseTupleAndKeywordsFast' mangled-name='_PyArg_ParseTupleAndKeywordsFast' filepath='Python/getargs.c' line='1476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywordsFast'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='1489' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Python/getargs.c' line='1489' column='1'/>
-      <parameter type-id='type-id-702' name='parser' filepath='Python/getargs.c' line='1490' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_VaParseTupleAndKeywords_SizeT' mangled-name='_PyArg_VaParseTupleAndKeywords_SizeT' filepath='Python/getargs.c' line='1450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywords_SizeT'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='1450' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Python/getargs.c' line='1451' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1452' column='1'/>
-      <parameter type-id='type-id-215' name='kwlist' filepath='Python/getargs.c' line='1453' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/getargs.c' line='1453' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyArg_VaParseTupleAndKeywords' mangled-name='PyArg_VaParseTupleAndKeywords' filepath='Python/getargs.c' line='1425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_VaParseTupleAndKeywords'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='1450' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Python/getargs.c' line='1451' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1452' column='1'/>
-      <parameter type-id='type-id-215' name='kwlist' filepath='Python/getargs.c' line='1453' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/getargs.c' line='1453' 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='1399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywords_SizeT'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='1399' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Python/getargs.c' line='1400' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1401' column='1'/>
-      <parameter type-id='type-id-215' name='kwlist' filepath='Python/getargs.c' line='1402' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyArg_ParseTupleAndKeywords' mangled-name='PyArg_ParseTupleAndKeywords' filepath='Python/getargs.c' line='1375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ParseTupleAndKeywords'>
-      <parameter type-id='type-id-15' name='args' filepath='Python/getargs.c' line='1399' column='1'/>
-      <parameter type-id='type-id-15' name='keywords' filepath='Python/getargs.c' line='1400' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1401' column='1'/>
-      <parameter type-id='type-id-215' name='kwlist' filepath='Python/getargs.c' line='1402' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArg_BadArgument' mangled-name='_PyArg_BadArgument' filepath='Python/getargs.c' line='617' 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='617' column='1'/>
-      <parameter type-id='type-id-3' name='displayname' filepath='Python/getargs.c' line='617' column='1'/>
-      <parameter type-id='type-id-3' name='expected' filepath='Python/getargs.c' line='618' column='1'/>
-      <parameter type-id='type-id-15' name='arg' filepath='Python/getargs.c' line='618' column='1'/>
-      <return type-id='type-id-69'/>
-    </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-15' 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-217' name='va' filepath='Python/getargs.c' line='186' column='1'/>
-      <return type-id='type-id-8'/>
-    </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-15' 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-217' name='va' filepath='Python/getargs.c' line='186' column='1'/>
-      <return type-id='type-id-8'/>
-    </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-156' name='args' filepath='Python/getargs.c' line='160' column='1'/>
-      <parameter type-id='type-id-30' 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='_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-156' name='args' filepath='Python/getargs.c' line='160' column='1'/>
-      <parameter type-id='type-id-30' 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='_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-15' 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='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-15' 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='_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-15' 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='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-15' 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>
-  </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>
-  </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>
-  </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>
-  </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>
-  </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-149' 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-149' 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-149' 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-149' 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-149' 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-149' 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-149' 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-703'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='nentries' type-id='type-id-157' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='61' column='1'/>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='c_tracefunc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='85' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='nbuckets' type-id='type-id-157' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='62' column='1'/>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='c_profileobj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='buckets' type-id='type-id-704' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='63' column='1'/>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='c_traceobj' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='87' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='get_entry_func' type-id='type-id-705' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='65' column='1'/>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='curexc_type' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='hash_func' type-id='type-id-706' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='66' column='1'/>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='curexc_value' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='91' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='compare_func' type-id='type-id-707' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='67' column='1'/>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='curexc_traceback' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='key_destroy_func' type-id='type-id-708' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='68' column='1'/>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='exc_state' type-id='type-id-17' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='value_destroy_func' type-id='type-id-708' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='69' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='exc_info' type-id='type-id-18' visibility='default' filepath='./Include/cpython/pystate.h' line='101' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='alloc' type-id='type-id-709' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='70' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='103' 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-710' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='17' column='1' id='type-id-711'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='head' type-id='type-id-712' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='18' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='gilstate_counter' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='105' 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-713'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next' type-id='type-id-714' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='14' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='async_exc' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='107' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-713' size-in-bits='64' id='type-id-714'/>
-    <typedef-decl name='_Py_slist_item_t' type-id='type-id-713' filepath='./Include/internal/pycore_hashtable.h' line='15' column='1' id='type-id-715'/>
-    <pointer-type-def type-id='type-id-715' size-in-bits='64' id='type-id-712'/>
-    <typedef-decl name='_Py_slist_t' type-id='type-id-711' filepath='./Include/internal/pycore_hashtable.h' line='19' column='1' id='type-id-710'/>
-    <pointer-type-def type-id='type-id-710' size-in-bits='64' id='type-id-704'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-716' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='28' column='1' id='type-id-717'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_Py_slist_item' type-id='type-id-715' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='30' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='thread_id' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='108' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='key_hash' type-id='type-id-718' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='32' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='trash_delete_nesting' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='110' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='key' type-id='type-id-20' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='33' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='trash_delete_later' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='111' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='value' type-id='type-id-20' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='34' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='on_delete' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='136' column='1'/>
       </data-member>
-    </class-decl>
-    <typedef-decl name='Py_uhash_t' type-id='type-id-157' filepath='./Include/pyport.h' line='119' column='1' id='type-id-718'/>
-    <typedef-decl name='_Py_hashtable_entry_t' type-id='type-id-717' filepath='./Include/internal/pycore_hashtable.h' line='35' column='1' id='type-id-716'/>
-    <pointer-type-def type-id='type-id-716' size-in-bits='64' id='type-id-719'/>
-    <typedef-decl name='_Py_hashtable_t' type-id='type-id-703' filepath='./Include/internal/pycore_hashtable.h' line='42' column='1' id='type-id-720'/>
-    <pointer-type-def type-id='type-id-720' size-in-bits='64' id='type-id-721'/>
-    <pointer-type-def type-id='type-id-722' size-in-bits='64' id='type-id-723'/>
-    <typedef-decl name='_Py_hashtable_get_entry_func' type-id='type-id-723' filepath='./Include/internal/pycore_hashtable.h' line='47' column='1' id='type-id-705'/>
-    <pointer-type-def type-id='type-id-724' size-in-bits='64' id='type-id-725'/>
-    <typedef-decl name='_Py_hashtable_hash_func' type-id='type-id-725' filepath='./Include/internal/pycore_hashtable.h' line='44' column='1' id='type-id-706'/>
-    <pointer-type-def type-id='type-id-726' size-in-bits='64' id='type-id-727'/>
-    <typedef-decl name='_Py_hashtable_compare_func' type-id='type-id-727' filepath='./Include/internal/pycore_hashtable.h' line='45' column='1' id='type-id-707'/>
-    <typedef-decl name='_Py_hashtable_destroy_func' type-id='type-id-19' filepath='./Include/internal/pycore_hashtable.h' line='46' column='1' id='type-id-708'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-709' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='50' column='1' id='type-id-728'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='malloc' type-id='type-id-729' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='52' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='on_delete_data' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='free' type-id='type-id-19' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='55' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pystate.h' line='139' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-730' size-in-bits='64' id='type-id-729'/>
-    <typedef-decl name='_Py_hashtable_allocator_t' type-id='type-id-728' filepath='./Include/internal/pycore_hashtable.h' line='56' column='1' id='type-id-709'/>
-    <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-721' name='ht' filepath='Python/hashtable.c' line='404' column='1'/>
-      <return type-id='type-id-69'/>
-    </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-721' name='ht' filepath='Python/hashtable.c' line='404' column='1'/>
-      <return type-id='type-id-69'/>
-    </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-706' name='hash_func' filepath='Python/hashtable.c' line='363' column='1'/>
-      <parameter type-id='type-id-707' name='compare_func' filepath='Python/hashtable.c' line='364' column='1'/>
-      <return type-id='type-id-721'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-709' size-in-bits='64' id='type-id-731'/>
-    <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-706' name='hash_func' filepath='Python/hashtable.c' line='316' column='1'/>
-      <parameter type-id='type-id-707' name='compare_func' filepath='Python/hashtable.c' line='317' column='1'/>
-      <parameter type-id='type-id-708' name='key_destroy_func' filepath='Python/hashtable.c' line='318' column='1'/>
-      <parameter type-id='type-id-708' name='value_destroy_func' filepath='Python/hashtable.c' line='319' column='1'/>
-      <parameter type-id='type-id-731' name='allocator' filepath='Python/hashtable.c' line='320' column='1'/>
-      <return type-id='type-id-721'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-732' size-in-bits='64' id='type-id-733'/>
-    <typedef-decl name='_Py_hashtable_foreach_func' type-id='type-id-733' filepath='./Include/internal/pycore_hashtable.h' line='96' column='1' id='type-id-734'/>
-    <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-721' name='ht' filepath='Python/hashtable.c' line='261' column='1'/>
-      <parameter type-id='type-id-734' name='func' filepath='Python/hashtable.c' line='262' column='1'/>
-      <parameter type-id='type-id-20' 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-721' name='ht' filepath='Python/hashtable.c' line='248' column='1'/>
-      <parameter type-id='type-id-20' name='key' filepath='Python/hashtable.c' line='248' column='1'/>
-      <return type-id='type-id-20'/>
-    </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-721' name='ht' filepath='Python/hashtable.c' line='209' column='1'/>
-      <parameter type-id='type-id-20' name='key' filepath='Python/hashtable.c' line='209' column='1'/>
-      <parameter type-id='type-id-20' 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-721' name='ht' filepath='Python/hashtable.c' line='174' column='1'/>
-      <parameter type-id='type-id-20' name='key' filepath='Python/hashtable.c' line='174' column='1'/>
-      <return type-id='type-id-20'/>
-    </function-decl>
-    <qualified-type-def type-id='type-id-720' const='yes' id='type-id-735'/>
-    <pointer-type-def type-id='type-id-735' size-in-bits='64' id='type-id-736'/>
-    <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-736' name='ht' filepath='Python/hashtable.c' line='120' column='1'/>
-      <return type-id='type-id-157'/>
-    </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-20' name='key1' filepath='Python/hashtable.c' line='99' column='1'/>
-      <parameter type-id='type-id-20' name='key2' filepath='Python/hashtable.c' line='99' column='1'/>
-      <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-20' name='key' filepath='Python/hashtable.c' line='92' column='1'/>
-      <return type-id='type-id-718'/>
-    </function-decl>
-    <function-type size-in-bits='64' id='type-id-722'>
-      <parameter type-id='type-id-721'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-719'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-732'>
-      <parameter type-id='type-id-721'/>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-726'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-724'>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-718'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-730'>
-      <parameter type-id='type-id-157'/>
-      <return type-id='type-id-20'/>
-    </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='24' column='1' id='type-id-737'>
-      <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='25' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='async_gen_firstiter' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='141' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='initfunc' type-id='type-id-462' visibility='default' filepath='./Include/cpython/import.h' line='26' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='async_gen_finalizer' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='142' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='context' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='context_ver' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='id' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='root_cframe' type-id='type-id-23' visibility='default' filepath='./Include/cpython/pystate.h' line='150' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-737' size-in-bits='64' id='type-id-738'/>
-    <var-decl name='PyImport_Inittab' type-id='type-id-738' mangled-name='PyImport_Inittab' visibility='default' filepath='./Include/cpython/import.h' line='28' column='1' elf-symbol-id='PyImport_Inittab'/>
-    <function-decl name='PyImport_AppendInittab' mangled-name='PyImport_AppendInittab' filepath='Python/import.c' line='2266' 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='2266' column='1'/>
-      <parameter type-id='type-id-462' name='initfunc' filepath='Python/import.c' line='2266' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyImport_ExtendInittab' mangled-name='PyImport_ExtendInittab' filepath='Python/import.c' line='2220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExtendInittab'>
-      <parameter type-id='type-id-738' name='newtab' filepath='Python/import.c' line='2220' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyInit__imp' mangled-name='PyInit__imp' filepath='Python/import.c' line='2159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__imp'>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_Import' mangled-name='PyImport_Import' filepath='Python/import.c' line='1746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_Import'>
-      <parameter type-id='type-id-15' name='module_name' filepath='Python/import.c' line='1746' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ReloadModule' mangled-name='PyImport_ReloadModule' filepath='Python/import.c' line='1713' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ReloadModule'>
-      <parameter type-id='type-id-15' name='m' filepath='Python/import.c' line='1713' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ImportModuleLevel' mangled-name='PyImport_ImportModuleLevel' filepath='Python/import.c' line='1695' 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='1695' column='1'/>
-      <parameter type-id='type-id-15' name='globals' filepath='Python/import.c' line='1695' column='1'/>
-      <parameter type-id='type-id-15' name='locals' filepath='Python/import.c' line='1695' column='1'/>
-      <parameter type-id='type-id-15' name='fromlist' filepath='Python/import.c' line='1696' column='1'/>
-      <parameter type-id='type-id-8' name='level' filepath='Python/import.c' line='1696' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ImportModuleLevelObject' mangled-name='PyImport_ImportModuleLevelObject' filepath='Python/import.c' line='1543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModuleLevelObject'>
-      <parameter type-id='type-id-15' name='name' filepath='Python/import.c' line='1543' column='1'/>
-      <parameter type-id='type-id-15' name='globals' filepath='Python/import.c' line='1543' column='1'/>
-      <parameter type-id='type-id-15' name='locals' filepath='Python/import.c' line='1544' column='1'/>
-      <parameter type-id='type-id-15' name='fromlist' filepath='Python/import.c' line='1544' column='1'/>
-      <parameter type-id='type-id-8' name='level' filepath='Python/import.c' line='1545' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_GetModule' mangled-name='PyImport_GetModule' filepath='Python/import.c' line='1526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetModule'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ImportModuleNoBlock' mangled-name='PyImport_ImportModuleNoBlock' filepath='Python/import.c' line='1231' 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-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ImportModule' mangled-name='PyImport_ImportModule' filepath='Python/import.c' line='1207' 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='562' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ImportFrozenModule' mangled-name='PyImport_ImportFrozenModule' filepath='Python/import.c' line='1190' 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='1190' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyImport_ImportFrozenModuleObject' mangled-name='PyImport_ImportFrozenModuleObject' filepath='Python/import.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportFrozenModuleObject'>
-      <parameter type-id='type-id-15' name='name' filepath='Python/import.c' line='1121' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyImport_GetImporter' mangled-name='PyImport_GetImporter' filepath='Python/import.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetImporter'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2819' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ExecCodeModuleObject' mangled-name='PyImport_ExecCodeModuleObject' filepath='Python/import.c' line='792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModuleObject'>
-      <parameter type-id='type-id-15' name='name' filepath='Python/import.c' line='792' column='1'/>
-      <parameter type-id='type-id-15' name='co' filepath='Python/import.c' line='792' column='1'/>
-      <parameter type-id='type-id-15' name='pathname' filepath='Python/import.c' line='792' column='1'/>
-      <parameter type-id='type-id-15' name='cpathname' filepath='Python/import.c' line='793' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ExecCodeModuleWithPathnames' mangled-name='PyImport_ExecCodeModuleWithPathnames' filepath='Python/import.c' line='687' 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='687' column='1'/>
-      <parameter type-id='type-id-15' name='co' filepath='Python/import.c' line='687' column='1'/>
-      <parameter type-id='type-id-3' name='pathname' filepath='Python/import.c' line='688' column='1'/>
-      <parameter type-id='type-id-3' name='cpathname' filepath='Python/import.c' line='689' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ExecCodeModuleEx' mangled-name='PyImport_ExecCodeModuleEx' filepath='Python/import.c' line='680' 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-15' 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-15'/>
-    </function-decl>
-    <function-decl name='PyImport_ExecCodeModule' mangled-name='PyImport_ExecCodeModule' filepath='Python/import.c' line='673' 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='673' column='1'/>
-      <parameter type-id='type-id-15' name='co' filepath='Python/import.c' line='673' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_AddModule' mangled-name='PyImport_AddModule' filepath='Python/import.c' line='624' 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='562' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyImport_AddModuleObject' mangled-name='PyImport_AddModuleObject' filepath='Python/import.c' line='606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_AddModuleObject'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2793' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_PyImport_FixupBuiltin' mangled-name='_PyImport_FixupBuiltin' filepath='Python/import.c' line='484' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FixupBuiltin'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Objects/abstract.c' line='2366' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyImport_FixupExtensionObject' mangled-name='_PyImport_FixupExtensionObject' filepath='Python/import.c' line='421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FixupExtensionObject'>
-      <parameter type-id='type-id-15' name='mod' filepath='Python/import.c' line='421' column='1'/>
-      <parameter type-id='type-id-15' name='name' filepath='Python/import.c' line='421' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/import.c' line='422' column='1'/>
-      <parameter type-id='type-id-15' name='modules' filepath='Python/import.c' line='422' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyImport_GetMagicTag' mangled-name='PyImport_GetMagicTag' filepath='Python/import.c' line='398' 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='PyImport_GetMagicNumber' mangled-name='PyImport_GetMagicNumber' filepath='Python/import.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetMagicNumber'>
-      <return type-id='type-id-32'/>
-    </function-decl>
-    <function-decl name='_PyImport_SetModuleString' mangled-name='_PyImport_SetModuleString' filepath='Python/import.c' line='311' 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='311' column='1'/>
-      <parameter type-id='type-id-15' name='m' filepath='Python/import.c' line='311' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyImport_SetModule' mangled-name='_PyImport_SetModule' filepath='Python/import.c' line='303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_SetModule'>
-      <parameter type-id='type-id-15' name='od' filepath='Objects/odictobject.c' line='1675' column='1'/>
-      <parameter type-id='type-id-15' name='key' filepath='Objects/odictobject.c' line='1675' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyImport_GetModuleId' mangled-name='_PyImport_GetModuleId' filepath='Python/import.c' line='293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_GetModuleId'>
-      <parameter type-id='type-id-219' name='nameid' filepath='Python/import.c' line='293' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <class-decl name='_is' size-in-bits='908160' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='220' column='1' id='type-id-739'>
+    <class-decl name='_is' size-in-bits='908160' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='220' column='1' id='type-id-701'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='next' type-id='type-id-225' visibility='default' filepath='./Include/internal/pycore_interp.h' line='222' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tstate_head' type-id='type-id-10' visibility='default' filepath='./Include/internal/pycore_interp.h' line='223' column='1'/>
+        <var-decl name='tstate_head' type-id='type-id-11' visibility='default' filepath='./Include/internal/pycore_interp.h' line='223' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
         <var-decl name='runtime' type-id='type-id-226' visibility='default' filepath='./Include/internal/pycore_interp.h' line='228' column='1'/>
         <var-decl name='id_refcount' type-id='type-id-227' visibility='default' filepath='./Include/internal/pycore_interp.h' line='231' 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='232' column='1'/>
+        <var-decl name='requires_idref' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='232' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
         <var-decl name='id_mutex' type-id='type-id-228' visibility='default' filepath='./Include/internal/pycore_interp.h' line='233' 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='235' column='1'/>
+        <var-decl name='finalizing' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='235' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
         <var-decl name='ceval' type-id='type-id-229' visibility='default' filepath='./Include/internal/pycore_interp.h' line='237' column='1'/>
         <var-decl name='gc' type-id='type-id-230' visibility='default' filepath='./Include/internal/pycore_interp.h' line='238' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6848'>
-        <var-decl name='modules' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='241' column='1'/>
+        <var-decl name='modules' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='241' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6912'>
-        <var-decl name='modules_by_index' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='242' column='1'/>
+        <var-decl name='modules_by_index' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='242' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='6976'>
-        <var-decl name='sysdict' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='244' column='1'/>
+        <var-decl name='sysdict' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='244' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7040'>
-        <var-decl name='builtins' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='246' column='1'/>
+        <var-decl name='builtins' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='246' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7104'>
-        <var-decl name='importlib' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='248' column='1'/>
+        <var-decl name='importlib' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='248' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7168'>
-        <var-decl name='num_threads' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_interp.h' line='251' column='1'/>
+        <var-decl name='num_threads' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_interp.h' line='251' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7232'>
         <var-decl name='pythread_stacksize' type-id='type-id-157' visibility='default' filepath='./Include/internal/pycore_interp.h' line='256' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7296'>
-        <var-decl name='codec_search_path' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='258' column='1'/>
+        <var-decl name='codec_search_path' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='258' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7360'>
-        <var-decl name='codec_search_cache' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='259' column='1'/>
+        <var-decl name='codec_search_cache' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='259' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7424'>
-        <var-decl name='codec_error_registry' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='260' column='1'/>
+        <var-decl name='codec_error_registry' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='260' 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='261' column='1'/>
+        <var-decl name='codecs_initialized' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='261' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='7552'>
         <var-decl name='config' type-id='type-id-231' visibility='default' filepath='./Include/internal/pycore_interp.h' line='263' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10688'>
-        <var-decl name='dlopenflags' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='265' column='1'/>
+        <var-decl name='dlopenflags' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_interp.h' line='265' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10752'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='268' column='1'/>
+        <var-decl name='dict' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='268' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10816'>
-        <var-decl name='builtins_copy' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='270' column='1'/>
+        <var-decl name='builtins_copy' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='270' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10880'>
-        <var-decl name='import_func' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='271' column='1'/>
+        <var-decl name='import_func' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='271' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='10944'>
         <var-decl name='eval_frame' type-id='type-id-232' visibility='default' filepath='./Include/internal/pycore_interp.h' line='273' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11008'>
-        <var-decl name='co_extra_user_count' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_interp.h' line='275' column='1'/>
+        <var-decl name='co_extra_user_count' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_interp.h' line='275' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='11072'>
         <var-decl name='co_extra_freefuncs' type-id='type-id-233' visibility='default' filepath='./Include/internal/pycore_interp.h' line='276' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27392'>
-        <var-decl name='before_forkers' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='279' column='1'/>
+        <var-decl name='before_forkers' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='279' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27456'>
-        <var-decl name='after_forkers_parent' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='280' column='1'/>
+        <var-decl name='after_forkers_parent' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='280' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27520'>
-        <var-decl name='after_forkers_child' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='281' column='1'/>
+        <var-decl name='after_forkers_child' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='281' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27584'>
-        <var-decl name='tstate_next_unique_id' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_interp.h' line='284' column='1'/>
+        <var-decl name='tstate_next_unique_id' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_interp.h' line='284' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='27648'>
         <var-decl name='warnings' type-id='type-id-234' visibility='default' filepath='./Include/internal/pycore_interp.h' line='286' column='1'/>
         <var-decl name='atexit' type-id='type-id-235' visibility='default' filepath='./Include/internal/pycore_interp.h' line='287' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='28032'>
-        <var-decl name='audit_hooks' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='289' column='1'/>
+        <var-decl name='audit_hooks' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_interp.h' line='289' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='28096'>
         <var-decl name='small_ints' type-id='type-id-236' visibility='default' filepath='./Include/internal/pycore_interp.h' line='296' column='1'/>
         <var-decl name='type_cache' type-id='type-id-249' visibility='default' filepath='./Include/internal/pycore_interp.h' line='313' column='1'/>
       </data-member>
     </class-decl>
-    <function-decl name='_PyImport_IsInitialized' mangled-name='_PyImport_IsInitialized' filepath='Python/import.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_IsInitialized'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/import.c' line='285' column='1'/>
-      <return type-id='type-id-8'/>
+    <typedef-decl name='PyThreadState' type-id='type-id-700' filepath='./Include/pystate.h' line='20' 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='_PyErr_Format' mangled-name='_PyErr_Format' filepath='Python/errors.c' line='1076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Format'>
+      <parameter type-id='type-id-703' name='tstate' filepath='Python/errors.c' line='1076' column='1'/>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/errors.c' line='1076' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1077' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_FormatV' mangled-name='PyErr_FormatV' filepath='Python/errors.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_FormatV'>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/errors.c' line='1068' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1068' column='1'/>
+      <parameter type-id='type-id-217' name='vargs' filepath='Python/errors.c' line='1068' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_BadInternalCall' mangled-name='PyErr_BadInternalCall' filepath='Python/errors.c' line='1039' 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='_PyErr_BadInternalCall' mangled-name='_PyErr_BadInternalCall' filepath='Python/errors.c' line='1027' 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='1027' column='1'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/errors.c' line='1027' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetImportError' mangled-name='PyErr_SetImportError' filepath='Python/errors.c' line='1021' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetImportError'>
+      <parameter type-id='type-id-16' name='msg' filepath='Python/errors.c' line='1021' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Python/errors.c' line='1021' column='1'/>
+      <parameter type-id='type-id-16' name='path' filepath='Python/errors.c' line='1021' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_SetImportErrorSubclass' mangled-name='PyErr_SetImportErrorSubclass' filepath='Python/errors.c' line='968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetImportErrorSubclass'>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/errors.c' line='968' column='1'/>
+      <parameter type-id='type-id-16' name='msg' filepath='Python/errors.c' line='968' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Python/errors.c' line='969' column='1'/>
+      <parameter type-id='type-id-16' name='path' filepath='Python/errors.c' line='969' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_SetFromErrno' mangled-name='PyErr_SetFromErrno' filepath='Python/errors.c' line='818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrno'>
+      <parameter type-id='type-id-16' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_SetFromErrnoWithFilename' mangled-name='PyErr_SetFromErrnoWithFilename' filepath='Python/errors.c' line='798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilename'>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/dictobject.c' line='3582' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='3582' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_SetFromErrnoWithFilenameObjects' mangled-name='PyErr_SetFromErrnoWithFilenameObjects' filepath='Python/errors.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilenameObjects'>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/errors.c' line='699' column='1'/>
+      <parameter type-id='type-id-16' name='filenameObject' filepath='Python/errors.c' line='699' column='1'/>
+      <parameter type-id='type-id-16' name='filenameObject2' filepath='Python/errors.c' line='699' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_SetFromErrnoWithFilenameObject' mangled-name='PyErr_SetFromErrnoWithFilenameObject' filepath='Python/errors.c' line='693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilenameObject'>
+      <parameter type-id='type-id-16' name='code' filepath='Objects/funcobject.c' line='96' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Objects/funcobject.c' line='96' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_NoMemory' mangled-name='PyErr_NoMemory' filepath='Python/errors.c' line='686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NoMemory'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyErr_BadArgument' mangled-name='PyErr_BadArgument' filepath='Python/errors.c' line='664' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_BadArgument'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyErr_FormatFromCause' mangled-name='_PyErr_FormatFromCause' filepath='Python/errors.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_FormatFromCause'>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/errors.c' line='647' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='647' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyImport_GetModuleDict' mangled-name='PyImport_GetModuleDict' filepath='Python/import.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetModuleDict'>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyErr_FormatFromCauseTstate' mangled-name='_PyErr_FormatFromCauseTstate' filepath='Python/errors.c' line='632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_FormatFromCauseTstate'>
+      <parameter type-id='type-id-703' name='tstate' filepath='Python/errors.c' line='632' column='1'/>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/errors.c' line='632' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='633' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyErr_ChainStackItem' mangled-name='_PyErr_ChainStackItem' filepath='Python/errors.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ChainStackItem'>
+      <parameter type-id='type-id-18' name='exc_info' filepath='Python/errors.c' line='556' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_ChainExceptions' mangled-name='_PyErr_ChainExceptions' filepath='Python/errors.c' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ChainExceptions'>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/errors.c' line='514' column='1'/>
+      <parameter type-id='type-id-16' name='val' filepath='Python/errors.c' line='514' column='1'/>
+      <parameter type-id='type-id-16' name='tb' filepath='Python/errors.c' line='514' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetExcInfo' mangled-name='PyErr_SetExcInfo' filepath='Python/errors.c' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetExcInfo'>
+      <parameter type-id='type-id-16' name='p_type' filepath='Python/errors.c' line='490' column='1'/>
+      <parameter type-id='type-id-16' name='p_value' filepath='Python/errors.c' line='490' column='1'/>
+      <parameter type-id='type-id-16' name='p_traceback' filepath='Python/errors.c' line='490' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_GetExcInfo' mangled-name='PyErr_GetExcInfo' filepath='Python/errors.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_GetExcInfo'>
+      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='483' column='1'/>
+      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='483' column='1'/>
+      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='483' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_GetExcInfo' mangled-name='_PyErr_GetExcInfo' filepath='Python/errors.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_GetExcInfo'>
+      <parameter type-id='type-id-703' name='tstate' filepath='Python/errors.c' line='468' column='1'/>
+      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='469' column='1'/>
+      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='469' column='1'/>
+      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='469' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_Clear' mangled-name='_PyErr_Clear' filepath='Python/errors.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Clear'>
+      <parameter type-id='type-id-703' name='tstate' filepath='Python/errors.c' line='453' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_Fetch' mangled-name='PyErr_Fetch' filepath='Python/errors.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Fetch'>
+      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='483' column='1'/>
+      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='483' column='1'/>
+      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='483' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_Fetch' mangled-name='_PyErr_Fetch' filepath='Python/errors.c' line='431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Fetch'>
+      <parameter type-id='type-id-703' name='tstate' filepath='Python/errors.c' line='431' column='1'/>
+      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='431' column='1'/>
+      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='431' column='1'/>
+      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='432' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_NormalizeException' mangled-name='PyErr_NormalizeException' filepath='Python/errors.c' line='423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NormalizeException'>
+      <parameter type-id='type-id-86' name='p_type' filepath='Python/errors.c' line='483' column='1'/>
+      <parameter type-id='type-id-86' name='p_value' filepath='Python/errors.c' line='483' column='1'/>
+      <parameter type-id='type-id-86' name='p_traceback' filepath='Python/errors.c' line='483' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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-703' name='tstate' filepath='Python/errors.c' line='316' column='1'/>
+      <parameter type-id='type-id-86' name='exc' filepath='Python/errors.c' line='316' column='1'/>
+      <parameter type-id='type-id-86' name='val' filepath='Python/errors.c' line='317' column='1'/>
+      <parameter type-id='type-id-86' name='tb' filepath='Python/errors.c' line='317' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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-16' name='exc' filepath='Python/errors.c' line='298' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <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-703' name='tstate' filepath='Python/errors.c' line='291' column='1'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/errors.c' line='291' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-16'/>
+    </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-16' 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='_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-703' name='tstate' filepath='Python/errors.c' line='231' column='1'/>
+      <parameter type-id='type-id-16' 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='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-16' name='exception' filepath='Python/errors.c' line='223' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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-703' name='tstate' filepath='Python/errors.c' line='216' column='1'/>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/errors.c' line='216' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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-16' name='arg' filepath='Python/errors.c' line='203' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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-16' name='exception' filepath='Python/errors.c' line='193' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Python/errors.c' line='193' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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-703' name='tstate' filepath='Python/errors.c' line='77' column='1'/>
+      <return type-id='type-id-18'/>
     </function-decl>
-    <function-decl name='_PyImport_ReleaseLock' mangled-name='_PyImport_ReleaseLock' filepath='Python/import.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_ReleaseLock'>
-      <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-16' name='type' filepath='Python/errors.c' line='69' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Python/errors.c' line='69' column='1'/>
+      <parameter type-id='type-id-16' name='traceback' filepath='Python/errors.c' line='69' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyImport_AcquireLock' mangled-name='_PyImport_AcquireLock' filepath='Python/import.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_AcquireLock'>
-      <return type-id='type-id-69'/>
+    <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-703' name='tstate' filepath='Python/errors.c' line='41' column='1'/>
+      <parameter type-id='type-id-16' name='type' filepath='Python/errors.c' line='41' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Python/errors.c' line='41' column='1'/>
+      <parameter type-id='type-id-16' name='traceback' filepath='Python/errors.c' line='42' column='1'/>
+      <return type-id='type-id-4'/>
     </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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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='2898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetConfigsAsDict'>
-      <return type-id='type-id-15'/>
+    <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-16' name='self' filepath='Objects/exceptions.c' line='330' column='1'/>
+      <parameter type-id='type-id-16' name='tb' filepath='Objects/exceptions.c' line='330' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-740' visibility='default' filepath='./Include/cpython/initconfig.h' line='7' column='1' id='type-id-741'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_type' type-id='type-id-742' visibility='default' filepath='./Include/cpython/initconfig.h' line='12' 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='13' 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='14' 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='15' column='1'/>
-      </data-member>
-    </class-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/initconfig.h' line='8' column='1' id='type-id-742'>
-      <underlying-type type-id='type-id-83'/>
-      <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-741' filepath='./Include/cpython/initconfig.h' line='16' column='1' id='type-id-740'/>
-    <pointer-type-def type-id='type-id-231' size-in-bits='64' id='type-id-743'/>
-    <function-decl name='PyConfig_Read' mangled-name='PyConfig_Read' filepath='./Python/initconfig.c' line='2891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_Read'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='2891' column='1'/>
-      <return type-id='type-id-740'/>
+    <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-703' name='tstate' filepath='Python/errors.c' line='115' column='1'/>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/errors.c' line='115' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Python/errors.c' line='115' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-326' size-in-bits='64' id='type-id-744'/>
-    <function-decl name='PyConfig_SetWideStringList' mangled-name='PyConfig_SetWideStringList' filepath='./Python/initconfig.c' line='2808' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetWideStringList'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='2808' column='1'/>
-      <parameter type-id='type-id-744' name='list' filepath='./Python/initconfig.c' line='2808' column='1'/>
-      <parameter type-id='type-id-30' name='length' filepath='./Python/initconfig.c' line='2809' column='1'/>
-      <parameter type-id='type-id-329' name='items' filepath='./Python/initconfig.c' line='2809' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='_PyErr_NoMemory' mangled-name='_PyErr_NoMemory' filepath='Python/errors.c' line='673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_NoMemory'>
+      <parameter type-id='type-id-703' name='tstate' filepath='Python/errors.c' line='673' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-325' const='yes' id='type-id-745'/>
-    <pointer-type-def type-id='type-id-745' size-in-bits='64' id='type-id-746'/>
-    <function-decl name='PyConfig_SetArgv' mangled-name='PyConfig_SetArgv' filepath='./Python/initconfig.c' line='2796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetArgv'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='2796' column='1'/>
-      <parameter type-id='type-id-30' name='argc' filepath='./Python/initconfig.c' line='2796' column='1'/>
-      <parameter type-id='type-id-746' name='argv' filepath='./Python/initconfig.c' line='2796' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='_Py_fopen_obj' mangled-name='_Py_fopen_obj' filepath='./Include/cpython/fileutils.h' line='101' 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='2784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetBytesArgv'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='2784' column='1'/>
-      <parameter type-id='type-id-30' name='argc' filepath='./Python/initconfig.c' line='2784' column='1'/>
-      <parameter type-id='type-id-192' name='argv' filepath='./Python/initconfig.c' line='2784' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='_PyTraceBack_FromFrame' mangled-name='_PyTraceBack_FromFrame' filepath='./Include/internal/pycore_traceback.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_FromDict' mangled-name='_PyConfig_FromDict' filepath='./Python/initconfig.c' line='1211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyConfig_FromDict'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='1211' column='1'/>
-      <parameter type-id='type-id-15' name='dict' filepath='./Python/initconfig.c' line='1211' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_FatalError_TstateNULL' mangled-name='_Py_FatalError_TstateNULL' filepath='./Include/internal/pycore_pystate.h' line='89' 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-231' const='yes' id='type-id-747'/>
-    <pointer-type-def type-id='type-id-747' size-in-bits='64' id='type-id-748'/>
-    <function-decl name='_PyConfig_AsDict' mangled-name='_PyConfig_AsDict' filepath='./Python/initconfig.c' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyConfig_AsDict'>
-      <parameter type-id='type-id-748' name='config' filepath='./Python/initconfig.c' line='949' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='PyConfig_SetBytesString' mangled-name='PyConfig_SetBytesString' filepath='./Python/initconfig.c' line='847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetBytesString'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='847' column='1'/>
-      <parameter type-id='type-id-329' name='config_str' filepath='./Python/initconfig.c' line='847' column='1'/>
-      <parameter type-id='type-id-3' name='str' filepath='./Python/initconfig.c' line='848' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='_PyType_GetQualName' mangled-name='_PyType_GetQualName' filepath='./Include/internal/pycore_object.h' line='33' 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='785' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetString'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='785' column='1'/>
-      <parameter type-id='type-id-329' name='config_str' filepath='./Python/initconfig.c' line='785' column='1'/>
-      <parameter type-id='type-id-478' name='str' filepath='./Python/initconfig.c' line='785' column='1'/>
-      <return type-id='type-id-740'/>
+    <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='PyConfig_InitIsolatedConfig' mangled-name='PyConfig_InitIsolatedConfig' filepath='./Python/initconfig.c' line='763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitIsolatedConfig'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='763' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyUnicode_DecodeLocale' mangled-name='PyUnicode_DecodeLocale' 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='PyConfig_InitPythonConfig' mangled-name='PyConfig_InitPythonConfig' filepath='./Python/initconfig.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitPythonConfig'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='763' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyException_SetContext' mangled-name='PyException_SetContext' filepath='./Include/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='_PyConfig_InitCompatConfig' mangled-name='_PyConfig_InitCompatConfig' filepath='./Python/initconfig.c' line='688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyConfig_InitCompatConfig'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='763' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyException_GetContext' mangled-name='PyException_GetContext' filepath='./Include/pyerrors.h' line='47' 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='646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_Clear'>
-      <parameter type-id='type-id-743' name='config' filepath='./Python/initconfig.c' line='763' column='1'/>
-      <return type-id='type-id-69'/>
+  </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-9' name='argc' filepath='Python/frozenmain.c' line='17' column='1'/>
+      <parameter type-id='type-id-215' name='argv' filepath='Python/frozenmain.c' line='17' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-329' size-in-bits='64' id='type-id-749'/>
-    <function-decl name='Py_GetArgcArgv' mangled-name='Py_GetArgcArgv' filepath='./Python/initconfig.c' line='569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetArgcArgv'>
-      <parameter type-id='type-id-452' name='argc' filepath='./Python/initconfig.c' line='569' column='1'/>
-      <parameter type-id='type-id-749' name='argv' filepath='./Python/initconfig.c' line='569' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyRuntime_Initialize' mangled-name='_PyRuntime_Initialize' filepath='./Include/internal/pycore_runtime.h' line='139' 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='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ClearArgcArgv'>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyStatus_Exception' mangled-name='PyStatus_Exception' filepath='./Include/cpython/initconfig.h' line='24' 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='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ClearStandardStreamEncoding'>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyConfig_InitPythonConfig' mangled-name='PyConfig_InitPythonConfig' filepath='./Include/cpython/initconfig.h' line='211' 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='458' 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='458' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='./Python/initconfig.c' line='458' column='1'/>
-      <return type-id='type-id-8'/>
+    <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>
-    <qualified-type-def type-id='type-id-326' const='yes' id='type-id-750'/>
-    <pointer-type-def type-id='type-id-750' size-in-bits='64' id='type-id-751'/>
-    <function-decl name='_PyWideStringList_AsList' mangled-name='_PyWideStringList_AsList' filepath='./Python/initconfig.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_AsList'>
-      <parameter type-id='type-id-751' name='list' filepath='./Python/initconfig.c' line='427' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyMem_RawStrdup' mangled-name='_PyMem_RawStrdup' filepath='./Include/cpython/pymem.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyWideStringList_Extend' mangled-name='_PyWideStringList_Extend' filepath='./Python/initconfig.c' line='402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Extend'>
-      <parameter type-id='type-id-744' name='list' filepath='./Python/initconfig.c' line='402' column='1'/>
-      <parameter type-id='type-id-751' name='list2' filepath='./Python/initconfig.c' line='402' column='1'/>
-      <return type-id='type-id-740'/>
+    <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='PyWideStringList_Append' mangled-name='PyWideStringList_Append' filepath='./Python/initconfig.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWideStringList_Append'>
-      <parameter type-id='type-id-744' name='list' filepath='./Python/initconfig.c' line='395' column='1'/>
-      <parameter type-id='type-id-478' name='item' filepath='./Python/initconfig.c' line='395' column='1'/>
-      <return type-id='type-id-740'/>
+    <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='PyWideStringList_Insert' mangled-name='PyWideStringList_Insert' filepath='./Python/initconfig.c' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWideStringList_Insert'>
-      <parameter type-id='type-id-744' name='list' filepath='./Python/initconfig.c' line='354' column='1'/>
-      <parameter type-id='type-id-30' name='index' filepath='./Python/initconfig.c' line='355' column='1'/>
-      <parameter type-id='type-id-478' name='item' filepath='./Python/initconfig.c' line='355' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='Py_SetProgramName' mangled-name='Py_SetProgramName' filepath='./Include/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='_PyWideStringList_Copy' mangled-name='_PyWideStringList_Copy' filepath='./Python/initconfig.c' line='319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Copy'>
-      <parameter type-id='type-id-744' name='list' filepath='./Python/initconfig.c' line='319' column='1'/>
-      <parameter type-id='type-id-751' name='list2' filepath='./Python/initconfig.c' line='319' 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='_PyWideStringList_Clear' mangled-name='_PyWideStringList_Clear' filepath='./Python/initconfig.c' line='306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Clear'>
-      <parameter type-id='type-id-744' name='list' filepath='./Python/initconfig.c' line='306' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyConfig_Clear' mangled-name='PyConfig_Clear' filepath='./Include/cpython/initconfig.h' line='213' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStatus_Exception' mangled-name='PyStatus_Exception' filepath='./Python/initconfig.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Exception'>
-      <parameter type-id='type-id-740' name='status' filepath='./Python/initconfig.c' line='266' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='PyStatus_IsExit' mangled-name='PyStatus_IsExit' filepath='./Python/initconfig.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_IsExit'>
-      <parameter type-id='type-id-740' name='status' filepath='./Python/initconfig.c' line='266' 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='PyStatus_IsError' mangled-name='PyStatus_IsError' filepath='./Python/initconfig.c' line='260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_IsError'>
-      <parameter type-id='type-id-740' name='status' filepath='./Python/initconfig.c' line='266' 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='PyStatus_Exit' mangled-name='PyStatus_Exit' filepath='./Python/initconfig.c' line='256' 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='256' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='Py_GetCopyright' mangled-name='Py_GetCopyright' filepath='./Include/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='PyStatus_NoMemory' mangled-name='PyStatus_NoMemory' filepath='./Python/initconfig.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_NoMemory'>
-      <return type-id='type-id-740'/>
+    <function-decl name='Py_GetVersion' mangled-name='Py_GetVersion' filepath='./Include/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='PyStatus_Error' mangled-name='PyStatus_Error' filepath='./Python/initconfig.c' line='246' 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='246' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='PyRun_AnyFileExFlags' mangled-name='PyRun_AnyFileExFlags' filepath='./Include/cpython/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='PyStatus_Ok' mangled-name='PyStatus_Ok' filepath='./Python/initconfig.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Ok'>
-      <return type-id='type-id-740'/>
+    <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>
   </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='1821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_Init'>
-      <return type-id='type-id-15'/>
+  <abi-instr version='1.0' address-size='64' path='Python/future.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyErr_SyntaxLocationObject' mangled-name='PyErr_SyntaxLocationObject' 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='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-15' 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-15'/>
+  </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='2761' 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='2761' column='1'/>
+      <parameter type-id='type-id-16' name='kwnames' filepath='Python/getargs.c' line='2761' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <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='bytes' filepath='Objects/bytearrayobject.c' line='106' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Objects/bytearrayobject.c' line='106' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyArg_NoPositional' mangled-name='_PyArg_NoPositional' filepath='Python/getargs.c' line='2744' 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='2744' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='2744' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <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-188' name='fp' filepath='Python/marshal.c' line='1529' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyArg_NoKeywords' mangled-name='_PyArg_NoKeywords' filepath='Python/getargs.c' line='2725' 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='2744' column='1'/>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='2744' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <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-188' name='fp' filepath='Python/marshal.c' line='1504' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyArg_UnpackStack' mangled-name='_PyArg_UnpackStack' filepath='Python/getargs.c' line='2698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_UnpackStack'>
+      <parameter type-id='type-id-156' name='args' filepath='Python/getargs.c' line='2698' column='1'/>
+      <parameter type-id='type-id-31' name='nargs' filepath='Python/getargs.c' line='2698' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2698' column='1'/>
+      <parameter type-id='type-id-31' name='min' filepath='Python/getargs.c' line='2699' column='1'/>
+      <parameter type-id='type-id-31' name='max' filepath='Python/getargs.c' line='2699' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <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-188' name='fp' filepath='Python/marshal.c' line='1468' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyArg_UnpackTuple' mangled-name='PyArg_UnpackTuple' filepath='Python/getargs.c' line='2672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_UnpackTuple'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='2672' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2672' column='1'/>
+      <parameter type-id='type-id-31' name='min' filepath='Python/getargs.c' line='2672' column='1'/>
+      <parameter type-id='type-id-31' name='max' filepath='Python/getargs.c' line='2672' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <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-188' name='fp' filepath='Python/marshal.c' line='1452' column='1'/>
-      <return type-id='type-id-8'/>
+    <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-704'>
+      <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-705' 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-9' 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-9' 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-9' 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-16' 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-706' visibility='default' filepath='./Include/modsupport.h' line='101' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-705'/>
+    <pointer-type-def type-id='type-id-704' size-in-bits='64' id='type-id-706'/>
+    <function-decl name='_PyArg_UnpackKeywords' mangled-name='_PyArg_UnpackKeywords' filepath='Python/getargs.c' line='2268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_UnpackKeywords'>
+      <parameter type-id='type-id-156' name='args' filepath='Python/getargs.c' line='2268' column='1'/>
+      <parameter type-id='type-id-31' name='nargs' filepath='Python/getargs.c' line='2268' column='1'/>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Python/getargs.c' line='2269' column='1'/>
+      <parameter type-id='type-id-16' name='kwnames' filepath='Python/getargs.c' line='2269' column='1'/>
+      <parameter type-id='type-id-706' name='parser' filepath='Python/getargs.c' line='2270' column='1'/>
+      <parameter type-id='type-id-9' name='minpos' filepath='Python/getargs.c' line='2271' column='1'/>
+      <parameter type-id='type-id-9' name='maxpos' filepath='Python/getargs.c' line='2271' column='1'/>
+      <parameter type-id='type-id-9' name='minkw' filepath='Python/getargs.c' line='2271' column='1'/>
+      <parameter type-id='type-id-86' name='buf' filepath='Python/getargs.c' line='2272' column='1'/>
+      <return type-id='type-id-156'/>
     </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-15' name='x' filepath='Python/marshal.c' line='595' column='1'/>
-      <parameter type-id='type-id-188' 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-69'/>
+    <function-decl name='PyArg_ValidateKeywordArguments' mangled-name='PyArg_ValidateKeywordArguments' filepath='Python/getargs.c' line='1557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ValidateKeywordArguments'>
+      <parameter type-id='type-id-16' name='kwargs' filepath='Python/getargs.c' line='1557' column='1'/>
+      <return type-id='type-id-9'/>
     </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-32' name='x' filepath='Python/marshal.c' line='580' column='1'/>
-      <parameter type-id='type-id-188' 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-69'/>
+    <function-decl name='_PyArg_VaParseTupleAndKeywordsFast_SizeT' mangled-name='_PyArg_VaParseTupleAndKeywordsFast_SizeT' filepath='Python/getargs.c' line='1543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywordsFast_SizeT'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='1543' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Python/getargs.c' line='1543' column='1'/>
+      <parameter type-id='type-id-706' name='parser' filepath='Python/getargs.c' line='1544' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/getargs.c' line='1544' column='1'/>
+      <return type-id='type-id-9'/>
     </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='257' column='1' elf-symbol-id='_Py_PackageContext'/>
-    <function-decl name='PyModule_AddType' mangled-name='PyModule_AddType' filepath='Python/modsupport.c' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddType'>
-      <parameter type-id='type-id-15' name='module' filepath='Python/modsupport.c' line='704' column='1'/>
-      <parameter type-id='type-id-31' name='type' filepath='Python/modsupport.c' line='704' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArg_VaParseTupleAndKeywordsFast' mangled-name='_PyArg_VaParseTupleAndKeywordsFast' filepath='Python/getargs.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywordsFast'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='1543' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Python/getargs.c' line='1543' column='1'/>
+      <parameter type-id='type-id-706' name='parser' filepath='Python/getargs.c' line='1544' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/getargs.c' line='1544' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyModule_AddStringConstant' mangled-name='PyModule_AddStringConstant' filepath='Python/modsupport.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddStringConstant'>
-      <parameter type-id='type-id-15' name='m' filepath='Python/modsupport.c' line='692' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='692' column='1'/>
-      <parameter type-id='type-id-3' name='value' filepath='Python/modsupport.c' line='692' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArg_ParseStackAndKeywords_SizeT' mangled-name='_PyArg_ParseStackAndKeywords_SizeT' filepath='Python/getargs.c' line='1515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStackAndKeywords_SizeT'>
+      <parameter type-id='type-id-156' name='args' filepath='Python/getargs.c' line='1515' column='1'/>
+      <parameter type-id='type-id-31' name='nargs' filepath='Python/getargs.c' line='1515' column='1'/>
+      <parameter type-id='type-id-16' name='kwnames' filepath='Python/getargs.c' line='1515' column='1'/>
+      <parameter type-id='type-id-706' name='parser' filepath='Python/getargs.c' line='1516' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyModule_AddIntConstant' mangled-name='PyModule_AddIntConstant' filepath='Python/modsupport.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddIntConstant'>
-      <parameter type-id='type-id-15' name='m' filepath='Python/modsupport.c' line='680' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='680' column='1'/>
-      <parameter type-id='type-id-32' name='value' filepath='Python/modsupport.c' line='680' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArg_ParseStackAndKeywords' mangled-name='_PyArg_ParseStackAndKeywords' filepath='Python/getargs.c' line='1502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStackAndKeywords'>
+      <parameter type-id='type-id-156' name='args' filepath='Python/getargs.c' line='1515' column='1'/>
+      <parameter type-id='type-id-31' name='nargs' filepath='Python/getargs.c' line='1515' column='1'/>
+      <parameter type-id='type-id-16' name='kwnames' filepath='Python/getargs.c' line='1515' column='1'/>
+      <parameter type-id='type-id-706' name='parser' filepath='Python/getargs.c' line='1516' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyModule_AddObject' mangled-name='PyModule_AddObject' filepath='Python/modsupport.c' line='670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddObject'>
-      <parameter type-id='type-id-15' name='mod' filepath='Python/modsupport.c' line='670' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='670' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Python/modsupport.c' line='670' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArg_ParseTupleAndKeywordsFast_SizeT' mangled-name='_PyArg_ParseTupleAndKeywordsFast_SizeT' filepath='Python/getargs.c' line='1489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywordsFast_SizeT'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='1489' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Python/getargs.c' line='1489' column='1'/>
+      <parameter type-id='type-id-706' name='parser' filepath='Python/getargs.c' line='1490' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyModule_AddObjectRef' mangled-name='PyModule_AddObjectRef' filepath='Python/modsupport.c' line='637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddObjectRef'>
-      <parameter type-id='type-id-15' name='mod' filepath='Python/modsupport.c' line='670' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='670' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Python/modsupport.c' line='670' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArg_ParseTupleAndKeywordsFast' mangled-name='_PyArg_ParseTupleAndKeywordsFast' filepath='Python/getargs.c' line='1476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywordsFast'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='1489' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Python/getargs.c' line='1489' column='1'/>
+      <parameter type-id='type-id-706' name='parser' filepath='Python/getargs.c' line='1490' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_Py_VaBuildStack_SizeT' mangled-name='_Py_VaBuildStack_SizeT' filepath='Python/modsupport.c' line='581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildStack_SizeT'>
-      <parameter type-id='type-id-86' name='small_stack' filepath='Python/modsupport.c' line='581' column='1'/>
-      <parameter type-id='type-id-30' name='small_stack_len' filepath='Python/modsupport.c' line='581' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='582' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/modsupport.c' line='582' column='1'/>
-      <parameter type-id='type-id-125' name='p_nargs' filepath='Python/modsupport.c' line='582' column='1'/>
-      <return type-id='type-id-86'/>
+    <function-decl name='_PyArg_VaParseTupleAndKeywords_SizeT' mangled-name='_PyArg_VaParseTupleAndKeywords_SizeT' filepath='Python/getargs.c' line='1450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywords_SizeT'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='1450' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Python/getargs.c' line='1451' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1452' column='1'/>
+      <parameter type-id='type-id-215' name='kwlist' filepath='Python/getargs.c' line='1453' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/getargs.c' line='1453' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_Py_VaBuildStack' mangled-name='_Py_VaBuildStack' filepath='Python/modsupport.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildStack'>
-      <parameter type-id='type-id-86' name='small_stack' filepath='Python/modsupport.c' line='581' column='1'/>
-      <parameter type-id='type-id-30' name='small_stack_len' filepath='Python/modsupport.c' line='581' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='582' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/modsupport.c' line='582' column='1'/>
-      <parameter type-id='type-id-125' name='p_nargs' filepath='Python/modsupport.c' line='582' column='1'/>
-      <return type-id='type-id-86'/>
+    <function-decl name='PyArg_VaParseTupleAndKeywords' mangled-name='PyArg_VaParseTupleAndKeywords' filepath='Python/getargs.c' line='1425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_VaParseTupleAndKeywords'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='1450' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Python/getargs.c' line='1451' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1452' column='1'/>
+      <parameter type-id='type-id-215' name='kwlist' filepath='Python/getargs.c' line='1453' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/getargs.c' line='1453' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_Py_VaBuildValue_SizeT' mangled-name='_Py_VaBuildValue_SizeT' filepath='Python/modsupport.c' line='545' 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='545' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/modsupport.c' line='545' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyArg_ParseTupleAndKeywords_SizeT' mangled-name='_PyArg_ParseTupleAndKeywords_SizeT' filepath='Python/getargs.c' line='1399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywords_SizeT'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='1399' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Python/getargs.c' line='1400' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1401' column='1'/>
+      <parameter type-id='type-id-215' name='kwlist' filepath='Python/getargs.c' line='1402' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='Py_VaBuildValue' mangled-name='Py_VaBuildValue' filepath='Python/modsupport.c' line='539' 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='545' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/modsupport.c' line='545' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyArg_ParseTupleAndKeywords' mangled-name='PyArg_ParseTupleAndKeywords' filepath='Python/getargs.c' line='1375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ParseTupleAndKeywords'>
+      <parameter type-id='type-id-16' name='args' filepath='Python/getargs.c' line='1399' column='1'/>
+      <parameter type-id='type-id-16' name='keywords' filepath='Python/getargs.c' line='1400' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1401' column='1'/>
+      <parameter type-id='type-id-215' name='kwlist' filepath='Python/getargs.c' line='1402' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_Py_BuildValue_SizeT' mangled-name='_Py_BuildValue_SizeT' filepath='Python/modsupport.c' line='528' 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='410' column='1'/>
+    <function-decl name='_PyArg_BadArgument' mangled-name='_PyArg_BadArgument' filepath='Python/getargs.c' line='617' 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='617' column='1'/>
+      <parameter type-id='type-id-3' name='displayname' filepath='Python/getargs.c' line='617' column='1'/>
+      <parameter type-id='type-id-3' name='expected' filepath='Python/getargs.c' line='618' column='1'/>
+      <parameter type-id='type-id-16' name='arg' filepath='Python/getargs.c' line='618' 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-16' 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-217' name='va' filepath='Python/getargs.c' line='186' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-16' 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-217' name='va' filepath='Python/getargs.c' line='186' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-156' name='args' filepath='Python/getargs.c' line='160' column='1'/>
+      <parameter type-id='type-id-31' 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-15'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='Py_BuildValue' mangled-name='Py_BuildValue' filepath='Python/modsupport.c' line='517' 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='410' column='1'/>
+    <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-156' name='args' filepath='Python/getargs.c' line='160' column='1'/>
+      <parameter type-id='type-id-31' 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-15'/>
+      <return type-id='type-id-9'/>
     </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-15' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-20' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+    <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-16' 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-9'/>
     </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='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_vsnprintf'>
-      <parameter type-id='type-id-72' name='str' filepath='Python/mysnprintf.c' line='52' column='1'/>
-      <parameter type-id='type-id-157' name='size' filepath='Python/mysnprintf.c' line='52' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/mysnprintf.c' line='52' column='1'/>
-      <parameter type-id='type-id-217' name='va' filepath='Python/mysnprintf.c' line='52' column='1'/>
-      <return type-id='type-id-8'/>
+    <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-16' 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-9'/>
     </function-decl>
-    <function-decl name='PyOS_snprintf' mangled-name='PyOS_snprintf' filepath='Python/mysnprintf.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_snprintf'>
-      <parameter type-id='type-id-72' name='str' filepath='Python/mysnprintf.c' line='40' column='1'/>
-      <parameter type-id='type-id-157' name='size' filepath='Python/mysnprintf.c' line='40' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/mysnprintf.c' line='40' column='1'/>
+    <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-16' 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-9'/>
+    </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-16' 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'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyArg_CheckPositional' mangled-name='_PyArg_CheckPositional' filepath='Python/getargs.c' line='2610' 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='2610' column='1'/>
+      <parameter type-id='type-id-31' name='nargs' filepath='Python/getargs.c' line='2610' column='1'/>
+      <parameter type-id='type-id-31' name='min' filepath='Python/getargs.c' line='2611' column='1'/>
+      <parameter type-id='type-id-31' name='max' filepath='Python/getargs.c' line='2611' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyDict_HasOnlyStringKeys' mangled-name='_PyDict_HasOnlyStringKeys' filepath='./Include/cpython/dictobject.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='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='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='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>
   </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-215' 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-32'/>
+  <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='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-215' 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-18'/>
+  </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>
   </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-752'>
+  <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>
+  </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='Py_GetCompiler' mangled-name='Py_GetCompiler' 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='Py_GetBuildInfo' mangled-name='Py_GetBuildInfo' filepath='./Include/pylifecycle.h' line='58' 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/hamt.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyHamtItems_Type' type-id='type-id-149' 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-149' 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-149' 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-149' 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-149' 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-149' 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-149' 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-707'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='program_full_path' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='13' column='1'/>
+        <var-decl name='nentries' type-id='type-id-157' 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='prefix' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='14' column='1'/>
+        <var-decl name='nbuckets' type-id='type-id-157' 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='exec_prefix' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='15' column='1'/>
+        <var-decl name='buckets' type-id='type-id-708' 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='module_search_path' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='17' column='1'/>
+        <var-decl name='get_entry_func' type-id='type-id-709' 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='program_name' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='19' column='1'/>
+        <var-decl name='hash_func' type-id='type-id-710' 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='home' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='21' column='1'/>
+        <var-decl name='compare_func' type-id='type-id-711' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='67' column='1'/>
       </data-member>
-    </class-decl>
-    <typedef-decl name='_PyPathConfig' type-id='type-id-752' filepath='./Include/internal/pycore_pathconfig.h' line='31' column='1' id='type-id-753'/>
-    <var-decl name='_Py_path_config' type-id='type-id-753' 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='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetProgramName'>
-      <return type-id='type-id-325'/>
-    </function-decl>
-    <function-decl name='Py_GetPythonHome' mangled-name='Py_GetPythonHome' filepath='Python/pathconfig.c' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPythonHome'>
-      <return type-id='type-id-325'/>
-    </function-decl>
-    <function-decl name='Py_GetProgramFullPath' mangled-name='Py_GetProgramFullPath' filepath='Python/pathconfig.c' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetProgramFullPath'>
-      <return type-id='type-id-325'/>
-    </function-decl>
-    <function-decl name='Py_GetExecPrefix' mangled-name='Py_GetExecPrefix' filepath='Python/pathconfig.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetExecPrefix'>
-      <return type-id='type-id-325'/>
-    </function-decl>
-    <function-decl name='Py_GetPrefix' mangled-name='Py_GetPrefix' filepath='Python/pathconfig.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPrefix'>
-      <return type-id='type-id-325'/>
-    </function-decl>
-    <function-decl name='Py_GetPath' mangled-name='Py_GetPath' filepath='Python/pathconfig.c' line='569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPath'>
-      <return type-id='type-id-325'/>
-    </function-decl>
-    <function-decl name='_Py_SetProgramFullPath' mangled-name='_Py_SetProgramFullPath' filepath='Python/pathconfig.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SetProgramFullPath'>
-      <parameter type-id='type-id-478' name='program_full_path' filepath='Python/pathconfig.c' line='548' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='Py_SetProgramName' mangled-name='Py_SetProgramName' filepath='Python/pathconfig.c' line='528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetProgramName'>
-      <parameter type-id='type-id-478' name='program_full_path' filepath='Python/pathconfig.c' line='548' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='Py_SetPythonHome' mangled-name='Py_SetPythonHome' filepath='Python/pathconfig.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetPythonHome'>
-      <parameter type-id='type-id-478' name='program_full_path' filepath='Python/pathconfig.c' line='548' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='Py_SetPath' mangled-name='Py_SetPath' filepath='Python/pathconfig.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetPath'>
-      <parameter type-id='type-id-478' name='program_full_path' filepath='Python/pathconfig.c' line='548' column='1'/>
-      <return type-id='type-id-69'/>
-    </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='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_xoption'>
-      <parameter type-id='type-id-751' name='xoptions' filepath='Python/preconfig.c' line='583' column='1'/>
-      <parameter type-id='type-id-478' name='name' filepath='Python/preconfig.c' line='583' column='1'/>
-      <return type-id='type-id-478'/>
-    </function-decl>
-    <function-decl name='_Py_get_env_flag' mangled-name='_Py_get_env_flag' filepath='Python/preconfig.c' line='565' 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='565' column='1'/>
-      <parameter type-id='type-id-452' name='flag' filepath='Python/preconfig.c' line='565' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/preconfig.c' line='565' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_Py_str_to_int' mangled-name='_Py_str_to_int' filepath='Python/preconfig.c' line='547' 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='547' column='1'/>
-      <parameter type-id='type-id-452' name='result' filepath='Python/preconfig.c' line='547' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_Py_GetEnv' mangled-name='_Py_GetEnv' filepath='Python/preconfig.c' line='528' 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='528' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/preconfig.c' line='528' column='1'/>
-      <return type-id='type-id-3'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-257' size-in-bits='64' id='type-id-754'/>
-    <function-decl name='PyPreConfig_InitIsolatedConfig' mangled-name='PyPreConfig_InitIsolatedConfig' filepath='Python/preconfig.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPreConfig_InitIsolatedConfig'>
-      <parameter type-id='type-id-754' name='config' filepath='Python/preconfig.c' line='340' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyPreConfig_InitPythonConfig' mangled-name='PyPreConfig_InitPythonConfig' filepath='Python/preconfig.c' line='319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPreConfig_InitPythonConfig'>
-      <parameter type-id='type-id-754' name='config' filepath='Python/preconfig.c' line='340' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyPreConfig_InitCompatConfig' mangled-name='_PyPreConfig_InitCompatConfig' filepath='Python/preconfig.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyPreConfig_InitCompatConfig'>
-      <parameter type-id='type-id-754' name='config' filepath='Python/preconfig.c' line='340' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <class-decl name='_PyArgv' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='66' column='1' id='type-id-755'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='argc' type-id='type-id-30' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='67' 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='68' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='bytes_argv' type-id='type-id-192' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='69' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='wchar_argv' type-id='type-id-746' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='70' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='_PyArgv' type-id='type-id-755' filepath='./Include/internal/pycore_initconfig.h' line='71' column='1' id='type-id-756'/>
-    <qualified-type-def type-id='type-id-756' const='yes' id='type-id-757'/>
-    <pointer-type-def type-id='type-id-757' size-in-bits='64' id='type-id-758'/>
-    <function-decl name='_PyArgv_AsWstrList' mangled-name='_PyArgv_AsWstrList' filepath='Python/preconfig.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArgv_AsWstrList'>
-      <parameter type-id='type-id-758' name='args' filepath='Python/preconfig.c' line='75' column='1'/>
-      <parameter type-id='type-id-744' name='list' filepath='Python/preconfig.c' line='75' column='1'/>
-      <return type-id='type-id-740'/>
-    </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='46' column='1' id='type-id-697'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='a_head' type-id='type-id-759' visibility='default' filepath='Python/pyarena.c' line='51' column='1'/>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='key_destroy_func' type-id='type-id-712' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='68' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='a_cur' type-id='type-id-759' visibility='default' filepath='Python/pyarena.c' line='58' column='1'/>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='value_destroy_func' type-id='type-id-712' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='69' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='a_objects' type-id='type-id-15' visibility='default' filepath='Python/pyarena.c' line='64' column='1'/>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='alloc' type-id='type-id-713' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='70' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_block' size-in-bits='256' is-struct='yes' visibility='default' filepath='Python/pyarena.c' line='17' column='1' id='type-id-760'>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-714' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='17' column='1' id='type-id-715'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ab_size' type-id='type-id-157' visibility='default' filepath='Python/pyarena.c' line='22' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ab_offset' type-id='type-id-157' visibility='default' filepath='Python/pyarena.c' line='27' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ab_next' type-id='type-id-761' visibility='default' filepath='Python/pyarena.c' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ab_mem' type-id='type-id-20' visibility='default' filepath='Python/pyarena.c' line='38' column='1'/>
+        <var-decl name='head' type-id='type-id-716' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='18' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-760' size-in-bits='64' id='type-id-761'/>
-    <typedef-decl name='block' type-id='type-id-760' filepath='Python/pyarena.c' line='39' column='1' id='type-id-762'/>
-    <pointer-type-def type-id='type-id-762' size-in-bits='64' id='type-id-759'/>
-    <function-decl name='_PyArena_AddPyObject' mangled-name='_PyArena_AddPyObject' filepath='Python/pyarena.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_AddPyObject'>
-      <parameter type-id='type-id-699' name='arena' filepath='Python/pyarena.c' line='204' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/pyarena.c' line='204' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyArena_Malloc' mangled-name='_PyArena_Malloc' filepath='Python/pyarena.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_Malloc'>
-      <parameter type-id='type-id-699' name='arena' filepath='Python/pyarena.c' line='181' column='1'/>
-      <parameter type-id='type-id-157' name='size' filepath='Python/pyarena.c' line='181' column='1'/>
-      <return type-id='type-id-20'/>
-    </function-decl>
-    <function-decl name='_PyArena_Free' mangled-name='_PyArena_Free' filepath='Python/pyarena.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_Free'>
-      <parameter type-id='type-id-699' name='arena' filepath='Python/pyarena.c' line='158' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyArena_New' mangled-name='_PyArena_New' filepath='Python/pyarena.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_New'>
-      <return type-id='type-id-699'/>
-    </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-65' const='yes' id='type-id-763'/>
-
-    <array-type-def dimensions='1' type-id='type-id-763' size-in-bits='8192' id='type-id-764'>
-      <subrange length='256' type-id='type-id-18' id='type-id-362'/>
-
-    </array-type-def>
-    <qualified-type-def type-id='type-id-764' const='yes' id='type-id-765'/>
-    <var-decl name='_Py_ctype_table' type-id='type-id-765' mangled-name='_Py_ctype_table' visibility='default' filepath='./Include/cpython/pyctype.h' line='16' column='1' elf-symbol-id='_Py_ctype_table'/>
-
-    <array-type-def dimensions='1' type-id='type-id-439' size-in-bits='2048' id='type-id-766'>
-      <subrange length='256' type-id='type-id-18' id='type-id-362'/>
-
-    </array-type-def>
-    <qualified-type-def type-id='type-id-766' const='yes' id='type-id-767'/>
-    <var-decl name='_Py_ctype_tolower' type-id='type-id-767' mangled-name='_Py_ctype_tolower' visibility='default' filepath='./Include/cpython/pyctype.h' line='29' column='1' elf-symbol-id='_Py_ctype_tolower'/>
-    <var-decl name='_Py_ctype_toupper' type-id='type-id-767' mangled-name='_Py_ctype_toupper' visibility='default' filepath='./Include/cpython/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='55' column='1' id='type-id-768'>
-      <data-member access='private'>
-        <var-decl name='uc' type-id='type-id-769' visibility='default' filepath='./Include/pyhash.h' line='57' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='fnv' type-id='type-id-770' visibility='default' filepath='./Include/pyhash.h' line='62' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='siphash' type-id='type-id-771' visibility='default' filepath='./Include/pyhash.h' line='67' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='djbx33a' type-id='type-id-772' visibility='default' filepath='./Include/pyhash.h' line='72' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='expat' type-id='type-id-773' visibility='default' filepath='./Include/pyhash.h' line='76' column='1'/>
-      </data-member>
-    </union-decl>
-
-    <array-type-def dimensions='1' type-id='type-id-341' size-in-bits='192' id='type-id-769'>
-      <subrange length='24' type-id='type-id-18' id='type-id-774'/>
-
-    </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='59' column='1' id='type-id-770'>
+    <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-717'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prefix' type-id='type-id-117' visibility='default' filepath='./Include/pyhash.h' line='60' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='suffix' type-id='type-id-117' visibility='default' filepath='./Include/pyhash.h' line='61' column='1'/>
+        <var-decl name='next' type-id='type-id-718' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='14' 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='64' column='1' id='type-id-771'>
+    <pointer-type-def type-id='type-id-717' size-in-bits='64' id='type-id-718'/>
+    <typedef-decl name='_Py_slist_item_t' type-id='type-id-717' filepath='./Include/internal/pycore_hashtable.h' line='15' column='1' id='type-id-719'/>
+    <pointer-type-def type-id='type-id-719' size-in-bits='64' id='type-id-716'/>
+    <typedef-decl name='_Py_slist_t' type-id='type-id-715' filepath='./Include/internal/pycore_hashtable.h' line='19' column='1' id='type-id-714'/>
+    <pointer-type-def type-id='type-id-714' size-in-bits='64' id='type-id-708'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-720' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='28' column='1' id='type-id-721'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='k0' type-id='type-id-21' visibility='default' filepath='./Include/pyhash.h' line='65' column='1'/>
+        <var-decl name='_Py_slist_item' type-id='type-id-719' 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='k1' type-id='type-id-21' visibility='default' filepath='./Include/pyhash.h' line='66' 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='69' column='1' id='type-id-772'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='padding' type-id='type-id-775' visibility='default' filepath='./Include/pyhash.h' line='70' column='1'/>
+        <var-decl name='key_hash' type-id='type-id-722' 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='suffix' type-id='type-id-117' visibility='default' filepath='./Include/pyhash.h' line='71' column='1'/>
-      </data-member>
-    </class-decl>
-
-    <array-type-def dimensions='1' type-id='type-id-341' size-in-bits='128' id='type-id-775'>
-      <subrange length='16' type-id='type-id-18' id='type-id-776'/>
-
-    </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='73' column='1' id='type-id-773'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='padding' type-id='type-id-775' visibility='default' filepath='./Include/pyhash.h' line='74' column='1'/>
+        <var-decl name='key' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='33' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='hashsalt' type-id='type-id-117' visibility='default' filepath='./Include/pyhash.h' line='75' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='value' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='34' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='_Py_HashSecret_t' type-id='type-id-768' filepath='./Include/pyhash.h' line='77' column='1' id='type-id-777'/>
-    <var-decl name='_Py_HashSecret' type-id='type-id-777' mangled-name='_Py_HashSecret' visibility='default' filepath='./Include/pyhash.h' line='78' 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-778' visibility='default' filepath='./Include/pyhash.h' line='86' column='1' id='type-id-779'>
+    <typedef-decl name='Py_uhash_t' type-id='type-id-157' filepath='./Include/pyport.h' line='119' column='1' id='type-id-722'/>
+    <typedef-decl name='_Py_hashtable_entry_t' type-id='type-id-721' filepath='./Include/internal/pycore_hashtable.h' line='35' column='1' id='type-id-720'/>
+    <pointer-type-def type-id='type-id-720' size-in-bits='64' id='type-id-723'/>
+    <typedef-decl name='_Py_hashtable_t' type-id='type-id-707' filepath='./Include/internal/pycore_hashtable.h' line='42' column='1' id='type-id-724'/>
+    <pointer-type-def type-id='type-id-724' size-in-bits='64' id='type-id-725'/>
+    <pointer-type-def type-id='type-id-726' size-in-bits='64' id='type-id-727'/>
+    <typedef-decl name='_Py_hashtable_get_entry_func' type-id='type-id-727' filepath='./Include/internal/pycore_hashtable.h' line='47' column='1' id='type-id-709'/>
+    <pointer-type-def type-id='type-id-728' size-in-bits='64' id='type-id-729'/>
+    <typedef-decl name='_Py_hashtable_hash_func' type-id='type-id-729' filepath='./Include/internal/pycore_hashtable.h' line='44' column='1' id='type-id-710'/>
+    <pointer-type-def type-id='type-id-730' size-in-bits='64' id='type-id-731'/>
+    <typedef-decl name='_Py_hashtable_compare_func' type-id='type-id-731' filepath='./Include/internal/pycore_hashtable.h' line='45' column='1' id='type-id-711'/>
+    <typedef-decl name='_Py_hashtable_destroy_func' type-id='type-id-20' filepath='./Include/internal/pycore_hashtable.h' line='46' column='1' id='type-id-712'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-713' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='50' column='1' id='type-id-732'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='hash' type-id='type-id-780' visibility='default' filepath='./Include/pyhash.h' line='87' column='1'/>
+        <var-decl name='malloc' type-id='type-id-733' 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='name' type-id='type-id-3' visibility='default' filepath='./Include/pyhash.h' line='88' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='hash_bits' type-id='type-id-781' visibility='default' filepath='./Include/pyhash.h' line='89' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='seed_bits' type-id='type-id-781' visibility='default' filepath='./Include/pyhash.h' line='90' column='1'/>
+        <var-decl name='free' type-id='type-id-20' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='55' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-782' size-in-bits='64' id='type-id-783'/>
-    <qualified-type-def type-id='type-id-783' const='yes' id='type-id-780'/>
-    <qualified-type-def type-id='type-id-8' const='yes' id='type-id-781'/>
-    <typedef-decl name='PyHash_FuncDef' type-id='type-id-779' filepath='./Include/pyhash.h' line='91' column='1' id='type-id-778'/>
-    <pointer-type-def type-id='type-id-778' size-in-bits='64' id='type-id-784'/>
-    <function-decl name='PyHash_GetFuncDef' mangled-name='PyHash_GetFuncDef' filepath='Python/pyhash.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyHash_GetFuncDef'>
-      <return type-id='type-id-784'/>
+    <pointer-type-def type-id='type-id-734' size-in-bits='64' id='type-id-733'/>
+    <typedef-decl name='_Py_hashtable_allocator_t' type-id='type-id-732' filepath='./Include/internal/pycore_hashtable.h' line='56' column='1' id='type-id-713'/>
+    <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-725' name='ht' filepath='Python/hashtable.c' line='404' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_HashBytes' mangled-name='_Py_HashBytes' filepath='Python/pyhash.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashBytes'>
-      <parameter type-id='type-id-20' name='src' filepath='Python/pyhash.c' line='158' column='1'/>
-      <parameter type-id='type-id-30' name='len' filepath='Python/pyhash.c' line='158' column='1'/>
-      <return type-id='type-id-117'/>
+    <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-725' name='ht' filepath='Python/hashtable.c' line='404' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_HashPointer' mangled-name='_Py_HashPointer' filepath='Python/pyhash.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashPointer'>
-      <parameter type-id='type-id-20' name='p' filepath='Python/pyhash.c' line='148' column='1'/>
-      <return type-id='type-id-117'/>
+    <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-710' name='hash_func' filepath='Python/hashtable.c' line='363' column='1'/>
+      <parameter type-id='type-id-711' name='compare_func' filepath='Python/hashtable.c' line='364' column='1'/>
+      <return type-id='type-id-725'/>
     </function-decl>
-    <function-decl name='_Py_HashPointerRaw' mangled-name='_Py_HashPointerRaw' filepath='Python/pyhash.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashPointerRaw'>
-      <parameter type-id='type-id-20' name='p' filepath='Python/pyhash.c' line='148' column='1'/>
-      <return type-id='type-id-117'/>
+    <pointer-type-def type-id='type-id-713' size-in-bits='64' id='type-id-735'/>
+    <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-710' name='hash_func' filepath='Python/hashtable.c' line='316' column='1'/>
+      <parameter type-id='type-id-711' name='compare_func' filepath='Python/hashtable.c' line='317' column='1'/>
+      <parameter type-id='type-id-712' name='key_destroy_func' filepath='Python/hashtable.c' line='318' column='1'/>
+      <parameter type-id='type-id-712' name='value_destroy_func' filepath='Python/hashtable.c' line='319' column='1'/>
+      <parameter type-id='type-id-735' name='allocator' filepath='Python/hashtable.c' line='320' column='1'/>
+      <return type-id='type-id-725'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-736' size-in-bits='64' id='type-id-737'/>
+    <typedef-decl name='_Py_hashtable_foreach_func' type-id='type-id-737' filepath='./Include/internal/pycore_hashtable.h' line='96' column='1' id='type-id-738'/>
+    <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-725' name='ht' filepath='Python/hashtable.c' line='261' column='1'/>
+      <parameter type-id='type-id-738' name='func' filepath='Python/hashtable.c' line='262' column='1'/>
+      <parameter type-id='type-id-21' name='user_data' filepath='Python/hashtable.c' line='263' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_Py_HashDouble' mangled-name='_Py_HashDouble' filepath='Python/pyhash.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashDouble'>
-      <parameter type-id='type-id-15' name='inst' filepath='Python/pyhash.c' line='92' column='1'/>
-      <parameter type-id='type-id-371' name='v' filepath='Python/pyhash.c' line='92' column='1'/>
-      <return type-id='type-id-117'/>
+    <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-725' name='ht' filepath='Python/hashtable.c' line='248' column='1'/>
+      <parameter type-id='type-id-21' name='key' filepath='Python/hashtable.c' line='248' column='1'/>
+      <return type-id='type-id-21'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-782'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-30'/>
-      <return type-id='type-id-117'/>
+    <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-725' name='ht' filepath='Python/hashtable.c' line='209' column='1'/>
+      <parameter type-id='type-id-21' name='key' filepath='Python/hashtable.c' line='209' column='1'/>
+      <parameter type-id='type-id-21' name='value' filepath='Python/hashtable.c' line='209' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-725' name='ht' filepath='Python/hashtable.c' line='174' column='1'/>
+      <parameter type-id='type-id-21' name='key' filepath='Python/hashtable.c' line='174' column='1'/>
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <qualified-type-def type-id='type-id-724' const='yes' id='type-id-739'/>
+    <pointer-type-def type-id='type-id-739' size-in-bits='64' id='type-id-740'/>
+    <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-740' name='ht' filepath='Python/hashtable.c' line='120' column='1'/>
+      <return type-id='type-id-157'/>
+    </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-21' name='key1' filepath='Python/hashtable.c' line='99' column='1'/>
+      <parameter type-id='type-id-21' name='key2' filepath='Python/hashtable.c' line='99' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-21' name='key' filepath='Python/hashtable.c' line='92' column='1'/>
+      <return type-id='type-id-722'/>
+    </function-decl>
+    <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-726'>
+      <parameter type-id='type-id-725'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-723'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-736'>
+      <parameter type-id='type-id-725'/>
+      <parameter type-id='type-id-21'/>
+      <parameter type-id='type-id-21'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-9'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-730'>
+      <parameter type-id='type-id-21'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-9'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-728'>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-722'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-734'>
+      <parameter type-id='type-id-157'/>
+      <return type-id='type-id-21'/>
     </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='35' column='1' elf-symbol-id='_Py_UnhandledKeyboardInterrupt'/>
-    <typedef-decl name='_PyRuntimeState' type-id='type-id-530' filepath='./Include/internal/pycore_runtime.h' line='121' column='1' id='type-id-785'/>
-    <var-decl name='_PyRuntime' type-id='type-id-785' mangled-name='_PyRuntime' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='128' column='1' elf-symbol-id='_PyRuntime'/>
-    <pointer-type-def type-id='type-id-786' size-in-bits='64' id='type-id-787'/>
-    <typedef-decl name='PyOS_sighandler_t' type-id='type-id-787' filepath='./Include/pylifecycle.h' line='61' column='1' id='type-id-788'/>
-    <function-decl name='PyOS_setsig' mangled-name='PyOS_setsig' filepath='Python/pylifecycle.c' line='2942' 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='2942' column='1'/>
-      <parameter type-id='type-id-788' name='handler' filepath='Python/pylifecycle.c' line='2942' column='1'/>
-      <return type-id='type-id-788'/>
+  <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='27' column='1' id='type-id-741'>
+      <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='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='initfunc' type-id='type-id-462' visibility='default' filepath='./Include/cpython/import.h' line='29' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-741' size-in-bits='64' id='type-id-742'/>
+    <var-decl name='PyImport_Inittab' type-id='type-id-742' mangled-name='PyImport_Inittab' visibility='default' filepath='./Include/cpython/import.h' line='31' column='1' elf-symbol-id='PyImport_Inittab'/>
+    <function-decl name='PyImport_AppendInittab' mangled-name='PyImport_AppendInittab' filepath='Python/import.c' line='2285' 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='2285' column='1'/>
+      <parameter type-id='type-id-462' name='initfunc' filepath='Python/import.c' line='2285' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyImport_ExtendInittab' mangled-name='PyImport_ExtendInittab' filepath='Python/import.c' line='2239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExtendInittab'>
+      <parameter type-id='type-id-742' name='newtab' filepath='Python/import.c' line='2239' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyInit__imp' mangled-name='PyInit__imp' filepath='Python/import.c' line='2178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__imp'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_Import' mangled-name='PyImport_Import' filepath='Python/import.c' line='1765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_Import'>
+      <parameter type-id='type-id-16' name='module_name' filepath='Python/import.c' line='1765' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ReloadModule' mangled-name='PyImport_ReloadModule' filepath='Python/import.c' line='1732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ReloadModule'>
+      <parameter type-id='type-id-16' name='m' filepath='Python/import.c' line='1732' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportModuleLevel' mangled-name='PyImport_ImportModuleLevel' filepath='Python/import.c' line='1714' 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='1714' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Python/import.c' line='1714' column='1'/>
+      <parameter type-id='type-id-16' name='locals' filepath='Python/import.c' line='1714' column='1'/>
+      <parameter type-id='type-id-16' name='fromlist' filepath='Python/import.c' line='1715' column='1'/>
+      <parameter type-id='type-id-9' name='level' filepath='Python/import.c' line='1715' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportModuleLevelObject' mangled-name='PyImport_ImportModuleLevelObject' filepath='Python/import.c' line='1562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModuleLevelObject'>
+      <parameter type-id='type-id-16' name='name' filepath='Python/import.c' line='1562' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Python/import.c' line='1562' column='1'/>
+      <parameter type-id='type-id-16' name='locals' filepath='Python/import.c' line='1563' column='1'/>
+      <parameter type-id='type-id-16' name='fromlist' filepath='Python/import.c' line='1563' column='1'/>
+      <parameter type-id='type-id-9' name='level' filepath='Python/import.c' line='1564' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_GetModule' mangled-name='PyImport_GetModule' filepath='Python/import.c' line='1545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetModule'>
+      <parameter type-id='type-id-16' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportModuleNoBlock' mangled-name='PyImport_ImportModuleNoBlock' filepath='Python/import.c' line='1250' 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='1250' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportModule' mangled-name='PyImport_ImportModule' filepath='Python/import.c' line='1226' 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='562' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportFrozenModule' mangled-name='PyImport_ImportFrozenModule' filepath='Python/import.c' line='1209' 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='1209' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportFrozenModuleObject' mangled-name='PyImport_ImportFrozenModuleObject' filepath='Python/import.c' line='1140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportFrozenModuleObject'>
+      <parameter type-id='type-id-16' name='name' filepath='Python/import.c' line='1140' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyImport_GetImporter' mangled-name='PyImport_GetImporter' filepath='Python/import.c' line='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetImporter'>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='2819' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ExecCodeModuleObject' mangled-name='PyImport_ExecCodeModuleObject' filepath='Python/import.c' line='811' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModuleObject'>
+      <parameter type-id='type-id-16' name='name' filepath='Python/import.c' line='811' column='1'/>
+      <parameter type-id='type-id-16' name='co' filepath='Python/import.c' line='811' column='1'/>
+      <parameter type-id='type-id-16' name='pathname' filepath='Python/import.c' line='811' column='1'/>
+      <parameter type-id='type-id-16' name='cpathname' filepath='Python/import.c' line='812' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ExecCodeModuleWithPathnames' mangled-name='PyImport_ExecCodeModuleWithPathnames' filepath='Python/import.c' line='706' 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='706' column='1'/>
+      <parameter type-id='type-id-16' name='co' filepath='Python/import.c' line='706' column='1'/>
+      <parameter type-id='type-id-3' name='pathname' filepath='Python/import.c' line='707' column='1'/>
+      <parameter type-id='type-id-3' name='cpathname' filepath='Python/import.c' line='708' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ExecCodeModuleEx' mangled-name='PyImport_ExecCodeModuleEx' filepath='Python/import.c' line='699' 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='699' column='1'/>
+      <parameter type-id='type-id-16' name='co' filepath='Python/import.c' line='699' column='1'/>
+      <parameter type-id='type-id-3' name='pathname' filepath='Python/import.c' line='699' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_ExecCodeModule' mangled-name='PyImport_ExecCodeModule' filepath='Python/import.c' line='692' 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='692' column='1'/>
+      <parameter type-id='type-id-16' name='co' filepath='Python/import.c' line='692' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyImport_AddModule' mangled-name='PyImport_AddModule' filepath='Python/import.c' line='643' 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='562' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyOS_getsig' mangled-name='PyOS_getsig' filepath='Python/pylifecycle.c' line='2903' 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='2903' column='1'/>
-      <return type-id='type-id-788'/>
+    <function-decl name='PyImport_AddModuleObject' mangled-name='PyImport_AddModuleObject' filepath='Python/import.c' line='625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_AddModuleObject'>
+      <parameter type-id='type-id-16' name='name' filepath='Python/import.c' line='625' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_Py_FdIsInteractive' mangled-name='_Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='2886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FdIsInteractive'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pylifecycle.c' line='2886' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/pylifecycle.c' line='2886' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyImport_FindExtensionObject' mangled-name='_PyImport_FindExtensionObject' filepath='Python/import.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FindExtensionObject'>
+      <parameter type-id='type-id-16' name='name' filepath='Python/import.c' line='562' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/import.c' line='562' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='Py_FdIsInteractive' mangled-name='Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='2873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FdIsInteractive'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyImport_FixupBuiltin' mangled-name='_PyImport_FixupBuiltin' filepath='Python/import.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FixupBuiltin'>
+      <parameter type-id='type-id-16' name='mod' filepath='Python/import.c' line='486' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='486' column='1'/>
+      <parameter type-id='type-id-16' name='modules' filepath='Python/import.c' line='486' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='Py_Exit' mangled-name='Py_Exit' filepath='Python/pylifecycle.c' line='2856' 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='2856' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyImport_FixupExtensionObject' mangled-name='_PyImport_FixupExtensionObject' filepath='Python/import.c' line='421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FixupExtensionObject'>
+      <parameter type-id='type-id-16' name='mod' filepath='Python/import.c' line='421' column='1'/>
+      <parameter type-id='type-id-16' name='name' filepath='Python/import.c' line='421' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/import.c' line='422' column='1'/>
+      <parameter type-id='type-id-16' name='modules' filepath='Python/import.c' line='422' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='Py_AtExit' mangled-name='Py_AtExit' filepath='Python/pylifecycle.c' line='2831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AtExit'>
-      <parameter type-id='type-id-275' name='func' filepath='Python/pylifecycle.c' line='2831' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyImport_GetMagicTag' mangled-name='PyImport_GetMagicTag' filepath='Python/import.c' line='398' 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='Py_ExitStatusException' mangled-name='Py_ExitStatusException' filepath='Python/pylifecycle.c' line='2789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ExitStatusException'>
-      <parameter type-id='type-id-740' name='status' filepath='Python/pylifecycle.c' line='2789' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyImport_GetMagicNumber' mangled-name='PyImport_GetMagicNumber' filepath='Python/import.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetMagicNumber'>
+      <return type-id='type-id-33'/>
     </function-decl>
-    <function-decl name='_Py_FatalErrorFormat' mangled-name='_Py_FatalErrorFormat' filepath='Python/pylifecycle.c' line='2755' 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='2755' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/pylifecycle.c' line='2755' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyImport_SetModuleString' mangled-name='_PyImport_SetModuleString' filepath='Python/import.c' line='311' 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='311' column='1'/>
+      <parameter type-id='type-id-16' name='m' filepath='Python/import.c' line='311' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_Py_FatalErrorFunc' mangled-name='_Py_FatalErrorFunc' filepath='Python/pylifecycle.c' line='2748' 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='2748' column='1'/>
-      <parameter type-id='type-id-3' name='msg' filepath='Python/pylifecycle.c' line='2748' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyImport_SetModule' mangled-name='_PyImport_SetModule' filepath='Python/import.c' line='303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_SetModule'>
+      <parameter type-id='type-id-16' name='name' filepath='Python/import.c' line='303' column='1'/>
+      <parameter type-id='type-id-16' name='m' filepath='Python/import.c' line='303' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='Py_FatalError' mangled-name='Py_FatalError' filepath='Python/pylifecycle.c' line='2741' 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='269' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyImport_GetModuleId' mangled-name='_PyImport_GetModuleId' filepath='Python/import.c' line='293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_GetModuleId'>
+      <parameter type-id='type-id-219' name='nameid' filepath='Python/import.c' line='293' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_Py_DumpExtensionModules' mangled-name='_Py_DumpExtensionModules' filepath='Python/pylifecycle.c' line='2568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DumpExtensionModules'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/pylifecycle.c' line='2568' column='1'/>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pylifecycle.c' line='2568' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyImport_IsInitialized' mangled-name='_PyImport_IsInitialized' filepath='Python/import.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_IsInitialized'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/import.c' line='285' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='Py_EndInterpreter' mangled-name='Py_EndInterpreter' filepath='Python/pylifecycle.c' line='2004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EndInterpreter'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pylifecycle.c' line='2004' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyImport_GetModuleDict' mangled-name='PyImport_GetModuleDict' filepath='Python/import.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetModuleDict'>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='Py_NewInterpreter' mangled-name='Py_NewInterpreter' filepath='Python/pylifecycle.c' line='1986' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewInterpreter'>
-      <return type-id='type-id-166'/>
+    <function-decl name='_PyImport_ReleaseLock' mangled-name='_PyImport_ReleaseLock' filepath='Python/import.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_ReleaseLock'>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_Py_NewInterpreter' mangled-name='_Py_NewInterpreter' filepath='Python/pylifecycle.c' line='1974' 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='1974' column='1'/>
-      <return type-id='type-id-166'/>
+    <function-decl name='_PyImport_AcquireLock' mangled-name='_PyImport_AcquireLock' filepath='Python/import.c' line='118' 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='Py_Finalize' mangled-name='Py_Finalize' filepath='Python/pylifecycle.c' line='1868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Finalize'>
-      <return type-id='type-id-69'/>
+    <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='Py_FinalizeEx' mangled-name='Py_FinalizeEx' filepath='Python/pylifecycle.c' line='1703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FinalizeEx'>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyMem_SetAllocator' mangled-name='PyMem_SetAllocator' filepath='./Include/cpython/pymem.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_InitializeMain' mangled-name='_Py_InitializeMain' filepath='Python/pylifecycle.c' line='1271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_InitializeMain'>
-      <return type-id='type-id-740'/>
+    <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='Py_Initialize' mangled-name='Py_Initialize' filepath='Python/pylifecycle.c' line='1264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Initialize'>
-      <return type-id='type-id-69'/>
+    <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='Py_InitializeEx' mangled-name='Py_InitializeEx' filepath='Python/pylifecycle.c' line='1237' 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='1237' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyModule_ExecDef' mangled-name='PyModule_ExecDef' filepath='./Include/modsupport.h' line='161' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_InitializeFromConfig' mangled-name='Py_InitializeFromConfig' filepath='Python/pylifecycle.c' line='1204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_InitializeFromConfig'>
-      <parameter type-id='type-id-748' name='config' filepath='Python/pylifecycle.c' line='1204' column='1'/>
-      <return type-id='type-id-740'/>
+    <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_PreInitializeFromConfig' mangled-name='_Py_PreInitializeFromConfig' filepath='Python/pylifecycle.c' line='948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromConfig'>
-      <parameter type-id='type-id-748' name='config' filepath='Python/pylifecycle.c' line='948' column='1'/>
-      <parameter type-id='type-id-758' name='args' filepath='Python/pylifecycle.c' line='949' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='PyUnicode_FromWideChar' mangled-name='PyUnicode_FromWideChar' filepath='./Include/unicodeobject.h' line='285' 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-257' const='yes' id='type-id-789'/>
-    <pointer-type-def type-id='type-id-789' size-in-bits='64' id='type-id-790'/>
-    <function-decl name='Py_PreInitialize' mangled-name='Py_PreInitialize' filepath='Python/pylifecycle.c' line='941' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitialize'>
-      <parameter type-id='type-id-790' name='src_config' filepath='Python/pylifecycle.c' line='941' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='_PyTime_GetPerfCounter' mangled-name='_PyTime_GetPerfCounter' filepath='./Include/cpython/pytime.h' line='230' 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='933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromArgs'>
-      <parameter type-id='type-id-790' name='src_config' filepath='Python/pylifecycle.c' line='933' column='1'/>
-      <parameter type-id='type-id-30' name='argc' filepath='Python/pylifecycle.c' line='933' column='1'/>
-      <parameter type-id='type-id-329' name='argv' filepath='Python/pylifecycle.c' line='933' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='_PyTime_AsMicroseconds' mangled-name='_PyTime_AsMicroseconds' filepath='./Include/cpython/pytime.h' line='111' 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='925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromBytesArgs'>
-      <parameter type-id='type-id-790' name='src_config' filepath='Python/pylifecycle.c' line='925' column='1'/>
-      <parameter type-id='type-id-30' name='argc' filepath='Python/pylifecycle.c' line='925' column='1'/>
-      <parameter type-id='type-id-215' name='argv' filepath='Python/pylifecycle.c' line='925' column='1'/>
-      <return type-id='type-id-740'/>
+    <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='_Py_PreInitializeFromPyArgv' mangled-name='_Py_PreInitializeFromPyArgv' filepath='Python/pylifecycle.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromPyArgv'>
-      <parameter type-id='type-id-790' name='src_config' filepath='Python/pylifecycle.c' line='878' column='1'/>
-      <parameter type-id='type-id-758' name='args' filepath='Python/pylifecycle.c' line='878' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='_PyDict_Pop' mangled-name='_PyDict_Pop' 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>
-    <function-decl name='_PyInterpreterState_SetConfig' mangled-name='_PyInterpreterState_SetConfig' filepath='Python/pylifecycle.c' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_SetConfig'>
-      <parameter type-id='type-id-748' name='src_config' filepath='Python/pylifecycle.c' line='473' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_Py_SetLocaleFromEnv' mangled-name='_Py_SetLocaleFromEnv' filepath='Python/pylifecycle.c' line='385' 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='385' column='1'/>
-      <return type-id='type-id-72'/>
+    <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='_Py_CoerceLegacyLocale' mangled-name='_Py_CoerceLegacyLocale' filepath='Python/pylifecycle.c' line='335' 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='335' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyState_AddModule' mangled-name='_PyState_AddModule' filepath='./Include/internal/pycore_pystate.h' line='142' 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='293' 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='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='_Py_LegacyLocaleDetected' mangled-name='_Py_LegacyLocaleDetected' filepath='Python/pylifecycle.c' line='238' 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='238' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='Py_IsInitialized' mangled-name='Py_IsInitialized' filepath='Python/pylifecycle.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IsInitialized'>
-      <return type-id='type-id-8'/>
+    <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='_Py_IsCoreInitialized' mangled-name='_Py_IsCoreInitialized' filepath='Python/pylifecycle.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsCoreInitialized'>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyModule_FromDefAndSpec2' mangled-name='PyModule_FromDefAndSpec2' filepath='./Include/modsupport.h' line='243' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_IsFinalizing' mangled-name='_Py_IsFinalizing' filepath='Python/pylifecycle.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsFinalizing'>
-      <return type-id='type-id-8'/>
+  </abi-instr>
+  <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='210' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyRuntime_Finalize' mangled-name='_PyRuntime_Finalize' filepath='Python/pylifecycle.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntime_Finalize'>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyUnicode_EncodeFSDefault' mangled-name='PyUnicode_EncodeFSDefault' 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='_PyRuntime_Initialize' mangled-name='_PyRuntime_Initialize' filepath='Python/pylifecycle.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntime_Initialize'>
-      <return type-id='type-id-740'/>
+    <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-type size-in-bits='64' id='type-id-786'>
-      <parameter type-id='type-id-8'/>
-      <return type-id='type-id-69'/>
-    </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_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-173' name='cw' filepath='Python/pymath.c' line='29' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='_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-173'/>
+    <function-decl name='_PyImport_FixupExtensionObject' mangled-name='_PyImport_FixupExtensionObject' filepath='./Include/cpython/import.h' line='24' 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='1965' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetConfig'>
-      <return type-id='type-id-748'/>
+  <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-9' 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-9' mangled-name='Py_DebugFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='8' column='1' elf-symbol-id='Py_DebugFlag'/>
+    <var-decl name='Py_VerboseFlag' type-id='type-id-9' mangled-name='Py_VerboseFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='9' column='1' elf-symbol-id='Py_VerboseFlag'/>
+    <var-decl name='Py_QuietFlag' type-id='type-id-9' mangled-name='Py_QuietFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='10' column='1' elf-symbol-id='Py_QuietFlag'/>
+    <var-decl name='Py_InteractiveFlag' type-id='type-id-9' mangled-name='Py_InteractiveFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='11' column='1' elf-symbol-id='Py_InteractiveFlag'/>
+    <var-decl name='Py_InspectFlag' type-id='type-id-9' mangled-name='Py_InspectFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='12' column='1' elf-symbol-id='Py_InspectFlag'/>
+    <var-decl name='Py_OptimizeFlag' type-id='type-id-9' mangled-name='Py_OptimizeFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='13' column='1' elf-symbol-id='Py_OptimizeFlag'/>
+    <var-decl name='Py_NoSiteFlag' type-id='type-id-9' mangled-name='Py_NoSiteFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='14' column='1' elf-symbol-id='Py_NoSiteFlag'/>
+    <var-decl name='Py_BytesWarningFlag' type-id='type-id-9' mangled-name='Py_BytesWarningFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='15' column='1' elf-symbol-id='Py_BytesWarningFlag'/>
+    <var-decl name='Py_FrozenFlag' type-id='type-id-9' mangled-name='Py_FrozenFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='16' column='1' elf-symbol-id='Py_FrozenFlag'/>
+    <var-decl name='Py_IgnoreEnvironmentFlag' type-id='type-id-9' mangled-name='Py_IgnoreEnvironmentFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='17' column='1' elf-symbol-id='Py_IgnoreEnvironmentFlag'/>
+    <var-decl name='Py_DontWriteBytecodeFlag' type-id='type-id-9' mangled-name='Py_DontWriteBytecodeFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='18' column='1' elf-symbol-id='Py_DontWriteBytecodeFlag'/>
+    <var-decl name='Py_NoUserSiteDirectory' type-id='type-id-9' mangled-name='Py_NoUserSiteDirectory' visibility='default' filepath='./Include/cpython/pydebug.h' line='19' column='1' elf-symbol-id='Py_NoUserSiteDirectory'/>
+    <var-decl name='Py_UnbufferedStdioFlag' type-id='type-id-9' mangled-name='Py_UnbufferedStdioFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='20' column='1' elf-symbol-id='Py_UnbufferedStdioFlag'/>
+    <var-decl name='Py_HashRandomizationFlag' type-id='type-id-9' mangled-name='Py_HashRandomizationFlag' visibility='default' filepath='./Include/cpython/pydebug.h' line='21' column='1' elf-symbol-id='Py_HashRandomizationFlag'/>
+    <var-decl name='Py_IsolatedFlag' type-id='type-id-9' mangled-name='Py_IsolatedFlag' visibility='default' filepath='./Include/cpython/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='2898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetConfigsAsDict'>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetConfigCopy' mangled-name='_PyInterpreterState_GetConfigCopy' filepath='Python/pystate.c' line='1951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetConfigCopy'>
-      <parameter type-id='type-id-743' name='config' filepath='Python/pystate.c' line='1951' column='1'/>
-      <return type-id='type-id-8'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-743' visibility='default' filepath='./Include/cpython/initconfig.h' line='7' column='1' id='type-id-744'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_type' type-id='type-id-745' visibility='default' filepath='./Include/cpython/initconfig.h' line='12' 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='13' 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='14' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='exitcode' type-id='type-id-9' visibility='default' filepath='./Include/cpython/initconfig.h' line='15' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/initconfig.h' line='8' column='1' id='type-id-745'>
+      <underlying-type type-id='type-id-83'/>
+      <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-744' filepath='./Include/cpython/initconfig.h' line='16' column='1' id='type-id-743'/>
+    <pointer-type-def type-id='type-id-231' size-in-bits='64' id='type-id-746'/>
+    <function-decl name='PyConfig_Read' mangled-name='PyConfig_Read' filepath='./Python/initconfig.c' line='2891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_Read'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='2891' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetConfig' mangled-name='_PyInterpreterState_GetConfig' filepath='Python/pystate.c' line='1944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetConfig'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1944' column='1'/>
-      <return type-id='type-id-748'/>
+    <pointer-type-def type-id='type-id-326' size-in-bits='64' id='type-id-747'/>
+    <function-decl name='PyConfig_SetWideStringList' mangled-name='PyConfig_SetWideStringList' filepath='./Python/initconfig.c' line='2808' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetWideStringList'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='2808' column='1'/>
+      <parameter type-id='type-id-747' name='list' filepath='./Python/initconfig.c' line='2808' column='1'/>
+      <parameter type-id='type-id-31' name='length' filepath='./Python/initconfig.c' line='2809' column='1'/>
+      <parameter type-id='type-id-329' name='items' filepath='./Python/initconfig.c' line='2809' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_SetEvalFrameFunc' mangled-name='_PyInterpreterState_SetEvalFrameFunc' filepath='Python/pystate.c' line='1936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_SetEvalFrameFunc'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1936' column='1'/>
-      <parameter type-id='type-id-232' name='eval_frame' filepath='Python/pystate.c' line='1937' column='1'/>
-      <return type-id='type-id-69'/>
+    <qualified-type-def type-id='type-id-325' const='yes' id='type-id-748'/>
+    <pointer-type-def type-id='type-id-748' size-in-bits='64' id='type-id-749'/>
+    <function-decl name='PyConfig_SetArgv' mangled-name='PyConfig_SetArgv' filepath='./Python/initconfig.c' line='2796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetArgv'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='2796' column='1'/>
+      <parameter type-id='type-id-31' name='argc' filepath='./Python/initconfig.c' line='2796' column='1'/>
+      <parameter type-id='type-id-749' name='argv' filepath='./Python/initconfig.c' line='2796' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetEvalFrameFunc' mangled-name='_PyInterpreterState_GetEvalFrameFunc' filepath='Python/pystate.c' line='1929' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetEvalFrameFunc'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1929' column='1'/>
-      <return type-id='type-id-232'/>
+    <function-decl name='PyConfig_SetBytesArgv' mangled-name='PyConfig_SetBytesArgv' filepath='./Python/initconfig.c' line='2784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetBytesArgv'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='2784' column='1'/>
+      <parameter type-id='type-id-31' name='argc' filepath='./Python/initconfig.c' line='2784' column='1'/>
+      <parameter type-id='type-id-192' name='argv' filepath='./Python/initconfig.c' line='2784' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_Lookup' mangled-name='_PyCrossInterpreterData_Lookup' filepath='Python/pystate.c' line='1779' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Lookup'>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/pystate.c' line='1779' column='1'/>
-      <return type-id='type-id-267'/>
+    <function-decl name='_PyConfig_FromDict' mangled-name='_PyConfig_FromDict' filepath='./Python/initconfig.c' line='1211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyConfig_FromDict'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='1211' column='1'/>
+      <parameter type-id='type-id-16' name='dict' filepath='./Python/initconfig.c' line='1211' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_RegisterClass' mangled-name='_PyCrossInterpreterData_RegisterClass' filepath='Python/pystate.c' line='1749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_RegisterClass'>
-      <parameter type-id='type-id-31' name='cls' filepath='Python/pystate.c' line='1749' column='1'/>
-      <parameter type-id='type-id-267' name='getdata' filepath='Python/pystate.c' line='1750' column='1'/>
-      <return type-id='type-id-8'/>
+    <qualified-type-def type-id='type-id-231' const='yes' id='type-id-750'/>
+    <pointer-type-def type-id='type-id-750' size-in-bits='64' id='type-id-751'/>
+    <function-decl name='_PyConfig_AsDict' mangled-name='_PyConfig_AsDict' filepath='./Python/initconfig.c' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyConfig_AsDict'>
+      <parameter type-id='type-id-751' name='config' filepath='./Python/initconfig.c' line='949' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <typedef-decl name='_PyCrossInterpreterData' type-id='type-id-268' filepath='./Include/cpython/pystate.h' line='294' column='1' id='type-id-791'/>
-    <pointer-type-def type-id='type-id-791' size-in-bits='64' id='type-id-792'/>
-    <function-decl name='_PyCrossInterpreterData_NewObject' mangled-name='_PyCrossInterpreterData_NewObject' filepath='Python/pystate.c' line='1719' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_NewObject'>
-      <parameter type-id='type-id-792' name='data' filepath='Python/pystate.c' line='1719' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyConfig_SetBytesString' mangled-name='PyConfig_SetBytesString' filepath='./Python/initconfig.c' line='847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetBytesString'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='847' column='1'/>
+      <parameter type-id='type-id-329' name='config_str' filepath='./Python/initconfig.c' line='847' column='1'/>
+      <parameter type-id='type-id-3' name='str' filepath='./Python/initconfig.c' line='848' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_Release' mangled-name='_PyCrossInterpreterData_Release' filepath='Python/pystate.c' line='1696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Release'>
-      <parameter type-id='type-id-792' name='data' filepath='Python/pystate.c' line='1696' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyConfig_InitIsolatedConfig' mangled-name='PyConfig_InitIsolatedConfig' filepath='./Python/initconfig.c' line='763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitIsolatedConfig'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='763' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GetCrossInterpreterData' mangled-name='_PyObject_GetCrossInterpreterData' filepath='Python/pystate.c' line='1627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetCrossInterpreterData'>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/pystate.c' line='1627' column='1'/>
-      <parameter type-id='type-id-792' name='data' filepath='Python/pystate.c' line='1627' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyConfig_InitPythonConfig' mangled-name='PyConfig_InitPythonConfig' filepath='./Python/initconfig.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitPythonConfig'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='763' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_CheckCrossInterpreterData' mangled-name='_PyObject_CheckCrossInterpreterData' filepath='Python/pystate.c' line='1595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckCrossInterpreterData'>
-      <parameter type-id='type-id-15' name='obj' filepath='Objects/abstract.c' line='2847' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyConfig_InitCompatConfig' mangled-name='_PyConfig_InitCompatConfig' filepath='./Python/initconfig.c' line='688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyConfig_InitCompatConfig'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='763' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/pystate.h' line='95' column='1' id='type-id-793'>
-      <underlying-type type-id='type-id-83'/>
-      <enumerator name='PyGILState_LOCKED' value='0'/>
-      <enumerator name='PyGILState_UNLOCKED' value='1'/>
-    </enum-decl>
-    <typedef-decl name='PyGILState_STATE' type-id='type-id-793' filepath='./Include/pystate.h' line='96' column='1' id='type-id-794'/>
-    <function-decl name='PyGILState_Release' mangled-name='PyGILState_Release' filepath='Python/pystate.c' line='1530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Release'>
-      <parameter type-id='type-id-794' name='oldstate' filepath='Python/pystate.c' line='1530' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='PyConfig_Clear' mangled-name='PyConfig_Clear' filepath='./Python/initconfig.c' line='646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_Clear'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='646' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyGILState_Ensure' mangled-name='PyGILState_Ensure' filepath='Python/pystate.c' line='1480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Ensure'>
-      <return type-id='type-id-794'/>
+    <pointer-type-def type-id='type-id-329' size-in-bits='64' id='type-id-752'/>
+    <function-decl name='Py_GetArgcArgv' mangled-name='Py_GetArgcArgv' filepath='./Python/initconfig.c' line='569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetArgcArgv'>
+      <parameter type-id='type-id-452' name='argc' filepath='./Python/initconfig.c' line='569' column='1'/>
+      <parameter type-id='type-id-752' name='argv' filepath='./Python/initconfig.c' line='569' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyGILState_Check' mangled-name='PyGILState_Check' filepath='Python/pystate.c' line='1460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Check'>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_ClearArgcArgv' mangled-name='_Py_ClearArgcArgv' filepath='./Python/initconfig.c' line='540' 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='PyGILState_GetThisThreadState' mangled-name='PyGILState_GetThisThreadState' filepath='Python/pystate.c' line='1454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_GetThisThreadState'>
-      <return type-id='type-id-166'/>
+    <function-decl name='_Py_ClearStandardStreamEncoding' mangled-name='_Py_ClearStandardStreamEncoding' filepath='./Python/initconfig.c' line='513' 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='_PyGILState_GetInterpreterStateUnsafe' mangled-name='_PyGILState_GetInterpreterStateUnsafe' filepath='Python/pystate.c' line='1367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGILState_GetInterpreterStateUnsafe'>
-      <return type-id='type-id-222'/>
+    <function-decl name='Py_SetStandardStreamEncoding' mangled-name='Py_SetStandardStreamEncoding' filepath='./Python/initconfig.c' line='458' 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='458' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='./Python/initconfig.c' line='458' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='_PyThread_CurrentExceptions' mangled-name='_PyThread_CurrentExceptions' filepath='Python/pystate.c' line='1245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentExceptions'>
-      <return type-id='type-id-15'/>
+    <qualified-type-def type-id='type-id-326' const='yes' id='type-id-753'/>
+    <pointer-type-def type-id='type-id-753' size-in-bits='64' id='type-id-754'/>
+    <function-decl name='_PyWideStringList_AsList' mangled-name='_PyWideStringList_AsList' filepath='./Python/initconfig.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_AsList'>
+      <parameter type-id='type-id-754' name='list' filepath='./Python/initconfig.c' line='427' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyThread_CurrentFrames' mangled-name='_PyThread_CurrentFrames' filepath='Python/pystate.c' line='1195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentFrames'>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyWideStringList_Extend' mangled-name='_PyWideStringList_Extend' filepath='./Python/initconfig.c' line='402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Extend'>
+      <parameter type-id='type-id-747' name='list' filepath='./Python/initconfig.c' line='402' column='1'/>
+      <parameter type-id='type-id-754' name='list2' filepath='./Python/initconfig.c' line='402' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='PyThreadState_Next' mangled-name='PyThreadState_Next' filepath='Python/pystate.c' line='1185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Next'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='1185' column='1'/>
-      <return type-id='type-id-166'/>
+    <function-decl name='PyWideStringList_Append' mangled-name='PyWideStringList_Append' filepath='./Python/initconfig.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWideStringList_Append'>
+      <parameter type-id='type-id-747' name='list' filepath='./Python/initconfig.c' line='395' column='1'/>
+      <parameter type-id='type-id-478' name='item' filepath='./Python/initconfig.c' line='395' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_ThreadHead' mangled-name='PyInterpreterState_ThreadHead' filepath='Python/pystate.c' line='1180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_ThreadHead'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1180' column='1'/>
-      <return type-id='type-id-166'/>
+    <function-decl name='PyWideStringList_Insert' mangled-name='PyWideStringList_Insert' filepath='./Python/initconfig.c' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWideStringList_Insert'>
+      <parameter type-id='type-id-747' name='list' filepath='./Python/initconfig.c' line='354' column='1'/>
+      <parameter type-id='type-id-31' name='index' filepath='./Python/initconfig.c' line='355' column='1'/>
+      <parameter type-id='type-id-478' name='item' filepath='./Python/initconfig.c' line='355' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Next' mangled-name='PyInterpreterState_Next' filepath='Python/pystate.c' line='1175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Next'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1175' column='1'/>
-      <return type-id='type-id-222'/>
+    <function-decl name='_PyWideStringList_Copy' mangled-name='_PyWideStringList_Copy' filepath='./Python/initconfig.c' line='319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Copy'>
+      <parameter type-id='type-id-747' name='list' filepath='./Python/initconfig.c' line='319' column='1'/>
+      <parameter type-id='type-id-754' name='list2' filepath='./Python/initconfig.c' line='319' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Main' mangled-name='PyInterpreterState_Main' filepath='Python/pystate.c' line='1169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Main'>
-      <return type-id='type-id-222'/>
+    <function-decl name='_PyWideStringList_Clear' mangled-name='_PyWideStringList_Clear' filepath='./Python/initconfig.c' line='306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Clear'>
+      <parameter type-id='type-id-747' name='list' filepath='./Python/initconfig.c' line='306' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Head' mangled-name='PyInterpreterState_Head' filepath='Python/pystate.c' line='1163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Head'>
-      <return type-id='type-id-222'/>
+    <function-decl name='PyStatus_Exception' mangled-name='PyStatus_Exception' filepath='./Python/initconfig.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Exception'>
+      <parameter type-id='type-id-743' name='status' filepath='./Python/initconfig.c' line='266' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyThreadState_SetAsyncExc' mangled-name='PyThreadState_SetAsyncExc' filepath='Python/pystate.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_SetAsyncExc'>
-      <parameter type-id='type-id-18' name='id' filepath='Python/pystate.c' line='1121' column='1'/>
-      <parameter type-id='type-id-15' name='exc' filepath='Python/pystate.c' line='1121' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyStatus_IsExit' mangled-name='PyStatus_IsExit' filepath='./Python/initconfig.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_IsExit'>
+      <parameter type-id='type-id-743' name='status' filepath='./Python/initconfig.c' line='266' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetID' mangled-name='PyThreadState_GetID' filepath='Python/pystate.c' line='1105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetID'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='1105' column='1'/>
-      <return type-id='type-id-21'/>
+    <function-decl name='PyStatus_IsError' mangled-name='PyStatus_IsError' filepath='./Python/initconfig.c' line='260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_IsError'>
+      <parameter type-id='type-id-743' name='status' filepath='./Python/initconfig.c' line='266' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetFrame' mangled-name='PyThreadState_GetFrame' filepath='Python/pystate.c' line='1095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetFrame'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='1095' column='1'/>
-      <return type-id='type-id-12'/>
+    <function-decl name='PyStatus_Exit' mangled-name='PyStatus_Exit' filepath='./Python/initconfig.c' line='256' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Exit'>
+      <parameter type-id='type-id-9' name='exitcode' filepath='./Python/initconfig.c' line='256' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetInterpreter' mangled-name='PyThreadState_GetInterpreter' filepath='Python/pystate.c' line='1087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetInterpreter'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='1087' column='1'/>
-      <return type-id='type-id-222'/>
+    <function-decl name='PyStatus_NoMemory' mangled-name='PyStatus_NoMemory' filepath='./Python/initconfig.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_NoMemory'>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetDict' mangled-name='PyThreadState_GetDict' filepath='Python/pystate.c' line='1076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetDict'>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyStatus_Error' mangled-name='PyStatus_Error' filepath='./Python/initconfig.c' line='246' 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='246' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='_PyThreadState_GetDict' mangled-name='_PyThreadState_GetDict' filepath='Python/pystate.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_GetDict'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='1062' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyStatus_Ok' mangled-name='PyStatus_Ok' filepath='./Python/initconfig.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Ok'>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <function-decl name='PyThreadState_Swap' mangled-name='PyThreadState_Swap' filepath='Python/pystate.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Swap'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='1185' column='1'/>
-      <return type-id='type-id-166'/>
+    <function-decl name='PyConfig_SetString' mangled-name='PyConfig_SetString' filepath='./Python/initconfig.c' line='785' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetString'>
+      <parameter type-id='type-id-746' name='config' filepath='./Python/initconfig.c' line='785' column='1'/>
+      <parameter type-id='type-id-329' name='config_str' filepath='./Python/initconfig.c' line='785' column='1'/>
+      <parameter type-id='type-id-478' name='str' filepath='./Python/initconfig.c' line='785' column='1'/>
+      <return type-id='type-id-743'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-795'/>
-    <function-decl name='_PyThreadState_Swap' mangled-name='_PyThreadState_Swap' filepath='Python/pystate.c' line='1018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Swap'>
-      <parameter type-id='type-id-795' name='gilstate' filepath='Python/pystate.c' line='1018' column='1'/>
-      <parameter type-id='type-id-166' name='newts' filepath='Python/pystate.c' line='1018' column='1'/>
-      <return type-id='type-id-166'/>
+    <function-decl name='_PyPreConfig_AsDict' mangled-name='_PyPreConfig_AsDict' 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='PyThreadState_Get' mangled-name='PyThreadState_Get' filepath='Python/pystate.c' line='1009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Get'>
-      <return type-id='type-id-166'/>
+    <function-decl name='_PyPathConfig_AsDict' mangled-name='_PyPathConfig_AsDict' filepath='./Include/internal/pycore_pathconfig.h' line='68' 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='Python/pystate.c' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_UncheckedGet'>
-      <return type-id='type-id-166'/>
+    <function-decl name='_PyPreConfig_InitFromPreConfig' mangled-name='_PyPreConfig_InitFromPreConfig' 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>
-    <typedef-decl name='_PyRuntimeState' type-id='type-id-250' filepath='./Include/internal/pycore_runtime.h' line='121' column='1' id='type-id-796'/>
-    <pointer-type-def type-id='type-id-796' size-in-bits='64' id='type-id-797'/>
-    <function-decl name='_PyThreadState_DeleteExcept' mangled-name='_PyThreadState_DeleteExcept' filepath='Python/pystate.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteExcept'>
-      <parameter type-id='type-id-797' name='runtime' filepath='Python/pystate.c' line='959' column='1'/>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='959' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyPreConfig_GetConfig' mangled-name='_PyPreConfig_GetConfig' filepath='./Include/internal/pycore_initconfig.h' line='135' 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='Python/pystate.c' line='943' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_DeleteCurrent'>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyPreCmdline_Read' mangled-name='_PyPreCmdline_Read' filepath='./Include/internal/pycore_initconfig.h' line='121' 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='Python/pystate.c' line='932' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteCurrent'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='932' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyPreCmdline_SetConfig' mangled-name='_PyPreCmdline_SetConfig' 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='PyThreadState_Delete' mangled-name='PyThreadState_Delete' filepath='Python/pystate.c' line='925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Delete'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='452' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_Py_PreInitializeFromConfig' mangled-name='_Py_PreInitializeFromConfig' filepath='./Include/internal/pycore_pylifecycle.h' line='121' 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='827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Clear'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='827' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyPreCmdline_Clear' mangled-name='_PyPreCmdline_Clear' 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='PyState_RemoveModule' mangled-name='PyState_RemoveModule' filepath='Python/pystate.c' line='770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_RemoveModule'>
-      <parameter type-id='type-id-505' name='def' filepath='Python/pystate.c' line='770' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PySys_ReadPreinitXOptions' mangled-name='_PySys_ReadPreinitXOptions' 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='PyState_AddModule' mangled-name='PyState_AddModule' filepath='Python/pystate.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_AddModule'>
-      <parameter type-id='type-id-15' name='module' filepath='Python/pystate.c' line='749' column='1'/>
-      <parameter type-id='type-id-505' name='def' filepath='Python/pystate.c' line='749' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArgv_AsWstrList' mangled-name='_PyArgv_AsWstrList' filepath='./Include/internal/pycore_initconfig.h' line='73' 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='Python/pystate.c' line='716' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyState_AddModule'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/pystate.c' line='716' column='1'/>
-      <parameter type-id='type-id-15' name='module' filepath='Python/pystate.c' line='716' column='1'/>
-      <parameter type-id='type-id-505' name='def' filepath='Python/pystate.c' line='716' 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='PyState_FindModule' mangled-name='PyState_FindModule' filepath='Python/pystate.c' line='697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_FindModule'>
-      <parameter type-id='type-id-505' name='module' filepath='Python/pystate.c' line='697' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='_PyThreadState_Init' mangled-name='_PyThreadState_Init' filepath='Python/pystate.c' line='691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Init'>
-      <parameter type-id='type-id-166' name='tstate' filepath='Python/errors.c' line='452' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_Py_isabs' mangled-name='_Py_isabs' filepath='./Include/cpython/fileutils.h' line='139' 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='685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Prealloc'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1180' column='1'/>
-      <return type-id='type-id-166'/>
+    <function-decl name='_Py_abspath' mangled-name='_Py_abspath' filepath='./Include/cpython/fileutils.h' line='142' 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='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_New'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1180' column='1'/>
-      <return type-id='type-id-166'/>
+    <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='PyInterpreterState_GetDict' mangled-name='PyInterpreterState_GetDict' filepath='Python/pystate.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetDict'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='598' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PySys_ReadPreinitWarnOptions' mangled-name='_PySys_ReadPreinitWarnOptions' 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>
-    <function-decl name='_PyInterpreterState_GetMainModule' mangled-name='_PyInterpreterState_GetMainModule' filepath='Python/pystate.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetMainModule'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='598' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='_PyInterpreterState_RequireIDRef' mangled-name='_PyInterpreterState_RequireIDRef' filepath='Python/pystate.c' line='582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequireIDRef'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='582' column='1'/>
-      <parameter type-id='type-id-8' name='required' filepath='Python/pystate.c' line='582' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_Py_GetEnv' mangled-name='_Py_GetEnv' filepath='./Include/internal/pycore_initconfig.h' line='85' 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='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequiresIDRef'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/import.c' line='285' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_PyInterpreterState_IDDecref' mangled-name='_PyInterpreterState_IDDecref' filepath='Python/pystate.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDDecref'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='554' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_Py_get_env_flag' mangled-name='_Py_get_env_flag' filepath='./Include/internal/pycore_initconfig.h' line='88' 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='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDIncref'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/import.c' line='285' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_get_xoption' mangled-name='_Py_get_xoption' filepath='./Include/internal/pycore_initconfig.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_IDInitref' mangled-name='_PyInterpreterState_IDInitref' filepath='Python/pystate.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDInitref'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/import.c' line='285' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_PyInterpreterState_LookUpID' mangled-name='_PyInterpreterState_LookUpID' filepath='Python/pystate.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_LookUpID'>
-      <parameter type-id='type-id-227' name='requested_id' filepath='Python/pystate.c' line='505' column='1'/>
-      <return type-id='type-id-222'/>
+    <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='PyInterpreterState_GetID' mangled-name='PyInterpreterState_GetID' filepath='Python/pystate.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetID'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='477' column='1'/>
-      <return type-id='type-id-227'/>
+    <function-decl name='_Py_str_to_int' mangled-name='_Py_str_to_int' filepath='./Include/internal/pycore_initconfig.h' line='79' 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='464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Get'>
-      <return type-id='type-id-222'/>
+    <function-decl name='_Py_IsLocaleCoercionTarget' mangled-name='_Py_IsLocaleCoercionTarget' 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='PyInterpreterState_Delete' mangled-name='PyInterpreterState_Delete' filepath='Python/pystate.c' line='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Delete'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='375' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_Py_GetLocaleEncoding' mangled-name='_Py_GetLocaleEncoding' filepath='./Include/internal/pycore_fileutils.h' line='53' 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='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Clear'>
-      <parameter type-id='type-id-222' name='interp' filepath='Python/ceval.c' line='577' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='PyInterpreterState_New' mangled-name='PyInterpreterState_New' filepath='Python/pystate.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_New'>
-      <return type-id='type-id-222'/>
+    <function-decl name='_PyConfig_InitPathConfig' mangled-name='_PyConfig_InitPathConfig' filepath='./Include/internal/pycore_initconfig.h' line='155' 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='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_Enable'>
-      <parameter type-id='type-id-797' name='runtime' filepath='Python/pystate.c' line='178' column='1'/>
-      <return type-id='type-id-740'/>
+    <function-decl name='PyUnicode_AsWideCharString' mangled-name='PyUnicode_AsWideCharString' filepath='./Include/unicodeobject.h' line='316' 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='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_Fini'>
-      <parameter type-id='type-id-797' name='runtime' filepath='Python/pystate.c' line='116' column='1'/>
-      <return type-id='type-id-69'/>
+  </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='1821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_Init'>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='_PyRuntimeState_Init' mangled-name='_PyRuntimeState_Init' filepath='Python/pystate.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_Init'>
-      <parameter type-id='type-id-797' name='runtime' filepath='Python/pystate.c' line='102' column='1'/>
-      <return type-id='type-id-740'/>
+    <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-16' name='x' filepath='Python/marshal.c' line='1570' column='1'/>
+      <parameter type-id='type-id-9' name='version' filepath='Python/marshal.c' line='1570' column='1'/>
+      <return type-id='type-id-16'/>
     </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='1580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveLoop'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2873' 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-31' name='len' filepath='Python/marshal.c' line='1549' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='PyRun_InteractiveOne' mangled-name='PyRun_InteractiveOne' filepath='Python/pythonrun.c' line='1573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOne'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='Py_CompileStringFlags' mangled-name='Py_CompileStringFlags' filepath='Python/pythonrun.c' line='1565' 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='1565' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1565' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1565' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1566' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='Py_CompileString' mangled-name='Py_CompileString' filepath='Python/pythonrun.c' line='1558' 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='1558' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1558' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1558' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyRun_SimpleString' mangled-name='PyRun_SimpleString' filepath='Python/pythonrun.c' line='1551' 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='6513' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_String' mangled-name='PyRun_String' filepath='Python/pythonrun.c' line='1544' 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='1544' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1544' column='1'/>
-      <parameter type-id='type-id-15' name='g' filepath='Python/pythonrun.c' line='1544' column='1'/>
-      <parameter type-id='type-id-15' name='l' filepath='Python/pythonrun.c' line='1544' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyRun_SimpleFileEx' mangled-name='PyRun_SimpleFileEx' filepath='Python/pythonrun.c' line='1536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFileEx'>
-      <parameter type-id='type-id-188' name='f' filepath='Python/pythonrun.c' line='1536' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1536' column='1'/>
-      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1536' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_SimpleFile' mangled-name='PyRun_SimpleFile' filepath='Python/pythonrun.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFile'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_FileFlags' mangled-name='PyRun_FileFlags' filepath='Python/pythonrun.c' line='1521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileFlags'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1521' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1521' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1521' column='1'/>
-      <parameter type-id='type-id-15' name='g' filepath='Python/pythonrun.c' line='1521' column='1'/>
-      <parameter type-id='type-id-15' name='l' filepath='Python/pythonrun.c' line='1521' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1522' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyRun_FileEx' mangled-name='PyRun_FileEx' filepath='Python/pythonrun.c' line='1514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileEx'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1514' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1514' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1514' column='1'/>
-      <parameter type-id='type-id-15' name='g' filepath='Python/pythonrun.c' line='1514' column='1'/>
-      <parameter type-id='type-id-15' name='l' filepath='Python/pythonrun.c' line='1514' column='1'/>
-      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1514' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyRun_File' mangled-name='PyRun_File' filepath='Python/pythonrun.c' line='1507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_File'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1507' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1507' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1507' column='1'/>
-      <parameter type-id='type-id-15' name='g' filepath='Python/pythonrun.c' line='1507' column='1'/>
-      <parameter type-id='type-id-15' name='l' filepath='Python/pythonrun.c' line='1507' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyRun_AnyFileFlags' mangled-name='PyRun_AnyFileFlags' filepath='Python/pythonrun.c' line='1500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileFlags'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1500' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/pythonrun.c' line='1500' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1500' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_AnyFileEx' mangled-name='PyRun_AnyFileEx' filepath='Python/pythonrun.c' line='1493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileEx'>
-      <parameter type-id='type-id-188' name='f' filepath='Python/pythonrun.c' line='1536' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1536' column='1'/>
-      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1536' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_AnyFile' mangled-name='PyRun_AnyFile' filepath='Python/pythonrun.c' line='1486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFile'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2873' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_Py_SourceAsString' mangled-name='_Py_SourceAsString' filepath='Python/pythonrun.c' line='1397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SourceAsString'>
-      <parameter type-id='type-id-15' name='cmd' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <parameter type-id='type-id-3' name='funcname' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <parameter type-id='type-id-3' name='what' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <parameter type-id='type-id-522' name='cf' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <parameter type-id='type-id-86' name='cmd_copy' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <return type-id='type-id-3'/>
+    <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-188' name='fp' filepath='Python/marshal.c' line='1529' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <function-decl name='Py_CompileStringExFlags' mangled-name='Py_CompileStringExFlags' filepath='Python/pythonrun.c' line='1384' 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='1384' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1384' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1384' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1385' column='1'/>
-      <parameter type-id='type-id-8' name='optimize' filepath='Python/pythonrun.c' line='1385' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='Py_CompileStringObject' mangled-name='Py_CompileStringObject' filepath='Python/pythonrun.c' line='1359' 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='1359' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/pythonrun.c' line='1359' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1359' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1360' column='1'/>
-      <parameter type-id='type-id-8' name='optimize' filepath='Python/pythonrun.c' line='1360' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyRun_FileExFlags' mangled-name='PyRun_FileExFlags' filepath='Python/pythonrun.c' line='1218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileExFlags'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1218' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1218' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1218' column='1'/>
-      <parameter type-id='type-id-15' name='globals' filepath='Python/pythonrun.c' line='1218' column='1'/>
-      <parameter type-id='type-id-15' name='locals' filepath='Python/pythonrun.c' line='1219' column='1'/>
-      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='1219' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1219' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyRun_StringFlags' mangled-name='PyRun_StringFlags' filepath='Python/pythonrun.c' line='1162' 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='1162' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1162' column='1'/>
-      <parameter type-id='type-id-15' name='globals' filepath='Python/pythonrun.c' line='1162' column='1'/>
-      <parameter type-id='type-id-15' name='locals' filepath='Python/pythonrun.c' line='1163' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1163' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyErr_Display' mangled-name='PyErr_Display' filepath='Python/pythonrun.c' line='1145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Display'>
-      <parameter type-id='type-id-15' name='type' filepath='Python/errors.c' line='68' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Python/errors.c' line='68' column='1'/>
-      <parameter type-id='type-id-15' name='traceback' filepath='Python/errors.c' line='68' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_Display' mangled-name='_PyErr_Display' filepath='Python/pythonrun.c' line='1107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Display'>
-      <parameter type-id='type-id-15' name='file' filepath='Python/pythonrun.c' line='1107' column='1'/>
-      <parameter type-id='type-id-15' name='exception' filepath='Python/pythonrun.c' line='1107' column='1'/>
-      <parameter type-id='type-id-15' name='value' filepath='Python/pythonrun.c' line='1107' column='1'/>
-      <parameter type-id='type-id-15' name='tb' filepath='Python/pythonrun.c' line='1107' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_Print' mangled-name='PyErr_Print' filepath='Python/pythonrun.c' line='883' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Print'>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='PyErr_PrintEx' mangled-name='PyErr_PrintEx' filepath='Python/pythonrun.c' line='876' 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='848' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_PyErr_Print' mangled-name='_PyErr_Print' filepath='Python/pythonrun.c' line='870' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Print'>
-      <parameter type-id='type-id-331' name='tstate' filepath='Python/pythonrun.c' line='870' column='1'/>
-      <return type-id='type-id-69'/>
-    </function-decl>
-    <function-decl name='_Py_HandleSystemExit' mangled-name='_Py_HandleSystemExit' filepath='Python/pythonrun.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HandleSystemExit'>
-      <parameter type-id='type-id-452' name='exitcode_p' filepath='Python/pythonrun.c' line='699' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_SimpleStringFlags' mangled-name='PyRun_SimpleStringFlags' filepath='Python/pythonrun.c' line='495' 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='495' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='495' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_SimpleFileExFlags' mangled-name='PyRun_SimpleFileExFlags' filepath='Python/pythonrun.c' line='481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFileExFlags'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='481' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='481' column='1'/>
-      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='481' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='482' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyRun_SimpleFileObject' mangled-name='_PyRun_SimpleFileObject' filepath='Python/pythonrun.c' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRun_SimpleFileObject'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='398' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/pythonrun.c' line='398' column='1'/>
-      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='398' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='399' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_InteractiveOneFlags' mangled-name='PyRun_InteractiveOneFlags' filepath='Python/pythonrun.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOneFlags'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='300' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='300' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='300' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_InteractiveOneObject' mangled-name='PyRun_InteractiveOneObject' filepath='Python/pythonrun.c' line='287' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOneObject'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='287' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/pythonrun.c' line='287' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='287' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_InteractiveLoopFlags' mangled-name='PyRun_InteractiveLoopFlags' filepath='Python/pythonrun.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveLoopFlags'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='300' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='300' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='300' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyRun_InteractiveLoopObject' mangled-name='_PyRun_InteractiveLoopObject' filepath='Python/pythonrun.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRun_InteractiveLoopObject'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='122' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/pythonrun.c' line='122' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='122' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyRun_AnyFileExFlags' mangled-name='PyRun_AnyFileExFlags' filepath='Python/pythonrun.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileExFlags'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='481' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='481' column='1'/>
-      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='481' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='482' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyRun_AnyFileObject' mangled-name='_PyRun_AnyFileObject' filepath='Python/pythonrun.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRun_AnyFileObject'>
-      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='68' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/pythonrun.c' line='68' column='1'/>
-      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='68' column='1'/>
-      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='69' 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-188' name='fp' filepath='Python/marshal.c' line='1504' column='1'/>
+      <return type-id='type-id-16'/>
     </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-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='160' column='1' id='type-id-798'/>
-    <typedef-decl name='time_t' type-id='type-id-798' filepath='/usr/include/x86_64-linux-gnu/bits/types/time_t.h' line='7' column='1' id='type-id-799'/>
-    <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-800'>
-      <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-32' 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-800' size-in-bits='64' id='type-id-801'/>
-    <function-decl name='_PyTime_gmtime' mangled-name='_PyTime_gmtime' filepath='Python/pytime.c' line='1125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_gmtime'>
-      <parameter type-id='type-id-799' name='t' filepath='Python/pytime.c' line='1125' column='1'/>
-      <parameter type-id='type-id-801' name='tm' filepath='Python/pytime.c' line='1125' 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-188' name='fp' filepath='Python/marshal.c' line='1468' column='1'/>
+      <return type-id='type-id-33'/>
     </function-decl>
-    <function-decl name='_PyTime_localtime' mangled-name='_PyTime_localtime' filepath='Python/pytime.c' line='1087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_localtime'>
-      <parameter type-id='type-id-799' name='t' filepath='Python/pytime.c' line='1125' column='1'/>
-      <parameter type-id='type-id-801' name='tm' filepath='Python/pytime.c' line='1125' column='1'/>
-      <return type-id='type-id-8'/>
+    <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-188' name='fp' filepath='Python/marshal.c' line='1452' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
-    <typedef-decl name='_PyTime_t' type-id='type-id-227' filepath='./Include/cpython/pytime.h' line='16' column='1' id='type-id-802'/>
-    <function-decl name='_PyTime_GetPerfCounter' mangled-name='_PyTime_GetPerfCounter' filepath='Python/pytime.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetPerfCounter'>
-      <return type-id='type-id-802'/>
+    <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-16' name='x' filepath='Python/marshal.c' line='595' column='1'/>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/marshal.c' line='595' column='1'/>
+      <parameter type-id='type-id-9' name='version' filepath='Python/marshal.c' line='595' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-802' size-in-bits='64' id='type-id-803'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-804' visibility='default' filepath='./Include/cpython/pytime.h' line='165' column='1' id='type-id-805'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='implementation' type-id='type-id-3' visibility='default' filepath='./Include/cpython/pytime.h' line='166' 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/cpython/pytime.h' line='167' 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/cpython/pytime.h' line='168' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='resolution' type-id='type-id-371' visibility='default' filepath='./Include/cpython/pytime.h' line='169' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='_Py_clock_info_t' type-id='type-id-805' filepath='./Include/cpython/pytime.h' line='170' column='1' id='type-id-804'/>
-    <pointer-type-def type-id='type-id-804' size-in-bits='64' id='type-id-806'/>
-    <function-decl name='_PyTime_GetPerfCounterWithInfo' mangled-name='_PyTime_GetPerfCounterWithInfo' filepath='Python/pytime.c' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetPerfCounterWithInfo'>
-      <parameter type-id='type-id-803' name='t' filepath='Python/pytime.c' line='1057' column='1'/>
-      <parameter type-id='type-id-806' name='info' filepath='Python/pytime.c' line='1057' column='1'/>
-      <return type-id='type-id-8'/>
+    <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-33' name='x' filepath='Python/marshal.c' line='580' column='1'/>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/marshal.c' line='580' column='1'/>
+      <parameter type-id='type-id-9' name='version' filepath='Python/marshal.c' line='580' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_GetMonotonicClockWithInfo' mangled-name='_PyTime_GetMonotonicClockWithInfo' filepath='Python/pytime.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetMonotonicClockWithInfo'>
-      <parameter type-id='type-id-803' name='t' filepath='Python/pytime.c' line='1057' column='1'/>
-      <parameter type-id='type-id-806' name='info' filepath='Python/pytime.c' line='1057' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_PyTime_GetMonotonicClock' mangled-name='_PyTime_GetMonotonicClock' filepath='Python/pytime.c' line='954' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetMonotonicClock'>
-      <return type-id='type-id-802'/>
+    <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='_PyTime_GetSystemClockWithInfo' mangled-name='_PyTime_GetSystemClockWithInfo' filepath='Python/pytime.c' line='781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetSystemClockWithInfo'>
-      <parameter type-id='type-id-803' name='t' filepath='Python/pytime.c' line='1057' column='1'/>
-      <parameter type-id='type-id-806' name='info' filepath='Python/pytime.c' line='1057' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_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-802'/>
+    <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>
-    <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-807'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='tv_sec' type-id='type-id-798' 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-808' 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-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='196' column='1' id='type-id-808'/>
-    <pointer-type-def type-id='type-id-807' size-in-bits='64' id='type-id-809'/>
-    <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-802' name='t' filepath='Python/pytime.c' line='636' column='1'/>
-      <parameter type-id='type-id-809' name='ts' filepath='Python/pytime.c' line='636' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_fstat_noraise' mangled-name='_Py_fstat_noraise' filepath='./Include/cpython/fileutils.h' line='81' 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-799' size-in-bits='64' id='type-id-810'/>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pytime.h' line='20' column='1' id='type-id-811'>
-      <underlying-type type-id='type-id-83'/>
-      <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-811' filepath='./Include/cpython/pytime.h' line='40' column='1' id='type-id-812'/>
-    <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-802' name='t' filepath='Python/pytime.c' line='616' column='1'/>
-      <parameter type-id='type-id-810' name='p_secs' filepath='Python/pytime.c' line='616' column='1'/>
-      <parameter type-id='type-id-452' name='us' filepath='Python/pytime.c' line='616' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='617' column='1'/>
-      <return type-id='type-id-8'/>
-    </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-813'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='tv_sec' type-id='type-id-798' 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-814' 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-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='162' column='1' id='type-id-814'/>
-    <pointer-type-def type-id='type-id-813' size-in-bits='64' id='type-id-815'/>
-    <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-802' name='t' filepath='Python/pytime.c' line='610' column='1'/>
-      <parameter type-id='type-id-815' name='tv' filepath='Python/pytime.c' line='610' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='610' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_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-802' name='t' filepath='Python/pytime.c' line='610' column='1'/>
-      <parameter type-id='type-id-815' name='tv' filepath='Python/pytime.c' line='610' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='610' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyLong_FromByteArray' mangled-name='_PyLong_FromByteArray' filepath='./Include/longobject.h' line='147' 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-802' name='t' filepath='Python/pytime.c' line='533' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='533' column='1'/>
-      <return type-id='type-id-802'/>
+    <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>
-    <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-802' name='t' filepath='Python/pytime.c' line='533' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='533' column='1'/>
-      <return type-id='type-id-802'/>
+    <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='_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-802' name='t' filepath='Python/pytime.c' line='473' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='_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-802' name='t' filepath='Python/pytime.c' line='453' column='1'/>
-      <return type-id='type-id-371'/>
+    <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='_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-803' name='t' filepath='Python/pytime.c' line='447' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/pytime.c' line='447' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='447' column='1'/>
-      <return type-id='type-id-8'/>
+  </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='257' column='1' elf-symbol-id='_Py_PackageContext'/>
+    <function-decl name='PyModule_AddType' mangled-name='PyModule_AddType' filepath='Python/modsupport.c' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddType'>
+      <parameter type-id='type-id-16' name='module' filepath='Python/modsupport.c' line='704' column='1'/>
+      <parameter type-id='type-id-32' name='type' filepath='Python/modsupport.c' line='704' column='1'/>
+      <return type-id='type-id-9'/>
     </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-803' name='t' filepath='Python/pytime.c' line='447' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/pytime.c' line='447' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='447' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyModule_AddStringConstant' mangled-name='PyModule_AddStringConstant' filepath='Python/modsupport.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddStringConstant'>
+      <parameter type-id='type-id-16' name='m' filepath='Python/modsupport.c' line='692' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='692' column='1'/>
+      <parameter type-id='type-id-3' name='value' filepath='Python/modsupport.c' line='692' column='1'/>
+      <return type-id='type-id-9'/>
     </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-803' name='tp' filepath='Python/pytime.c' line='380' column='1'/>
-      <parameter type-id='type-id-815' name='tv' filepath='Python/pytime.c' line='380' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyModule_AddIntConstant' mangled-name='PyModule_AddIntConstant' filepath='Python/modsupport.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddIntConstant'>
+      <parameter type-id='type-id-16' name='m' filepath='Python/modsupport.c' line='680' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='680' column='1'/>
+      <parameter type-id='type-id-33' name='value' filepath='Python/modsupport.c' line='680' column='1'/>
+      <return type-id='type-id-9'/>
     </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-803' name='tp' filepath='Python/pytime.c' line='334' column='1'/>
-      <parameter type-id='type-id-809' name='ts' filepath='Python/pytime.c' line='334' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyModule_AddObject' mangled-name='PyModule_AddObject' filepath='Python/modsupport.c' line='670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddObject'>
+      <parameter type-id='type-id-16' name='mod' filepath='Python/modsupport.c' line='670' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='670' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Python/modsupport.c' line='670' column='1'/>
+      <return type-id='type-id-9'/>
     </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-803' name='tp' filepath='Python/pytime.c' line='268' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/pytime.c' line='268' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_VaBuildStack_SizeT' mangled-name='_Py_VaBuildStack_SizeT' filepath='Python/modsupport.c' line='581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildStack_SizeT'>
+      <parameter type-id='type-id-86' name='small_stack' filepath='Python/modsupport.c' line='581' column='1'/>
+      <parameter type-id='type-id-31' name='small_stack_len' filepath='Python/modsupport.c' line='581' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='582' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/modsupport.c' line='582' column='1'/>
+      <parameter type-id='type-id-125' name='p_nargs' filepath='Python/modsupport.c' line='582' column='1'/>
+      <return type-id='type-id-86'/>
     </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-802' name='ns' filepath='Python/pytime.c' line='261' column='1'/>
-      <return type-id='type-id-802'/>
+    <function-decl name='_Py_VaBuildStack' mangled-name='_Py_VaBuildStack' filepath='Python/modsupport.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildStack'>
+      <parameter type-id='type-id-86' name='small_stack' filepath='Python/modsupport.c' line='581' column='1'/>
+      <parameter type-id='type-id-31' name='small_stack_len' filepath='Python/modsupport.c' line='581' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='582' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/modsupport.c' line='582' column='1'/>
+      <parameter type-id='type-id-125' name='p_nargs' filepath='Python/modsupport.c' line='582' column='1'/>
+      <return type-id='type-id-86'/>
     </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-802'/>
+    <function-decl name='_Py_VaBuildValue_SizeT' mangled-name='_Py_VaBuildValue_SizeT' filepath='Python/modsupport.c' line='545' 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='545' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/modsupport.c' line='545' column='1'/>
+      <return type-id='type-id-16'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-816'/>
-    <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-15' name='obj' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-810' name='sec' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-816' name='usec' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='238' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_VaBuildValue' mangled-name='Py_VaBuildValue' filepath='Python/modsupport.c' line='539' 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='545' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/modsupport.c' line='545' column='1'/>
+      <return type-id='type-id-16'/>
     </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-15' name='obj' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-810' name='sec' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-816' name='usec' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='238' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_BuildValue_SizeT' mangled-name='_Py_BuildValue_SizeT' filepath='Python/modsupport.c' line='528' 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='410' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-16'/>
     </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-15' name='obj' filepath='Python/pytime.c' line='197' column='1'/>
-      <parameter type-id='type-id-810' name='sec' filepath='Python/pytime.c' line='197' column='1'/>
-      <parameter type-id='type-id-812' name='round' filepath='Python/pytime.c' line='197' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_BuildValue' mangled-name='Py_BuildValue' filepath='Python/modsupport.c' line='517' 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='410' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-16'/>
     </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-799' name='t' filepath='Python/pytime.c' line='91' column='1'/>
-      <return type-id='type-id-15'/>
+    <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-16' name='obj' filepath='Python/modsupport.c' line='18' column='1'/>
+      <parameter type-id='type-id-21' name='result' filepath='Python/modsupport.c' line='18' column='1'/>
+      <return type-id='type-id-9'/>
     </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-15' name='obj' filepath='Python/pytime.c' line='71' column='1'/>
-      <return type-id='type-id-799'/>
+    <function-decl name='PyModule_AddObjectRef' mangled-name='PyModule_AddObjectRef' filepath='Python/modsupport.c' line='637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddObjectRef'>
+      <parameter type-id='type-id-16' name='mod' filepath='Python/modsupport.c' line='637' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='637' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Python/modsupport.c' line='637' column='1'/>
+      <return type-id='type-id-9'/>
     </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-802' name='ticks' filepath='Python/pytime.c' line='53' column='1'/>
-      <parameter type-id='type-id-802' name='mul' filepath='Python/pytime.c' line='53' column='1'/>
-      <parameter type-id='type-id-802' name='div' filepath='Python/pytime.c' line='53' column='1'/>
-      <return type-id='type-id-802'/>
+    <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>
   </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-20' name='buffer' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
-      <return type-id='type-id-8'/>
+  <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='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_vsnprintf'>
+      <parameter type-id='type-id-72' name='str' filepath='Python/mysnprintf.c' line='52' column='1'/>
+      <parameter type-id='type-id-157' name='size' filepath='Python/mysnprintf.c' line='52' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/mysnprintf.c' line='52' column='1'/>
+      <parameter type-id='type-id-217' name='va' filepath='Python/mysnprintf.c' line='52' column='1'/>
+      <return type-id='type-id-9'/>
     </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-20' name='buffer' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
-      <parameter type-id='type-id-30' name='size' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyOS_snprintf' mangled-name='PyOS_snprintf' filepath='Python/mysnprintf.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_snprintf'>
+      <parameter type-id='type-id-72' name='str' filepath='Python/mysnprintf.c' line='40' column='1'/>
+      <parameter type-id='type-id-157' name='size' filepath='Python/mysnprintf.c' line='40' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/mysnprintf.c' line='40' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <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>
   </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='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMember_SetOne'>
-      <parameter type-id='type-id-72' name='addr' filepath='Python/structmember.c' line='105' column='1'/>
-      <parameter type-id='type-id-433' name='l' filepath='Python/structmember.c' line='105' column='1'/>
-      <parameter type-id='type-id-15' name='v' filepath='Python/structmember.c' line='105' column='1'/>
-      <return type-id='type-id-8'/>
+  <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-215' name='ptr' filepath='Python/mystrtoul.c' line='263' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Python/mystrtoul.c' line='263' column='1'/>
+      <return type-id='type-id-33'/>
     </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='obj_addr' filepath='Python/structmember.c' line='8' column='1'/>
-      <parameter type-id='type-id-433' name='l' filepath='Python/structmember.c' line='8' column='1'/>
-      <return type-id='type-id-15'/>
+    <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-215' name='ptr' filepath='Python/mystrtoul.c' line='95' column='1'/>
+      <parameter type-id='type-id-9' name='base' filepath='Python/mystrtoul.c' line='95' column='1'/>
+      <return type-id='type-id-19'/>
     </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-149' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='71' column='1'/>
-    <class-decl name='_symtable_entry' size-in-bits='896' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='37' column='1' id='type-id-817'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-68' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='38' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ste_id' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='39' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ste_symbols' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='40' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='ste_name' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='41' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='ste_varnames' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='42' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='ste_children' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='43' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='ste_directives' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='44' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='ste_type' type-id='type-id-818' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='45' 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/internal/pycore_symtable.h' line='46' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='31'>
-        <var-decl name='ste_free' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='47' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='30'>
-        <var-decl name='ste_child_free' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='48' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='29'>
-        <var-decl name='ste_generator' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='50' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='28'>
-        <var-decl name='ste_coroutine' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='51' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='27'>
-        <var-decl name='ste_comprehension' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='52' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='26'>
-        <var-decl name='ste_varargs' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='53' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='25'>
-        <var-decl name='ste_varkeywords' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='54' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='24'>
-        <var-decl name='ste_returns_value' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='55' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='23'>
-        <var-decl name='ste_needs_class_closure' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='57' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='22'>
-        <var-decl name='ste_comp_iter_target' type-id='type-id-65' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='60' 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/internal/pycore_symtable.h' line='61' 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/internal/pycore_symtable.h' line='62' 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/internal/pycore_symtable.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='ste_end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='64' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='736'>
-        <var-decl name='ste_end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='ste_opt_lineno' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='66' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='800'>
-        <var-decl name='ste_opt_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='67' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='ste_table' type-id='type-id-819' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='68' column='1'/>
-      </data-member>
-    </class-decl>
-    <enum-decl name='_block_type' filepath='./Include/internal/pycore_symtable.h' line='13' column='1' id='type-id-820'>
-      <underlying-type type-id='type-id-83'/>
-      <enumerator name='FunctionBlock' value='0'/>
-      <enumerator name='ClassBlock' value='1'/>
-      <enumerator name='ModuleBlock' value='2'/>
-      <enumerator name='AnnotationBlock' value='3'/>
-    </enum-decl>
-    <typedef-decl name='_Py_block_ty' type-id='type-id-820' filepath='./Include/internal/pycore_symtable.h' line='14' column='1' id='type-id-818'/>
-    <class-decl name='symtable' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='18' column='1' id='type-id-821'>
+  <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-755'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='st_filename' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='19' column='1'/>
+        <var-decl name='program_full_path' type-id='type-id-325' 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='st_cur' type-id='type-id-822' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='21' column='1'/>
+        <var-decl name='prefix' type-id='type-id-325' 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='st_top' type-id='type-id-822' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='22' column='1'/>
+        <var-decl name='exec_prefix' type-id='type-id-325' 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='st_blocks' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='23' column='1'/>
+        <var-decl name='module_search_path' type-id='type-id-325' 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='st_stack' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='25' column='1'/>
+        <var-decl name='program_name' type-id='type-id-325' 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='st_global' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='26' 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/internal/pycore_symtable.h' line='27' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='st_private' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='30' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='st_future' type-id='type-id-823' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='31' 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/internal/pycore_symtable.h' line='33' 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/internal/pycore_symtable.h' line='34' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-817' size-in-bits='64' id='type-id-822'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-824' visibility='default' filepath='./Include/cpython/compile.h' line='34' column='1' id='type-id-825'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ff_features' type-id='type-id-8' visibility='default' filepath='./Include/cpython/compile.h' line='35' 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/cpython/compile.h' line='36' column='1'/>
+        <var-decl name='home' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='21' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyFutureFeatures' type-id='type-id-825' filepath='./Include/cpython/compile.h' line='37' column='1' id='type-id-824'/>
-    <pointer-type-def type-id='type-id-824' size-in-bits='64' id='type-id-823'/>
-    <pointer-type-def type-id='type-id-821' size-in-bits='64' id='type-id-819'/>
-    <typedef-decl name='PySTEntryObject' type-id='type-id-817' filepath='./Include/internal/pycore_symtable.h' line='69' column='1' id='type-id-826'/>
-    <pointer-type-def type-id='type-id-826' size-in-bits='64' id='type-id-827'/>
-    <function-decl name='PySymtable_Lookup' mangled-name='PySymtable_Lookup' filepath='Python/symtable.c' line='373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_Lookup'>
-      <parameter type-id='type-id-819' name='st' filepath='Python/symtable.c' line='373' column='1'/>
-      <parameter type-id='type-id-20' name='key' filepath='Python/symtable.c' line='373' column='1'/>
-      <return type-id='type-id-827'/>
+    <typedef-decl name='_PyPathConfig' type-id='type-id-755' filepath='./Include/internal/pycore_pathconfig.h' line='31' column='1' id='type-id-756'/>
+    <var-decl name='_Py_path_config' type-id='type-id-756' 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='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetProgramName'>
+      <return type-id='type-id-325'/>
     </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='3345' 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='3345' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='Py_GetPythonHome' mangled-name='Py_GetPythonHome' filepath='Python/pathconfig.c' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPythonHome'>
+      <return type-id='type-id-325'/>
     </function-decl>
-    <function-decl name='PySys_FormatStdout' mangled-name='PySys_FormatStdout' filepath='./Python/sysmodule.c' line='3335' 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='3345' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='Py_GetProgramFullPath' mangled-name='Py_GetProgramFullPath' filepath='Python/pathconfig.c' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetProgramFullPath'>
+      <return type-id='type-id-325'/>
     </function-decl>
-    <function-decl name='PySys_WriteStderr' mangled-name='PySys_WriteStderr' filepath='./Python/sysmodule.c' line='3302' 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='3345' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='Py_GetExecPrefix' mangled-name='Py_GetExecPrefix' filepath='Python/pathconfig.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetExecPrefix'>
+      <return type-id='type-id-325'/>
     </function-decl>
-    <function-decl name='PySys_WriteStdout' mangled-name='PySys_WriteStdout' filepath='./Python/sysmodule.c' line='3292' 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='3345' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='Py_GetPrefix' mangled-name='Py_GetPrefix' filepath='Python/pathconfig.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPrefix'>
+      <return type-id='type-id-325'/>
     </function-decl>
-    <function-decl name='PySys_SetArgv' mangled-name='PySys_SetArgv' filepath='./Python/sysmodule.c' line='3199' 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='3199' column='1'/>
-      <parameter type-id='type-id-329' name='argv' filepath='./Python/sysmodule.c' line='3199' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='Py_GetPath' mangled-name='Py_GetPath' filepath='Python/pathconfig.c' line='569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPath'>
+      <return type-id='type-id-325'/>
     </function-decl>
-    <function-decl name='PySys_SetArgvEx' mangled-name='PySys_SetArgvEx' filepath='./Python/sysmodule.c' line='3155' 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='3155' column='1'/>
-      <parameter type-id='type-id-329' name='argv' filepath='./Python/sysmodule.c' line='3155' column='1'/>
-      <parameter type-id='type-id-8' name='updatepath' filepath='./Python/sysmodule.c' line='3155' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_Py_SetProgramFullPath' mangled-name='_Py_SetProgramFullPath' filepath='Python/pathconfig.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SetProgramFullPath'>
+      <parameter type-id='type-id-478' name='program_full_path' filepath='Python/pathconfig.c' line='548' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_SetPath' mangled-name='PySys_SetPath' filepath='./Python/sysmodule.c' line='3123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetPath'>
-      <parameter type-id='type-id-478' name='path' filepath='./Python/sysmodule.c' line='3123' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='Py_SetProgramName' mangled-name='Py_SetProgramName' filepath='Python/pathconfig.c' line='528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetProgramName'>
+      <parameter type-id='type-id-478' name='program_full_path' filepath='Python/pathconfig.c' line='548' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_GetXOptions' mangled-name='PySys_GetXOptions' filepath='./Python/sysmodule.c' line='2389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_GetXOptions'>
-      <return type-id='type-id-15'/>
+    <function-decl name='Py_SetPythonHome' mangled-name='Py_SetPythonHome' filepath='Python/pathconfig.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetPythonHome'>
+      <parameter type-id='type-id-478' name='program_full_path' filepath='Python/pathconfig.c' line='548' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_AddXOption' mangled-name='PySys_AddXOption' filepath='./Python/sysmodule.c' line='2375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddXOption'>
-      <parameter type-id='type-id-478' name='s' filepath='./Python/sysmodule.c' line='2375' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='Py_SetPath' mangled-name='Py_SetPath' filepath='Python/pathconfig.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetPath'>
+      <parameter type-id='type-id-478' name='path' filepath='Python/pathconfig.c' line='477' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_HasWarnOptions' mangled-name='PySys_HasWarnOptions' filepath='./Python/sysmodule.c' line='2301' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_HasWarnOptions'>
-      <return type-id='type-id-8'/>
+    <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='PySys_AddWarnOption' mangled-name='PySys_AddWarnOption' filepath='./Python/sysmodule.c' line='2285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddWarnOption'>
-      <parameter type-id='type-id-478' name='program_full_path' filepath='Python/pathconfig.c' line='548' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='PySys_AddWarnOptionUnicode' mangled-name='PySys_AddWarnOptionUnicode' filepath='./Python/sysmodule.c' line='2273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddWarnOptionUnicode'>
-      <parameter type-id='type-id-15' name='m' filepath='Objects/moduleobject.c' line='565' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='PySys_ResetWarnOptions' mangled-name='PySys_ResetWarnOptions' filepath='./Python/sysmodule.c' line='2245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_ResetWarnOptions'>
-      <return type-id='type-id-69'/>
+    <function-decl name='_Py_wgetcwd' mangled-name='_Py_wgetcwd' filepath='./Include/cpython/fileutils.h' line='144' 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='1656' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_GetSizeOf'>
-      <parameter type-id='type-id-15' name='vv' filepath='Objects/longobject.c' line='583' column='1'/>
-      <return type-id='type-id-157'/>
+    <function-decl name='_Py_wreadlink' mangled-name='_Py_wreadlink' filepath='./Include/cpython/fileutils.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='382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddAuditHook'>
-      <parameter type-id='type-id-306' name='hook' filepath='./Python/sysmodule.c' line='382' column='1'/>
-      <parameter type-id='type-id-20' name='userData' filepath='./Python/sysmodule.c' line='382' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_wrealpath' mangled-name='_Py_wrealpath' filepath='./Include/cpython/fileutils.h' line='130' 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='328' 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='328' column='1'/>
-      <parameter type-id='type-id-3' name='argFormat' filepath='./Python/sysmodule.c' line='328' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <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='PyWideStringList_Append' mangled-name='PyWideStringList_Append' filepath='./Include/cpython/initconfig.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyWideStringList_Clear' mangled-name='_PyWideStringList_Clear' filepath='./Include/internal/pycore_initconfig.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/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-9' 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='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_xoption'>
+      <parameter type-id='type-id-754' name='xoptions' filepath='Python/preconfig.c' line='583' column='1'/>
+      <parameter type-id='type-id-478' name='name' filepath='Python/preconfig.c' line='583' column='1'/>
+      <return type-id='type-id-478'/>
+    </function-decl>
+    <function-decl name='_Py_get_env_flag' mangled-name='_Py_get_env_flag' filepath='Python/preconfig.c' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_env_flag'>
+      <parameter type-id='type-id-9' name='use_environment' filepath='Python/preconfig.c' line='565' column='1'/>
+      <parameter type-id='type-id-452' name='flag' filepath='Python/preconfig.c' line='565' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/preconfig.c' line='565' 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='547' 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='547' column='1'/>
+      <parameter type-id='type-id-452' name='result' filepath='Python/preconfig.c' line='547' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_GetEnv' mangled-name='_Py_GetEnv' filepath='Python/preconfig.c' line='528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetEnv'>
+      <parameter type-id='type-id-9' name='use_environment' filepath='Python/preconfig.c' line='528' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/preconfig.c' line='528' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-257' size-in-bits='64' id='type-id-757'/>
+    <function-decl name='PyPreConfig_InitIsolatedConfig' mangled-name='PyPreConfig_InitIsolatedConfig' filepath='Python/preconfig.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPreConfig_InitIsolatedConfig'>
+      <parameter type-id='type-id-757' name='config' filepath='Python/preconfig.c' line='340' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyPreConfig_InitPythonConfig' mangled-name='PyPreConfig_InitPythonConfig' filepath='Python/preconfig.c' line='319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPreConfig_InitPythonConfig'>
+      <parameter type-id='type-id-757' name='config' filepath='Python/preconfig.c' line='340' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPreConfig_InitCompatConfig' mangled-name='_PyPreConfig_InitCompatConfig' filepath='Python/preconfig.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyPreConfig_InitCompatConfig'>
+      <parameter type-id='type-id-757' name='config' filepath='Python/preconfig.c' line='281' column='1'/>
+      <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='66' column='1' id='type-id-758'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='argc' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='use_bytes_argv' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='bytes_argv' type-id='type-id-192' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='wchar_argv' type-id='type-id-749' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='70' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_PyArgv' type-id='type-id-758' filepath='./Include/internal/pycore_initconfig.h' line='71' column='1' id='type-id-759'/>
+    <qualified-type-def type-id='type-id-759' const='yes' id='type-id-760'/>
+    <pointer-type-def type-id='type-id-760' size-in-bits='64' id='type-id-761'/>
+    <function-decl name='_PyArgv_AsWstrList' mangled-name='_PyArgv_AsWstrList' filepath='Python/preconfig.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArgv_AsWstrList'>
+      <parameter type-id='type-id-761' name='args' filepath='Python/preconfig.c' line='75' column='1'/>
+      <parameter type-id='type-id-747' name='list' filepath='Python/preconfig.c' line='75' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='_Py_SetLocaleFromEnv' mangled-name='_Py_SetLocaleFromEnv' filepath='./Include/cpython/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='_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='_Py_CoerceLegacyLocale' mangled-name='_Py_CoerceLegacyLocale' 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>
+    <function-decl name='_Py_LegacyLocaleDetected' mangled-name='_Py_LegacyLocaleDetected' filepath='./Include/cpython/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='_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='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='_PyWideStringList_Extend' mangled-name='_PyWideStringList_Extend' 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>
+    <function-decl name='_PyWideStringList_Copy' mangled-name='_PyWideStringList_Copy' 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>
+  </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='46' column='1' id='type-id-697'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='a_head' type-id='type-id-762' visibility='default' filepath='Python/pyarena.c' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='a_cur' type-id='type-id-762' visibility='default' filepath='Python/pyarena.c' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='a_objects' type-id='type-id-16' visibility='default' filepath='Python/pyarena.c' line='64' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_block' size-in-bits='256' is-struct='yes' visibility='default' filepath='Python/pyarena.c' line='17' column='1' id='type-id-763'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ab_size' type-id='type-id-157' visibility='default' filepath='Python/pyarena.c' line='22' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ab_offset' type-id='type-id-157' visibility='default' filepath='Python/pyarena.c' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ab_next' type-id='type-id-764' visibility='default' filepath='Python/pyarena.c' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='ab_mem' type-id='type-id-21' visibility='default' filepath='Python/pyarena.c' line='38' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-763' size-in-bits='64' id='type-id-764'/>
+    <typedef-decl name='block' type-id='type-id-763' filepath='Python/pyarena.c' line='39' column='1' id='type-id-765'/>
+    <pointer-type-def type-id='type-id-765' size-in-bits='64' id='type-id-762'/>
+    <function-decl name='_PyArena_AddPyObject' mangled-name='_PyArena_AddPyObject' filepath='Python/pyarena.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_AddPyObject'>
+      <parameter type-id='type-id-699' name='arena' filepath='Python/pyarena.c' line='204' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/pyarena.c' line='204' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyArena_Malloc' mangled-name='_PyArena_Malloc' filepath='Python/pyarena.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_Malloc'>
+      <parameter type-id='type-id-699' name='arena' filepath='Python/pyarena.c' line='181' column='1'/>
+      <parameter type-id='type-id-157' name='size' filepath='Python/pyarena.c' line='181' column='1'/>
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <function-decl name='_PyArena_Free' mangled-name='_PyArena_Free' filepath='Python/pyarena.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_Free'>
+      <parameter type-id='type-id-699' name='arena' filepath='Python/pyarena.c' line='158' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyArena_New' mangled-name='_PyArena_New' filepath='Python/pyarena.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_New'>
+      <return type-id='type-id-699'/>
+    </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-66' const='yes' id='type-id-766'/>
+
+    <array-type-def dimensions='1' type-id='type-id-766' size-in-bits='8192' id='type-id-767'>
+      <subrange length='256' type-id='type-id-19' id='type-id-362'/>
+
+    </array-type-def>
+    <qualified-type-def type-id='type-id-767' const='yes' id='type-id-768'/>
+    <var-decl name='_Py_ctype_table' type-id='type-id-768' mangled-name='_Py_ctype_table' visibility='default' filepath='./Include/cpython/pyctype.h' line='16' column='1' elf-symbol-id='_Py_ctype_table'/>
+
+    <array-type-def dimensions='1' type-id='type-id-439' size-in-bits='2048' id='type-id-769'>
+      <subrange length='256' type-id='type-id-19' id='type-id-362'/>
+
+    </array-type-def>
+    <qualified-type-def type-id='type-id-769' const='yes' id='type-id-770'/>
+    <var-decl name='_Py_ctype_tolower' type-id='type-id-770' mangled-name='_Py_ctype_tolower' visibility='default' filepath='./Include/cpython/pyctype.h' line='29' column='1' elf-symbol-id='_Py_ctype_tolower'/>
+    <var-decl name='_Py_ctype_toupper' type-id='type-id-770' mangled-name='_Py_ctype_toupper' visibility='default' filepath='./Include/cpython/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='55' column='1' id='type-id-771'>
+      <data-member access='private'>
+        <var-decl name='uc' type-id='type-id-772' visibility='default' filepath='./Include/pyhash.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='fnv' type-id='type-id-773' visibility='default' filepath='./Include/pyhash.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='siphash' type-id='type-id-774' visibility='default' filepath='./Include/pyhash.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='djbx33a' type-id='type-id-775' visibility='default' filepath='./Include/pyhash.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='expat' type-id='type-id-776' visibility='default' filepath='./Include/pyhash.h' line='76' column='1'/>
+      </data-member>
+    </union-decl>
+
+    <array-type-def dimensions='1' type-id='type-id-341' size-in-bits='192' id='type-id-772'>
+      <subrange length='24' type-id='type-id-19' id='type-id-777'/>
+
+    </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='59' column='1' id='type-id-773'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='prefix' type-id='type-id-117' visibility='default' filepath='./Include/pyhash.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='suffix' type-id='type-id-117' visibility='default' filepath='./Include/pyhash.h' line='61' 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='64' column='1' id='type-id-774'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='k0' type-id='type-id-22' visibility='default' filepath='./Include/pyhash.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='k1' type-id='type-id-22' visibility='default' filepath='./Include/pyhash.h' line='66' 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='69' column='1' id='type-id-775'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='padding' type-id='type-id-778' visibility='default' filepath='./Include/pyhash.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='suffix' type-id='type-id-117' visibility='default' filepath='./Include/pyhash.h' line='71' column='1'/>
+      </data-member>
+    </class-decl>
+
+    <array-type-def dimensions='1' type-id='type-id-341' size-in-bits='128' id='type-id-778'>
+      <subrange length='16' type-id='type-id-19' id='type-id-779'/>
+
+    </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='73' column='1' id='type-id-776'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='padding' type-id='type-id-778' visibility='default' filepath='./Include/pyhash.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='hashsalt' type-id='type-id-117' visibility='default' filepath='./Include/pyhash.h' line='75' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_Py_HashSecret_t' type-id='type-id-771' filepath='./Include/pyhash.h' line='77' column='1' id='type-id-780'/>
+    <var-decl name='_Py_HashSecret' type-id='type-id-780' mangled-name='_Py_HashSecret' visibility='default' filepath='./Include/pyhash.h' line='78' 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-781' visibility='default' filepath='./Include/pyhash.h' line='86' column='1' id='type-id-782'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='hash' type-id='type-id-783' visibility='default' filepath='./Include/pyhash.h' line='87' 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='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='hash_bits' type-id='type-id-784' visibility='default' filepath='./Include/pyhash.h' line='89' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='seed_bits' type-id='type-id-784' visibility='default' filepath='./Include/pyhash.h' line='90' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-785' size-in-bits='64' id='type-id-786'/>
+    <qualified-type-def type-id='type-id-786' const='yes' id='type-id-783'/>
+    <qualified-type-def type-id='type-id-9' const='yes' id='type-id-784'/>
+    <typedef-decl name='PyHash_FuncDef' type-id='type-id-782' filepath='./Include/pyhash.h' line='91' column='1' id='type-id-781'/>
+    <pointer-type-def type-id='type-id-781' size-in-bits='64' id='type-id-787'/>
+    <function-decl name='PyHash_GetFuncDef' mangled-name='PyHash_GetFuncDef' filepath='Python/pyhash.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyHash_GetFuncDef'>
+      <return type-id='type-id-787'/>
+    </function-decl>
+    <function-decl name='_Py_HashBytes' mangled-name='_Py_HashBytes' filepath='Python/pyhash.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashBytes'>
+      <parameter type-id='type-id-21' name='src' filepath='Python/pyhash.c' line='158' column='1'/>
+      <parameter type-id='type-id-31' name='len' filepath='Python/pyhash.c' line='158' column='1'/>
+      <return type-id='type-id-117'/>
+    </function-decl>
+    <function-decl name='_Py_HashPointer' mangled-name='_Py_HashPointer' filepath='Python/pyhash.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashPointer'>
+      <parameter type-id='type-id-21' name='p' filepath='Python/pyhash.c' line='148' column='1'/>
+      <return type-id='type-id-117'/>
+    </function-decl>
+    <function-decl name='_Py_HashPointerRaw' mangled-name='_Py_HashPointerRaw' filepath='Python/pyhash.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashPointerRaw'>
+      <parameter type-id='type-id-21' name='p' filepath='Python/pyhash.c' line='138' column='1'/>
+      <return type-id='type-id-117'/>
+    </function-decl>
+    <function-decl name='_Py_HashDouble' mangled-name='_Py_HashDouble' filepath='Python/pyhash.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashDouble'>
+      <parameter type-id='type-id-16' name='inst' filepath='Python/pyhash.c' line='92' column='1'/>
+      <parameter type-id='type-id-371' name='v' filepath='Python/pyhash.c' line='92' column='1'/>
+      <return type-id='type-id-117'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-785'>
+      <parameter type-id='type-id-21'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-117'/>
+    </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-9' mangled-name='_Py_UnhandledKeyboardInterrupt' visibility='default' filepath='./Include/internal/pycore_pylifecycle.h' line='35' column='1' elf-symbol-id='_Py_UnhandledKeyboardInterrupt'/>
+    <typedef-decl name='_PyRuntimeState' type-id='type-id-530' filepath='./Include/internal/pycore_runtime.h' line='121' column='1' id='type-id-788'/>
+    <var-decl name='_PyRuntime' type-id='type-id-788' mangled-name='_PyRuntime' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='128' column='1' elf-symbol-id='_PyRuntime'/>
+    <pointer-type-def type-id='type-id-789' size-in-bits='64' id='type-id-790'/>
+    <typedef-decl name='PyOS_sighandler_t' type-id='type-id-790' filepath='./Include/pylifecycle.h' line='61' column='1' id='type-id-791'/>
+    <function-decl name='PyOS_setsig' mangled-name='PyOS_setsig' filepath='Python/pylifecycle.c' line='2942' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_setsig'>
+      <parameter type-id='type-id-9' name='sig' filepath='Python/pylifecycle.c' line='2942' column='1'/>
+      <parameter type-id='type-id-791' name='handler' filepath='Python/pylifecycle.c' line='2942' column='1'/>
+      <return type-id='type-id-791'/>
+    </function-decl>
+    <function-decl name='PyOS_getsig' mangled-name='PyOS_getsig' filepath='Python/pylifecycle.c' line='2903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_getsig'>
+      <parameter type-id='type-id-9' name='sig' filepath='Python/pylifecycle.c' line='2903' column='1'/>
+      <return type-id='type-id-791'/>
+    </function-decl>
+    <function-decl name='_Py_FdIsInteractive' mangled-name='_Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='2886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FdIsInteractive'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pylifecycle.c' line='2886' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/pylifecycle.c' line='2886' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='Py_FdIsInteractive' mangled-name='Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='2873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FdIsInteractive'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pylifecycle.c' line='2873' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2873' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='Py_Exit' mangled-name='Py_Exit' filepath='Python/pylifecycle.c' line='2856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Exit'>
+      <parameter type-id='type-id-9' name='sts' filepath='Python/pylifecycle.c' line='2856' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_AtExit' mangled-name='Py_AtExit' filepath='Python/pylifecycle.c' line='2831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AtExit'>
+      <parameter type-id='type-id-275' name='func' filepath='Python/pylifecycle.c' line='2831' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='Py_ExitStatusException' mangled-name='Py_ExitStatusException' filepath='Python/pylifecycle.c' line='2789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ExitStatusException'>
+      <parameter type-id='type-id-743' name='status' filepath='Python/pylifecycle.c' line='2789' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_FatalErrorFunc' mangled-name='_Py_FatalErrorFunc' filepath='Python/pylifecycle.c' line='2748' 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='2748' column='1'/>
+      <parameter type-id='type-id-3' name='msg' filepath='Python/pylifecycle.c' line='2748' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_FatalError' mangled-name='Py_FatalError' filepath='Python/pylifecycle.c' line='2741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FatalError'>
+      <parameter type-id='type-id-3' name='msg' filepath='Python/pylifecycle.c' line='2741' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_DumpExtensionModules' mangled-name='_Py_DumpExtensionModules' filepath='Python/pylifecycle.c' line='2568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DumpExtensionModules'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/pylifecycle.c' line='2568' column='1'/>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pylifecycle.c' line='2568' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_EndInterpreter' mangled-name='Py_EndInterpreter' filepath='Python/pylifecycle.c' line='2004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EndInterpreter'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pylifecycle.c' line='2004' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_NewInterpreter' mangled-name='Py_NewInterpreter' filepath='Python/pylifecycle.c' line='1986' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewInterpreter'>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='_Py_NewInterpreter' mangled-name='_Py_NewInterpreter' filepath='Python/pylifecycle.c' line='1974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_NewInterpreter'>
+      <parameter type-id='type-id-9' name='isolated_subinterpreter' filepath='Python/pylifecycle.c' line='1974' column='1'/>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='Py_Finalize' mangled-name='Py_Finalize' filepath='Python/pylifecycle.c' line='1868' 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='_Py_InitializeMain' mangled-name='_Py_InitializeMain' filepath='Python/pylifecycle.c' line='1271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_InitializeMain'>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='Py_Initialize' mangled-name='Py_Initialize' filepath='Python/pylifecycle.c' line='1264' 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='Py_InitializeEx' mangled-name='Py_InitializeEx' filepath='Python/pylifecycle.c' line='1237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_InitializeEx'>
+      <parameter type-id='type-id-9' name='install_sigs' filepath='Python/pylifecycle.c' line='1237' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <qualified-type-def type-id='type-id-257' const='yes' id='type-id-792'/>
+    <pointer-type-def type-id='type-id-792' size-in-bits='64' id='type-id-793'/>
+    <function-decl name='Py_PreInitialize' mangled-name='Py_PreInitialize' filepath='Python/pylifecycle.c' line='941' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitialize'>
+      <parameter type-id='type-id-793' name='src_config' filepath='Python/pylifecycle.c' line='941' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='Py_PreInitializeFromArgs' mangled-name='Py_PreInitializeFromArgs' filepath='Python/pylifecycle.c' line='933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromArgs'>
+      <parameter type-id='type-id-793' name='src_config' filepath='Python/pylifecycle.c' line='933' column='1'/>
+      <parameter type-id='type-id-31' name='argc' filepath='Python/pylifecycle.c' line='933' column='1'/>
+      <parameter type-id='type-id-329' name='argv' filepath='Python/pylifecycle.c' line='933' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='Py_PreInitializeFromBytesArgs' mangled-name='Py_PreInitializeFromBytesArgs' filepath='Python/pylifecycle.c' line='925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromBytesArgs'>
+      <parameter type-id='type-id-793' name='src_config' filepath='Python/pylifecycle.c' line='925' column='1'/>
+      <parameter type-id='type-id-31' name='argc' filepath='Python/pylifecycle.c' line='925' column='1'/>
+      <parameter type-id='type-id-215' name='argv' filepath='Python/pylifecycle.c' line='925' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_SetConfig' mangled-name='_PyInterpreterState_SetConfig' filepath='Python/pylifecycle.c' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_SetConfig'>
+      <parameter type-id='type-id-751' name='src_config' filepath='Python/pylifecycle.c' line='473' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_SetLocaleFromEnv' mangled-name='_Py_SetLocaleFromEnv' filepath='Python/pylifecycle.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SetLocaleFromEnv'>
+      <parameter type-id='type-id-9' name='category' filepath='Python/pylifecycle.c' line='385' column='1'/>
+      <return type-id='type-id-72'/>
+    </function-decl>
+    <function-decl name='_Py_CoerceLegacyLocale' mangled-name='_Py_CoerceLegacyLocale' filepath='Python/pylifecycle.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CoerceLegacyLocale'>
+      <parameter type-id='type-id-9' name='warn' filepath='Python/pylifecycle.c' line='335' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_IsLocaleCoercionTarget' mangled-name='_Py_IsLocaleCoercionTarget' filepath='Python/pylifecycle.c' line='293' 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='293' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_LegacyLocaleDetected' mangled-name='_Py_LegacyLocaleDetected' filepath='Python/pylifecycle.c' line='238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_LegacyLocaleDetected'>
+      <parameter type-id='type-id-9' name='warn' filepath='Python/pylifecycle.c' line='238' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='Py_IsInitialized' mangled-name='Py_IsInitialized' filepath='Python/pylifecycle.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IsInitialized'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_IsCoreInitialized' mangled-name='_Py_IsCoreInitialized' filepath='Python/pylifecycle.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsCoreInitialized'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_IsFinalizing' mangled-name='_Py_IsFinalizing' filepath='Python/pylifecycle.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsFinalizing'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyRuntime_Finalize' mangled-name='_PyRuntime_Finalize' filepath='Python/pylifecycle.c' line='109' 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='_PyRuntime_Initialize' mangled-name='_PyRuntime_Initialize' filepath='Python/pylifecycle.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntime_Initialize'>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='_Py_PreInitializeFromPyArgv' mangled-name='_Py_PreInitializeFromPyArgv' filepath='Python/pylifecycle.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromPyArgv'>
+      <parameter type-id='type-id-793' name='src_config' filepath='Python/pylifecycle.c' line='878' column='1'/>
+      <parameter type-id='type-id-761' name='args' filepath='Python/pylifecycle.c' line='878' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='_Py_PreInitializeFromConfig' mangled-name='_Py_PreInitializeFromConfig' filepath='Python/pylifecycle.c' line='948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromConfig'>
+      <parameter type-id='type-id-751' name='config' filepath='Python/pylifecycle.c' line='948' column='1'/>
+      <parameter type-id='type-id-761' name='args' filepath='Python/pylifecycle.c' line='949' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='Py_InitializeFromConfig' mangled-name='Py_InitializeFromConfig' filepath='Python/pylifecycle.c' line='1204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_InitializeFromConfig'>
+      <parameter type-id='type-id-751' name='config' filepath='Python/pylifecycle.c' line='1204' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='Py_FinalizeEx' mangled-name='Py_FinalizeEx' filepath='Python/pylifecycle.c' line='1703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FinalizeEx'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <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='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='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='__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='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='_Py_write_noraise' mangled-name='_Py_write_noraise' filepath='./Include/cpython/fileutils.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_DumpHexadecimal' mangled-name='_Py_DumpHexadecimal' filepath='./Include/internal/pycore_traceback.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_Display' mangled-name='PyErr_Display' filepath='./Include/pythonrun.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_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='_PyFaulthandler_Fini' mangled-name='_PyFaulthandler_Fini' 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='_PyModule_IsExtension' mangled-name='_PyModule_IsExtension' filepath='./Include/moduleobject.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_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='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='_PyGILState_Fini' mangled-name='_PyGILState_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='114' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAtExit_Call' mangled-name='_PyAtExit_Call' filepath='./Include/internal/pycore_pylifecycle.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_FiniGIL' mangled-name='_PyEval_FiniGIL' filepath='./Include/internal/pycore_ceval.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGILState_SetTstate' mangled-name='_PyGILState_SetTstate' filepath='./Include/internal/pycore_pylifecycle.h' line='113' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_InitGIL' mangled-name='_PyEval_InitGIL' filepath='./Include/internal/pycore_ceval.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_Main' mangled-name='PyInterpreterState_Main' filepath='./Include/cpython/pystate.h' line='196' 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='./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='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='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='_PyConfig_Copy' mangled-name='_PyConfig_Copy' 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='PyErr_PrintEx' mangled-name='PyErr_PrintEx' filepath='./Include/pythonrun.h' line='13' 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='./Include/pystate.h' line='59' 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='./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='_PyExc_Fini' mangled-name='_PyExc_Fini' 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='_PyFrame_Fini' mangled-name='_PyFrame_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='_PyAsyncGen_Fini' mangled-name='_PyAsyncGen_Fini' 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='_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='_PyType_Fini' mangled-name='_PyType_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ClearInterned' mangled-name='_PyUnicode_ClearInterned' 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>
+    <function-decl name='_PyDict_Fini' mangled-name='_PyDict_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>
+    <function-decl name='_PyList_Fini' mangled-name='_PyList_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTuple_Fini' mangled-name='_PyTuple_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='_PySlice_Fini' mangled-name='_PySlice_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytes_Fini' mangled-name='_PyBytes_Fini' 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_Fini' mangled-name='_PyUnicode_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='102' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyFloat_Fini' mangled-name='_PyFloat_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='_PyLong_Fini' mangled-name='_PyLong_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='104' 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='./Include/internal/pycore_interp.h' line='317' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_Py_HashRandomization_Fini' mangled-name='_Py_HashRandomization_Fini' 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='_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='_Py_ClearFileSystemEncoding' mangled-name='_Py_ClearFileSystemEncoding' 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='_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='_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>
+    <function-decl name='_PyInterpreterState_ClearModules' mangled-name='_PyInterpreterState_ClearModules' filepath='./Include/internal/pycore_interp.h' line='316' 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='./Include/internal/pycore_gc.h' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGC_DumpShutdownStats' mangled-name='_PyGC_DumpShutdownStats' filepath='./Include/internal/pycore_pylifecycle.h' line='116' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyConfig_Write' mangled-name='_PyConfig_Write' filepath='./Include/internal/pycore_initconfig.h' line='159' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_PyErr_SetFromPyStatus' mangled-name='_PyErr_SetFromPyStatus' filepath='./Include/internal/pycore_initconfig.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySys_UpdateConfig' mangled-name='_PySys_UpdateConfig' 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='_PyConfig_InitCompatConfig' mangled-name='_PyConfig_InitCompatConfig' filepath='./Include/internal/pycore_initconfig.h' line='151' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyImportZip_Init' mangled-name='_PyImportZip_Init' 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>
+    <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='_PySys_SetObjectId' mangled-name='_PySys_SetObjectId' filepath='./Include/cpython/sysmodule.h' line='6' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_PyUnicode_InitEncodings' mangled-name='_PyUnicode_InitEncodings' filepath='./Include/internal/pycore_pylifecycle.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyThread_debug_deprecation' mangled-name='_PyThread_debug_deprecation' filepath='Python/pylifecycle.c' line='1060' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyFaulthandler_Init' mangled-name='_PyFaulthandler_Init' filepath='./Include/internal/pycore_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='_PySignal_Init' mangled-name='_PySignal_Init' 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='_PyTraceMalloc_Init' mangled-name='_PyTraceMalloc_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_Init' mangled-name='_PyLong_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='_PyBytes_Init' mangled-name='_PyBytes_Init' 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='_PyUnicode_Init' mangled-name='_PyUnicode_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTuple_Init' mangled-name='_PyTuple_Init' filepath='./Include/internal/pycore_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='_PyFloat_Init' mangled-name='_PyFloat_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='_PyExc_Init' mangled-name='_PyExc_Init' 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='_PyErr_InitTypes' mangled-name='_PyErr_InitTypes' 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='_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='_PyStructSequence_Init' mangled-name='_PyStructSequence_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='_PyTypes_Init' mangled-name='_PyTypes_Init' 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='_PyLong_InitTypes' mangled-name='_PyLong_InitTypes' filepath='./Include/internal/pycore_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='_PyUnicode_InitTypes' mangled-name='_PyUnicode_InitTypes' 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='_PyFloat_InitTypes' mangled-name='_PyFloat_InitTypes' 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='_PyBuiltin_Init' mangled-name='_PyBuiltin_Init' 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='_PyImport_FixupBuiltin' mangled-name='_PyImport_FixupBuiltin' filepath='./Include/cpython/import.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBuiltins_AddExceptions' mangled-name='_PyBuiltins_AddExceptions' filepath='./Include/internal/pycore_pylifecycle.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyImport_BootstrapImp' mangled-name='_PyImport_BootstrapImp' filepath='./Include/internal/pycore_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='_PyImport_SetModuleString' mangled-name='_PyImport_SetModuleString' 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='_PyGC_Init' mangled-name='_PyGC_Init' 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='_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='_PyAtExit_Init' mangled-name='_PyAtExit_Init' 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='_PySys_Create' mangled-name='_PySys_Create' 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='PyConfig_Read' mangled-name='PyConfig_Read' filepath='./Include/cpython/initconfig.h' line='222' 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='./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='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='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='_PyRuntimeState_Fini' mangled-name='_PyRuntimeState_Fini' filepath='./Include/internal/pycore_runtime.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyImport_GetModuleId' mangled-name='_PyImport_GetModuleId' 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='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='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='_PyRuntimeState_Init' mangled-name='_PyRuntimeState_Init' filepath='./Include/internal/pycore_runtime.h' line='130' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPreConfig_Read' mangled-name='_PyPreConfig_Read' filepath='./Include/internal/pycore_initconfig.h' line='137' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPreConfig_Write' mangled-name='_PyPreConfig_Write' filepath='./Include/internal/pycore_initconfig.h' line='139' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPreConfig_InitFromConfig' mangled-name='_PyPreConfig_InitFromConfig' 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='_Py_HashRandomization_Init' mangled-name='_Py_HashRandomization_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='73' 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='./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='_PyGILState_Init' mangled-name='_PyGILState_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='112' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyConfig_Read' mangled-name='_PyConfig_Read' filepath='./Include/internal/pycore_initconfig.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_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='_PySignal_Fini' mangled-name='_PySignal_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='94' 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='./Include/objimpl.h' line='154' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_Fini' mangled-name='_PyEval_Fini' filepath='./Include/internal/pycore_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='_PyTraceMalloc_Fini' mangled-name='_PyTraceMalloc_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='107' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyImport_Fini' mangled-name='_PyImport_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyHash_Fini' mangled-name='_PyHash_Fini' 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='_PyObject_DebugMallocStats' mangled-name='_PyObject_DebugMallocStats' filepath='./Include/cpython/objimpl.h' line='60' 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-789'>
+      <parameter type-id='type-id-9'/>
+      <return type-id='type-id-4'/>
+    </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_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-173' 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-173'/>
+    </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='1965' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetConfig'>
+      <return type-id='type-id-751'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_GetConfigCopy' mangled-name='_PyInterpreterState_GetConfigCopy' filepath='Python/pystate.c' line='1951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetConfigCopy'>
+      <parameter type-id='type-id-746' name='config' filepath='Python/pystate.c' line='1951' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_GetConfig' mangled-name='_PyInterpreterState_GetConfig' filepath='Python/pystate.c' line='1944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetConfig'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1944' column='1'/>
+      <return type-id='type-id-751'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_SetEvalFrameFunc' mangled-name='_PyInterpreterState_SetEvalFrameFunc' filepath='Python/pystate.c' line='1936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_SetEvalFrameFunc'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1936' column='1'/>
+      <parameter type-id='type-id-232' name='eval_frame' filepath='Python/pystate.c' line='1937' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_GetEvalFrameFunc' mangled-name='_PyInterpreterState_GetEvalFrameFunc' filepath='Python/pystate.c' line='1929' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetEvalFrameFunc'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1929' column='1'/>
+      <return type-id='type-id-232'/>
+    </function-decl>
+    <function-decl name='_PyCrossInterpreterData_Lookup' mangled-name='_PyCrossInterpreterData_Lookup' filepath='Python/pystate.c' line='1779' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Lookup'>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/pystate.c' line='1779' column='1'/>
+      <return type-id='type-id-267'/>
+    </function-decl>
+    <function-decl name='_PyCrossInterpreterData_RegisterClass' mangled-name='_PyCrossInterpreterData_RegisterClass' filepath='Python/pystate.c' line='1749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_RegisterClass'>
+      <parameter type-id='type-id-32' name='cls' filepath='Python/pystate.c' line='1749' column='1'/>
+      <parameter type-id='type-id-267' name='getdata' filepath='Python/pystate.c' line='1750' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <typedef-decl name='_PyCrossInterpreterData' type-id='type-id-268' filepath='./Include/cpython/pystate.h' line='294' column='1' id='type-id-794'/>
+    <pointer-type-def type-id='type-id-794' size-in-bits='64' id='type-id-795'/>
+    <function-decl name='_PyCrossInterpreterData_NewObject' mangled-name='_PyCrossInterpreterData_NewObject' filepath='Python/pystate.c' line='1719' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_NewObject'>
+      <parameter type-id='type-id-795' name='data' filepath='Python/pystate.c' line='1719' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyCrossInterpreterData_Release' mangled-name='_PyCrossInterpreterData_Release' filepath='Python/pystate.c' line='1696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Release'>
+      <parameter type-id='type-id-795' name='data' filepath='Python/pystate.c' line='1696' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GetCrossInterpreterData' mangled-name='_PyObject_GetCrossInterpreterData' filepath='Python/pystate.c' line='1627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetCrossInterpreterData'>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/pystate.c' line='1627' column='1'/>
+      <parameter type-id='type-id-795' name='data' filepath='Python/pystate.c' line='1627' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyObject_CheckCrossInterpreterData' mangled-name='_PyObject_CheckCrossInterpreterData' filepath='Python/pystate.c' line='1595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckCrossInterpreterData'>
+      <parameter type-id='type-id-16' name='o' filepath='Objects/abstract.c' line='830' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/pystate.h' line='95' column='1' id='type-id-796'>
+      <underlying-type type-id='type-id-83'/>
+      <enumerator name='PyGILState_LOCKED' value='0'/>
+      <enumerator name='PyGILState_UNLOCKED' value='1'/>
+    </enum-decl>
+    <typedef-decl name='PyGILState_STATE' type-id='type-id-796' filepath='./Include/pystate.h' line='96' column='1' id='type-id-797'/>
+    <function-decl name='PyGILState_Release' mangled-name='PyGILState_Release' filepath='Python/pystate.c' line='1530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Release'>
+      <parameter type-id='type-id-797' name='oldstate' filepath='Python/pystate.c' line='1530' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyGILState_Ensure' mangled-name='PyGILState_Ensure' filepath='Python/pystate.c' line='1480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Ensure'>
+      <return type-id='type-id-797'/>
+    </function-decl>
+    <function-decl name='PyGILState_Check' mangled-name='PyGILState_Check' filepath='Python/pystate.c' line='1460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Check'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyGILState_GetThisThreadState' mangled-name='PyGILState_GetThisThreadState' filepath='Python/pystate.c' line='1454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_GetThisThreadState'>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='_PyGILState_GetInterpreterStateUnsafe' mangled-name='_PyGILState_GetInterpreterStateUnsafe' filepath='Python/pystate.c' line='1367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGILState_GetInterpreterStateUnsafe'>
+      <return type-id='type-id-222'/>
+    </function-decl>
+    <function-decl name='_PyThread_CurrentExceptions' mangled-name='_PyThread_CurrentExceptions' filepath='Python/pystate.c' line='1245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentExceptions'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyThread_CurrentFrames' mangled-name='_PyThread_CurrentFrames' filepath='Python/pystate.c' line='1195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentFrames'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyThreadState_Next' mangled-name='PyThreadState_Next' filepath='Python/pystate.c' line='1185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Next'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='1185' column='1'/>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_ThreadHead' mangled-name='PyInterpreterState_ThreadHead' filepath='Python/pystate.c' line='1180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_ThreadHead'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1180' column='1'/>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_Next' mangled-name='PyInterpreterState_Next' filepath='Python/pystate.c' line='1175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Next'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='1175' column='1'/>
+      <return type-id='type-id-222'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_Main' mangled-name='PyInterpreterState_Main' filepath='Python/pystate.c' line='1169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Main'>
+      <return type-id='type-id-222'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_Head' mangled-name='PyInterpreterState_Head' filepath='Python/pystate.c' line='1163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Head'>
+      <return type-id='type-id-222'/>
+    </function-decl>
+    <function-decl name='PyThreadState_SetAsyncExc' mangled-name='PyThreadState_SetAsyncExc' filepath='Python/pystate.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_SetAsyncExc'>
+      <parameter type-id='type-id-19' name='id' filepath='Python/pystate.c' line='1121' column='1'/>
+      <parameter type-id='type-id-16' name='exc' filepath='Python/pystate.c' line='1121' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyThreadState_GetID' mangled-name='PyThreadState_GetID' filepath='Python/pystate.c' line='1105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetID'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='1105' column='1'/>
+      <return type-id='type-id-22'/>
+    </function-decl>
+    <function-decl name='PyThreadState_GetFrame' mangled-name='PyThreadState_GetFrame' filepath='Python/pystate.c' line='1095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetFrame'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='1095' column='1'/>
+      <return type-id='type-id-13'/>
+    </function-decl>
+    <function-decl name='PyThreadState_GetInterpreter' mangled-name='PyThreadState_GetInterpreter' filepath='Python/pystate.c' line='1087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetInterpreter'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='1087' column='1'/>
+      <return type-id='type-id-222'/>
+    </function-decl>
+    <function-decl name='PyThreadState_GetDict' mangled-name='PyThreadState_GetDict' filepath='Python/pystate.c' line='1076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetDict'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyThreadState_GetDict' mangled-name='_PyThreadState_GetDict' filepath='Python/pystate.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_GetDict'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='1062' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyThreadState_Swap' mangled-name='PyThreadState_Swap' filepath='Python/pystate.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Swap'>
+      <parameter type-id='type-id-331' name='newts' filepath='Python/pystate.c' line='1050' column='1'/>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-798'/>
+    <function-decl name='_PyThreadState_Swap' mangled-name='_PyThreadState_Swap' filepath='Python/pystate.c' line='1018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Swap'>
+      <parameter type-id='type-id-798' name='gilstate' filepath='Python/pystate.c' line='1018' column='1'/>
+      <parameter type-id='type-id-331' name='newts' filepath='Python/pystate.c' line='1018' column='1'/>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='PyThreadState_Get' mangled-name='PyThreadState_Get' filepath='Python/pystate.c' line='1009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Get'>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='_PyThreadState_UncheckedGet' mangled-name='_PyThreadState_UncheckedGet' filepath='Python/pystate.c' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_UncheckedGet'>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <typedef-decl name='_PyRuntimeState' type-id='type-id-250' filepath='./Include/internal/pycore_runtime.h' line='121' column='1' id='type-id-799'/>
+    <pointer-type-def type-id='type-id-799' size-in-bits='64' id='type-id-800'/>
+    <function-decl name='_PyThreadState_DeleteExcept' mangled-name='_PyThreadState_DeleteExcept' filepath='Python/pystate.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteExcept'>
+      <parameter type-id='type-id-800' name='runtime' filepath='Python/pystate.c' line='959' column='1'/>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='959' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThreadState_DeleteCurrent' mangled-name='PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='943' 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='_PyThreadState_DeleteCurrent' mangled-name='_PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='932' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteCurrent'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='932' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThreadState_Delete' mangled-name='PyThreadState_Delete' filepath='Python/pystate.c' line='925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Delete'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='925' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThreadState_Clear' mangled-name='PyThreadState_Clear' filepath='Python/pystate.c' line='827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Clear'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='827' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyState_RemoveModule' mangled-name='PyState_RemoveModule' filepath='Python/pystate.c' line='770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_RemoveModule'>
+      <parameter type-id='type-id-505' name='def' filepath='Python/pystate.c' line='770' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyState_AddModule' mangled-name='PyState_AddModule' filepath='Python/pystate.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_AddModule'>
+      <parameter type-id='type-id-16' name='module' filepath='Python/pystate.c' line='749' column='1'/>
+      <parameter type-id='type-id-505' name='def' filepath='Python/pystate.c' line='749' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyState_FindModule' mangled-name='PyState_FindModule' filepath='Python/pystate.c' line='697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_FindModule'>
+      <parameter type-id='type-id-505' name='module' filepath='Python/pystate.c' line='697' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyThreadState_Init' mangled-name='_PyThreadState_Init' filepath='Python/pystate.c' line='691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Init'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='925' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyThreadState_Prealloc' mangled-name='_PyThreadState_Prealloc' filepath='Python/pystate.c' line='685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Prealloc'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='685' column='1'/>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='PyThreadState_New' mangled-name='PyThreadState_New' filepath='Python/pystate.c' line='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_New'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='685' column='1'/>
+      <return type-id='type-id-331'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_GetDict' mangled-name='PyInterpreterState_GetDict' filepath='Python/pystate.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetDict'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='598' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_GetMainModule' mangled-name='_PyInterpreterState_GetMainModule' filepath='Python/pystate.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetMainModule'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='598' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_RequireIDRef' mangled-name='_PyInterpreterState_RequireIDRef' filepath='Python/pystate.c' line='582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequireIDRef'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='582' column='1'/>
+      <parameter type-id='type-id-9' name='required' filepath='Python/pystate.c' line='582' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_RequiresIDRef' mangled-name='_PyInterpreterState_RequiresIDRef' filepath='Python/pystate.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequiresIDRef'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/import.c' line='285' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_IDDecref' mangled-name='_PyInterpreterState_IDDecref' filepath='Python/pystate.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDDecref'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='554' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_IDIncref' mangled-name='_PyInterpreterState_IDIncref' filepath='Python/pystate.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDIncref'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='540' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_LookUpID' mangled-name='_PyInterpreterState_LookUpID' filepath='Python/pystate.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_LookUpID'>
+      <parameter type-id='type-id-227' name='requested_id' filepath='Python/pystate.c' line='505' column='1'/>
+      <return type-id='type-id-222'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_Delete' mangled-name='PyInterpreterState_Delete' filepath='Python/pystate.c' line='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Delete'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='375' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_Clear' mangled-name='PyInterpreterState_Clear' filepath='Python/pystate.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Clear'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='344' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_New' mangled-name='PyInterpreterState_New' filepath='Python/pystate.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_New'>
+      <return type-id='type-id-222'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_Enable' mangled-name='_PyInterpreterState_Enable' filepath='Python/pystate.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_Enable'>
+      <parameter type-id='type-id-800' name='runtime' filepath='Python/pystate.c' line='178' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='_PyRuntimeState_Fini' mangled-name='_PyRuntimeState_Fini' filepath='Python/pystate.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_Fini'>
+      <parameter type-id='type-id-800' name='runtime' filepath='Python/pystate.c' line='116' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyRuntimeState_Init' mangled-name='_PyRuntimeState_Init' filepath='Python/pystate.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_Init'>
+      <parameter type-id='type-id-800' name='runtime' filepath='Python/pystate.c' line='102' column='1'/>
+      <return type-id='type-id-743'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_Get' mangled-name='PyInterpreterState_Get' filepath='Python/pystate.c' line='464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Get'>
+      <return type-id='type-id-222'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_GetID' mangled-name='PyInterpreterState_GetID' filepath='Python/pystate.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetID'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='477' column='1'/>
+      <return type-id='type-id-227'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_IDInitref' mangled-name='_PyInterpreterState_IDInitref' filepath='Python/pystate.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDInitref'>
+      <parameter type-id='type-id-222' name='interp' filepath='Python/pystate.c' line='523' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyState_AddModule' mangled-name='_PyState_AddModule' filepath='Python/pystate.c' line='716' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyState_AddModule'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pystate.c' line='716' column='1'/>
+      <parameter type-id='type-id-16' name='module' filepath='Python/pystate.c' line='716' column='1'/>
+      <parameter type-id='type-id-505' name='def' filepath='Python/pystate.c' line='716' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <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='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='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='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='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='_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='_PyEval_ReleaseLock' mangled-name='_PyEval_ReleaseLock' filepath='./Include/internal/pycore_ceval.h' line='63' 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='PyMapping_GetItemString' mangled-name='PyMapping_GetItemString' filepath='./Include/abstract.h' line='848' 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='./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='_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='_PyAST_Fini' mangled-name='_PyAST_Fini' 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='_PyWarnings_Fini' mangled-name='_PyWarnings_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAtExit_Fini' mangled-name='_PyAtExit_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='110' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGC_Fini' mangled-name='_PyGC_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_RawCalloc' mangled-name='PyMem_RawCalloc' filepath='./Include/cpython/pymem.h' line='6' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_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='_PyType_InitCache' mangled-name='_PyType_InitCache' filepath='./Include/internal/pycore_object.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyPreConfig_InitPythonConfig' mangled-name='PyPreConfig_InitPythonConfig' filepath='./Include/cpython/initconfig.h' line='124' 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='1582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveLoop'>
+      <parameter type-id='type-id-188' name='f' filepath='Python/pythonrun.c' line='1582' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1582' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_InteractiveOne' mangled-name='PyRun_InteractiveOne' filepath='Python/pythonrun.c' line='1575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOne'>
+      <parameter type-id='type-id-188' name='f' filepath='Python/pythonrun.c' line='1582' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1582' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='Py_CompileStringFlags' mangled-name='Py_CompileStringFlags' filepath='Python/pythonrun.c' line='1567' 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='1567' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1567' column='1'/>
+      <parameter type-id='type-id-9' name='s' filepath='Python/pythonrun.c' line='1567' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1568' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='Py_CompileString' mangled-name='Py_CompileString' filepath='Python/pythonrun.c' line='1560' 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='1560' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1560' column='1'/>
+      <parameter type-id='type-id-9' name='s' filepath='Python/pythonrun.c' line='1560' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyRun_SimpleString' mangled-name='PyRun_SimpleString' filepath='Python/pythonrun.c' line='1553' 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='1553' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_String' mangled-name='PyRun_String' filepath='Python/pythonrun.c' line='1546' 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='1546' column='1'/>
+      <parameter type-id='type-id-9' name='s' filepath='Python/pythonrun.c' line='1546' column='1'/>
+      <parameter type-id='type-id-16' name='g' filepath='Python/pythonrun.c' line='1546' column='1'/>
+      <parameter type-id='type-id-16' name='l' filepath='Python/pythonrun.c' line='1546' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyRun_SimpleFileEx' mangled-name='PyRun_SimpleFileEx' filepath='Python/pythonrun.c' line='1538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFileEx'>
+      <parameter type-id='type-id-188' name='f' filepath='Python/pythonrun.c' line='1538' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1538' column='1'/>
+      <parameter type-id='type-id-9' name='c' filepath='Python/pythonrun.c' line='1538' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_SimpleFile' mangled-name='PyRun_SimpleFile' filepath='Python/pythonrun.c' line='1531' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFile'>
+      <parameter type-id='type-id-188' name='f' filepath='Python/pythonrun.c' line='1582' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1582' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_FileFlags' mangled-name='PyRun_FileFlags' filepath='Python/pythonrun.c' line='1523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileFlags'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1523' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1523' column='1'/>
+      <parameter type-id='type-id-9' name='s' filepath='Python/pythonrun.c' line='1523' column='1'/>
+      <parameter type-id='type-id-16' name='g' filepath='Python/pythonrun.c' line='1523' column='1'/>
+      <parameter type-id='type-id-16' name='l' filepath='Python/pythonrun.c' line='1523' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1524' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyRun_FileEx' mangled-name='PyRun_FileEx' filepath='Python/pythonrun.c' line='1516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileEx'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1516' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1516' column='1'/>
+      <parameter type-id='type-id-9' name='s' filepath='Python/pythonrun.c' line='1516' column='1'/>
+      <parameter type-id='type-id-16' name='g' filepath='Python/pythonrun.c' line='1516' column='1'/>
+      <parameter type-id='type-id-16' name='l' filepath='Python/pythonrun.c' line='1516' column='1'/>
+      <parameter type-id='type-id-9' name='c' filepath='Python/pythonrun.c' line='1516' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyRun_File' mangled-name='PyRun_File' filepath='Python/pythonrun.c' line='1509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_File'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1509' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1509' column='1'/>
+      <parameter type-id='type-id-9' name='s' filepath='Python/pythonrun.c' line='1509' column='1'/>
+      <parameter type-id='type-id-16' name='g' filepath='Python/pythonrun.c' line='1509' column='1'/>
+      <parameter type-id='type-id-16' name='l' filepath='Python/pythonrun.c' line='1509' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyRun_AnyFileFlags' mangled-name='PyRun_AnyFileFlags' filepath='Python/pythonrun.c' line='1502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileFlags'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1502' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/pythonrun.c' line='1502' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1502' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_AnyFileEx' mangled-name='PyRun_AnyFileEx' filepath='Python/pythonrun.c' line='1495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileEx'>
+      <parameter type-id='type-id-188' name='f' filepath='Python/pythonrun.c' line='1538' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1538' column='1'/>
+      <parameter type-id='type-id-9' name='c' filepath='Python/pythonrun.c' line='1538' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_AnyFile' mangled-name='PyRun_AnyFile' filepath='Python/pythonrun.c' line='1488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFile'>
+      <parameter type-id='type-id-188' name='f' filepath='Python/pythonrun.c' line='1582' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1582' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_SourceAsString' mangled-name='_Py_SourceAsString' filepath='Python/pythonrun.c' line='1399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SourceAsString'>
+      <parameter type-id='type-id-16' name='cmd' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <parameter type-id='type-id-3' name='funcname' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <parameter type-id='type-id-3' name='what' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <parameter type-id='type-id-522' name='cf' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <parameter type-id='type-id-86' name='cmd_copy' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='Py_CompileStringExFlags' mangled-name='Py_CompileStringExFlags' filepath='Python/pythonrun.c' line='1386' 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='1386' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1386' column='1'/>
+      <parameter type-id='type-id-9' name='start' filepath='Python/pythonrun.c' line='1386' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1387' column='1'/>
+      <parameter type-id='type-id-9' name='optimize' filepath='Python/pythonrun.c' line='1387' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='Py_CompileStringObject' mangled-name='Py_CompileStringObject' filepath='Python/pythonrun.c' line='1361' 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='1361' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/pythonrun.c' line='1361' column='1'/>
+      <parameter type-id='type-id-9' name='start' filepath='Python/pythonrun.c' line='1361' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1362' column='1'/>
+      <parameter type-id='type-id-9' name='optimize' filepath='Python/pythonrun.c' line='1362' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyRun_FileExFlags' mangled-name='PyRun_FileExFlags' filepath='Python/pythonrun.c' line='1220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileExFlags'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='1220' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1220' column='1'/>
+      <parameter type-id='type-id-9' name='start' filepath='Python/pythonrun.c' line='1220' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Python/pythonrun.c' line='1220' column='1'/>
+      <parameter type-id='type-id-16' name='locals' filepath='Python/pythonrun.c' line='1221' column='1'/>
+      <parameter type-id='type-id-9' name='closeit' filepath='Python/pythonrun.c' line='1221' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1221' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyRun_StringFlags' mangled-name='PyRun_StringFlags' filepath='Python/pythonrun.c' line='1164' 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='1164' column='1'/>
+      <parameter type-id='type-id-9' name='start' filepath='Python/pythonrun.c' line='1164' column='1'/>
+      <parameter type-id='type-id-16' name='globals' filepath='Python/pythonrun.c' line='1164' column='1'/>
+      <parameter type-id='type-id-16' name='locals' filepath='Python/pythonrun.c' line='1165' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='1165' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyErr_Display' mangled-name='_PyErr_Display' filepath='Python/pythonrun.c' line='1109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Display'>
+      <parameter type-id='type-id-16' name='file' filepath='Python/pythonrun.c' line='1109' column='1'/>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/pythonrun.c' line='1109' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Python/pythonrun.c' line='1109' column='1'/>
+      <parameter type-id='type-id-16' name='tb' filepath='Python/pythonrun.c' line='1109' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_PrintEx' mangled-name='PyErr_PrintEx' filepath='Python/pythonrun.c' line='877' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_PrintEx'>
+      <parameter type-id='type-id-9' name='set_sys_last_vars' filepath='Python/pythonrun.c' line='877' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_Print' mangled-name='_PyErr_Print' filepath='Python/pythonrun.c' line='871' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Print'>
+      <parameter type-id='type-id-331' name='tstate' filepath='Python/pythonrun.c' line='871' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyRun_SimpleStringFlags' mangled-name='PyRun_SimpleStringFlags' filepath='Python/pythonrun.c' line='496' 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='496' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='496' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_SimpleFileExFlags' mangled-name='PyRun_SimpleFileExFlags' filepath='Python/pythonrun.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFileExFlags'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='482' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='482' column='1'/>
+      <parameter type-id='type-id-9' name='closeit' filepath='Python/pythonrun.c' line='482' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='483' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyRun_SimpleFileObject' mangled-name='_PyRun_SimpleFileObject' filepath='Python/pythonrun.c' line='399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRun_SimpleFileObject'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='399' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/pythonrun.c' line='399' column='1'/>
+      <parameter type-id='type-id-9' name='closeit' filepath='Python/pythonrun.c' line='399' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='400' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_InteractiveOneFlags' mangled-name='PyRun_InteractiveOneFlags' filepath='Python/pythonrun.c' line='301' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOneFlags'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='301' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='301' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='301' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_InteractiveOneObject' mangled-name='PyRun_InteractiveOneObject' filepath='Python/pythonrun.c' line='288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOneObject'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='288' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/pythonrun.c' line='288' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='288' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_InteractiveLoopFlags' mangled-name='PyRun_InteractiveLoopFlags' filepath='Python/pythonrun.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveLoopFlags'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='301' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='301' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='301' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyRun_InteractiveLoopObject' mangled-name='_PyRun_InteractiveLoopObject' filepath='Python/pythonrun.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRun_InteractiveLoopObject'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='123' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/pythonrun.c' line='123' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='123' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyRun_AnyFileExFlags' mangled-name='PyRun_AnyFileExFlags' filepath='Python/pythonrun.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileExFlags'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='102' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='102' column='1'/>
+      <parameter type-id='type-id-9' name='closeit' filepath='Python/pythonrun.c' line='102' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='103' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyRun_AnyFileObject' mangled-name='_PyRun_AnyFileObject' filepath='Python/pythonrun.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRun_AnyFileObject'>
+      <parameter type-id='type-id-188' name='fp' filepath='Python/pythonrun.c' line='69' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/pythonrun.c' line='69' column='1'/>
+      <parameter type-id='type-id-9' name='closeit' filepath='Python/pythonrun.c' line='69' column='1'/>
+      <parameter type-id='type-id-522' name='flags' filepath='Python/pythonrun.c' line='70' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_HandleSystemExit' mangled-name='_Py_HandleSystemExit' filepath='Python/pythonrun.c' line='700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HandleSystemExit'>
+      <parameter type-id='type-id-452' name='exitcode_p' filepath='Python/pythonrun.c' line='700' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyErr_Display' mangled-name='PyErr_Display' filepath='Python/pythonrun.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Display'>
+      <parameter type-id='type-id-16' name='exception' filepath='Python/pythonrun.c' line='1147' column='1'/>
+      <parameter type-id='type-id-16' name='value' filepath='Python/pythonrun.c' line='1147' column='1'/>
+      <parameter type-id='type-id-16' name='tb' filepath='Python/pythonrun.c' line='1147' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyAST_mod2obj' mangled-name='PyAST_mod2obj' filepath='./Include/internal/pycore_ast.h' line='838' 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/internal/pycore_parser.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyParser_ASTFromFile' mangled-name='_PyParser_ASTFromFile' filepath='./Include/internal/pycore_parser.h' line='17' 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='./Include/pyerrors.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Offer_Suggestions' mangled-name='_Py_Offer_Suggestions' filepath='./Include/internal/pycore_pyerrors.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_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='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='PyImport_GetMagicNumber' mangled-name='PyImport_GetMagicNumber' filepath='Python/pythonrun.c' line='1325' 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_Tailmatch' mangled-name='PyUnicode_Tailmatch' filepath='./Include/unicodeobject.h' line='930' 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='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='46' 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='310' 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='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='Python/pytime.c' comp-dir-path='/src' language='LANG_C99'>
+    <typedef-decl name='__time_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='160' column='1' id='type-id-801'/>
+    <typedef-decl name='time_t' type-id='type-id-801' filepath='/usr/include/x86_64-linux-gnu/bits/types/time_t.h' line='7' column='1' id='type-id-802'/>
+    <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-803'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='tm_sec' type-id='type-id-9' 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-9' 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-9' 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-9' 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-9' 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-9' 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-9' 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-9' 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-9' 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-33' 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-803' size-in-bits='64' id='type-id-804'/>
+    <function-decl name='_PyTime_gmtime' mangled-name='_PyTime_gmtime' filepath='Python/pytime.c' line='1125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_gmtime'>
+      <parameter type-id='type-id-802' name='t' filepath='Python/pytime.c' line='1125' column='1'/>
+      <parameter type-id='type-id-804' name='tm' filepath='Python/pytime.c' line='1125' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyTime_localtime' mangled-name='_PyTime_localtime' filepath='Python/pytime.c' line='1087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_localtime'>
+      <parameter type-id='type-id-802' name='t' filepath='Python/pytime.c' line='1125' column='1'/>
+      <parameter type-id='type-id-804' name='tm' filepath='Python/pytime.c' line='1125' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <typedef-decl name='_PyTime_t' type-id='type-id-227' filepath='./Include/cpython/pytime.h' line='16' column='1' id='type-id-805'/>
+    <pointer-type-def type-id='type-id-805' size-in-bits='64' id='type-id-806'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-807' visibility='default' filepath='./Include/cpython/pytime.h' line='165' column='1' id='type-id-808'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='implementation' type-id='type-id-3' visibility='default' filepath='./Include/cpython/pytime.h' line='166' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='monotonic' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pytime.h' line='167' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='adjustable' type-id='type-id-9' visibility='default' filepath='./Include/cpython/pytime.h' line='168' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='resolution' type-id='type-id-371' visibility='default' filepath='./Include/cpython/pytime.h' line='169' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_Py_clock_info_t' type-id='type-id-808' filepath='./Include/cpython/pytime.h' line='170' column='1' id='type-id-807'/>
+    <pointer-type-def type-id='type-id-807' size-in-bits='64' id='type-id-809'/>
+    <function-decl name='_PyTime_GetPerfCounterWithInfo' mangled-name='_PyTime_GetPerfCounterWithInfo' filepath='Python/pytime.c' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetPerfCounterWithInfo'>
+      <parameter type-id='type-id-806' name='t' filepath='Python/pytime.c' line='1057' column='1'/>
+      <parameter type-id='type-id-809' name='info' filepath='Python/pytime.c' line='1057' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyTime_GetMonotonicClockWithInfo' mangled-name='_PyTime_GetMonotonicClockWithInfo' filepath='Python/pytime.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetMonotonicClockWithInfo'>
+      <parameter type-id='type-id-806' name='tp' filepath='Python/pytime.c' line='966' column='1'/>
+      <parameter type-id='type-id-809' name='info' filepath='Python/pytime.c' line='966' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyTime_GetSystemClockWithInfo' mangled-name='_PyTime_GetSystemClockWithInfo' filepath='Python/pytime.c' line='781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetSystemClockWithInfo'>
+      <parameter type-id='type-id-806' name='tp' filepath='Python/pytime.c' line='966' column='1'/>
+      <parameter type-id='type-id-809' name='info' filepath='Python/pytime.c' line='966' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-805'/>
+    </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-810'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='tv_sec' type-id='type-id-801' 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-811' 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-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='196' column='1' id='type-id-811'/>
+    <pointer-type-def type-id='type-id-810' size-in-bits='64' id='type-id-812'/>
+    <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-805' name='t' filepath='Python/pytime.c' line='636' column='1'/>
+      <parameter type-id='type-id-812' name='ts' filepath='Python/pytime.c' line='636' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-802' size-in-bits='64' id='type-id-813'/>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pytime.h' line='20' column='1' id='type-id-814'>
+      <underlying-type type-id='type-id-83'/>
+      <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-814' filepath='./Include/cpython/pytime.h' line='40' column='1' id='type-id-815'/>
+    <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-805' name='t' filepath='Python/pytime.c' line='616' column='1'/>
+      <parameter type-id='type-id-813' name='p_secs' filepath='Python/pytime.c' line='616' column='1'/>
+      <parameter type-id='type-id-452' name='us' filepath='Python/pytime.c' line='616' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='617' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-816'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='tv_sec' type-id='type-id-801' 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-817' 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-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='162' column='1' id='type-id-817'/>
+    <pointer-type-def type-id='type-id-816' size-in-bits='64' id='type-id-818'/>
+    <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-805' name='t' filepath='Python/pytime.c' line='610' column='1'/>
+      <parameter type-id='type-id-818' name='tv' filepath='Python/pytime.c' line='610' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='610' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-805' name='t' filepath='Python/pytime.c' line='610' column='1'/>
+      <parameter type-id='type-id-818' name='tv' filepath='Python/pytime.c' line='610' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='610' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-805' name='t' filepath='Python/pytime.c' line='533' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='533' column='1'/>
+      <return type-id='type-id-805'/>
+    </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-805' name='t' filepath='Python/pytime.c' line='533' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='533' column='1'/>
+      <return type-id='type-id-805'/>
+    </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-805' name='t' filepath='Python/pytime.c' line='453' column='1'/>
+      <return type-id='type-id-371'/>
+    </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-806' name='t' filepath='Python/pytime.c' line='447' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/pytime.c' line='447' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='447' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-806' name='t' filepath='Python/pytime.c' line='447' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/pytime.c' line='447' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='447' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-806' name='tp' filepath='Python/pytime.c' line='380' column='1'/>
+      <parameter type-id='type-id-818' name='tv' filepath='Python/pytime.c' line='380' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-806' name='tp' filepath='Python/pytime.c' line='334' column='1'/>
+      <parameter type-id='type-id-812' name='ts' filepath='Python/pytime.c' line='334' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-806' name='tp' filepath='Python/pytime.c' line='268' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/pytime.c' line='268' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-805' name='ns' filepath='Python/pytime.c' line='261' column='1'/>
+      <return type-id='type-id-805'/>
+    </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-9' name='seconds' filepath='Python/pytime.c' line='244' column='1'/>
+      <return type-id='type-id-805'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-819'/>
+    <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-16' name='obj' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-813' name='sec' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-819' name='usec' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='238' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-16' name='obj' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-813' name='sec' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-819' name='usec' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='238' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-16' name='obj' filepath='Python/pytime.c' line='197' column='1'/>
+      <parameter type-id='type-id-813' name='sec' filepath='Python/pytime.c' line='197' column='1'/>
+      <parameter type-id='type-id-815' name='round' filepath='Python/pytime.c' line='197' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-805' name='ticks' filepath='Python/pytime.c' line='53' column='1'/>
+      <parameter type-id='type-id-805' name='mul' filepath='Python/pytime.c' line='53' column='1'/>
+      <parameter type-id='type-id-805' name='div' filepath='Python/pytime.c' line='53' column='1'/>
+      <return type-id='type-id-805'/>
+    </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-16' name='obj' filepath='Python/pytime.c' line='71' column='1'/>
+      <return type-id='type-id-802'/>
+    </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-802' name='t' filepath='Python/pytime.c' line='91' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyTime_GetMonotonicClock' mangled-name='_PyTime_GetMonotonicClock' filepath='Python/pytime.c' line='954' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetMonotonicClock'>
+      <return type-id='type-id-805'/>
+    </function-decl>
+    <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>
+    <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='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='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>
+  </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-21' name='buffer' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-21' name='buffer' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_open' mangled-name='_Py_open' filepath='./Include/cpython/fileutils.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_read' mangled-name='_Py_read' filepath='./Include/cpython/fileutils.h' line='105' 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='./Include/cpython/fileutils.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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_open_noraise' mangled-name='_Py_open_noraise' filepath='./Include/cpython/fileutils.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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>
+  </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='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMember_SetOne'>
+      <parameter type-id='type-id-72' name='addr' filepath='Python/structmember.c' line='105' column='1'/>
+      <parameter type-id='type-id-433' name='l' filepath='Python/structmember.c' line='105' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='Python/structmember.c' line='105' column='1'/>
+      <return type-id='type-id-9'/>
+    </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='obj_addr' filepath='Python/structmember.c' line='8' column='1'/>
+      <parameter type-id='type-id-433' name='l' filepath='Python/structmember.c' line='8' column='1'/>
+      <return type-id='type-id-16'/>
+    </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-149' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='71' column='1'/>
+    <class-decl name='_symtable_entry' size-in-bits='896' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='37' column='1' id='type-id-820'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_base' type-id='type-id-69' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ste_id' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='39' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='ste_symbols' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='ste_name' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='ste_varnames' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='ste_children' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='ste_directives' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='ste_type' type-id='type-id-821' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='544'>
+        <var-decl name='ste_nested' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <var-decl name='ste_free' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='30'>
+        <var-decl name='ste_child_free' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='29'>
+        <var-decl name='ste_generator' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28'>
+        <var-decl name='ste_coroutine' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27'>
+        <var-decl name='ste_comprehension' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='26'>
+        <var-decl name='ste_varargs' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='25'>
+        <var-decl name='ste_varkeywords' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='24'>
+        <var-decl name='ste_returns_value' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='23'>
+        <var-decl name='ste_needs_class_closure' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='22'>
+        <var-decl name='ste_comp_iter_target' type-id='type-id-66' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='608'>
+        <var-decl name='ste_comp_iter_expr' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='ste_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='672'>
+        <var-decl name='ste_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='ste_end_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='736'>
+        <var-decl name='ste_end_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='ste_opt_lineno' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='800'>
+        <var-decl name='ste_opt_col_offset' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='ste_table' type-id='type-id-822' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='68' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='_block_type' filepath='./Include/internal/pycore_symtable.h' line='13' column='1' id='type-id-823'>
+      <underlying-type type-id='type-id-83'/>
+      <enumerator name='FunctionBlock' value='0'/>
+      <enumerator name='ClassBlock' value='1'/>
+      <enumerator name='ModuleBlock' value='2'/>
+      <enumerator name='AnnotationBlock' value='3'/>
+    </enum-decl>
+    <typedef-decl name='_Py_block_ty' type-id='type-id-823' filepath='./Include/internal/pycore_symtable.h' line='14' column='1' id='type-id-821'/>
+    <class-decl name='symtable' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='18' column='1' id='type-id-824'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='st_filename' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='19' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='st_cur' type-id='type-id-825' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='st_top' type-id='type-id-825' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='22' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='st_blocks' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='23' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='st_stack' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='st_global' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='st_nblocks' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='st_private' type-id='type-id-16' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='30' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='st_future' type-id='type-id-826' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='recursion_depth' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='608'>
+        <var-decl name='recursion_limit' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='34' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-820' size-in-bits='64' id='type-id-825'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-827' visibility='default' filepath='./Include/cpython/compile.h' line='34' column='1' id='type-id-828'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ff_features' type-id='type-id-9' visibility='default' filepath='./Include/cpython/compile.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='ff_lineno' type-id='type-id-9' visibility='default' filepath='./Include/cpython/compile.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='PyFutureFeatures' type-id='type-id-828' filepath='./Include/cpython/compile.h' line='37' column='1' id='type-id-827'/>
+    <pointer-type-def type-id='type-id-827' size-in-bits='64' id='type-id-826'/>
+    <pointer-type-def type-id='type-id-824' size-in-bits='64' id='type-id-822'/>
+    <typedef-decl name='PySTEntryObject' type-id='type-id-820' filepath='./Include/internal/pycore_symtable.h' line='69' column='1' id='type-id-829'/>
+    <pointer-type-def type-id='type-id-829' size-in-bits='64' id='type-id-830'/>
+    <function-decl name='PySymtable_Lookup' mangled-name='PySymtable_Lookup' filepath='Python/symtable.c' line='373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_Lookup'>
+      <parameter type-id='type-id-822' name='st' filepath='Python/symtable.c' line='373' column='1'/>
+      <parameter type-id='type-id-21' name='key' filepath='Python/symtable.c' line='373' column='1'/>
+      <return type-id='type-id-830'/>
+    </function-decl>
+    <function-decl name='PyErr_RangedSyntaxLocationObject' mangled-name='PyErr_RangedSyntaxLocationObject' filepath='./Include/cpython/pyerrors.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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>
+  </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='3345' 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='3345' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_FormatStdout' mangled-name='PySys_FormatStdout' filepath='./Python/sysmodule.c' line='3335' 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='3345' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_WriteStderr' mangled-name='PySys_WriteStderr' filepath='./Python/sysmodule.c' line='3302' 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='3345' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_WriteStdout' mangled-name='PySys_WriteStdout' filepath='./Python/sysmodule.c' line='3292' 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='3345' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_SetArgv' mangled-name='PySys_SetArgv' filepath='./Python/sysmodule.c' line='3199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetArgv'>
+      <parameter type-id='type-id-9' name='argc' filepath='./Python/sysmodule.c' line='3199' column='1'/>
+      <parameter type-id='type-id-329' name='argv' filepath='./Python/sysmodule.c' line='3199' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_SetArgvEx' mangled-name='PySys_SetArgvEx' filepath='./Python/sysmodule.c' line='3155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetArgvEx'>
+      <parameter type-id='type-id-9' name='argc' filepath='./Python/sysmodule.c' line='3155' column='1'/>
+      <parameter type-id='type-id-329' name='argv' filepath='./Python/sysmodule.c' line='3155' column='1'/>
+      <parameter type-id='type-id-9' name='updatepath' filepath='./Python/sysmodule.c' line='3155' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_SetPath' mangled-name='PySys_SetPath' filepath='./Python/sysmodule.c' line='3123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetPath'>
+      <parameter type-id='type-id-478' name='path' filepath='./Python/sysmodule.c' line='3123' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_GetXOptions' mangled-name='PySys_GetXOptions' filepath='./Python/sysmodule.c' line='2389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_GetXOptions'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PySys_AddXOption' mangled-name='PySys_AddXOption' filepath='./Python/sysmodule.c' line='2375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddXOption'>
+      <parameter type-id='type-id-478' name='s' filepath='./Python/sysmodule.c' line='2375' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_HasWarnOptions' mangled-name='PySys_HasWarnOptions' filepath='./Python/sysmodule.c' line='2301' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_HasWarnOptions'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PySys_AddWarnOption' mangled-name='PySys_AddWarnOption' filepath='./Python/sysmodule.c' line='2285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddWarnOption'>
+      <parameter type-id='type-id-478' name='s' filepath='./Python/sysmodule.c' line='2285' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_AddWarnOptionUnicode' mangled-name='PySys_AddWarnOptionUnicode' filepath='./Python/sysmodule.c' line='2273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddWarnOptionUnicode'>
+      <parameter type-id='type-id-16' name='option' filepath='./Python/sysmodule.c' line='2273' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_ResetWarnOptions' mangled-name='PySys_ResetWarnOptions' filepath='./Python/sysmodule.c' line='2245' 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='_PySys_GetSizeOf' mangled-name='_PySys_GetSizeOf' filepath='./Python/sysmodule.c' line='1656' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_GetSizeOf'>
+      <parameter type-id='type-id-16' name='o' filepath='./Python/sysmodule.c' line='1656' column='1'/>
+      <return type-id='type-id-157'/>
+    </function-decl>
+    <function-decl name='PySys_AddAuditHook' mangled-name='PySys_AddAuditHook' filepath='./Python/sysmodule.c' line='382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddAuditHook'>
+      <parameter type-id='type-id-306' name='hook' filepath='./Python/sysmodule.c' line='382' column='1'/>
+      <parameter type-id='type-id-21' name='userData' filepath='./Python/sysmodule.c' line='382' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PySys_Audit' mangled-name='PySys_Audit' filepath='./Python/sysmodule.c' line='328' 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='328' column='1'/>
+      <parameter type-id='type-id-3' name='argFormat' filepath='./Python/sysmodule.c' line='328' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PySys_SetObject' mangled-name='PySys_SetObject' filepath='./Python/sysmodule.c' line='157' 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='157' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='./Python/sysmodule.c' line='157' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PySys_SetObjectId' mangled-name='_PySys_SetObjectId' filepath='./Python/sysmodule.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_SetObjectId'>
+      <parameter type-id='type-id-453' name='key' filepath='./Python/sysmodule.c' line='140' column='1'/>
+      <parameter type-id='type-id-16' name='v' filepath='./Python/sysmodule.c' line='140' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PySys_GetObject' mangled-name='PySys_GetObject' filepath='./Python/sysmodule.c' line='100' 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='100' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PySys_GetObjectId' mangled-name='_PySys_GetObjectId' filepath='./Python/sysmodule.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_GetObjectId'>
+      <parameter type-id='type-id-453' name='key' filepath='./Python/sysmodule.c' line='83' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyOS_vsnprintf' mangled-name='PyOS_vsnprintf' filepath='./Include/pyerrors.h' line='312' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyFile_NewStdPrinter' mangled-name='PyFile_NewStdPrinter' 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='_Py_gitversion' mangled-name='_Py_gitversion' filepath='./Include/cpython/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='_Py_gitidentifier' mangled-name='_Py_gitidentifier' 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='Py_GetPlatform' mangled-name='Py_GetPlatform' filepath='./Include/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='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='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='PyHash_GetFuncDef' mangled-name='PyHash_GetFuncDef' filepath='./Include/pyhash.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_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='_PyStructSequence_InitType' mangled-name='_PyStructSequence_InitType' filepath='./Include/internal/pycore_structseq.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyWideStringList_AsList' mangled-name='_PyWideStringList_AsList' filepath='./Include/internal/pycore_initconfig.h' line='61' 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='./Include/cpython/ceval.h' line='12' 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='./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='_PyEval_SetProfile' mangled-name='_PyEval_SetProfile' filepath='./Include/cpython/ceval.h' line='6' 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='./Include/cpython/ceval.h' line='8' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_WriteUnraisableDefaultHook' mangled-name='_PyErr_WriteUnraisableDefaultHook' filepath='./Include/internal/pycore_pylifecycle.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_PyEval_DeactivateOpCache' mangled-name='_PyEval_DeactivateOpCache' filepath='./Include/internal/pycore_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='PyType_ClearCache' mangled-name='PyType_ClearCache' 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_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='_PyEval_CallTracing' mangled-name='_PyEval_CallTracing' filepath='./Include/eval.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyThread_CurrentExceptions' mangled-name='_PyThread_CurrentExceptions' filepath='./Include/cpython/pystate.h' line='192' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyThread_CurrentFrames' mangled-name='_PyThread_CurrentFrames' filepath='./Include/cpython/pystate.h' line='187' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_GetAllocatedBlocks' mangled-name='_Py_GetAllocatedBlocks' filepath='./Include/cpython/objimpl.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_GetAsyncGenFirstiter' mangled-name='_PyEval_GetAsyncGenFirstiter' filepath='./Include/cpython/ceval.h' line='11' 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='./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='_PyEval_GetCoroutineOriginTrackingDepth' mangled-name='_PyEval_GetCoroutineOriginTrackingDepth' filepath='./Include/cpython/ceval.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_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='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>
+    <function-decl name='_PyEval_GetSwitchInterval' mangled-name='_PyEval_GetSwitchInterval' filepath='./Include/cpython/ceval.h' line='25' 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='./Include/cpython/ceval.h' line='24' 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='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_GetInfo'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-831'/>
+    <function-decl name='PyThread_tss_is_created' mangled-name='PyThread_tss_is_created' filepath='Python/thread.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_is_created'>
+      <parameter type-id='type-id-831' name='key' filepath='Python/thread.c' line='157' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_free' mangled-name='PyThread_tss_free' filepath='Python/thread.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_free'>
+      <parameter type-id='type-id-831' name='key' filepath='Python/thread.c' line='148' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_alloc' mangled-name='PyThread_tss_alloc' filepath='Python/thread.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_alloc'>
+      <return type-id='type-id-831'/>
+    </function-decl>
+    <function-decl name='PyThread_set_stacksize' mangled-name='PyThread_set_stacksize' filepath='Python/thread.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_set_stacksize'>
+      <parameter type-id='type-id-157' name='size' filepath='Python/thread.c' line='121' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyThread_get_stacksize' mangled-name='PyThread_get_stacksize' filepath='Python/thread.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_stacksize'>
+      <return type-id='type-id-157'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_get' mangled-name='PyThread_tss_get' filepath='Python/thread_pthread.h' line='925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_get'>
+      <parameter type-id='type-id-831' name='key' filepath='Python/thread_pthread.h' line='925' column='1'/>
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_set' mangled-name='PyThread_tss_set' filepath='Python/thread_pthread.h' line='917' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_set'>
+      <parameter type-id='type-id-831' name='key' filepath='Python/thread_pthread.h' line='917' column='1'/>
+      <parameter type-id='type-id-21' name='value' filepath='Python/thread_pthread.h' line='917' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_create' mangled-name='PyThread_tss_create' filepath='Python/thread_pthread.h' line='886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_create'>
+      <parameter type-id='type-id-831' name='key' filepath='Python/thread_pthread.h' line='886' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyThread_ReInitTLS' mangled-name='PyThread_ReInitTLS' filepath='Python/thread_pthread.h' line='875' 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='864' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_key_value'>
+      <parameter type-id='type-id-9' name='key' filepath='Python/thread_pthread.h' line='864' column='1'/>
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <function-decl name='PyThread_set_key_value' mangled-name='PyThread_set_key_value' filepath='Python/thread_pthread.h' line='853' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_set_key_value'>
+      <parameter type-id='type-id-9' name='key' filepath='Python/thread_pthread.h' line='853' column='1'/>
+      <parameter type-id='type-id-21' name='value' filepath='Python/thread_pthread.h' line='853' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyThread_delete_key_value' mangled-name='PyThread_delete_key_value' filepath='Python/thread_pthread.h' line='845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_delete_key_value'>
+      <parameter type-id='type-id-9' name='key' filepath='Python/thread_pthread.h' line='845' column='1'/>
+      <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='837' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_delete_key'>
+      <parameter type-id='type-id-9' name='key' filepath='Python/thread_pthread.h' line='845' column='1'/>
+      <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='817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_create_key'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyThread_acquire_lock' mangled-name='PyThread_acquire_lock' filepath='Python/thread_pthread.h' line='750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_acquire_lock'>
+      <parameter type-id='type-id-228' name='lock' filepath='Python/thread_pthread.h' line='750' column='1'/>
+      <parameter type-id='type-id-9' name='waitflag' filepath='Python/thread_pthread.h' line='750' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-228' size-in-bits='64' id='type-id-832'/>
+    <function-decl name='_PyThread_at_fork_reinit' mangled-name='_PyThread_at_fork_reinit' filepath='Python/thread_pthread.h' line='730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_at_fork_reinit'>
+      <parameter type-id='type-id-832' name='lock' filepath='Python/thread_pthread.h' line='730' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyThread_release_lock' mangled-name='PyThread_release_lock' filepath='Python/thread_pthread.h' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_release_lock'>
+      <parameter type-id='type-id-228' name='lock' filepath='Python/thread_pthread.h' line='556' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <enum-decl name='PyLockStatus' filepath='./Include/pythread.h' line='13' column='1' id='type-id-833'>
+      <underlying-type type-id='type-id-83'/>
+      <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-833' filepath='./Include/pythread.h' line='17' column='1' id='type-id-834'/>
+    <function-decl name='PyThread_acquire_lock_timed' mangled-name='PyThread_acquire_lock_timed' filepath='Python/thread_pthread.h' line='439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_acquire_lock_timed'>
+      <parameter type-id='type-id-228' name='lock' filepath='Python/thread_pthread.h' line='439' column='1'/>
+      <parameter type-id='type-id-286' name='microseconds' filepath='Python/thread_pthread.h' line='439' column='1'/>
+      <parameter type-id='type-id-9' name='intr_flag' filepath='Python/thread_pthread.h' line='440' column='1'/>
+      <return type-id='type-id-834'/>
+    </function-decl>
+    <function-decl name='PyThread_free_lock' mangled-name='PyThread_free_lock' filepath='Python/thread_pthread.h' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_free_lock'>
+      <parameter type-id='type-id-228' name='lock' filepath='Python/thread_pthread.h' line='409' column='1'/>
+      <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='383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_allocate_lock'>
+      <return type-id='type-id-228'/>
+    </function-decl>
+    <function-decl name='PyThread_get_thread_native_id' mangled-name='PyThread_get_thread_native_id' filepath='Python/thread_pthread.h' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_native_id'>
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <function-decl name='PyThread_get_thread_ident' mangled-name='PyThread_get_thread_ident' filepath='Python/thread_pthread.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_ident'>
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <function-decl name='PyThread_start_new_thread' mangled-name='PyThread_start_new_thread' filepath='Python/thread_pthread.h' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_start_new_thread'>
+      <parameter type-id='type-id-20' name='func' filepath='Python/thread_pthread.h' line='253' column='1'/>
+      <parameter type-id='type-id-21' name='arg' filepath='Python/thread_pthread.h' line='253' column='1'/>
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_delete' mangled-name='PyThread_tss_delete' filepath='Python/thread_pthread.h' line='903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_delete'>
+      <parameter type-id='type-id-831' name='key' filepath='Python/thread_pthread.h' line='903' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='PyUnicode_DecodeFSDefaultAndSize' mangled-name='PyUnicode_DecodeFSDefaultAndSize' filepath='./Include/unicodeobject.h' line='795' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='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='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='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='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='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='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>
+    <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='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='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>
+    <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='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='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='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='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='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='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='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='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-149' 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='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceBack_Print'>
+      <parameter type-id='type-id-16' name='v' filepath='Python/traceback.c' line='597' column='1'/>
+      <parameter type-id='type-id-16' name='f' filepath='Python/traceback.c' line='597' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyTraceback_Add' mangled-name='_PyTraceback_Add' filepath='Python/traceback.c' line='258' 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='258' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/traceback.c' line='258' column='1'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/traceback.c' line='258' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTraceBack_Here' mangled-name='PyTraceBack_Here' filepath='Python/traceback.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceBack_Here'>
+      <parameter type-id='type-id-223' name='frame' filepath='Python/traceback.c' line='243' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_DisplaySourceLine' mangled-name='_Py_DisplaySourceLine' filepath='Python/traceback.c' line='373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DisplaySourceLine'>
+      <parameter type-id='type-id-16' name='f' filepath='Python/traceback.c' line='373' column='1'/>
+      <parameter type-id='type-id-16' name='filename' filepath='Python/traceback.c' line='373' column='1'/>
+      <parameter type-id='type-id-9' name='lineno' filepath='Python/traceback.c' line='373' column='1'/>
+      <parameter type-id='type-id-9' name='indent' filepath='Python/traceback.c' line='373' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_ThreadHead' mangled-name='PyInterpreterState_ThreadHead' 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='PyThreadState_Next' mangled-name='PyThreadState_Next' filepath='./Include/cpython/pystate.h' line='200' 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='182' 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='70' 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='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='Python/getopt.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyOS_opterr' type-id='type-id-9' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='8' column='1'/>
+    <var-decl name='_PyOS_optind' type-id='type-id-31' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='9' column='1'/>
+    <var-decl name='_PyOS_optarg' type-id='type-id-478' 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-9'/>
+    </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-31' name='size' filepath='Python/pystrcmp.c' line='7' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-371' 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-9' name='precision' filepath='Python/pystrtod.c' line='1245' column='1'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Python/pystrtod.c' line='1246' column='1'/>
+      <parameter type-id='type-id-452' name='type' filepath='Python/pystrtod.c' line='1247' column='1'/>
+      <return type-id='type-id-72'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-835' size-in-bits='64' id='type-id-836'/>
+    <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-31' 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-16' name='obj' filepath='Python/pystrtod.c' line='385' column='1'/>
+      <parameter type-id='type-id-21' name='arg' filepath='Python/pystrtod.c' line='385' column='1'/>
+      <parameter type-id='type-id-836' name='innerfunc' filepath='Python/pystrtod.c' line='386' column='1'/>
+      <return type-id='type-id-16'/>
+    </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-215' name='endptr' filepath='Python/pystrtod.c' line='339' column='1'/>
+      <parameter type-id='type-id-16' name='overflow_exception' filepath='Python/pystrtod.c' line='340' column='1'/>
+      <return type-id='type-id-371'/>
+    </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-215' name='endptr' filepath='Python/pystrtod.c' line='29' column='1'/>
+      <return type-id='type-id-371'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-835'>
+      <parameter type-id='type-id-3'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-21'/>
+      <return type-id='type-id-16'/>
+    </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-69' const='yes' id='type-id-837'/>
+    <pointer-type-def type-id='type-id-837' size-in-bits='64' id='type-id-838'/>
+    <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-193' name='arglen' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-838' name='sep' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-784' name='bytes_per_group' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <return type-id='type-id-16'/>
+    </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-193' name='arglen' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-838' name='sep' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-784' name='bytes_per_group' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <return type-id='type-id-16'/>
+    </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-193' name='arglen' filepath='Python/pystrhex.c' line='155' column='1'/>
+      <return type-id='type-id-16'/>
+    </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-193' name='arglen' filepath='Python/pystrhex.c' line='155' column='1'/>
+      <return type-id='type-id-16'/>
+    </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-371' name='dd' filepath='Python/dtoa.c' line='2247' column='1'/>
+      <parameter type-id='type-id-9' name='mode' filepath='Python/dtoa.c' line='2247' column='1'/>
+      <parameter type-id='type-id-9' name='ndigits' filepath='Python/dtoa.c' line='2247' column='1'/>
+      <parameter type-id='type-id-452' name='decpt' filepath='Python/dtoa.c' line='2248' column='1'/>
+      <parameter type-id='type-id-452' name='sign' filepath='Python/dtoa.c' line='2248' column='1'/>
+      <parameter type-id='type-id-215' name='rve' filepath='Python/dtoa.c' line='2248' column='1'/>
+      <return type-id='type-id-72'/>
+    </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-72' 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-215' name='se' filepath='Python/dtoa.c' line='1438' column='1'/>
+      <return type-id='type-id-371'/>
+    </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-9' name='sign' filepath='Python/dtoa.c' line='1429' column='1'/>
+      <return type-id='type-id-371'/>
+    </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-9' name='sign' filepath='Python/dtoa.c' line='1429' column='1'/>
+      <return type-id='type-id-371'/>
+    </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-451' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
+      <parameter type-id='type-id-16' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-451' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
+      <parameter type-id='type-id-16' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-451' name='writer' filepath='Python/formatter_unicode.c' line='1464' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/formatter_unicode.c' line='1465' column='1'/>
+      <parameter type-id='type-id-16' name='format_spec' filepath='Python/formatter_unicode.c' line='1466' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Python/formatter_unicode.c' line='1467' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Python/formatter_unicode.c' line='1467' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <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-451' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
+      <parameter type-id='type-id-16' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
+      <parameter type-id='type-id-16' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
+      <parameter type-id='type-id-31' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <parameter type-id='type-id-31' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <return type-id='type-id-9'/>
+    </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='_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>
+    <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='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='_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='_PyMem_Strdup' mangled-name='_PyMem_Strdup' 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='_PyUnicode_InsertThousandsGrouping' mangled-name='_PyUnicode_InsertThousandsGrouping' filepath='./Include/cpython/unicodeobject.h' line='1033' 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'>
+    <function-decl name='_Py_closerange' mangled-name='_Py_closerange' filepath='Python/fileutils.c' line='2393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_closerange'>
+      <parameter type-id='type-id-9' name='first' filepath='Python/fileutils.c' line='2393' column='1'/>
+      <parameter type-id='type-id-9' name='last' filepath='Python/fileutils.c' line='2393' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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-839'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='decimal_point' type-id='type-id-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-839' size-in-bits='64' id='type-id-840'/>
+    <function-decl name='_Py_GetLocaleconvNumeric' mangled-name='_Py_GetLocaleconvNumeric' filepath='Python/fileutils.c' line='2277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetLocaleconvNumeric'>
+      <parameter type-id='type-id-840' name='lc' filepath='Python/fileutils.c' line='2277' column='1'/>
+      <parameter type-id='type-id-86' name='decimal_point' filepath='Python/fileutils.c' line='2278' column='1'/>
+      <parameter type-id='type-id-86' name='thousands_sep' filepath='Python/fileutils.c' line='2278' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_set_blocking' mangled-name='_Py_set_blocking' filepath='Python/fileutils.c' line='2200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_blocking'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='2200' column='1'/>
+      <parameter type-id='type-id-9' name='blocking' filepath='Python/fileutils.c' line='2200' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_get_blocking' mangled-name='_Py_get_blocking' filepath='Python/fileutils.c' line='2179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_blocking'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='2179' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_dup' mangled-name='_Py_dup' filepath='Python/fileutils.c' line='2113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dup'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='2113' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_wgetcwd' mangled-name='_Py_wgetcwd' filepath='Python/fileutils.c' line='2081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wgetcwd'>
+      <parameter type-id='type-id-325' name='buf' filepath='Python/fileutils.c' line='2081' column='1'/>
+      <parameter type-id='type-id-157' name='buflen' filepath='Python/fileutils.c' line='2081' column='1'/>
+      <return type-id='type-id-325'/>
+    </function-decl>
+    <function-decl name='_Py_abspath' mangled-name='_Py_abspath' filepath='Python/fileutils.c' line='1994' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_abspath'>
+      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1994' column='1'/>
+      <parameter type-id='type-id-329' name='abspath_p' filepath='Python/fileutils.c' line='1994' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_isabs' mangled-name='_Py_isabs' filepath='Python/fileutils.c' line='1981' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_isabs'>
+      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1981' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_wrealpath' mangled-name='_Py_wrealpath' filepath='Python/fileutils.c' line='1943' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wrealpath'>
+      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1943' column='1'/>
+      <parameter type-id='type-id-325' name='resolved_path' filepath='Python/fileutils.c' line='1944' column='1'/>
+      <parameter type-id='type-id-157' name='resolved_path_len' filepath='Python/fileutils.c' line='1944' column='1'/>
+      <return type-id='type-id-325'/>
+    </function-decl>
+    <function-decl name='_Py_wreadlink' mangled-name='_Py_wreadlink' filepath='Python/fileutils.c' line='1894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wreadlink'>
+      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1894' column='1'/>
+      <parameter type-id='type-id-325' name='buf' filepath='Python/fileutils.c' line='1894' column='1'/>
+      <parameter type-id='type-id-157' name='buflen' filepath='Python/fileutils.c' line='1894' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_write_noraise' mangled-name='_Py_write_noraise' filepath='Python/fileutils.c' line='1881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_write_noraise'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='1881' column='1'/>
+      <parameter type-id='type-id-21' name='buf' filepath='Python/fileutils.c' line='1881' column='1'/>
+      <parameter type-id='type-id-157' name='count' filepath='Python/fileutils.c' line='1881' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='_Py_write' mangled-name='_Py_write' filepath='Python/fileutils.c' line='1861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_write'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='1861' column='1'/>
+      <parameter type-id='type-id-21' name='buf' filepath='Python/fileutils.c' line='1861' column='1'/>
+      <parameter type-id='type-id-157' name='count' filepath='Python/fileutils.c' line='1861' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='_Py_read' mangled-name='_Py_read' filepath='Python/fileutils.c' line='1722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_read'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='1722' column='1'/>
+      <parameter type-id='type-id-21' name='buf' filepath='Python/fileutils.c' line='1722' column='1'/>
+      <parameter type-id='type-id-157' name='count' filepath='Python/fileutils.c' line='1722' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='_Py_fopen_obj' mangled-name='_Py_fopen_obj' filepath='Python/fileutils.c' line='1623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fopen_obj'>
+      <parameter type-id='type-id-16' name='path' filepath='Python/fileutils.c' line='1623' column='1'/>
+      <parameter type-id='type-id-3' name='mode' filepath='Python/fileutils.c' line='1623' column='1'/>
+      <return type-id='type-id-188'/>
+    </function-decl>
+    <function-decl name='_Py_wfopen' mangled-name='_Py_wfopen' filepath='Python/fileutils.c' line='1575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wfopen'>
+      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1575' column='1'/>
+      <parameter type-id='type-id-478' name='mode' filepath='Python/fileutils.c' line='1575' column='1'/>
+      <return type-id='type-id-188'/>
+    </function-decl>
+    <function-decl name='_Py_open_noraise' mangled-name='_Py_open_noraise' filepath='Python/fileutils.c' line='1563' 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='1563' column='1'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Python/fileutils.c' line='1563' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_open' mangled-name='_Py_open' filepath='Python/fileutils.c' line='1549' 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='1563' column='1'/>
+      <parameter type-id='type-id-9' name='flags' filepath='Python/fileutils.c' line='1563' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_set_inheritable_async_safe' mangled-name='_Py_set_inheritable_async_safe' filepath='Python/fileutils.c' line='1472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_inheritable_async_safe'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='1472' column='1'/>
+      <parameter type-id='type-id-9' name='inheritable' filepath='Python/fileutils.c' line='1472' column='1'/>
+      <parameter type-id='type-id-452' name='atomic_flag_works' filepath='Python/fileutils.c' line='1472' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_set_inheritable' mangled-name='_Py_set_inheritable' filepath='Python/fileutils.c' line='1463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_inheritable'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='1472' column='1'/>
+      <parameter type-id='type-id-9' name='inheritable' filepath='Python/fileutils.c' line='1472' column='1'/>
+      <parameter type-id='type-id-452' name='atomic_flag_works' filepath='Python/fileutils.c' line='1472' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_get_inheritable' mangled-name='_Py_get_inheritable' filepath='Python/fileutils.c' line='1297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_inheritable'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='1297' column='1'/>
+      <return type-id='type-id-9'/>
+    </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-841'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='st_dev' type-id='type-id-842' 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-843' 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-844' 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-845' 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-846' 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-847' 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-9' 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-842' 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-172' 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-848' 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-849' 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-810' 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-810' 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-810' 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-850' 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-19' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='145' column='1' id='type-id-842'/>
+    <typedef-decl name='__ino_t' type-id='type-id-19' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='148' column='1' id='type-id-843'/>
+    <typedef-decl name='__nlink_t' type-id='type-id-19' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='151' column='1' id='type-id-844'/>
+    <typedef-decl name='__mode_t' type-id='type-id-66' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='150' column='1' id='type-id-845'/>
+    <typedef-decl name='__uid_t' type-id='type-id-66' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='146' column='1' id='type-id-846'/>
+    <typedef-decl name='__gid_t' type-id='type-id-66' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='147' column='1' id='type-id-847'/>
+    <typedef-decl name='__blksize_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='174' column='1' id='type-id-848'/>
+    <typedef-decl name='__blkcnt_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='179' column='1' id='type-id-849'/>
+
+    <array-type-def dimensions='1' type-id='type-id-811' size-in-bits='192' id='type-id-850'>
+      <subrange length='3' type-id='type-id-19' id='type-id-322'/>
+
+    </array-type-def>
+    <pointer-type-def type-id='type-id-841' size-in-bits='64' id='type-id-851'/>
+    <function-decl name='_Py_stat' mangled-name='_Py_stat' filepath='Python/fileutils.c' line='1215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_stat'>
+      <parameter type-id='type-id-16' name='path' filepath='Python/fileutils.c' line='1215' column='1'/>
+      <parameter type-id='type-id-851' name='statbuf' filepath='Python/fileutils.c' line='1215' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_fstat' mangled-name='_Py_fstat' filepath='Python/fileutils.c' line='1187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fstat'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='1187' column='1'/>
+      <parameter type-id='type-id-851' name='status' filepath='Python/fileutils.c' line='1187' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_fstat_noraise' mangled-name='_Py_fstat_noraise' filepath='Python/fileutils.c' line='1120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fstat_noraise'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='1120' column='1'/>
+      <parameter type-id='type-id-851' name='status' filepath='Python/fileutils.c' line='1120' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_GetLocaleEncodingObject' mangled-name='_Py_GetLocaleEncodingObject' filepath='Python/fileutils.c' line='924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetLocaleEncodingObject'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-157' size-in-bits='64' id='type-id-852'/>
+    <function-decl name='_Py_EncodeLocaleEx' mangled-name='_Py_EncodeLocaleEx' filepath='Python/fileutils.c' line='863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeLocaleEx'>
+      <parameter type-id='type-id-478' name='text' filepath='Python/fileutils.c' line='863' column='1'/>
+      <parameter type-id='type-id-215' name='str' filepath='Python/fileutils.c' line='863' column='1'/>
+      <parameter type-id='type-id-852' name='error_pos' filepath='Python/fileutils.c' line='864' column='1'/>
+      <parameter type-id='type-id-196' name='reason' filepath='Python/fileutils.c' line='864' column='1'/>
+      <parameter type-id='type-id-9' name='current_locale' filepath='Python/fileutils.c' line='865' column='1'/>
+      <parameter type-id='type-id-366' name='errors' filepath='Python/fileutils.c' line='865' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_EncodeLocaleRaw' mangled-name='_Py_EncodeLocaleRaw' filepath='Python/fileutils.c' line='856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeLocaleRaw'>
+      <parameter type-id='type-id-478' name='text' filepath='Python/fileutils.c' line='856' column='1'/>
+      <parameter type-id='type-id-852' name='error_pos' filepath='Python/fileutils.c' line='856' column='1'/>
+      <return type-id='type-id-72'/>
+    </function-decl>
+    <function-decl name='Py_EncodeLocale' mangled-name='Py_EncodeLocale' filepath='Python/fileutils.c' line='847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EncodeLocale'>
+      <parameter type-id='type-id-478' name='text' filepath='Python/fileutils.c' line='856' column='1'/>
+      <parameter type-id='type-id-852' name='error_pos' filepath='Python/fileutils.c' line='856' column='1'/>
+      <return type-id='type-id-72'/>
+    </function-decl>
+    <function-decl name='Py_DecodeLocale' mangled-name='Py_DecodeLocale' filepath='Python/fileutils.c' line='645' 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='645' column='1'/>
+      <parameter type-id='type-id-852' name='wlen' filepath='Python/fileutils.c' line='645' column='1'/>
+      <return type-id='type-id-325'/>
+    </function-decl>
+    <function-decl name='_Py_DecodeLocaleEx' mangled-name='_Py_DecodeLocaleEx' filepath='Python/fileutils.c' line='583' 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='583' column='1'/>
+      <parameter type-id='type-id-329' name='wstr' filepath='Python/fileutils.c' line='583' column='1'/>
+      <parameter type-id='type-id-852' name='wlen' filepath='Python/fileutils.c' line='583' column='1'/>
+      <parameter type-id='type-id-196' name='reason' filepath='Python/fileutils.c' line='584' column='1'/>
+      <parameter type-id='type-id-9' name='current_locale' filepath='Python/fileutils.c' line='585' column='1'/>
+      <parameter type-id='type-id-366' name='errors' filepath='Python/fileutils.c' line='585' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_GetForceASCII' mangled-name='_Py_GetForceASCII' filepath='Python/fileutils.c' line='292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetForceASCII'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_Py_device_encoding' mangled-name='_Py_device_encoding' filepath='Python/fileutils.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_device_encoding'>
+      <parameter type-id='type-id-9' name='fd' filepath='Python/fileutils.c' line='67' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_Py_GetLocaleEncoding' mangled-name='_Py_GetLocaleEncoding' filepath='Python/fileutils.c' line='884' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetLocaleEncoding'>
+      <return type-id='type-id-325'/>
+    </function-decl>
+    <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='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='__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>
+    <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='__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='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='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='PyUnicode_FSConverter' mangled-name='PyUnicode_FSConverter' filepath='./Include/unicodeobject.h' line='768' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetFromErrnoWithFilenameObject' mangled-name='PyErr_SetFromErrnoWithFilenameObject' filepath='./Include/pyerrors.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='__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='PyErr_SetFromErrnoWithFilenameObjects' mangled-name='PyErr_SetFromErrnoWithFilenameObjects' 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='__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='__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='_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='_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='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='__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>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/suggestions.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_UTF8_Edit_Cost' mangled-name='_Py_UTF8_Edit_Cost' filepath='Python/suggestions.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_UTF8_Edit_Cost'>
+      <parameter type-id='type-id-16' name='a' filepath='Python/suggestions.c' line='264' column='1'/>
+      <parameter type-id='type-id-16' name='b' filepath='Python/suggestions.c' line='264' column='1'/>
+      <parameter type-id='type-id-31' name='max_cost' filepath='Python/suggestions.c' line='264' column='1'/>
+      <return type-id='type-id-31'/>
+    </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-853'>
+      <subrange length='infinite' id='type-id-7'/>
+
+    </array-type-def>
+    <var-decl name='_PyImport_DynLoadFiletab' type-id='type-id-853' 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='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='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>
+  </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='97' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_Py_EncodeLocaleRaw' mangled-name='_Py_EncodeLocaleRaw' filepath='./Include/cpython/fileutils.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='__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='__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='Modules/main.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='Py_BytesMain' mangled-name='Py_BytesMain' filepath='Modules/main.c' line='713' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_BytesMain'>
+      <parameter type-id='type-id-9' name='argc' filepath='Modules/main.c' line='713' column='1'/>
+      <parameter type-id='type-id-215' name='argv' filepath='Modules/main.c' line='713' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='Py_Main' mangled-name='Py_Main' filepath='Modules/main.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Main'>
+      <parameter type-id='type-id-9' name='argc' filepath='Modules/main.c' line='701' column='1'/>
+      <parameter type-id='type-id-329' name='argv' filepath='Modules/main.c' line='701' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='Py_RunMain' mangled-name='Py_RunMain' filepath='Modules/main.c' line='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_RunMain'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyImport_Fini2' mangled-name='_PyImport_Fini2' filepath='./Include/internal/pycore_pylifecycle.h' line='98' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_Py_HandleSystemExit' mangled-name='_Py_HandleSystemExit' filepath='./Include/internal/pycore_pylifecycle.h' line='126' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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_SimpleStringFlags' mangled-name='PyRun_SimpleStringFlags' filepath='./Include/cpython/pythonrun.h' line='5' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyRun_SimpleFileObject' mangled-name='_PyRun_SimpleFileObject' filepath='./Include/cpython/pythonrun.h' line='6' 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='./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_AnyFileObject' mangled-name='_PyRun_AnyFileObject' filepath='./Include/cpython/pythonrun.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyOS_setsig' mangled-name='PyOS_setsig' filepath='./Include/pylifecycle.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='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='_Py_PreInitializeFromPyArgv' mangled-name='_Py_PreInitializeFromPyArgv' filepath='./Include/internal/pycore_pylifecycle.h' line='118' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyConfig_SetArgv' mangled-name='PyConfig_SetArgv' filepath='./Include/cpython/initconfig.h' line='227' 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='./Include/cpython/initconfig.h' line='223' 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='2358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsFinalized'>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1721' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyObject_GC_IsTracked' mangled-name='PyObject_GC_IsTracked' filepath='Modules/gcmodule.c' line='2349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsTracked'>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1721' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyObject_GC_Del' mangled-name='PyObject_GC_Del' filepath='Modules/gcmodule.c' line='2335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_Del'>
+      <parameter type-id='type-id-21' name='op' filepath='Modules/gcmodule.c' line='2335' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GC_Resize' mangled-name='_PyObject_GC_Resize' filepath='Modules/gcmodule.c' line='2317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Resize'>
+      <parameter type-id='type-id-474' name='op' filepath='Modules/gcmodule.c' line='2317' column='1'/>
+      <parameter type-id='type-id-31' name='nitems' filepath='Modules/gcmodule.c' line='2317' column='1'/>
+      <return type-id='type-id-474'/>
+    </function-decl>
+    <function-decl name='_PyObject_GC_NewVar' mangled-name='_PyObject_GC_NewVar' filepath='Modules/gcmodule.c' line='2298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_NewVar'>
+      <parameter type-id='type-id-32' name='tp' filepath='Objects/object.c' line='192' column='1'/>
+      <parameter type-id='type-id-31' name='nitems' filepath='Objects/object.c' line='192' column='1'/>
+      <return type-id='type-id-474'/>
+    </function-decl>
+    <function-decl name='_PyObject_GC_New' mangled-name='_PyObject_GC_New' filepath='Modules/gcmodule.c' line='2287' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_New'>
+      <parameter type-id='type-id-32' name='tp' filepath='Modules/gcmodule.c' line='2287' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyObject_GC_Calloc' mangled-name='_PyObject_GC_Calloc' filepath='Modules/gcmodule.c' line='2281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Calloc'>
+      <parameter type-id='type-id-157' name='basicsize' filepath='Modules/gcmodule.c' line='2281' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyObject_GC_Malloc' mangled-name='_PyObject_GC_Malloc' filepath='Modules/gcmodule.c' line='2275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Malloc'>
+      <parameter type-id='type-id-157' name='basicsize' filepath='Modules/gcmodule.c' line='2281' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyObject_IS_GC' mangled-name='PyObject_IS_GC' filepath='Modules/gcmodule.c' line='2230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IS_GC'>
+      <parameter type-id='type-id-16' name='s' filepath='Objects/abstract.c' line='1721' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyObject_GC_UnTrack' mangled-name='PyObject_GC_UnTrack' filepath='Modules/gcmodule.c' line='2218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_UnTrack'>
+      <parameter type-id='type-id-21' name='op_raw' filepath='Modules/gcmodule.c' line='2218' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GC_Track' mangled-name='PyObject_GC_Track' filepath='Modules/gcmodule.c' line='2199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_Track'>
+      <parameter type-id='type-id-21' name='op_raw' filepath='Modules/gcmodule.c' line='2199' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyGC_Collect' mangled-name='PyGC_Collect' filepath='Modules/gcmodule.c' line='2081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_Collect'>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='PyGC_IsEnabled' mangled-name='PyGC_IsEnabled' filepath='Modules/gcmodule.c' line='2073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_IsEnabled'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyGC_Disable' mangled-name='PyGC_Disable' filepath='Modules/gcmodule.c' line='2064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_Disable'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyGC_Enable' mangled-name='PyGC_Enable' filepath='Modules/gcmodule.c' line='2055' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_Enable'>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyInit_gc' mangled-name='PyInit_gc' filepath='Modules/gcmodule.c' line='2048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_gc'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <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='_Py_convert_optional_to_ssize_t' mangled-name='_Py_convert_optional_to_ssize_t' filepath='./Include/cpython/abstract.h' line='370' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_GetMonotonicClock' mangled-name='_PyTime_GetMonotonicClock' filepath='./Include/cpython/pytime.h' line='199' 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='./Include/cpython/pytime.h' line='104' 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='./Include/cpython/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='_PyFrame_ClearFreeList' mangled-name='_PyFrame_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='_PyTuple_ClearFreeList' mangled-name='_PyTuple_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='_PyFloat_ClearFreeList' mangled-name='_PyFloat_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='_PyList_ClearFreeList' mangled-name='_PyList_ClearFreeList' 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='_PyDict_ClearFreeList' mangled-name='_PyDict_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='_PyAsyncGen_ClearFreeLists' mangled-name='_PyAsyncGen_ClearFreeLists' filepath='./Include/internal/pycore_gc.h' line='175' 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='176' 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='52' 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='15817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_posix'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_Py_Sigset_Converter' mangled-name='_Py_Sigset_Converter' filepath='./Modules/posixmodule.c' line='1501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Sigset_Converter'>
+      <parameter type-id='type-id-16' name='obj' filepath='./Modules/posixmodule.c' line='1501' column='1'/>
+      <parameter type-id='type-id-21' name='addr' filepath='./Modules/posixmodule.c' line='1501' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <typedef-decl name='gid_t' type-id='type-id-847' filepath='/usr/include/x86_64-linux-gnu/sys/types.h' line='64' column='1' id='type-id-854'/>
+    <pointer-type-def type-id='type-id-854' size-in-bits='64' id='type-id-855'/>
+    <function-decl name='_Py_Gid_Converter' mangled-name='_Py_Gid_Converter' filepath='./Modules/posixmodule.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Gid_Converter'>
+      <parameter type-id='type-id-16' name='obj' filepath='./Modules/posixmodule.c' line='789' column='1'/>
+      <parameter type-id='type-id-855' name='p' filepath='./Modules/posixmodule.c' line='789' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <typedef-decl name='uid_t' type-id='type-id-846' filepath='/usr/include/x86_64-linux-gnu/sys/types.h' line='79' column='1' id='type-id-856'/>
+    <pointer-type-def type-id='type-id-856' size-in-bits='64' id='type-id-857'/>
+    <function-decl name='_Py_Uid_Converter' mangled-name='_Py_Uid_Converter' filepath='./Modules/posixmodule.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Uid_Converter'>
+      <parameter type-id='type-id-16' name='obj' filepath='./Modules/posixmodule.c' line='683' column='1'/>
+      <parameter type-id='type-id-857' name='p' filepath='./Modules/posixmodule.c' line='683' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='PyOS_AfterFork' mangled-name='PyOS_AfterFork' filepath='./Modules/posixmodule.c' line='649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyOS_AfterFork_Child' mangled-name='PyOS_AfterFork_Child' filepath='./Modules/posixmodule.c' line='589' 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='PyOS_BeforeFork' mangled-name='PyOS_BeforeFork' filepath='./Modules/posixmodule.c' line='572' 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='PyOS_AfterFork_Parent' mangled-name='PyOS_AfterFork_Parent' filepath='./Modules/posixmodule.c' line='580' 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='_PyLong_FromUid' mangled-name='_PyLong_FromUid' filepath='./Modules/posixmodule.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromUid'>
+      <parameter type-id='type-id-856' name='uid' filepath='./Modules/posixmodule.c' line='667' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromGid' mangled-name='_PyLong_FromGid' filepath='./Modules/posixmodule.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromGid'>
+      <parameter type-id='type-id-854' name='gid' filepath='./Modules/posixmodule.c' line='675' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyOS_FSPath' mangled-name='PyOS_FSPath' filepath='./Modules/posixmodule.c' line='14353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_FSPath'>
+      <parameter type-id='type-id-16' name='path' filepath='./Modules/posixmodule.c' line='14353' column='1'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <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>
+    <function-decl name='PyModule_AddObject' mangled-name='PyModule_AddObject' filepath='./Include/modsupport.h' line='146' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='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='PyType_FromModuleAndSpec' mangled-name='PyType_FromModuleAndSpec' filepath='./Include/object.h' line='238' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='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='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='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='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='_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='PyType_GetModule' mangled-name='PyType_GetModule' filepath='./Include/object.h' line='239' 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='161' 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='./Include/cpython/fileutils.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='./Include/cpython/fileutils.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='eventfd_write' mangled-name='eventfd_write' filepath='/usr/include/x86_64-linux-gnu/sys/eventfd.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_FileDescriptor_Converter' mangled-name='_PyLong_FileDescriptor_Converter' filepath='./Include/cpython/fileobject.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_UnsignedLongLong_Converter' mangled-name='_PyLong_UnsignedLongLong_Converter' filepath='./Include/longobject.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='eventfd_read' mangled-name='eventfd_read' filepath='/usr/include/x86_64-linux-gnu/sys/eventfd.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='eventfd' mangled-name='eventfd' filepath='/usr/include/x86_64-linux-gnu/sys/eventfd.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_UnsignedInt_Converter' mangled-name='_PyLong_UnsignedInt_Converter' filepath='./Include/longobject.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='_PyOS_URandom' mangled-name='_PyOS_URandom' filepath='./Include/cpython/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='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='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>
+    <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='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='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='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='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='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>
+    <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='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>
+    <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='39' 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='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='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='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='520' 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='splice' mangled-name='splice' filepath='/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h' line='420' 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='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='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='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='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>
+    <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='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='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='__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='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='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='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='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>
+    <function-decl name='_Py_closerange' mangled-name='_Py_closerange' filepath='./Include/internal/pycore_fileutils.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <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='__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='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='_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='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='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='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='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='_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='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='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='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='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='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='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='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='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='157' 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-15' 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='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_SetObjectId'>
-      <parameter type-id='type-id-453' name='key' filepath='./Python/sysmodule.c' line='140' column='1'/>
-      <parameter type-id='type-id-15' name='v' filepath='./Python/sysmodule.c' line='140' 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='100' 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='100' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_GetObjectId'>
-      <parameter type-id='type-id-453' name='key' filepath='./Python/sysmodule.c' line='83' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_GetInfo'>
-      <return type-id='type-id-15'/>
+    <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-301' size-in-bits='64' id='type-id-828'/>
-    <function-decl name='PyThread_tss_is_created' mangled-name='PyThread_tss_is_created' filepath='Python/thread.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_is_created'>
-      <parameter type-id='type-id-828' name='key' filepath='Python/thread.c' line='157' 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='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_free'>
-      <parameter type-id='type-id-828' name='key' filepath='Python/thread.c' line='148' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_alloc'>
-      <return type-id='type-id-828'/>
+    <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='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_set_stacksize'>
-      <parameter type-id='type-id-157' name='size' filepath='Python/thread.c' line='121' 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='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_stacksize'>
-      <return type-id='type-id-157'/>
+    <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='897' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_get'>
-      <parameter type-id='type-id-828' name='key' filepath='Python/thread_pthread.h' line='897' column='1'/>
-      <return type-id='type-id-20'/>
+    <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='889' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_set'>
-      <parameter type-id='type-id-828' name='key' filepath='Python/thread_pthread.h' line='889' column='1'/>
-      <parameter type-id='type-id-20' name='value' filepath='Python/thread_pthread.h' line='889' 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='875' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_delete'>
-      <parameter type-id='type-id-828' name='key' filepath='Python/thread.c' line='148' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_create'>
-      <parameter type-id='type-id-828' name='key' filepath='Python/thread_pthread.h' line='858' 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='847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_ReInitTLS'>
-      <return type-id='type-id-69'/>
+    <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='836' 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='836' column='1'/>
-      <return type-id='type-id-20'/>
+    <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='825' 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='825' column='1'/>
-      <parameter type-id='type-id-20' name='value' filepath='Python/thread_pthread.h' line='825' 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='817' 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='2856' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='809' 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='2856' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='789' 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='722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_acquire_lock'>
-      <parameter type-id='type-id-228' name='lock' filepath='Python/thread_pthread.h' line='722' column='1'/>
-      <parameter type-id='type-id-8' name='waitflag' filepath='Python/thread_pthread.h' line='722' 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-228' size-in-bits='64' id='type-id-829'/>
-    <function-decl name='_PyThread_at_fork_reinit' mangled-name='_PyThread_at_fork_reinit' filepath='Python/thread_pthread.h' line='702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_at_fork_reinit'>
-      <parameter type-id='type-id-829' name='lock' filepath='Python/thread_pthread.h' line='702' 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='528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_release_lock'>
-      <parameter type-id='type-id-228' name='lock' filepath='Python/thread_pthread.h' line='528' column='1'/>
-      <return type-id='type-id-69'/>
+    <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-830'>
-      <underlying-type type-id='type-id-83'/>
-      <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-830' filepath='./Include/pythread.h' line='17' column='1' id='type-id-831'/>
-    <function-decl name='PyThread_acquire_lock_timed' mangled-name='PyThread_acquire_lock_timed' filepath='Python/thread_pthread.h' line='431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_acquire_lock_timed'>
-      <parameter type-id='type-id-228' name='lock' filepath='Python/thread_pthread.h' line='431' column='1'/>
-      <parameter type-id='type-id-286' name='microseconds' filepath='Python/thread_pthread.h' line='431' column='1'/>
-      <parameter type-id='type-id-8' name='intr_flag' filepath='Python/thread_pthread.h' line='432' column='1'/>
-      <return type-id='type-id-831'/>
+    <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='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_free_lock'>
-      <parameter type-id='type-id-228' name='lock' filepath='Python/thread_pthread.h' line='528' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_allocate_lock'>
-      <return type-id='type-id-228'/>
+    <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='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_exit_thread'>
-      <return type-id='type-id-69'/>
+    <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='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_native_id'>
-      <return type-id='type-id-18'/>
+    <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='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_ident'>
-      <return type-id='type-id-18'/>
+    <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='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_start_new_thread'>
-      <parameter type-id='type-id-19' name='func' filepath='Python/thread_pthread.h' line='245' column='1'/>
-      <parameter type-id='type-id-20' name='arg' filepath='Python/thread_pthread.h' line='245' column='1'/>
-      <return type-id='type-id-18'/>
+    <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'>
-      <return type-id='type-id-69'/>
+    <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-149' 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='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceBack_Print'>
-      <parameter type-id='type-id-15' name='v' filepath='Python/traceback.c' line='597' column='1'/>
-      <parameter type-id='type-id-15' name='f' filepath='Python/traceback.c' line='597' 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='373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DisplaySourceLine'>
-      <parameter type-id='type-id-15' name='f' filepath='Python/traceback.c' line='373' column='1'/>
-      <parameter type-id='type-id-15' name='filename' filepath='Python/traceback.c' line='373' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/traceback.c' line='373' column='1'/>
-      <parameter type-id='type-id-8' name='indent' filepath='Python/traceback.c' line='373' 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='258' 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='258' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/traceback.c' line='258' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/traceback.c' line='258' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceBack_Here'>
-      <parameter type-id='type-id-223' name='frame' filepath='Python/traceback.c' line='243' 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-30' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='9' column='1'/>
-    <var-decl name='_PyOS_optarg' type-id='type-id-478' 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-30' 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-371' 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-452' name='type' filepath='Python/pystrtod.c' line='1247' column='1'/>
-      <return type-id='type-id-72'/>
+    <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-832' size-in-bits='64' id='type-id-833'/>
-    <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-30' 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-15' name='obj' filepath='Python/pystrtod.c' line='385' column='1'/>
-      <parameter type-id='type-id-20' name='arg' filepath='Python/pystrtod.c' line='385' column='1'/>
-      <parameter type-id='type-id-833' name='innerfunc' filepath='Python/pystrtod.c' line='386' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyTime_ObjectToTimespec' mangled-name='_PyTime_ObjectToTimespec' filepath='./Include/cpython/pytime.h' line='69' 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-215' name='endptr' filepath='Python/pystrtod.c' line='339' column='1'/>
-      <parameter type-id='type-id-15' name='overflow_exception' filepath='Python/pystrtod.c' line='340' column='1'/>
-      <return type-id='type-id-371'/>
+    <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-215' name='endptr' filepath='Python/pystrtod.c' line='29' column='1'/>
-      <return type-id='type-id-371'/>
+    <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-832'>
-      <parameter type-id='type-id-3'/>
-      <parameter type-id='type-id-30'/>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-15'/>
-    </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-68' const='yes' id='type-id-834'/>
-    <pointer-type-def type-id='type-id-834' size-in-bits='64' id='type-id-835'/>
-    <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-193' name='arglen' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-835' name='sep' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-781' name='bytes_per_group' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <return type-id='type-id-15'/>
+    <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_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-193' name='arglen' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-835' name='sep' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-781' name='bytes_per_group' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <return type-id='type-id-15'/>
+    <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_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-193' name='arglen' filepath='Python/pystrhex.c' line='155' column='1'/>
-      <return type-id='type-id-15'/>
+    <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' 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-193' name='arglen' filepath='Python/pystrhex.c' line='155' column='1'/>
-      <return type-id='type-id-15'/>
+    <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>
-  </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-371' 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-452' name='decpt' filepath='Python/dtoa.c' line='2248' column='1'/>
-      <parameter type-id='type-id-452' name='sign' filepath='Python/dtoa.c' line='2248' column='1'/>
-      <parameter type-id='type-id-215' name='rve' filepath='Python/dtoa.c' line='2248' column='1'/>
-      <return type-id='type-id-72'/>
+    <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>
-    <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-72' name='s' filepath='Python/dtoa.c' line='2201' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='_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-215' name='se' filepath='Python/dtoa.c' line='1438' column='1'/>
-      <return type-id='type-id-371'/>
+    <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='_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-371'/>
+    <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='_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-371'/>
+    <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>
-  </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-451' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
-      <parameter type-id='type-id-15' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_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-451' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
-      <parameter type-id='type-id-15' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_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-451' name='writer' filepath='Python/formatter_unicode.c' line='1464' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/formatter_unicode.c' line='1465' column='1'/>
-      <parameter type-id='type-id-15' name='format_spec' filepath='Python/formatter_unicode.c' line='1466' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Python/formatter_unicode.c' line='1467' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Python/formatter_unicode.c' line='1467' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_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-451' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
-      <parameter type-id='type-id-15' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
-      <parameter type-id='type-id-15' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
-      <parameter type-id='type-id-30' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
-      <parameter type-id='type-id-30' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
-      <return type-id='type-id-8'/>
+    <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/fileutils.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_Py_closerange' mangled-name='_Py_closerange' filepath='Python/fileutils.c' line='2381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_closerange'>
-      <parameter type-id='type-id-8' name='first' filepath='Python/fileutils.c' line='2381' column='1'/>
-      <parameter type-id='type-id-8' name='last' filepath='Python/fileutils.c' line='2381' column='1'/>
-      <return type-id='type-id-69'/>
+    <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>
-    <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-836'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='decimal_point' type-id='type-id-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-72' 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-836' size-in-bits='64' id='type-id-837'/>
-    <function-decl name='_Py_GetLocaleconvNumeric' mangled-name='_Py_GetLocaleconvNumeric' filepath='Python/fileutils.c' line='2265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetLocaleconvNumeric'>
-      <parameter type-id='type-id-837' name='lc' filepath='Python/fileutils.c' line='2265' column='1'/>
-      <parameter type-id='type-id-86' name='decimal_point' filepath='Python/fileutils.c' line='2266' column='1'/>
-      <parameter type-id='type-id-86' name='thousands_sep' filepath='Python/fileutils.c' line='2266' 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='_Py_set_blocking' mangled-name='_Py_set_blocking' filepath='Python/fileutils.c' line='2188' 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='2188' column='1'/>
-      <parameter type-id='type-id-8' name='blocking' filepath='Python/fileutils.c' line='2188' 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='_Py_get_blocking' mangled-name='_Py_get_blocking' filepath='Python/fileutils.c' line='2167' 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='2167' 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>
-    <function-decl name='_Py_dup' mangled-name='_Py_dup' filepath='Python/fileutils.c' line='2101' 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='2101' 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_wgetcwd' mangled-name='_Py_wgetcwd' filepath='Python/fileutils.c' line='2069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wgetcwd'>
-      <parameter type-id='type-id-325' name='buf' filepath='Python/fileutils.c' line='2069' column='1'/>
-      <parameter type-id='type-id-157' name='buflen' filepath='Python/fileutils.c' line='2069' column='1'/>
-      <return type-id='type-id-325'/>
+    <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_abspath' mangled-name='_Py_abspath' filepath='Python/fileutils.c' line='1982' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_abspath'>
-      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1982' column='1'/>
-      <parameter type-id='type-id-329' name='abspath_p' filepath='Python/fileutils.c' line='1982' 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_isabs' mangled-name='_Py_isabs' filepath='Python/fileutils.c' line='1969' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_isabs'>
-      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1969' 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_wrealpath' mangled-name='_Py_wrealpath' filepath='Python/fileutils.c' line='1931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wrealpath'>
-      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1931' column='1'/>
-      <parameter type-id='type-id-325' name='resolved_path' filepath='Python/fileutils.c' line='1932' column='1'/>
-      <parameter type-id='type-id-157' name='resolved_path_len' filepath='Python/fileutils.c' line='1932' column='1'/>
-      <return type-id='type-id-325'/>
+    <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_wreadlink' mangled-name='_Py_wreadlink' filepath='Python/fileutils.c' line='1882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wreadlink'>
-      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1882' column='1'/>
-      <parameter type-id='type-id-325' name='buf' filepath='Python/fileutils.c' line='1882' column='1'/>
-      <parameter type-id='type-id-157' name='buflen' filepath='Python/fileutils.c' line='1882' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_Py_write_noraise' mangled-name='_Py_write_noraise' filepath='Python/fileutils.c' line='1869' 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='1869' column='1'/>
-      <parameter type-id='type-id-20' name='buf' filepath='Python/fileutils.c' line='1869' column='1'/>
-      <parameter type-id='type-id-157' name='count' filepath='Python/fileutils.c' line='1869' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='_Py_write' mangled-name='_Py_write' filepath='Python/fileutils.c' line='1849' 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='1869' column='1'/>
-      <parameter type-id='type-id-20' name='buf' filepath='Python/fileutils.c' line='1869' column='1'/>
-      <parameter type-id='type-id-157' name='count' filepath='Python/fileutils.c' line='1869' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='_Py_read' mangled-name='_Py_read' filepath='Python/fileutils.c' line='1720' 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='1720' column='1'/>
-      <parameter type-id='type-id-20' name='buf' filepath='Python/fileutils.c' line='1720' column='1'/>
-      <parameter type-id='type-id-157' name='count' filepath='Python/fileutils.c' line='1720' column='1'/>
-      <return type-id='type-id-30'/>
-    </function-decl>
-    <function-decl name='_Py_fopen_obj' mangled-name='_Py_fopen_obj' filepath='Python/fileutils.c' line='1621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fopen_obj'>
-      <parameter type-id='type-id-15' name='path' filepath='Python/fileutils.c' line='1621' column='1'/>
-      <parameter type-id='type-id-3' name='mode' filepath='Python/fileutils.c' line='1621' column='1'/>
-      <return type-id='type-id-188'/>
+    <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_wfopen' mangled-name='_Py_wfopen' filepath='Python/fileutils.c' line='1573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wfopen'>
-      <parameter type-id='type-id-478' name='path' filepath='Python/fileutils.c' line='1573' column='1'/>
-      <parameter type-id='type-id-478' name='mode' filepath='Python/fileutils.c' line='1573' column='1'/>
-      <return type-id='type-id-188'/>
+    <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_open_noraise' mangled-name='_Py_open_noraise' filepath='Python/fileutils.c' line='1561' 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='1561' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Python/fileutils.c' line='1561' column='1'/>
-      <return type-id='type-id-8'/>
+    <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_open' mangled-name='_Py_open' filepath='Python/fileutils.c' line='1547' 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='1561' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Python/fileutils.c' line='1561' 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_set_inheritable_async_safe' mangled-name='_Py_set_inheritable_async_safe' filepath='Python/fileutils.c' line='1470' 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='1470' column='1'/>
-      <parameter type-id='type-id-8' name='inheritable' filepath='Python/fileutils.c' line='1470' column='1'/>
-      <parameter type-id='type-id-452' name='atomic_flag_works' filepath='Python/fileutils.c' line='1470' column='1'/>
-      <return type-id='type-id-8'/>
+    <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='_Py_set_inheritable' mangled-name='_Py_set_inheritable' filepath='Python/fileutils.c' line='1461' 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='1470' column='1'/>
-      <parameter type-id='type-id-8' name='inheritable' filepath='Python/fileutils.c' line='1470' column='1'/>
-      <parameter type-id='type-id-452' name='atomic_flag_works' filepath='Python/fileutils.c' line='1470' column='1'/>
-      <return type-id='type-id-8'/>
+    <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_get_inheritable' mangled-name='_Py_get_inheritable' filepath='Python/fileutils.c' line='1295' 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='79' column='1'/>
-      <return type-id='type-id-8'/>
+    <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>
-    <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-838'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='st_dev' type-id='type-id-839' 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-840' 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-841' 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-842' 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-843' 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-844' 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-839' 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-172' 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-845' 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-846' 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-807' 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-807' 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-807' 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-847' 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-18' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='145' column='1' id='type-id-839'/>
-    <typedef-decl name='__ino_t' type-id='type-id-18' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='148' column='1' id='type-id-840'/>
-    <typedef-decl name='__nlink_t' type-id='type-id-18' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='151' column='1' id='type-id-841'/>
-    <typedef-decl name='__mode_t' type-id='type-id-65' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='150' column='1' id='type-id-842'/>
-    <typedef-decl name='__uid_t' type-id='type-id-65' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='146' column='1' id='type-id-843'/>
-    <typedef-decl name='__gid_t' type-id='type-id-65' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='147' column='1' id='type-id-844'/>
-    <typedef-decl name='__blksize_t' type-id='type-id-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='174' column='1' id='type-id-845'/>
-    <typedef-decl name='__blkcnt_t' type-id='type-id-32' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='179' column='1' id='type-id-846'/>
-
-    <array-type-def dimensions='1' type-id='type-id-808' size-in-bits='192' id='type-id-847'>
-      <subrange length='3' type-id='type-id-18' id='type-id-322'/>
-
-    </array-type-def>
-    <pointer-type-def type-id='type-id-838' size-in-bits='64' id='type-id-848'/>
-    <function-decl name='_Py_stat' mangled-name='_Py_stat' filepath='Python/fileutils.c' line='1213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_stat'>
-      <parameter type-id='type-id-15' name='path' filepath='Python/fileutils.c' line='1213' column='1'/>
-      <parameter type-id='type-id-848' name='statbuf' filepath='Python/fileutils.c' line='1213' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_Py_fstat' mangled-name='_Py_fstat' filepath='Python/fileutils.c' line='1185' 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='1185' column='1'/>
-      <parameter type-id='type-id-848' name='status' filepath='Python/fileutils.c' line='1185' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_Py_fstat_noraise' mangled-name='_Py_fstat_noraise' filepath='Python/fileutils.c' line='1118' 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='1118' column='1'/>
-      <parameter type-id='type-id-848' name='status' filepath='Python/fileutils.c' line='1118' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_Py_GetLocaleEncodingObject' mangled-name='_Py_GetLocaleEncodingObject' filepath='Python/fileutils.c' line='922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetLocaleEncodingObject'>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='_Py_GetLocaleEncoding' mangled-name='_Py_GetLocaleEncoding' filepath='Python/fileutils.c' line='882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetLocaleEncoding'>
-      <return type-id='type-id-325'/>
+    <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>
-    <pointer-type-def type-id='type-id-157' size-in-bits='64' id='type-id-849'/>
-    <function-decl name='_Py_EncodeLocaleEx' mangled-name='_Py_EncodeLocaleEx' filepath='Python/fileutils.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeLocaleEx'>
-      <parameter type-id='type-id-478' name='text' filepath='Python/fileutils.c' line='861' column='1'/>
-      <parameter type-id='type-id-215' name='str' filepath='Python/fileutils.c' line='861' column='1'/>
-      <parameter type-id='type-id-849' name='error_pos' filepath='Python/fileutils.c' line='862' column='1'/>
-      <parameter type-id='type-id-198' name='reason' filepath='Python/fileutils.c' line='862' column='1'/>
-      <parameter type-id='type-id-8' name='current_locale' filepath='Python/fileutils.c' line='863' column='1'/>
-      <parameter type-id='type-id-366' name='errors' filepath='Python/fileutils.c' line='863' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_Py_EncodeLocaleRaw' mangled-name='_Py_EncodeLocaleRaw' filepath='Python/fileutils.c' line='854' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeLocaleRaw'>
-      <parameter type-id='type-id-478' name='text' filepath='Python/fileutils.c' line='854' column='1'/>
-      <parameter type-id='type-id-849' name='error_pos' filepath='Python/fileutils.c' line='854' column='1'/>
-      <return type-id='type-id-72'/>
+    <function-decl name='PyMapping_Size' mangled-name='PyMapping_Size' filepath='./Include/abstract.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_EncodeLocale' mangled-name='Py_EncodeLocale' filepath='Python/fileutils.c' line='845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EncodeLocale'>
-      <parameter type-id='type-id-478' name='text' filepath='Python/fileutils.c' line='854' column='1'/>
-      <parameter type-id='type-id-849' name='error_pos' filepath='Python/fileutils.c' line='854' column='1'/>
-      <return type-id='type-id-72'/>
+    <function-decl name='PyMapping_Values' mangled-name='PyMapping_Values' filepath='./Include/abstract.h' line='838' 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='643' 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='643' column='1'/>
-      <parameter type-id='type-id-849' name='wlen' filepath='Python/fileutils.c' line='643' column='1'/>
-      <return type-id='type-id-325'/>
+    <function-decl name='PyBytes_FromFormat' mangled-name='PyBytes_FromFormat' 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='_Py_DecodeLocaleEx' mangled-name='_Py_DecodeLocaleEx' filepath='Python/fileutils.c' line='581' 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='581' column='1'/>
-      <parameter type-id='type-id-329' name='wstr' filepath='Python/fileutils.c' line='581' column='1'/>
-      <parameter type-id='type-id-849' name='wlen' filepath='Python/fileutils.c' line='581' column='1'/>
-      <parameter type-id='type-id-198' name='reason' filepath='Python/fileutils.c' line='582' column='1'/>
-      <parameter type-id='type-id-8' name='current_locale' filepath='Python/fileutils.c' line='583' column='1'/>
-      <parameter type-id='type-id-366' name='errors' filepath='Python/fileutils.c' line='583' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyLong_AsTime_t' mangled-name='_PyLong_AsTime_t' filepath='./Include/cpython/pytime.h' line='48' 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='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ResetForceASCII'>
-      <return type-id='type-id-69'/>
+    <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_GetForceASCII' mangled-name='_Py_GetForceASCII' filepath='Python/fileutils.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetForceASCII'>
-      <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_device_encoding' mangled-name='_Py_device_encoding' filepath='Python/fileutils.c' line='67' 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='Objects/fileobject.c' line='329' column='1'/>
-      <return type-id='type-id-15'/>
+    <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>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/suggestions.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_Py_UTF8_Edit_Cost' mangled-name='_Py_UTF8_Edit_Cost' filepath='Python/suggestions.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_UTF8_Edit_Cost'>
-      <parameter type-id='type-id-15' name='a' filepath='Python/suggestions.c' line='264' column='1'/>
-      <parameter type-id='type-id-15' name='b' filepath='Python/suggestions.c' line='264' column='1'/>
-      <parameter type-id='type-id-30' name='max_cost' filepath='Python/suggestions.c' line='264' column='1'/>
-      <return type-id='type-id-30'/>
+    <function-decl name='_PyLong_FromTime_t' mangled-name='_PyLong_FromTime_t' filepath='./Include/cpython/pytime.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='./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-850'>
-      <subrange length='infinite' id='type-id-6'/>
-
-    </array-type-def>
-    <var-decl name='_PyImport_DynLoadFiletab' type-id='type-id-850' 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='713' 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='713' column='1'/>
-      <parameter type-id='type-id-215' name='argv' filepath='Modules/main.c' line='713' 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_Main' mangled-name='Py_Main' filepath='Modules/main.c' line='701' 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='701' column='1'/>
-      <parameter type-id='type-id-329' name='argv' filepath='Modules/main.c' line='701' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyGILState_Reinit' mangled-name='_PyGILState_Reinit' filepath='./Include/internal/pycore_pystate.h' line='137' 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='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_RunMain'>
-      <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>
-  </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='2358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsFinalized'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyImport_ReInitLock' mangled-name='_PyImport_ReInitLock' filepath='./Include/internal/pycore_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='PyObject_GC_IsTracked' mangled-name='PyObject_GC_IsTracked' filepath='Modules/gcmodule.c' line='2349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsTracked'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PySignal_AfterFork' mangled-name='_PySignal_AfterFork' filepath='./Include/internal/pycore_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='PyObject_GC_Del' mangled-name='PyObject_GC_Del' filepath='Modules/gcmodule.c' line='2335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_Del'>
-      <parameter type-id='type-id-20' name='op' filepath='Modules/gcmodule.c' line='2335' column='1'/>
-      <return type-id='type-id-69'/>
+    <function-decl name='_PyRuntimeState_ReInitThreads' mangled-name='_PyRuntimeState_ReInitThreads' filepath='./Include/internal/pycore_runtime.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_GC_Resize' mangled-name='_PyObject_GC_Resize' filepath='Modules/gcmodule.c' line='2317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Resize'>
-      <parameter type-id='type-id-474' name='op' filepath='Modules/gcmodule.c' line='2317' column='1'/>
-      <parameter type-id='type-id-30' name='nitems' filepath='Modules/gcmodule.c' line='2317' column='1'/>
-      <return type-id='type-id-474'/>
+    <function-decl name='_PyInterpreterState_DeleteExceptMain' mangled-name='_PyInterpreterState_DeleteExceptMain' filepath='./Include/internal/pycore_pystate.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_NewVar' mangled-name='_PyObject_GC_NewVar' filepath='Modules/gcmodule.c' line='2298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_NewVar'>
-      <parameter type-id='type-id-31' name='tp' filepath='Objects/object.c' line='192' column='1'/>
-      <parameter type-id='type-id-30' name='nitems' filepath='Objects/object.c' line='192' column='1'/>
-      <return type-id='type-id-474'/>
+    <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='_PyObject_GC_New' mangled-name='_PyObject_GC_New' filepath='Modules/gcmodule.c' line='2287' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_New'>
-      <parameter type-id='type-id-31' name='tp' filepath='Objects/object.c' line='181' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_set_blocking' mangled-name='_Py_set_blocking' filepath='./Include/cpython/fileutils.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_Calloc' mangled-name='_PyObject_GC_Calloc' filepath='Modules/gcmodule.c' line='2281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Calloc'>
-      <parameter type-id='type-id-157' name='basicsize' filepath='Modules/gcmodule.c' line='2281' column='1'/>
-      <return type-id='type-id-15'/>
+    <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>
-    <function-decl name='_PyObject_GC_Malloc' mangled-name='_PyObject_GC_Malloc' filepath='Modules/gcmodule.c' line='2275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Malloc'>
-      <parameter type-id='type-id-157' name='basicsize' filepath='Modules/gcmodule.c' line='2281' column='1'/>
-      <return type-id='type-id-15'/>
+    <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_IS_GC' mangled-name='PyObject_IS_GC' filepath='Modules/gcmodule.c' line='2230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IS_GC'>
-      <parameter type-id='type-id-15' name='o' filepath='Objects/abstract.c' line='2310' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyImport_ReleaseLock' mangled-name='_PyImport_ReleaseLock' filepath='./Include/cpython/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='PyObject_GC_UnTrack' mangled-name='PyObject_GC_UnTrack' filepath='Modules/gcmodule.c' line='2218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_UnTrack'>
-      <parameter type-id='type-id-20' name='op_raw' filepath='Modules/gcmodule.c' line='2218' column='1'/>
-      <return type-id='type-id-69'/>
+    <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='PyObject_GC_Track' mangled-name='PyObject_GC_Track' filepath='Modules/gcmodule.c' line='2199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_Track'>
-      <parameter type-id='type-id-20' name='op' filepath='Modules/gcmodule.c' line='2335' column='1'/>
-      <return type-id='type-id-69'/>
+    <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_Collect' mangled-name='PyGC_Collect' filepath='Modules/gcmodule.c' line='2081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_Collect'>
-      <return type-id='type-id-30'/>
+    <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_IsEnabled' mangled-name='PyGC_IsEnabled' filepath='Modules/gcmodule.c' line='2073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_IsEnabled'>
-      <return type-id='type-id-8'/>
+    <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='PyGC_Disable' mangled-name='PyGC_Disable' filepath='Modules/gcmodule.c' line='2064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_Disable'>
-      <return type-id='type-id-8'/>
+    <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>
-    <function-decl name='PyGC_Enable' mangled-name='PyGC_Enable' filepath='Modules/gcmodule.c' line='2055' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_Enable'>
-      <return type-id='type-id-8'/>
+    <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>
-    <function-decl name='PyInit_gc' mangled-name='PyInit_gc' filepath='Modules/gcmodule.c' line='2048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_gc'>
-      <return type-id='type-id-15'/>
+    <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>
-  </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='15815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_posix'>
-      <return type-id='type-id-15'/>
+    <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='PyOS_FSPath' mangled-name='PyOS_FSPath' filepath='./Modules/posixmodule.c' line='14351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_FSPath'>
-      <parameter type-id='type-id-15' name='v' filepath='Objects/abstract.c' line='2129' column='1'/>
-      <return type-id='type-id-15'/>
+    <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>
-    <function-decl name='_Py_Sigset_Converter' mangled-name='_Py_Sigset_Converter' filepath='./Modules/posixmodule.c' line='1501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Sigset_Converter'>
-      <parameter type-id='type-id-15' name='obj' filepath='./Modules/posixmodule.c' line='1501' column='1'/>
-      <parameter type-id='type-id-20' name='addr' filepath='./Modules/posixmodule.c' line='1501' 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='gid_t' type-id='type-id-844' filepath='/usr/include/x86_64-linux-gnu/sys/types.h' line='64' column='1' id='type-id-851'/>
-    <pointer-type-def type-id='type-id-851' size-in-bits='64' id='type-id-852'/>
-    <function-decl name='_Py_Gid_Converter' mangled-name='_Py_Gid_Converter' filepath='./Modules/posixmodule.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Gid_Converter'>
-      <parameter type-id='type-id-15' name='obj' filepath='./Modules/posixmodule.c' line='789' column='1'/>
-      <parameter type-id='type-id-852' name='p' filepath='./Modules/posixmodule.c' line='789' 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>
-    <typedef-decl name='uid_t' type-id='type-id-843' filepath='/usr/include/x86_64-linux-gnu/sys/types.h' line='79' column='1' id='type-id-853'/>
-    <pointer-type-def type-id='type-id-853' size-in-bits='64' id='type-id-854'/>
-    <function-decl name='_Py_Uid_Converter' mangled-name='_Py_Uid_Converter' filepath='./Modules/posixmodule.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Uid_Converter'>
-      <parameter type-id='type-id-15' name='obj' filepath='./Modules/posixmodule.c' line='683' column='1'/>
-      <parameter type-id='type-id-854' name='p' filepath='./Modules/posixmodule.c' line='683' column='1'/>
-      <return type-id='type-id-8'/>
+    <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_FromGid' mangled-name='_PyLong_FromGid' filepath='./Modules/posixmodule.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromGid'>
-      <parameter type-id='type-id-851' name='gid' filepath='./Modules/posixmodule.c' line='675' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='_PyLong_FromUid' mangled-name='_PyLong_FromUid' filepath='./Modules/posixmodule.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromUid'>
-      <parameter type-id='type-id-853' name='uid' filepath='./Modules/posixmodule.c' line='667' column='1'/>
-      <return type-id='type-id-15'/>
+    <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='649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork'>
-      <return type-id='type-id-69'/>
+    <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='589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork_Child'>
-      <return type-id='type-id-69'/>
+    <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='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork_Parent'>
-      <return type-id='type-id-69'/>
+    <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='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_BeforeFork'>
-      <return type-id='type-id-69'/>
+    <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>
   <abi-instr version='1.0' address-size='64' path='./Modules/errnomodule.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit_errno' mangled-name='PyInit_errno' filepath='./Modules/errnomodule.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_errno'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/pwdmodule.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit_pwd' mangled-name='PyInit_pwd' filepath='./Modules/pwdmodule.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_pwd'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyModule_AddType' mangled-name='PyModule_AddType' filepath='./Include/modsupport.h' line='152' 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='2962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__sre'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyModule_AddStringConstant' mangled-name='PyModule_AddStringConstant' filepath='./Include/modsupport.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_ToLowercase' mangled-name='_PyUnicode_ToLowercase' filepath='./Include/cpython/unicodeobject.h' line='1085' 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='1089' 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='__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='1061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__codecs'>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyInit__codecs' mangled-name='PyInit__codecs' filepath='./Modules/_codecsmodule.c' line='1067' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__codecs'>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyCodec_Unregister' mangled-name='PyCodec_Unregister' filepath='./Include/codecs.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </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='214' 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='910' 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='879' 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='626' 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='614' 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='795' 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='829' 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='767' 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='677' 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='870' 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='838' 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='522' 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='589' 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='445' 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='46' 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='433' 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-15'/>
+      <return type-id='type-id-16'/>
+    </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='41' 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='1534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__functools'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyType_GetModuleByDef' mangled-name='_PyType_GetModuleByDef' filepath='./Include/cpython/object.h' line='307' 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='57' 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='657' 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='1805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__operator'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyType_GetModuleState' mangled-name='PyType_GetModuleState' filepath='./Include/object.h' line='240' 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='./Include/abstract.h' line='738' 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='./Include/abstract.h' line='771' 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/_collectionsmodule.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__collections' mangled-name='PyInit__collections' filepath='./Modules/_collectionsmodule.c' line='2638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__collections'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PySequence_GetSlice' mangled-name='PySequence_GetSlice' filepath='./Include/abstract.h' line='673' 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='./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='_PyType_LookupId' mangled-name='_PyType_LookupId' 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>
   </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='971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__abc'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </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='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>
+    <function-decl name='PyMapping_Items' mangled-name='PyMapping_Items' filepath='./Include/abstract.h' line='843' 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='4904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_itertools'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </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='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_atexit'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </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='2027' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_IsMainThread'>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyOS_InterruptOccurred' mangled-name='PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='1994' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_InterruptOccurred'>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <class-decl name='_ts' size-in-bits='2240' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='62' column='1' id='type-id-855'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prev' type-id='type-id-10' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next' type-id='type-id-10' visibility='default' filepath='./Include/cpython/pystate.h' line='66' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='interp' type-id='type-id-222' visibility='default' filepath='./Include/cpython/pystate.h' line='67' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='frame' type-id='type-id-12' visibility='default' filepath='./Include/cpython/pystate.h' line='70' 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='71' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='recursion_headroom' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='72' 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='73' 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='78' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='cframe' type-id='type-id-13' visibility='default' filepath='./Include/cpython/pystate.h' line='82' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='c_profilefunc' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='84' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='c_tracefunc' type-id='type-id-14' visibility='default' filepath='./Include/cpython/pystate.h' line='85' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='c_profileobj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='c_traceobj' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='87' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='curexc_type' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='curexc_value' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='91' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='curexc_traceback' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='exc_state' type-id='type-id-16' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='exc_info' type-id='type-id-17' visibility='default' filepath='./Include/cpython/pystate.h' line='101' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='dict' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='103' 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='105' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='async_exc' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='107' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='thread_id' type-id='type-id-18' visibility='default' filepath='./Include/cpython/pystate.h' line='108' 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='110' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='trash_delete_later' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='111' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='on_delete' type-id='type-id-19' visibility='default' filepath='./Include/cpython/pystate.h' line='136' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='on_delete_data' type-id='type-id-20' visibility='default' filepath='./Include/cpython/pystate.h' line='137' 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='139' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='async_gen_firstiter' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='141' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='async_gen_finalizer' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='142' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='context' type-id='type-id-15' visibility='default' filepath='./Include/cpython/pystate.h' line='144' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='context_ver' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='145' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='id' type-id='type-id-21' visibility='default' filepath='./Include/cpython/pystate.h' line='148' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2112'>
-        <var-decl name='root_cframe' type-id='type-id-22' visibility='default' filepath='./Include/cpython/pystate.h' line='150' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyThreadState' type-id='type-id-855' filepath='./Include/pystate.h' line='20' column='1' id='type-id-856'/>
-    <pointer-type-def type-id='type-id-856' size-in-bits='64' id='type-id-857'/>
-    <function-decl name='_PyOS_InterruptOccurred' mangled-name='_PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='1976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_InterruptOccurred'>
-      <parameter type-id='type-id-857' name='tstate' filepath='./Modules/signalmodule.c' line='1976' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_Py_RestoreSignals' mangled-name='_Py_RestoreSignals' filepath='./Modules/signalmodule.c' line='1914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_RestoreSignals'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyErr_SetInterrupt' mangled-name='PyErr_SetInterrupt' filepath='./Modules/signalmodule.c' line='1876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetInterrupt'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyErr_SetInterruptEx' mangled-name='PyErr_SetInterruptEx' filepath='./Modules/signalmodule.c' line='1861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetInterruptEx'>
-      <parameter type-id='type-id-8' name='signum' filepath='./Modules/signalmodule.c' line='1861' column='1'/>
-      <return type-id='type-id-8'/>
+      <parameter type-id='type-id-9' name='signum' filepath='./Modules/signalmodule.c' line='1861' column='1'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='_PyErr_CheckSignals' mangled-name='_PyErr_CheckSignals' filepath='./Modules/signalmodule.c' line='1849' 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='1767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_CheckSignalsTstate'>
-      <parameter type-id='type-id-857' name='tstate' filepath='./Modules/signalmodule.c' line='1767' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyErr_CheckSignals' mangled-name='PyErr_CheckSignals' filepath='./Modules/signalmodule.c' line='1754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_CheckSignals'>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyInit__signal' mangled-name='PyInit__signal' filepath='./Modules/signalmodule.c' line='1714' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__signal'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyErr_CheckSignalsTstate' mangled-name='_PyErr_CheckSignalsTstate' filepath='./Modules/signalmodule.c' line='1767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_CheckSignalsTstate'>
+      <parameter type-id='type-id-703' name='tstate' filepath='./Modules/signalmodule.c' line='1767' column='1'/>
+      <return type-id='type-id-9'/>
+    </function-decl>
+    <function-decl name='_PyOS_InterruptOccurred' mangled-name='_PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='1976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_InterruptOccurred'>
+      <parameter type-id='type-id-703' name='tstate' filepath='./Modules/signalmodule.c' line='1976' column='1'/>
+      <return type-id='type-id-9'/>
+    </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='_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='__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='PyOS_getsig' mangled-name='PyOS_getsig' filepath='./Include/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='PyErr_NewException' mangled-name='PyErr_NewException' filepath='./Include/pyerrors.h' line='218' 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/cpython/pytime.h' line='93' 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/cpython/pytime.h' line='155' 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='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>
+    <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='_PyTime_AsTimeval' mangled-name='_PyTime_AsTimeval' filepath='./Include/cpython/pytime.h' line='126' 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='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='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='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='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>
   </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'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/timemodule.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit_time' mangled-name='PyInit_time' filepath='./Modules/timemodule.c' line='2042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_time'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </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/cpython/pytime.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_FromTimespec' mangled-name='_PyTime_FromTimespec' filepath='./Include/cpython/pytime.h' line='150' 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/cpython/pytime.h' line='185' 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/cpython/pytime.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_GetPerfCounterWithInfo' mangled-name='_PyTime_GetPerfCounterWithInfo' filepath='./Include/cpython/pytime.h' line='238' 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/cpython/pytime.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_ObjectToTime_t' mangled-name='_PyTime_ObjectToTime_t' filepath='./Include/cpython/pytime.h' line='52' 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/cpython/pytime.h' line='220' 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_FromTimeval' mangled-name='_PyTime_FromTimeval' filepath='./Include/cpython/pytime.h' line='120' 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/cpython/pytime.h' line='160' 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/cpython/pytime.h' line='88' 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='1709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__thread'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_PyErr_Display' mangled-name='_PyErr_Display' filepath='./Include/internal/pycore_pylifecycle.h' line='131' 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='159' 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='123' 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='129' 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='134' 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/cpython/pytime.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_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>
+    <function-decl name='PyErr_SetInterruptEx' mangled-name='PyErr_SetInterruptEx' filepath='./Include/pyerrors.h' line='229' 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='913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__locale'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_Py_GetLocaleEncodingObject' mangled-name='_Py_GetLocaleEncodingObject' filepath='./Include/internal/pycore_fileutils.h' line='54' 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='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='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='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>
+    <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>
   </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-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='158' column='1'/>
-    <var-decl name='_PyIO_str_closed' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='159' column='1'/>
-    <var-decl name='_PyIO_str_decode' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='160' column='1'/>
-    <var-decl name='_PyIO_str_encode' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='161' column='1'/>
-    <var-decl name='_PyIO_str_fileno' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='162' column='1'/>
-    <var-decl name='_PyIO_str_flush' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='163' column='1'/>
-    <var-decl name='_PyIO_str_getstate' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='164' column='1'/>
-    <var-decl name='_PyIO_str_isatty' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='165' column='1'/>
-    <var-decl name='_PyIO_str_newlines' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='166' column='1'/>
-    <var-decl name='_PyIO_str_nl' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='167' column='1'/>
-    <var-decl name='_PyIO_str_peek' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='168' column='1'/>
-    <var-decl name='_PyIO_str_read' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='169' column='1'/>
-    <var-decl name='_PyIO_str_read1' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='170' column='1'/>
-    <var-decl name='_PyIO_str_readable' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='171' column='1'/>
-    <var-decl name='_PyIO_str_readall' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='172' column='1'/>
-    <var-decl name='_PyIO_str_readinto' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='173' column='1'/>
-    <var-decl name='_PyIO_str_readline' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='174' column='1'/>
-    <var-decl name='_PyIO_str_reset' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='175' column='1'/>
-    <var-decl name='_PyIO_str_seek' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='176' column='1'/>
-    <var-decl name='_PyIO_str_seekable' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='177' column='1'/>
-    <var-decl name='_PyIO_str_setstate' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='178' column='1'/>
-    <var-decl name='_PyIO_str_tell' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='179' column='1'/>
-    <var-decl name='_PyIO_str_truncate' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='180' column='1'/>
-    <var-decl name='_PyIO_str_writable' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='181' column='1'/>
-    <var-decl name='_PyIO_str_write' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='182' column='1'/>
-    <var-decl name='_PyIO_empty_str' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='184' column='1'/>
-    <var-decl name='_PyIO_empty_bytes' type-id='type-id-15' visibility='default' filepath='./Modules/_io/_iomodule.h' line='185' column='1'/>
+    <var-decl name='_PyIO_str_close' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='158' column='1'/>
+    <var-decl name='_PyIO_str_closed' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='159' column='1'/>
+    <var-decl name='_PyIO_str_decode' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='160' column='1'/>
+    <var-decl name='_PyIO_str_encode' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='161' column='1'/>
+    <var-decl name='_PyIO_str_fileno' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='162' column='1'/>
+    <var-decl name='_PyIO_str_flush' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='163' column='1'/>
+    <var-decl name='_PyIO_str_getstate' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='164' column='1'/>
+    <var-decl name='_PyIO_str_isatty' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='165' column='1'/>
+    <var-decl name='_PyIO_str_newlines' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='166' column='1'/>
+    <var-decl name='_PyIO_str_nl' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='167' column='1'/>
+    <var-decl name='_PyIO_str_peek' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='168' column='1'/>
+    <var-decl name='_PyIO_str_read' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='169' column='1'/>
+    <var-decl name='_PyIO_str_read1' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='170' column='1'/>
+    <var-decl name='_PyIO_str_readable' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='171' column='1'/>
+    <var-decl name='_PyIO_str_readall' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='172' column='1'/>
+    <var-decl name='_PyIO_str_readinto' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='173' column='1'/>
+    <var-decl name='_PyIO_str_readline' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='174' column='1'/>
+    <var-decl name='_PyIO_str_reset' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='175' column='1'/>
+    <var-decl name='_PyIO_str_seek' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='176' column='1'/>
+    <var-decl name='_PyIO_str_seekable' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='177' column='1'/>
+    <var-decl name='_PyIO_str_setstate' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='178' column='1'/>
+    <var-decl name='_PyIO_str_tell' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='179' column='1'/>
+    <var-decl name='_PyIO_str_truncate' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='180' column='1'/>
+    <var-decl name='_PyIO_str_writable' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='181' column='1'/>
+    <var-decl name='_PyIO_str_write' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='182' column='1'/>
+    <var-decl name='_PyIO_empty_str' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='184' column='1'/>
+    <var-decl name='_PyIO_empty_bytes' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='185' column='1'/>
     <var-decl name='_PyIO_Module' type-id='type-id-465' visibility='default' filepath='./Modules/_io/_iomodule.h' line='140' column='1'/>
     <function-decl name='PyInit__io' mangled-name='PyInit__io' filepath='./Modules/_io/_iomodule.c' line='691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__io'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='PyModule_Create2' mangled-name='PyModule_Create2' filepath='./Include/modsupport.h' line='226' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFile_OpenCodeObject' mangled-name='PyFile_OpenCodeObject' filepath='./Include/cpython/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='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>
   </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-149' visibility='default' filepath='./Modules/_io/_iomodule.h' line='8' column='1'/>
     <var-decl name='PyRawIOBase_Type' type-id='type-id-149' 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='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='_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-149' 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-149' visibility='default' filepath='./Modules/_io/_iomodule.h' line='15' column='1'/>
     <var-decl name='_PyBytesIOBuffer_Type' type-id='type-id-149' mangled-name='_PyBytesIOBuffer_Type' visibility='default' filepath='./Modules/_io/_iomodule.h' line='187' column='1' elf-symbol-id='_PyBytesIOBuffer_Type'/>
+    <function-decl name='_PySys_GetSizeOf' mangled-name='_PySys_GetSizeOf' filepath='./Include/cpython/sysmodule.h' line='8' 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-149' visibility='default' filepath='./Modules/_io/_iomodule.h' line='10' column='1'/>
     <var-decl name='PyBufferedWriter_Type' type-id='type-id-149' visibility='default' filepath='./Modules/_io/_iomodule.h' line='18' column='1'/>
     <var-decl name='PyBufferedRWPair_Type' type-id='type-id-149' visibility='default' filepath='./Modules/_io/_iomodule.h' line='19' column='1'/>
     <var-decl name='PyBufferedRandom_Type' type-id='type-id-149' 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='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/_io/textio.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyTextIOBase_Type' type-id='type-id-149' visibility='default' filepath='./Modules/_io/_iomodule.h' line='11' column='1'/>
     <var-decl name='PyIncrementalNewlineDecoder_Type' type-id='type-id-149' visibility='default' filepath='./Modules/_io/_iomodule.h' line='22' column='1'/>
     <var-decl name='PyTextIOWrapper_Type' type-id='type-id-149' 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='170' 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='123' 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='148' 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='143' 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-149' 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='1323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_faulthandler'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </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_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>
+    <function-decl name='_Py_DumpExtensionModules' mangled-name='_Py_DumpExtensionModules' filepath='./Include/internal/pycore_pyerrors.h' line='87' 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'>
-      <parameter type-id='type-id-65' name='domain' filepath='./Modules/_tracemalloc.c' line='1812' column='1'/>
+      <parameter type-id='type-id-66' name='domain' filepath='./Modules/_tracemalloc.c' line='1812' column='1'/>
       <parameter type-id='type-id-321' name='ptr' filepath='./Modules/_tracemalloc.c' line='1812' column='1'/>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
     <function-decl name='PyTraceMalloc_Untrack' mangled-name='PyTraceMalloc_Untrack' filepath='./Modules/_tracemalloc.c' line='1753' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceMalloc_Untrack'>
-      <parameter type-id='type-id-65' name='domain' filepath='./Modules/_tracemalloc.c' line='1753' column='1'/>
+      <parameter type-id='type-id-66' name='domain' filepath='./Modules/_tracemalloc.c' line='1753' column='1'/>
       <parameter type-id='type-id-321' name='ptr' filepath='./Modules/_tracemalloc.c' line='1753' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='PyTraceMalloc_Track' mangled-name='PyTraceMalloc_Track' filepath='./Modules/_tracemalloc.c' line='1730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceMalloc_Track'>
-      <parameter type-id='type-id-65' name='domain' filepath='./Modules/_tracemalloc.c' line='1730' column='1'/>
+      <parameter type-id='type-id-66' name='domain' filepath='./Modules/_tracemalloc.c' line='1730' column='1'/>
       <parameter type-id='type-id-321' name='ptr' filepath='./Modules/_tracemalloc.c' line='1730' column='1'/>
       <parameter type-id='type-id-157' name='size' filepath='./Modules/_tracemalloc.c' line='1731' column='1'/>
-      <return type-id='type-id-8'/>
+      <return type-id='type-id-9'/>
     </function-decl>
     <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-15'/>
+      <return type-id='type-id-16'/>
+    </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_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='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='./Modules/symtablemodule.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__symtable' mangled-name='PyInit__symtable' filepath='./Modules/symtablemodule.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__symtable'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
+    </function-decl>
+    <function-decl name='_Py_SymtableStringObjectFlags' mangled-name='_Py_SymtableStringObjectFlags' filepath='./Include/internal/pycore_symtable.h' line='117' 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'>
-      <return type-id='type-id-15'/>
+      <return type-id='type-id-16'/>
     </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='Python/frozen.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_frozen' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/import.h' line='31' column='1' id='type-id-858'>
+    <class-decl name='_frozen' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/import.h' line='34' column='1' id='type-id-858'>
       <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='32' column='1'/>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/cpython/import.h' line='35' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='code' type-id='type-id-440' visibility='default' filepath='./Include/cpython/import.h' line='33' column='1'/>
+        <var-decl name='code' type-id='type-id-440' visibility='default' filepath='./Include/cpython/import.h' line='36' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='size' type-id='type-id-8' visibility='default' filepath='./Include/cpython/import.h' line='34' column='1'/>
+        <var-decl name='size' type-id='type-id-9' visibility='default' filepath='./Include/cpython/import.h' line='37' column='1'/>
       </data-member>
     </class-decl>
     <qualified-type-def type-id='type-id-858' const='yes' id='type-id-859'/>
     <pointer-type-def type-id='type-id-859' size-in-bits='64' id='type-id-860'/>
-    <var-decl name='PyImport_FrozenModules' type-id='type-id-860' mangled-name='PyImport_FrozenModules' visibility='default' filepath='./Include/cpython/import.h' line='40' column='1' elf-symbol-id='PyImport_FrozenModules'/>
+    <var-decl name='PyImport_FrozenModules' type-id='type-id-860' mangled-name='PyImport_FrozenModules' visibility='default' filepath='./Include/cpython/import.h' line='43' column='1' elf-symbol-id='PyImport_FrozenModules'/>
   </abi-instr>
 </abi-corpus>
index 561d1c616cc10e1dfc511ff999ecbc9fd6f21fc9..2e3362b834e6fb61241eafbef094382562ffc17c 100644 (file)
@@ -127,13 +127,11 @@ Intermezzo: Errors and Exceptions
 
 An important convention throughout the Python interpreter is the following: when
 a function fails, it should set an exception condition and return an error value
-(usually a ``NULL`` pointer).  Exceptions are stored in a static global variable
-inside the interpreter; if this variable is ``NULL`` no exception has occurred.  A
-second global variable stores the "associated value" of the exception (the
-second argument to :keyword:`raise`).  A third variable contains the stack
-traceback in case the error originated in Python code.  These three variables
-are the C equivalents of the result in Python of :meth:`sys.exc_info` (see the
-section on module :mod:`sys` in the Python Library Reference).  It is important
+(usually ``-1`` or a ``NULL`` pointer).  Exception information is stored in
+three members of the interpreter's thread state.  These are ``NULL`` if
+there is no exception.  Otherwise they are the C equivalents of the members
+of the Python tuple returned by :meth:`sys.exc_info`.  These are the
+exception type, exception instance, and a traceback object.  It is important
 to know about them to understand how errors are passed around.
 
 The Python API defines a number of functions to set various types of exceptions.
index 6e17897ed2c805890cfe5d0799a5f51dafc4a46a..f75bee9e6f2a2b0950251aab6fb50f36928d6d2a 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::
@@ -381,7 +393,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 720b1e496eb8482ee74b29e99f2bbf6bd5f37854..0437b59d55da6e01e0213fa97fbe7ff98d934c83 100644 (file)
@@ -714,7 +714,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 45c20bd6cadb293b9a04bb42be475455f30adb12..faca834e96545571524037b21ec16f5957ba0d96 100644 (file)
@@ -243,9 +243,6 @@ Be sure to use the :mod:`threading` module and not the :mod:`_thread` module.
 The :mod:`threading` module builds convenient abstractions on top of the
 low-level primitives provided by the :mod:`_thread` module.
 
-Aahz has a set of slides from his threading tutorial that are helpful; see
-http://www.pythoncraft.com/OSCON2001/.
-
 
 None of my threads seem to run: why?
 ------------------------------------
@@ -617,9 +614,9 @@ use ``p.read(n)``.
 How do I access the serial (RS232) port?
 ----------------------------------------
 
-For Win32, POSIX (Linux, BSD, etc.), Jython:
+For Win32, OSX, Linux, BSD, Jython, IronPython:
 
-   http://pyserial.sourceforge.net
+   https://pypi.org/project/pyserial/
 
 For Unix, see a Usenet post by Mitch Chapman:
 
index ef80808a1a4d5ead0800bfe0ca71487691139fff..154563a859e31bd591ee0522777f5c6c68df5a2a 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?
 --------------------------------------
 
@@ -2071,7 +2092,7 @@ Jim Roskind suggests performing steps in the following order in each module:
 * ``import`` statements
 * active code (including globals that are initialized from imported values).
 
-van Rossum doesn't like this approach much because the imports appear in a
+Van Rossum doesn't like this approach much because the imports appear in a
 strange place, but it does work.
 
 Matthias Urlichs recommends restructuring your code so that the recursive import
index 652f8d919607fe938444ef627a045f196c3be583..1bbd05a5bcecd0a867e6fa33ccd4890390cca25f 100644 (file)
@@ -520,12 +520,13 @@ Glossary
       :func:`functools.singledispatch` decorator, and :pep:`443`.
 
    generic type
-      A :term:`type` that can be parameterized; typically a container like
-      :class:`list`. Used for :term:`type hints <type hint>` and
+      A :term:`type` that can be parameterized; typically a
+      :ref:`container class<sequence-types>` such as :class:`list` or
+      :class:`dict`. Used for :term:`type hints <type hint>` and
       :term:`annotations <annotation>`.
 
-      See :pep:`483` for more details, and :mod:`typing` or
-      :ref:`generic alias type <types-genericalias>` for its uses.
+      For more details, see :ref:`generic alias types<types-genericalias>`,
+      :pep:`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` module.
 
    GIL
       See :term:`global interpreter lock`.
@@ -668,6 +669,11 @@ Glossary
 
       More information can be found in :ref:`typeiter`.
 
+      .. impl-detail::
+
+         CPython does not consistently apply the requirement that an iterator
+         define :meth:`__iter__`.
+
    key function
       A key function or collation function is a callable that returns a value
       used for sorting or ordering.  For example, :func:`locale.strxfrm` is
index 575caeb720f3d0fa6f84580e7a449f768d50abe2..6ce062d0fa853e0d09f15f8b44f6b37c60cd5377 100644 (file)
@@ -1264,6 +1264,9 @@ Using the non-data descriptor protocol, a pure Python version of
         def __get__(self, obj, objtype=None):
             return self.f
 
+        def __call__(self, *args, **kwds):
+            return self.f(*args, **kwds)
+
 .. testcode::
     :hide:
 
@@ -1272,6 +1275,8 @@ Using the non-data descriptor protocol, a pure Python version of
         def f(x):
             return x * 10
 
+    wrapped_ord = StaticMethod(ord)
+
 .. doctest::
     :hide:
 
@@ -1279,6 +1284,8 @@ Using the non-data descriptor protocol, a pure Python version of
     30
     >>> E_sim().f(3)
     30
+    >>> wrapped_ord('A')
+    65
 
 
 Class methods
@@ -1344,7 +1351,7 @@ Using the non-data descriptor protocol, a pure Python version of
             if cls is None:
                 cls = type(obj)
             if hasattr(type(self.f), '__get__'):
-                return self.f.__get__(cls)
+                return self.f.__get__(cls, cls)
             return MethodType(self.f, cls)
 
 .. testcode::
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 2ab8c52e23ea1b22117c65da6c11cfee8ad9fac6..f82150a4f2e0201286f05f5376921f362cd08347 100644 (file)
@@ -541,6 +541,17 @@ alternative there, as well as adapting the above script to use your alternative
 serialization.
 
 
+Running a logging socket listener in production
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To run a logging listener in production, you may need to use a process-management tool
+such as `Supervisor <http://supervisord.org/>`_. `Here
+<https://gist.github.com/vsajip/4b227eeec43817465ca835ca66f75e2b>`_ is a Gist which
+provides the bare-bones files to run the above functionality using Supervisor: you
+will need to change the `/path/to/` parts in the Gist to reflect the actual paths you
+want to use.
+
+
 .. _context-info:
 
 Adding contextual information to your logging output
@@ -982,6 +993,17 @@ to this (remembering to first import :mod:`concurrent.futures`)::
         for i in range(10):
             executor.submit(worker_process, queue, worker_configurer)
 
+Deploying Web applications using Gunicorn and uWSGI
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When deploying Web applications using `Gunicorn <https://gunicorn.org/>`_ or `uWSGI
+<https://uwsgi-docs.readthedocs.io/en/latest/>`_ (or similar), multiple worker
+processes are created to handle client requests. In such environments, avoid creating
+file-based handlers directly in your web application. Instead, use a
+:class:`SocketHandler` to log from the web application to a listener in a separate
+process. This can be set up using a process management tool such as Supervisor - see
+`Running a logging socket listener in production`_ for more details.
+
 
 Using file rotation
 -------------------
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 116a9a9d1d729f141d58ac189c60ee0d7abf7eaf..c5f36a7fcf077511b69450a168e006f3187d4dd0 100644 (file)
@@ -116,8 +116,8 @@ Idiomatic Usage
 ^^^^^^^^^^^^^^^
 
 Some modules contain code that is intended for script use only, like parsing
-command-line arguments or fetching data from standard input.  When a module
-like this were to be imported from a different module, for example to unit test
+command-line arguments or fetching data from standard input.  If a module
+like this was imported from a different module, for example to unit test
 it, the script code would unintentionally execute as well.
 
 This is where using the ``if __name__ == '__main__'`` code block comes in
@@ -231,7 +231,7 @@ students::
     print(f'Found student: {search_students(student_name)}')
 
 Note that ``from .student import search_students`` is an example of a relative
-import.  This import style must be used when referencing modules within a
+import.  This import style can be used when referencing modules within a
 package.  For more details, see :ref:`intra-package-references` in the
 :ref:`tut-modules` section of the tutorial.
 
index d84c841fa4a08e549b70b8f375c64b5221c953f6..e29b5e88d71d412acc4cb9a76e7662d412ebfa80 100644 (file)
@@ -1920,7 +1920,7 @@ and classes for traversing abstract syntax trees:
    If source contains a null character ('\0'), :exc:`ValueError` is raised.
 
     .. warning::
-      Note that succesfully parsing souce code into an AST object doesn't
+      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
index eee8095bd4c0fbafff9d9a0a652cda15e6f07b45..252fb426e5b390f400243e8cb997fa5c49b72242 100644 (file)
@@ -631,6 +631,11 @@ Creating network servers
        assumed and a list of multiple sockets will be returned (most likely
        one for IPv4 and another one for IPv6).
 
+   * The *port* parameter can be set to specify which port the server should
+     listen on. If ``0`` or ``None`` (the default), a random unused port will
+     be selected (note that if *host* resolves to multiple network interfaces,
+     a different random port will be selected for each interface).
+
    * *family* can be set to either :data:`socket.AF_INET` or
      :data:`~socket.AF_INET6` to force the socket to use IPv4 or IPv6.
      If not set, the *family* will be determined from host name
@@ -1242,9 +1247,10 @@ async/await code consider using the high-level
 
 .. note::
 
-   The default asyncio event loop on **Windows** does not support
-   subprocesses. See :ref:`Subprocess Support on Windows
-   <asyncio-windows-subprocess>` for details.
+   On Windows, the default event loop :class:`ProactorEventLoop` supports
+   subprocesses, whereas :class:`SelectorEventLoop` does not. See
+   :ref:`Subprocess Support on Windows <asyncio-windows-subprocess>` for
+   details.
 
 .. coroutinemethod:: loop.subprocess_exec(protocol_factory, *args, \
                       stdin=subprocess.PIPE, stdout=subprocess.PIPE, \
index ef496a23f5cd4c5b040b55a2812bd1b4fd2ebb10..3496387c178af75fa115603a3ed3c0b0b29bc765 100644 (file)
@@ -54,6 +54,9 @@ Future Functions
       See also the :func:`create_task` function which is the
       preferred way for creating new Tasks.
 
+      Save a reference to the result of this function, to avoid
+      a task disappearing mid execution.
+
    .. versionchanged:: 3.5.1
       The function accepts any :term:`awaitable` object.
 
index b3e229c24f07d1078110f240d13299ab17b5400e..95a8e4649beede07dca948eada56cd6099e2caea 100644 (file)
@@ -395,8 +395,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 fb86892547b5fc0e4db5ed5c9c175da3002c9b6b..f18b0e347b631494dc9607d49e1655526dcd2143 100644 (file)
@@ -274,6 +274,11 @@ Creating Tasks
        task = asyncio.ensure_future(coro())
        ...
 
+   .. important::
+
+      Save a reference to the result of this function, to avoid
+      a task disappearing mid execution.
+
    .. versionadded:: 3.7
 
    .. versionchanged:: 3.8
index f91547bd58403e0106533e72c1e4e896b1692dfe..35fb7b69fa4925eb349c36f00ea75175f0a76d5b 100644 (file)
@@ -152,7 +152,7 @@ The modern interface provides:
    This version does not allow the digit 0 (zero) to the letter O (oh) and digit
    1 (one) to either the letter I (eye) or letter L (el) mappings, all these
    characters are included in the Extended Hex Alphabet and are not
-   interchangable.
+   interchangeable.
 
    .. versionadded:: 3.10
 
index 0abc87f919de6af4c07524ecbc0725da7cbe32fb..2c941b47748d36a781d406f04adcccb628022ce7 100644 (file)
@@ -104,6 +104,9 @@ example, knowing that a class supplies ``__getitem__``, ``__len__``, and
 ``__iter__`` is insufficient for distinguishing a :class:`Sequence` from
 a :class:`Mapping`.
 
+.. versionadded:: 3.9
+   These abstract classes now support ``[]``. See :ref:`types-genericalias`
+   and :pep:`585`.
 
 .. _collections-abstract-base-classes:
 
index 4ba197e11e97bd5a77b258849a256e9697ad24b8..8bf3cb6cb12da17cac0b0b792b5b8f3202f7027e 100644 (file)
@@ -343,7 +343,7 @@ All of those tests treat missing elements as having zero counts so that
 ``Counter(a=1) == Counter(a=1, b=0)`` returns true.
 
 .. versionadded:: 3.10
-   Rich comparison operations we were added
+   Rich comparison operations were added.
 
 .. versionchanged:: 3.10
    In equality tests, missing elements are treated as having zero counts.
index 3dbf3a8f13da74e7b10afba8eb26a1576d979f14..b6ec6b8c876bee72180cda8cd0cc388ccf254747 100644 (file)
@@ -130,7 +130,9 @@ Functions and classes provided:
    either as decorators or with :keyword:`async with` statements::
 
      import time
+     from contextlib import asynccontextmanager
 
+     @asynccontextmanager
      async def timeit():
          now = time.monotonic()
          try:
index 14ac47f4c9eb164050749ff5b7431b720c11145d..be1dd0c9eb57e8a8a4a9f4a60e8aebdf42d7baf9 100644 (file)
@@ -94,7 +94,7 @@ Context Variables
           # var.get() would raise a LookupError.
 
 
-.. class:: contextvars.Token
+.. class:: Token
 
    *Token* objects are returned by the :meth:`ContextVar.set` method.
    They can be passed to the :meth:`ContextVar.reset` method to revert
index 01ebf198d7c501c1d5161c1679423405c125b02e..a8bc2fa55ea8c31b48913c3bca241e6022bb6c72 100644 (file)
@@ -60,7 +60,7 @@ The :func:`deepcopy` function avoids these problems by:
   components copied.
 
 This module does not copy types like module, method, stack trace, stack frame,
-file, socket, window, array, or any similar types.  It does "copy" functions and
+file, socket, window, or any similar types.  It does "copy" functions and
 classes (shallow and deeply), by returning the original object unchanged; this
 is compatible with the way these are treated by the :mod:`pickle` module.
 
index 5915bacbcdc4ec8dcc96c208fe8bad5784ecb2a1..7f9ffcb6137b405067f5b0faf563421db1bbf620 100644 (file)
@@ -324,7 +324,10 @@ Module contents
    Converts the dataclass ``instance`` to a dict (by using the
    factory function ``dict_factory``).  Each dataclass is converted
    to a dict of its fields, as ``name: value`` pairs.  dataclasses, dicts,
-   lists, and tuples are recursed into.  For example::
+   lists, and tuples are recursed into.  Other objects are copied with
+   :func:`copy.deepcopy`.
+
+   Example of using :func:`asdict` on nested dataclasses::
 
      @dataclass
      class Point:
@@ -341,21 +344,32 @@ Module contents
      c = C([Point(0, 0), Point(10, 4)])
      assert asdict(c) == {'mylist': [{'x': 0, 'y': 0}, {'x': 10, 'y': 4}]}
 
-   Raises :exc:`TypeError` if ``instance`` is not a dataclass instance.
+   To create a shallow copy, the following workaround may be used::
+
+     dict((field.name, getattr(instance, field.name)) for field in fields(instance))
+
+   :func:`asdict` raises :exc:`TypeError` if ``instance`` is not a dataclass
+   instance.
 
 .. function:: astuple(instance, *, tuple_factory=tuple)
 
    Converts the dataclass ``instance`` to a tuple (by using the
    factory function ``tuple_factory``).  Each dataclass is converted
    to a tuple of its field values.  dataclasses, dicts, lists, and
-   tuples are recursed into.
+   tuples are recursed into. Other objects are copied with
+   :func:`copy.deepcopy`.
 
    Continuing from the previous example::
 
      assert astuple(p) == (10, 20)
      assert astuple(c) == ([(0, 0), (10, 4)],)
 
-   Raises :exc:`TypeError` if ``instance`` is not a dataclass instance.
+   To create a shallow copy, the following workaround may be used::
+
+     tuple(getattr(instance, field.name) for field in dataclasses.fields(instance))
+
+   :func:`astuple` raises :exc:`TypeError` if ``instance`` is not a dataclass
+   instance.
 
 .. function:: make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False)
 
index 196aa84473f135aab0c029c49d60026005318ce3..217cdf222b89b773fda515ea83e9da985fc90e89 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
@@ -2357,8 +2359,8 @@ requires, and these work on all platforms with a standard C implementation.
 |           | decimal number.                |                        | \(9)  |
 +-----------+--------------------------------+------------------------+-------+
 | ``%f``    | Microsecond as a decimal       | 000000, 000001, ...,   | \(5)  |
-|           | number, zero-padded on the     | 999999                 |       |
-|           | left.                          |                        |       |
+|           | number, zero-padded to 6       | 999999                 |       |
+|           | digits.                        |                        |       |
 +-----------+--------------------------------+------------------------+-------+
 | ``%z``    | UTC offset in the form         | (empty), +0000,        | \(6)  |
 |           | ``±HHMM[SS[.ffffff]]`` (empty  | -0400, +1030,          |       |
index e8e49425ab90a02f4d2ddb55ff5d61552361a5d7..7d166bfb1fcc6123ce72cfc4d629a00622033560 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
-or a member (depending on if the name ends with an underscore). Using these names
-in 3.9 will issue a :exc:`DeprecationWarning`.
+: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.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.11.
+
 .. versionchanged:: 3.5
 
 
@@ -1200,3 +1204,9 @@ 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)`` will produce something
+   like ``<Color.BLUE|GREEN|RED: 7>``.
+
index 1a883ba19af4f5933d7f8f93f7f41aa041d45ea5..f8a692e8127913f304f71f021c40776c41c75152 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
 ------------
 
index b840393292412596ced80b5130e816c99a7ce960..19cf7c67754f6e620cd7a4be0341b87b8e6b1cd4 100644 (file)
@@ -50,7 +50,7 @@ You can control how files are opened by providing an opening hook via the
 *openhook* parameter to :func:`fileinput.input` or :class:`FileInput()`. The
 hook must be a function that takes two arguments, *filename* and *mode*, and
 returns an accordingly opened file-like object. If *encoding* and/or *errors*
-are specified, they will be passed to the hook as aditional keyword arguments.
+are specified, they will be passed to the hook as additional keyword arguments.
 This module provides a :func:`hook_compressed` to support compressed files.
 
 The following function is the primary interface of this module:
index f4c3ef4600f6b749f5a32ff130ddcf20e0b480cf..307d67978559c9238365fa247f4098b3d0ffd525 100644 (file)
@@ -66,9 +66,6 @@ are always available.  They are listed here in alphabetical order.
    Return an :term:`asynchronous iterator` for an :term:`asynchronous iterable`.
    Equivalent to calling ``x.__aiter__()``.
 
-   ``aiter(x)`` itself has an ``__aiter__()`` method that returns ``x``,
-   so ``aiter(aiter(x))`` is the same as ``aiter(x)``.
-
    Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant.
 
    .. versionadded:: 3.10
@@ -557,7 +554,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
@@ -929,8 +926,8 @@ are always available.  They are listed here in alphabetical order.
    Return an :term:`iterator` object.  The first argument is interpreted very
    differently depending on the presence of the second argument. Without a
    second argument, *object* must be a collection object which supports the
-   iteration protocol (the :meth:`__iter__` method), or it must support the
-   sequence protocol (the :meth:`__getitem__` method with integer arguments
+   :term:`iterable` protocol (the :meth:`__iter__` method), or it must support
+   the sequence protocol (the :meth:`__getitem__` method with integer arguments
    starting at ``0``).  If it does not support either of those protocols,
    :exc:`TypeError` is raised. If the second argument, *sentinel*, is given,
    then *object* must be a callable object.  The iterator created in this case
@@ -1060,7 +1057,7 @@ are always available.  They are listed here in alphabetical order.
 
 .. function:: next(iterator[, default])
 
-   Retrieve the next item from the *iterator* by calling its
+   Retrieve the next item from the :term:`iterator` by calling its
    :meth:`~iterator.__next__` method.  If *default* is given, it is returned
    if the iterator is exhausted, otherwise :exc:`StopIteration` is raised.
 
@@ -1357,7 +1354,10 @@ are always available.  They are listed here in alphabetical order.
    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, ``pow(10, 2)``
-   returns ``100``, but ``pow(10, -2)`` returns ``0.01``.
+   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
index e40fe7bb85fc6ddb188729a267b40ee4562d987c..c78818bfab1a51c1cd946b825eb317c2c4dcb0a8 100644 (file)
@@ -160,10 +160,16 @@ The :mod:`functools` module defines the following functions:
    grow without bound.
 
    If *typed* is set to true, function arguments of different types will be
-   cached separately.  For example, ``f(3)`` and ``f(3.0)`` will always be
-   treated as distinct calls with distinct results.  If *typed* is false,
-   the implementation will usually but not always regard them as equivalent
-   calls and only cache a single result.
+   cached separately.  If *typed* is false, the implementation will usually
+   regard them as equivalent calls and only cache a single result. (Some
+   types such as *str* and *int* may be cached separately even when *typed*
+   is false.)
+
+   Note, type specificity applies only to the function's immediate arguments
+   rather than their contents.  The scalar arguments, ``Decimal(42)`` and
+   ``Fraction(42)`` are be treated as distinct calls with distinct results.
+   In contrast, the tuple arguments ``('answer', Decimal(42))`` and
+   ``('answer', Fraction(42))`` are treated as equivalent.
 
    The wrapped function is instrumented with a :func:`cache_parameters`
    function that returns a new :class:`dict` showing the values for *maxsize*
@@ -402,8 +408,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
@@ -413,9 +419,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):
@@ -441,17 +447,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)
@@ -486,11 +492,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
@@ -503,7 +510,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)
@@ -526,7 +533,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)
@@ -535,8 +542,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
@@ -552,9 +560,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
@@ -572,8 +581,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 77b35fd1d766c8fd558319edc148b26cceb0bd41..0c3bd7b5ac2c996d599e9a178b02f64a64050335 100644 (file)
@@ -500,7 +500,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 6234e65629ea08cfa526933d2a77765f8af1a6b1..3d59665be4f2540e281f3441cc507d1a821519f7 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 c43457a3850678c46d938df6433095e498f8e55e..99bcfeb2d1b55d88ddc8fe65d2e5a2e7f4e03261 100644 (file)
@@ -11,7 +11,7 @@
 .. versionchanged:: 3.10
    ``importlib.metadata`` is no longer provisional.
 
-**Source code:** :source:`Lib/importlib/metadata.py`
+**Source code:** :source:`Lib/importlib/metadata/__init__.py`
 
 ``importlib.metadata`` is a library that provides for access to installed
 package metadata.  Built in part on Python's import system, this library
@@ -255,7 +255,7 @@ function::
 Package distributions
 ---------------------
 
-A convience method to resolve the distribution or
+A convenience method to resolve the distribution or
 distributions (in the case of a namespace package) for top-level
 Python packages or modules::
 
index b5ee7a6b9659afcdc33fbe671141f5a3d76e35ca..3576941efa46d96695c08da51fef1eee4a7c7a24 100644 (file)
@@ -815,6 +815,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 74d922d29db69ce8284f3799684efb8c4ed15ff3..9c2dff55703273ffa21d86c113b4aa473b912652 100644 (file)
@@ -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 5cae79f5dc9dbce3e0d40da5b2648eed12f38d53..c3b4699cb05af6ef5742337903de79c2ef3e6bf5 100644 (file)
@@ -9,7 +9,7 @@
 --------------
 
 This module allows a Python program to determine if a string is a
-:ref:`keyword <keywords>`.
+:ref:`keyword <keywords>` or :ref:`soft keyword <soft-keywords>`.
 
 
 .. function:: iskeyword(s)
@@ -26,14 +26,14 @@ This module allows a Python program to determine if a string is a
 
 .. function:: issoftkeyword(s)
 
-   Return ``True`` if *s* is a Python soft :ref:`keyword <keywords>`.
+   Return ``True`` if *s* is a Python :ref:`soft keyword <soft-keywords>`.
 
    .. versionadded:: 3.9
 
 
 .. data:: softkwlist
 
-   Sequence containing all the soft :ref:`keywords <keywords>` defined for the
+   Sequence containing all the :ref:`soft keywords <soft-keywords>` defined for the
    interpreter.  If any soft keywords are defined to only be active when particular
    :mod:`__future__` statements are in effect, these will be included as well.
 
index 9de115a92c2930d91e0e99a4dedfdc29f43bb2c9..bb1bbf0e3708ca58cdfb043e5511938801318d83 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')
@@ -1000,7 +1000,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)
index 7225b65dcb05d32eca7bb1a108291b062d6f30aa..4562128394f88ccebe080c42997c96f66d4e1ecc 100644 (file)
@@ -2635,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 cba576a29e2e2bb1ef58d870006ec4c63f6c510e..2ba42b7e579a77738fd8dfbe79830fd2ab45798f 100644 (file)
@@ -342,3 +342,30 @@ behind it:
    >>> c.shm.close()
    >>> c.shm.unlink()
 
+The following examples demonstrates that ``ShareableList``
+(and underlying ``SharedMemory``) objects
+can be pickled and unpickled if needed.
+Note, that it will still be the same shared object.
+This happens, because the deserialized object has
+the same unique name and is just attached to an existing
+object with the same name (if the object is still alive):
+
+   >>> import pickle
+   >>> from multiprocessing import shared_memory
+   >>> sl = shared_memory.ShareableList(range(10))
+   >>> list(sl)
+   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+   >>> deserialized_sl = pickle.loads(pickle.dumps(sl))
+   >>> list(deserialized_sl)
+   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+   >>> sl[0] = -1
+   >>> deserialized_sl[1] = -2
+   >>> list(sl)
+   [-1, -2, 2, 3, 4, 5, 6, 7, 8, 9]
+   >>> list(deserialized_sl)
+   [-1, -2, 2, 3, 4, 5, 6, 7, 8, 9]
+
+   >>> sl.shm.close()
+   >>> sl.shm.unlink()
index 237ca4b4b58ef1cc59f2fb270787b760bb2687bc..39d7e40dd915c3b6f16a684b7db9acc94ffd1c12 100644 (file)
@@ -170,9 +170,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
@@ -209,10 +210,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``.
index e924127d8b828d81ad71813a68c8992622164cf6..b9c33af59c8fa769a44dff4d3374c1203a1c35f8 100644 (file)
@@ -512,7 +512,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, quantiles
 
@@ -524,14 +524,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}   Max wait: {max(waits):.1f}')
     print('Quartiles:', [round(q, 1) for q in quantiles(waits)])
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 3c81858868010a3e67d7207eaad5d1e26ff170a9..7ce8e5b0d8038195674bfb17b4a149d24440a4c1 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
@@ -558,7 +562,7 @@ Creating sockets
 The following functions all create :ref:`socket objects <socket-objects>`.
 
 
-.. function:: socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
+.. class:: socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
 
    Create a new socket using the given address family, socket type and protocol
    number.  The address family should be :const:`AF_INET` (the default),
@@ -827,8 +831,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 d29e425cb907882f1b5aee7f1e5160485dcf7cf2..f3964b9aa23ae373b3fa6c8bf3112a9e4b18475a 100644 (file)
@@ -21,16 +21,17 @@ The sqlite3 module was written by Gerhard Häring.  It provides a SQL interface
 compliant with the DB-API 2.0 specification described by :pep:`249`, and
 requires SQLite 3.7.15 or newer.
 
-To use the module, you must first create a :class:`Connection` object that
+To use the module, start by creating a :class:`Connection` object that
 represents the database.  Here the data will be stored in the
 :file:`example.db` file::
 
    import sqlite3
    con = sqlite3.connect('example.db')
 
-You can also supply the special name ``:memory:`` to create a database in RAM.
+The special path name ``:memory:`` can be provided to create a temporary
+database in RAM.
 
-Once you have a :class:`Connection`, you can create a :class:`Cursor`  object
+Once a :class:`Connection` has been established, create a :class:`Cursor` object
 and call its :meth:`~Cursor.execute` method to perform SQL commands::
 
    cur = con.cursor()
@@ -49,16 +50,17 @@ and call its :meth:`~Cursor.execute` method to perform SQL commands::
    # Just be sure any changes have been committed or they will be lost.
    con.close()
 
-The data you've saved is persistent and is available in subsequent sessions::
+The saved data is persistent: it can be reloaded in a subsequent session even
+after restarting the Python interpreter::
 
    import sqlite3
    con = sqlite3.connect('example.db')
    cur = con.cursor()
 
-To retrieve data after executing a SELECT statement, you can either treat the
-cursor as an :term:`iterator`, call the cursor's :meth:`~Cursor.fetchone` method to
-retrieve a single matching row, or call :meth:`~Cursor.fetchall` to get a list of the
-matching rows.
+To retrieve data after executing a SELECT statement, either treat the cursor as
+an :term:`iterator`, call the cursor's :meth:`~Cursor.fetchone` method to
+retrieve a single matching row, or call :meth:`~Cursor.fetchall` to get a list
+of the matching rows.
 
 This example uses the iterator form::
 
@@ -73,27 +75,27 @@ This example uses the iterator form::
 
 .. _sqlite3-placeholders:
 
-Usually your SQL operations will need to use values from Python variables.  You
-shouldn't assemble your query using Python's string operations because doing so
-is insecure; it makes your program vulnerable to an SQL injection attack
-(see the `xkcd webcomic <https://xkcd.com/327/>`_ for a humorous example of
-what can go wrong)::
+SQL operations usually need to use values from Python variables. However,
+beware of using Python's string operations to assemble queries, as they
+are vulnerable to SQL injection attacks (see the `xkcd webcomic
+<https://xkcd.com/327/>`_ for a humorous example of what can go wrong)::
 
    # Never do this -- insecure!
    symbol = 'RHAT'
    cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
 
-Instead, use the DB-API's parameter substitution. Put a placeholder wherever
-you want to use a value, and then provide a tuple of values as the second
-argument to the cursor's :meth:`~Cursor.execute` method. An SQL statement may
+Instead, use the DB-API's parameter substitution. To insert a variable into a
+query string, use a placeholder in the string, and substitute the actual values
+into the query by providing them as a :class:`tuple` of values to the second
+argument of the cursor's :meth:`~Cursor.execute` method. An SQL statement may
 use one of two kinds of placeholders: question marks (qmark style) or named
 placeholders (named style). For the qmark style, ``parameters`` must be a
 :term:`sequence <sequence>`. For the named style, it can be either a
 :term:`sequence <sequence>` or :class:`dict` instance. The length of the
 :term:`sequence <sequence>` must match the number of placeholders, or a
 :exc:`ProgrammingError` is raised. If a :class:`dict` is given, it must contain
-keys for all named parameters. Any extra items are ignored. Here's an example
-of both styles:
+keys for all named parameters. Any extra items are ignored. Here's an example of
+both styles:
 
 .. literalinclude:: ../includes/sqlite3/execute_1.py
 
@@ -117,6 +119,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
@@ -139,6 +159,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
@@ -528,8 +568,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.
@@ -701,6 +741,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
@@ -1026,6 +1074,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:
 
index 4d75616488b5f309f0a3009770e9a9278e373ad8..a20f97a26535e8820df5947069b2aaceeaf4fb1c 100644 (file)
@@ -1576,7 +1576,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 d6eff144cce541805f35e91551fdb9eef133ffde..1b18abcd6c95c580395359753d702d226c7d0dc5 100644 (file)
@@ -772,21 +772,21 @@ using two distinct methods; these are used to allow user-defined classes to
 support iteration.  Sequences, described below in more detail, always support
 the iteration methods.
 
-One method needs to be defined for container objects to provide iteration
+One method needs to be defined for container objects to provide :term:`iterable`
 support:
 
 .. XXX duplicated in reference/datamodel!
 
 .. method:: container.__iter__()
 
-   Return an iterator object.  The object is required to support the iterator
-   protocol described below.  If a container supports different types of
-   iteration, additional methods can be provided to specifically request
+   Return an :term:`iterator` object.  The object is required to support the
+   iterator protocol described below.  If a container supports different types
+   of iteration, additional methods can be provided to specifically request
    iterators for those iteration types.  (An example of an object supporting
    multiple forms of iteration would be a tree structure which supports both
    breadth-first and depth-first traversal.)  This method corresponds to the
-   :c:member:`~PyTypeObject.tp_iter` slot of the type structure for Python objects in the Python/C
-   API.
+   :c:member:`~PyTypeObject.tp_iter` slot of the type structure for Python
+   objects in the Python/C API.
 
 The iterator objects themselves are required to support the following two
 methods, which together form the :dfn:`iterator protocol`:
@@ -794,18 +794,19 @@ methods, which together form the :dfn:`iterator protocol`:
 
 .. method:: iterator.__iter__()
 
-   Return the iterator object itself.  This is required to allow both containers
-   and iterators to be used with the :keyword:`for` and :keyword:`in` statements.
-   This method corresponds to the :c:member:`~PyTypeObject.tp_iter` slot of the type structure for
-   Python objects in the Python/C API.
+   Return the :term:`iterator` object itself.  This is required to allow both
+   containers and iterators to be used with the :keyword:`for` and
+   :keyword:`in` statements.  This method corresponds to the
+   :c:member:`~PyTypeObject.tp_iter` slot of the type structure for Python
+   objects in the Python/C API.
 
 
 .. method:: iterator.__next__()
 
-   Return the next item from the container.  If there are no further items, raise
-   the :exc:`StopIteration` exception.  This method corresponds to the
-   :c:member:`~PyTypeObject.tp_iternext` slot of the type structure for Python objects in the
-   Python/C API.
+   Return the next item from the :term:`iterator`.  If there are no further
+   items, raise the :exc:`StopIteration` exception.  This method corresponds to
+   the :c:member:`~PyTypeObject.tp_iternext` slot of the type structure for
+   Python objects in the Python/C API.
 
 Python defines several iterator objects to support iteration over general and
 specific sequence types, dictionaries, and other more specialized forms.  The
index ec12e02fb37d45c4a8b6116a077b935250ef3329..29cb54b5d1ac306769da1788533143f62f377fd9 100644 (file)
@@ -1073,7 +1073,11 @@ always available.
    This is a dictionary that maps module names to modules which have already been
    loaded.  This can be manipulated to force reloading of modules and other tricks.
    However, replacing the dictionary will not necessarily work as expected and
-   deleting essential items from the dictionary may cause Python to fail.
+   deleting essential items from the dictionary may cause Python to fail.  If
+   you want to iterate over this global dictionary always use
+   ``sys.modules.copy()`` or ``tuple(sys.modules)`` to avoid exceptions as its
+   size may change during iteration as a side effect of code or activity in
+   other threads.
 
 
 .. data:: orig_argv
@@ -1212,13 +1216,10 @@ always available.
 .. data:: prefix
 
    A string giving the site-specific directory prefix where the platform
-   independent Python files are installed; by default, this is the string
+   independent Python files are installed; on Unix, the default is
    ``'/usr/local'``.  This can be set at build time with the ``--prefix``
-   argument to the :program:`configure` script.  The main collection of Python
-   library modules is installed in the directory :file:`{prefix}/lib/python{X.Y}`
-   while the platform independent header files (all except :file:`pyconfig.h`) are
-   stored in :file:`{prefix}/include/python{X.Y}`, where *X.Y* is the version
-   number of Python, for example ``3.2``.
+   argument to the :program:`configure` script.  See
+   :ref:`installation_paths` for derived paths.
 
    .. note:: If a :ref:`virtual environment <venv-def>` is in effect, this
       value will be changed in ``site.py`` to point to the virtual
index 6327318eb108dafd700be383eb35b33c1c3c7b09..7ef3b2489673e6d72f11fb5eb59cde148a818fb4 100644 (file)
@@ -60,6 +60,7 @@ Example of usage::
    >>> sysconfig.get_config_vars('AR', 'CXX')
    ['ar', 'g++']
 
+.. _installation_paths:
 
 Installation paths
 ------------------
@@ -72,7 +73,7 @@ Every new component that is installed using :mod:`distutils` or a
 Distutils-based system will follow the same scheme to copy its file in the right
 places.
 
-Python currently supports seven schemes:
+Python currently supports six schemes:
 
 - *posix_prefix*: scheme for POSIX platforms like Linux or macOS.  This is
   the default scheme used when Python or a component is installed.
@@ -84,6 +85,7 @@ Python currently supports seven schemes:
   located under the user home directory.
 - *nt*: scheme for NT platforms like Windows.
 - *nt_user*: scheme for NT platforms, when the *user* option is used.
+- *osx_framework_user*: scheme for macOS, when the *user* option is used.
 
 Each scheme is itself composed of a series of paths and each path has a unique
 identifier.  Python currently uses eight paths:
index a6cc2be4d55222840a9beedc58faac5c1eda7306..a8dc35476fc9bdc2f3333467114765267e351c70 100644 (file)
@@ -1249,7 +1249,7 @@ The :mod:`test.support.threading_helper` module provides support for threading t
    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``
@@ -1458,7 +1458,7 @@ The :mod:`test.support.os_helper` module provides support for os tests.
 .. 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.
 
 
 :mod:`test.support.import_helper` --- Utilities for import tests
index 88fe47a8d4a7fbf93e32f731deaa82ebe4014ada..2314b02c7449c0bcff53478e2776955cf9269743 100644 (file)
@@ -243,7 +243,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.
@@ -268,7 +268,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 13760c19214ee7d60425d6fcbd0c17048902452a..14e5c8fc7efea18b957a54177332fb60af38707e 100644 (file)
 
 --------------
 
-This module provides runtime support for type hints as specified by
-:pep:`484`, :pep:`526`, :pep:`544`, :pep:`586`, :pep:`589`, :pep:`591`,
-:pep:`612` and :pep:`613`.
-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::
@@ -35,6 +32,43 @@ 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* :data:`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* :data:`Annotated`
+* :pep:`604`: Allow writing union types as ``X | Y``
+     *Introducing* :data:`types.UnionType` and the ability to use
+     the binary-or operator ``|`` to signify a
+     :ref:`union of types<types-union>`
+* :pep:`612`: Parameter Specification Variables
+     *Introducing* :class:`ParamSpec` and :data:`Concatenate`
+* :pep:`613`: Explicit Type Aliases
+     *Introducing* :data:`TypeAlias`
+* :pep:`647`: User-Defined Type Guards
+     *Introducing* :data:`TypeGuard`
+
 .. _type-aliases:
 
 Type aliases
@@ -222,6 +256,7 @@ called :class:`TypeVar`.
    def first(l: Sequence[T]) -> T:   # Generic function
        return l[0]
 
+.. _user-defined-generics:
 
 User-defined generic types
 ==========================
@@ -256,8 +291,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 99c2f6e029448ed42eb3cb5ed8271725e50bf4b0..ae0c7d59964f165e8801d3316bb42df38b02f66e 100644 (file)
@@ -223,7 +223,7 @@ Command-line options
 
    Only run test methods and classes that match the pattern or substring.
    This option may be used multiple times, in which case all test cases that
-   match of the given patterns are included.
+   match any of the given patterns are included.
 
    Patterns that contain a wildcard character (``*``) are matched against the
    test name using :meth:`fnmatch.fnmatchcase`; otherwise simple case-sensitive
index a060cc9ba7fdd9395efa0a5fe51879dd3f7de2a1..1478b34bc95514add96c0ecb25f13a14487ef0e2 100644 (file)
@@ -48,17 +48,29 @@ or on combining URL components into a URL string.
    result, except for a leading slash in the *path* component, which is retained if
    present.  For example:
 
+   .. doctest::
+      :options: +NORMALIZE_WHITESPACE
+
       >>> from urllib.parse import urlparse
-      >>> o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
-      >>> o   # doctest: +NORMALIZE_WHITESPACE
-      ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
-                  params='', query='', fragment='')
+      >>> urlparse("scheme://netloc/path;parameters?query#fragment")
+      ParseResult(scheme='scheme', netloc='netloc', path='/path;parameters', params='',
+                  query='query', fragment='fragment')
+      >>> o = urlparse("http://docs.python.org:80/3/library/urllib.parse.html?"
+      ...              "highlight=params#url-parsing")
+      >>> o
+      ParseResult(scheme='http', netloc='docs.python.org:80',
+                  path='/3/library/urllib.parse.html', params='',
+                  query='highlight=params', fragment='url-parsing')
       >>> o.scheme
       'http'
+      >>> o.netloc
+      'docs.python.org:80'
+      >>> o.hostname
+      'docs.python.org'
       >>> o.port
       80
-      >>> o.geturl()
-      'http://www.cwi.nl:80/%7Eguido/Python.html'
+      >>> o._replace(fragment="").geturl()
+      'http://docs.python.org:80/3/library/urllib.parse.html?highlight=params'
 
    Following the syntax specifications in :rfc:`1808`, urlparse recognizes
    a netloc only if it is properly introduced by '//'.  Otherwise the
@@ -92,31 +104,30 @@ or on combining URL components into a URL string.
    The return value is a :term:`named tuple`, which means that its items can
    be accessed by index or as named attributes, which are:
 
-   +------------------+-------+--------------------------+----------------------+
-   | Attribute        | Index | Value                    | Value if not present |
-   +==================+=======+==========================+======================+
-   | :attr:`scheme`   | 0     | URL scheme specifier     | *scheme* parameter   |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`netloc`   | 1     | Network location part    | empty string         |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`path`     | 2     | Hierarchical path        | empty string         |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`params`   | 3     | Parameters for last path | empty string         |
-   |                  |       | element                  |                      |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`query`    | 4     | Query component          | empty string         |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`fragment` | 5     | Fragment identifier      | empty string         |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`username` |       | User name                | :const:`None`        |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`password` |       | Password                 | :const:`None`        |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`hostname` |       | Host name (lower case)   | :const:`None`        |
-   +------------------+-------+--------------------------+----------------------+
-   | :attr:`port`     |       | Port number as integer,  | :const:`None`        |
-   |                  |       | if present               |                      |
-   +------------------+-------+--------------------------+----------------------+
+   +------------------+-------+-------------------------+------------------------+
+   | Attribute        | Index | Value                   | Value if not present   |
+   +==================+=======+=========================+========================+
+   | :attr:`scheme`   | 0     | URL scheme specifier    | *scheme* parameter     |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`netloc`   | 1     | Network location part   | empty string           |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`path`     | 2     | Hierarchical path       | empty string           |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`params`   | 3     | No longer used          | always an empty string |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`query`    | 4     | Query component         | empty string           |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`fragment` | 5     | Fragment identifier     | empty string           |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`username` |       | User name               | :const:`None`          |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`password` |       | Password                | :const:`None`          |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`hostname` |       | Host name (lower case)  | :const:`None`          |
+   +------------------+-------+-------------------------+------------------------+
+   | :attr:`port`     |       | Port number as integer, | :const:`None`          |
+   |                  |       | if present              |                        |
+   +------------------+-------+-------------------------+------------------------+
 
    Reading the :attr:`port` attribute will raise a :exc:`ValueError` if
    an invalid port is specified in the URL.  See section
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 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 41719be3dc986e7155064783381e75dc1eb7fcd4..63d885deae93f0c05e383e3eef67b62d7d8478d6 100644 (file)
@@ -418,8 +418,8 @@ usage patterns to be encapsulated for convenient reuse.
 
 The execution of the :keyword:`with` statement with one "item" proceeds as follows:
 
-#. The context expression (the expression given in the :token:`with_item`) is
-   evaluated to obtain a context manager.
+#. The context expression (the expression given in the
+   :token:`~python-grammar:with_item`) is evaluated to obtain a context manager.
 
 #. The context manager's :meth:`__enter__` is loaded for later use.
 
@@ -797,7 +797,8 @@ Syntax:
    capture_pattern: !'_' NAME
 
 A single underscore ``_`` is not a capture pattern (this is what ``!'_'``
-expresses). It is instead treated as a :token:`wildcard_pattern`.
+expresses). It is instead treated as a
+:token:`~python-grammar:wildcard_pattern`.
 
 In a given pattern, a given name can only be bound once.  E.g.
 ``case x, x: ...`` is invalid while ``case [x] | x: ...`` is allowed.
@@ -1017,7 +1018,7 @@ A class pattern represents a class and its positional and keyword arguments
 
 The same keyword should not be repeated in class patterns.
 
-The following is the logical flow for matching a mapping pattern against a
+The following is the logical flow for matching a class pattern against a
 subject value:
 
 #. If ``name_or_attr`` is not an instance of the builtin :class:`type` , raise
@@ -1182,9 +1183,9 @@ is roughly equivalent to ::
 except that the original function is not temporarily bound to the name ``func``.
 
 .. versionchanged:: 3.9
-   Functions may be decorated with any valid :token:`assignment_expression`.
-   Previously, the grammar was much more restrictive; see :pep:`614` for
-   details.
+   Functions may be decorated with any valid
+   :token:`~python-grammar:assignment_expression`. Previously, the grammar was
+   much more restrictive; see :pep:`614` for details.
 
 .. index::
    triple: default; parameter; value
@@ -1360,9 +1361,9 @@ The evaluation rules for the decorator expressions are the same as for function
 decorators.  The result is then bound to the class name.
 
 .. versionchanged:: 3.9
-   Classes may be decorated with any valid :token:`assignment_expression`.
-   Previously, the grammar was much more restrictive; see :pep:`614` for
-   details.
+   Classes may be decorated with any valid
+   :token:`~python-grammar:assignment_expression`. Previously, the grammar was
+   much more restrictive; see :pep:`614` for details.
 
 **Programmer's note:** Variables defined in the class definition are class
 attributes; they are shared by instances.  Instance attributes can be set in a
index 310167e86d0cb7997751675120c37686b32c9a8c..111417d937fbbdda361af0403bc73f34f2148ec5 100644 (file)
@@ -648,13 +648,13 @@ Callable types
 
       A function or method which uses the :keyword:`yield` statement (see section
       :ref:`yield`) is called a :dfn:`generator function`.  Such a function, when
-      called, always returns an iterator object which can be used to execute the
-      body of the function:  calling the iterator's :meth:`iterator.__next__`
-      method will cause the function to execute until it provides a value
-      using the :keyword:`!yield` statement.  When the function executes a
-      :keyword:`return` statement or falls off the end, a :exc:`StopIteration`
-      exception is raised and the iterator will have reached the end of the set of
-      values to be returned.
+      called, always returns an :term:`iterator` object which can be used to
+      execute the body of the function:  calling the iterator's
+      :meth:`iterator.__next__` method will cause the function to execute until
+      it provides a value using the :keyword:`!yield` statement.  When the
+      function executes a :keyword:`return` statement or falls off the end, a
+      :exc:`StopIteration` exception is raised and the iterator will have
+      reached the end of the set of values to be returned.
 
    Coroutine functions
       .. index::
@@ -674,7 +674,7 @@ Callable types
       A function or method which is defined using :keyword:`async def` and
       which uses the :keyword:`yield` statement is called a
       :dfn:`asynchronous generator function`.  Such a function, when called,
-      returns an asynchronous iterator object which can be used in an
+      returns an :term:`asynchronous iterator` object which can be used in an
       :keyword:`async for` statement to execute the body of the function.
 
       Calling the asynchronous iterator's :meth:`aiterator.__anext__` method
@@ -2180,22 +2180,142 @@ case the instance is itself a class.
 Emulating generic types
 -----------------------
 
-One can implement the generic class syntax as specified by :pep:`484`
-(for example ``List[int]``) by defining a special method:
+When using :term:`type annotations<annotation>`, it is often useful to
+*parameterize* a :term:`generic type` using Python's square-brackets notation.
+For example, the annotation ``list[int]`` might be used to signify a
+:class:`list` in which all the elements are of type :class:`int`.
+
+.. seealso::
+
+   :pep:`484` - Type Hints
+      Introducing Python's framework for type annotations
+
+   :ref:`Generic Alias Types<types-genericalias>`
+      Documentation for objects representing parameterized generic classes
+
+   :ref:`Generics`, :ref:`user-defined generics<user-defined-generics>` and :class:`typing.Generic`
+      Documentation on how to implement generic classes that can be
+      parameterized at runtime and understood by static type-checkers.
+
+A class can *generally* only be parameterized if it defines the special
+class method ``__class_getitem__()``.
 
 .. classmethod:: object.__class_getitem__(cls, key)
 
    Return an object representing the specialization of a generic class
    by type arguments found in *key*.
 
-This method is looked up on the class object itself, and when defined in
-the class body, this method is implicitly a class method.  Note, this
-mechanism is primarily reserved for use with static type hints, other usage
-is discouraged.
+   When defined on a class, ``__class_getitem__()`` is automatically a class
+   method. As such, there is no need for it to be decorated with
+   :func:`@classmethod<classmethod>` when it is defined.
 
-.. seealso::
 
-   :pep:`560` - Core support for typing module and generic types
+The purpose of *__class_getitem__*
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The purpose of :meth:`~object.__class_getitem__` is to allow runtime
+parameterization of standard-library generic classes in order to more easily
+apply :term:`type hints<type hint>` to these classes.
+
+To implement custom generic classes that can be parameterized at runtime and
+understood by static type-checkers, users should either inherit from a standard
+library class that already implements :meth:`~object.__class_getitem__`, or
+inherit from :class:`typing.Generic`, which has its own implementation of
+``__class_getitem__()``.
+
+Custom implementations of :meth:`~object.__class_getitem__` on classes defined
+outside of the standard library may not be understood by third-party
+type-checkers such as mypy. Using ``__class_getitem__()`` on any class for
+purposes other than type hinting is discouraged.
+
+
+.. _classgetitem-versus-getitem:
+
+
+*__class_getitem__* versus *__getitem__*
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Usually, the :ref:`subscription<subscriptions>` of an object using square
+brackets will call the :meth:`~object.__getitem__` instance method defined on
+the object's class. However, if the object being subscribed is itself a class,
+the class method :meth:`~object.__class_getitem__` may be called instead.
+``__class_getitem__()`` should return a :ref:`GenericAlias<types-genericalias>`
+object if it is properly defined.
+
+Presented with the :term:`expression` ``obj[x]``, the Python interpreter
+follows something like the following process to decide whether
+:meth:`~object.__getitem__` or :meth:`~object.__class_getitem__` should be
+called::
+
+   from inspect import isclass
+
+   def subscribe(obj, x):
+       """Return the result of the expression `obj[x]`"""
+
+       class_of_obj = type(obj)
+
+       # If the class of obj defines __getitem__,
+       # call class_of_obj.__getitem__(obj, x)
+       if hasattr(class_of_obj, '__getitem__'):
+           return class_of_obj.__getitem__(obj, x)
+
+       # Else, if obj is a class and defines __class_getitem__,
+       # call obj.__class_getitem__(x)
+       elif isclass(obj) and hasattr(obj, '__class_getitem__'):
+           return obj.__class_getitem__(x)
+
+       # Else, raise an exception
+       else:
+           raise TypeError(
+               f"'{class_of_obj.__name__}' object is not subscriptable"
+           )
+
+In Python, all classes are themselves instances of other classes. The class of
+a class is known as that class's :term:`metaclass`, and most classes have the
+:class:`type` class as their metaclass. :class:`type` does not define
+:meth:`~object.__getitem__`, meaning that expressions such as ``list[int]``,
+``dict[str, float]`` and ``tuple[str, bytes]`` all result in
+:meth:`~object.__class_getitem__` being called::
+
+   >>> # list has class "type" as its metaclass, like most classes:
+   >>> type(list)
+   <class 'type'>
+   >>> type(dict) == type(list) == type(tuple) == type(str) == type(bytes)
+   True
+   >>> # "list[int]" calls "list.__class_getitem__(int)"
+   >>> list[int]
+   list[int]
+   >>> # list.__class_getitem__ returns a GenericAlias object:
+   >>> type(list[int])
+   <class 'types.GenericAlias'>
+
+However, if a class has a custom metaclass that defines
+:meth:`~object.__getitem__`, subscribing the class may result in different
+behaviour. An example of this can be found in the :mod:`enum` module::
+
+   >>> from enum import Enum
+   >>> class Menu(Enum):
+   ...     """A breakfast menu"""
+   ...     SPAM = 'spam'
+   ...     BACON = 'bacon'
+   ...
+   >>> # Enum classes have a custom metaclass:
+   >>> type(Menu)
+   <class 'enum.EnumMeta'>
+   >>> # EnumMeta defines __getitem__,
+   >>> # so __class_getitem__ is not called,
+   >>> # and the result is not a GenericAlias object:
+   >>> Menu['SPAM']
+   <Menu.SPAM: 'spam'>
+   >>> type(Menu['SPAM'])
+   <enum 'Menu'>
+
+
+.. seealso::
+   :pep:`560` - Core Support for typing module and generic types
+      Introducing :meth:`~object.__class_getitem__`, and outlining when a
+      :ref:`subscription<subscriptions>` results in ``__class_getitem__()``
+      being called instead of :meth:`~object.__getitem__`
 
 
 .. _callable-types:
@@ -2295,19 +2415,27 @@ through the object's keys; for sequences, it should iterate through the values.
 
 .. method:: object.__getitem__(self, key)
 
-   Called to implement evaluation of ``self[key]``. For sequence types, the
-   accepted keys should be integers and slice objects.  Note that the special
-   interpretation of negative indexes (if the class wishes to emulate a sequence
-   type) is up to the :meth:`__getitem__` method. If *key* is of an inappropriate
-   type, :exc:`TypeError` may be raised; if of a value outside the set of indexes
-   for the sequence (after any special interpretation of negative values),
-   :exc:`IndexError` should be raised. For mapping types, if *key* is missing (not
-   in the container), :exc:`KeyError` should be raised.
+   Called to implement evaluation of ``self[key]``. For :term:`sequence` types,
+   the accepted keys should be integers and slice objects.  Note that the
+   special interpretation of negative indexes (if the class wishes to emulate a
+   :term:`sequence` type) is up to the :meth:`__getitem__` method. If *key* is
+   of an inappropriate type, :exc:`TypeError` may be raised; if of a value
+   outside the set of indexes for the sequence (after any special
+   interpretation of negative values), :exc:`IndexError` should be raised. For
+   :term:`mapping` types, if *key* is missing (not in the container),
+   :exc:`KeyError` should be raised.
 
    .. note::
 
-      :keyword:`for` loops expect that an :exc:`IndexError` will be raised for illegal
-      indexes to allow proper detection of the end of the sequence.
+      :keyword:`for` loops expect that an :exc:`IndexError` will be raised for
+      illegal indexes to allow proper detection of the end of the sequence.
+
+   .. note::
+
+      When :ref:`subscripting<subscriptions>` a *class*, the special
+      class method :meth:`~object.__class_getitem__` may be called instead of
+      ``__getitem__()``. See :ref:`classgetitem-versus-getitem` for more
+      details.
 
 
 .. method:: object.__setitem__(self, key, value)
@@ -2336,12 +2464,10 @@ through the object's keys; for sequences, it should iterate through the values.
 
 .. method:: object.__iter__(self)
 
-   This method is called when an iterator is required for a container. This method
-   should return a new iterator object that can iterate over all the objects in the
-   container.  For mappings, it should iterate over the keys of the container.
-
-   Iterator objects also need to implement this method; they are required to return
-   themselves.  For more information on iterator objects, see :ref:`typeiter`.
+   This method is called when an :term:`iterator` is required for a container.
+   This method should return a new iterator object that can iterate over all the
+   objects in the container.  For mappings, it should iterate over the keys of
+   the container.
 
 
 .. method:: object.__reversed__(self)
@@ -2541,8 +2667,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..e652915bd271c375e3767b06abb16ae9c1d34758 100644 (file)
@@ -56,15 +56,25 @@ Binding of names
 
 .. index:: single: from; import statement
 
-The following constructs bind names: formal parameters to functions,
-:keyword:`import` statements, class and function definitions (these bind the
-class or function name in the defining block), and targets that are identifiers
-if occurring in an assignment, :keyword:`for` loop header, or after
-:keyword:`!as` in a :keyword:`with` statement or :keyword:`except` clause.
-The :keyword:`!import` statement
-of the form ``from ... import *`` binds all names defined in the imported
-module, except those beginning with an underscore.  This form may only be used
-at the module level.
+The following constructs bind names:
+
+* formal parameters to functions,
+* class definitions,
+* function definitions,
+* assignment expressions,
+* :ref:`targets <assignment>` that are identifiers if occurring in
+  an assignment:
+
+  + :keyword:`for` loop header,
+  + after :keyword:`!as` in a :keyword:`with` statement, :keyword:`except`
+    clause or in the as-pattern in structural pattern matching,
+  + in a capture pattern in structural pattern matching
+
+* :keyword:`import` statements.
+
+The :keyword:`!import` statement of the form ``from ... import *`` binds all
+names defined in the imported module, except those beginning with an underscore.
+This form may only be used at the module level.
 
 A target occurring in a :keyword:`del` statement is also considered bound for
 this purpose (though the actual semantics are to unbind the name).
@@ -119,14 +129,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 ab47f37c77c798cd8470fecb18f0740c4515c26e..c3f58fc8416161fc3a186984b26f22345f9a1b99 100644 (file)
@@ -445,21 +445,20 @@ functions are described separately in section
 :ref:`asynchronous-generator-functions`.
 
 When a generator function is called, it returns an iterator known as a
-generator.  That generator then controls the execution of the generator function.
-The execution starts when one of the generator's methods is called.  At that
-time, the execution proceeds to the first yield expression, where it is
-suspended again, returning the value of :token:`expression_list` to the generator's
-caller.  By suspended, we mean that all local state is retained, including the
-current bindings of local variables, the instruction pointer, the internal
-evaluation stack, and the state of any exception handling.  When the execution
-is resumed by calling one of the
-generator's methods, the function can proceed exactly as if the yield expression
-were just another external call.  The value of the yield expression after
-resuming depends on the method which resumed the execution.  If
-:meth:`~generator.__next__` is used (typically via either a :keyword:`for` or
-the :func:`next` builtin) then the result is :const:`None`.  Otherwise, if
-:meth:`~generator.send` is used, then the result will be the value passed in to
-that method.
+generator.  That generator then controls the execution of the generator
+function.  The execution starts when one of the generator's methods is called.
+At that time, the execution proceeds to the first yield expression, where it is
+suspended again, returning the value of :token:`~python-grammar:expression_list`
+to the generator's caller.  By suspended, we mean that all local state is
+retained, including the current bindings of local variables, the instruction
+pointer, the internal evaluation stack, and the state of any exception handling.
+When the execution is resumed by calling one of the generator's methods, the
+function can proceed exactly as if the yield expression were just another
+external call.  The value of the yield expression after resuming depends on the
+method which resumed the execution.  If :meth:`~generator.__next__` is used
+(typically via either a :keyword:`for` or the :func:`next` builtin) then the
+result is :const:`None`.  Otherwise, if :meth:`~generator.send` is used, then
+the result will be the value passed in to that method.
 
 .. index:: single: coroutine
 
@@ -509,8 +508,8 @@ on the right hand side of an assignment statement.
       usable as simple coroutines.
 
    :pep:`380` - Syntax for Delegating to a Subgenerator
-      The proposal to introduce the :token:`yield_from` syntax, making delegation
-      to subgenerators easy.
+      The proposal to introduce the :token:`~python-grammar:yield_from` syntax,
+      making delegation to subgenerators easy.
 
    :pep:`525` - Asynchronous Generators
       The proposal that expanded on :pep:`492` by adding generator capabilities to
@@ -538,9 +537,9 @@ is already executing raises a :exc:`ValueError` exception.
    :meth:`~generator.__next__` method, the current yield expression always
    evaluates to :const:`None`.  The execution then continues to the next yield
    expression, where the generator is suspended again, and the value of the
-   :token:`expression_list` is returned to :meth:`__next__`'s caller.  If the
-   generator exits without yielding another value, a :exc:`StopIteration`
-   exception is raised.
+   :token:`~python-grammar:expression_list` is returned to :meth:`__next__`'s
+   caller.  If the generator exits without yielding another value, a
+   :exc:`StopIteration` exception is raised.
 
    This method is normally called implicitly, e.g. by a :keyword:`for` loop, or
    by the built-in :func:`next` function.
@@ -629,21 +628,20 @@ An asynchronous generator object is typically used in an
 :keyword:`async for` statement in a coroutine function analogously to
 how a generator object would be used in a :keyword:`for` statement.
 
-Calling one of the asynchronous generator's methods returns an
-:term:`awaitable` object, and the execution starts when this object
-is awaited on. At that time, the execution proceeds to the first yield
-expression, where it is suspended again, returning the value of
-:token:`expression_list` to the awaiting coroutine. As with a generator,
-suspension means that all local state is retained, including the
-current bindings of local variables, the instruction pointer, the internal
-evaluation stack, and the state of any exception handling.  When the execution
-is resumed by awaiting on the next object returned by the asynchronous
-generator's methods, the function can proceed exactly as if the yield
-expression were just another external call. The value of the yield expression
-after resuming depends on the method which resumed the execution.  If
+Calling one of the asynchronous generator's methods returns an :term:`awaitable`
+object, and the execution starts when this object is awaited on. At that time,
+the execution proceeds to the first yield expression, where it is suspended
+again, returning the value of :token:`~python-grammar:expression_list` to the
+awaiting coroutine. As with a generator, suspension means that all local state
+is retained, including the current bindings of local variables, the instruction
+pointer, the internal evaluation stack, and the state of any exception handling.
+When the execution is resumed by awaiting on the next object returned by the
+asynchronous generator's methods, the function can proceed exactly as if the
+yield expression were just another external call. The value of the yield
+expression after resuming depends on the method which resumed the execution.  If
 :meth:`~agen.__anext__` is used then the result is :const:`None`. Otherwise, if
-:meth:`~agen.asend` is used, then the result will be the value passed in to
-that method.
+:meth:`~agen.asend` is used, then the result will be the value passed in to that
+method.
 
 If an asynchronous generator happens to exit early by :keyword:`break`, the caller
 task being cancelled, or other exceptions, the generator's async cleanup code
@@ -695,10 +693,10 @@ which are used to control the execution of a generator function.
    Returns an awaitable which when run starts to execute the asynchronous
    generator or resumes it at the last executed yield expression.  When an
    asynchronous generator function is resumed with an :meth:`~agen.__anext__`
-   method, the current yield expression always evaluates to :const:`None` in
-   the returned awaitable, which when run will continue to the next yield
-   expression. The value of the :token:`expression_list` of the yield
-   expression is the value of the :exc:`StopIteration` exception raised by
+   method, the current yield expression always evaluates to :const:`None` in the
+   returned awaitable, which when run will continue to the next yield
+   expression. The value of the :token:`~python-grammar:expression_list` of the
+   yield expression is the value of the :exc:`StopIteration` exception raised by
    the completing coroutine.  If the asynchronous generator exits without
    yielding another value, the awaitable instead raises a
    :exc:`StopAsyncIteration` exception, signalling that the asynchronous
@@ -1699,8 +1697,9 @@ Assignment expressions
    assignment_expression: [`identifier` ":="] `expression`
 
 An assignment expression (sometimes also called a "named expression" or
-"walrus") assigns an :token:`expression` to an :token:`identifier`, while also
-returning the value of the :token:`expression`.
+"walrus") assigns an :token:`~python-grammar:expression` to an
+:token:`~python-grammar:identifier`, while also returning the value of the
+:token:`~python-grammar:expression`.
 
 One common use case is when handling matched regular expressions:
 
index 4ad8f8be1e7ddfb55ce3ff777a348f9d2bb600f5..21ad3731a324671eff83863db5d6c1049604caef 100644 (file)
@@ -385,10 +385,20 @@ classes are identified by the patterns of leading and trailing underscore
 characters:
 
 ``_*``
-   Not imported by ``from module import *``.  The special identifier ``_`` is used
-   in the interactive interpreter to store the result of the last evaluation; it is
-   stored in the :mod:`builtins` module.  When not in interactive mode, ``_``
-   has no special meaning and is not defined. See section :ref:`import`.
+   Not imported by ``from module import *``.
+
+``_``
+   In a ``case`` pattern within a :keyword:`match` statement, ``_`` is a
+   :ref:`soft keyword <soft-keywords>` that denotes a
+   :ref:`wildcard <wildcard-patterns>`.
+
+   Separately, the interactive interpreter makes the result of the last evaluation
+   available in the variable ``_``.
+   (It is stored in the :mod:`builtins` module, alongside built-in
+   functions like ``print``.)
+
+   Elsewhere, ``_`` is a regular identifier. It is often used to name
+   "special" items, but it is not special to Python itself.
 
    .. note::
 
@@ -396,6 +406,8 @@ characters:
       refer to the documentation for the :mod:`gettext` module for more
       information on this convention.
 
+      It is also commonly used for unused variables.
+
 ``__*__``
    System-defined names, informally known as "dunder" names. These names are
    defined by the interpreter and its implementation (including the standard library).
@@ -457,10 +469,10 @@ String literals are described by the following lexical definitions:
    bytesescapeseq: "\" <any ASCII character>
 
 One syntactic restriction not indicated by these productions is that whitespace
-is not allowed between the :token:`stringprefix` or :token:`bytesprefix` and the
-rest of the literal. The source character set is defined by the encoding
-declaration; it is UTF-8 if no encoding declaration is given in the source file;
-see section :ref:`encodings`.
+is not allowed between the :token:`~python-grammar:stringprefix` or
+:token:`~python-grammar:bytesprefix` and the rest of the literal. The source
+character set is defined by the encoding declaration; it is UTF-8 if no encoding
+declaration is given in the source file; see section :ref:`encodings`.
 
 .. index:: triple-quoted string, Unicode Consortium, raw string
    single: """; string literal
index 2b70af3a4fc6b9d9e69a1bbc51ea0260cf76e44e..dd3c8e62237cfff48fc525d0f2f1ae853f25bbf0 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==3.2.1
+# Docutils version is pinned to a version compatible with Sphinx
+# version 3.2.1. It can be removed after bumping Sphinx version to at
+# least 3.5.4.
+docutils==0.17.1
 
 blurb
 
index cbcb8eb801b1356ff654b190ae8f9e9175cea929..3092a3b2d81b780e85dba6a9107f1e13b0e03b8a 100755 (executable)
@@ -165,7 +165,7 @@ def hide_comments(lines):
     """Tool to remove comments from given lines.
 
     It yields empty lines in place of comments, so line numbers are
-    still meaningfull.
+    still meaningful.
     """
     in_multiline_comment = False
     for line in lines:
index 54360c2f8ebaa94960b1b6f702e04b46464510d8..2453faa8ccd746cb43ad00a36482fe1509f7efd4 100644 (file)
@@ -271,6 +271,7 @@ license,,:zooko,mailto:zooko@zooko.com
 reference/expressions,,:index,x[index:index]
 reference/lexical_analysis,,`,$       ?       `
 reference/lexical_analysis,,:fileencoding,# vim:fileencoding=<encoding-name>
+reference/datamodel,,`,    """Return the result of the expression `obj[x]`"""
 tutorial/datastructures,,:value,It is also possible to delete a key:value
 tutorial/datastructures,,:value,key:value pairs within the braces adds initial key:value pairs
 tutorial/stdlib2,,:config,"logging.warning('Warning:config file %s not found', 'server.conf')"
@@ -376,7 +377,7 @@ library/importlib.metadata,,:main,"EntryPoint(name='wheel', value='wheel.cli:mai
 library/importlib.metadata,,`,loading the metadata for packages for the indicated ``context``.
 library/re,,`,"`"
 using/configure,84,:db2,=db1:db2:...
-library/typing,1011,`,# Type of ``val`` is narrowed to ``str``
-library/typing,1011,`,"# Else, type of ``val`` is narrowed to ``float``."
-library/typing,1011,`,# Type of ``val`` is narrowed to ``List[str]``.
-library/typing,1011,`,# Type of ``val`` remains as ``List[object]``.
+library/typing,,`,# Type of ``val`` is narrowed to ``str``
+library/typing,,`,"# Else, type of ``val`` is narrowed to ``float``."
+library/typing,,`,# Type of ``val`` is narrowed to ``List[str]``.
+library/typing,,`,# Type of ``val`` remains as ``List[object]``.
index fb3b140fe79bab5bfadec2efcffc96f5ab52c0f1..a8197566026122296272fa90e7ee528cae21ec08 100644 (file)
@@ -378,7 +378,7 @@ Several other key features of this statement:
 - Mapping patterns: ``{"bandwidth": b, "latency": l}`` captures the
   ``"bandwidth"`` and ``"latency"`` values from a dictionary.  Unlike sequence
   patterns, extra keys are ignored.  An unpacking like ``**rest`` is also
-  supported.  (But ``**_`` would be redundant, so it not allowed.)
+  supported.  (But ``**_`` would be redundant, so it is not allowed.)
 
 - Subpatterns may be captured using the ``as`` keyword::
 
index b98de6e56a003191b5259a5f3d969224177b2cd6..7212b40be83772da7721d56ac2ab5eba81367e4e 100644 (file)
@@ -133,7 +133,7 @@ with inexact values become comparable to one another::
 
 Binary floating-point arithmetic holds many surprises like this.  The problem
 with "0.1" is explained in precise detail below, in the "Representation Error"
-section.  See `The Perils of Floating Point <http://www.lahey.com/float.htm>`_
+section.  See `The Perils of Floating Point <https://www.lahey.com/float.htm>`_
 for a more complete account of other common surprises.
 
 As that says near the end, "there are no easy answers."  Still, don't be unduly
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 177f25f318bbf60470dd7e9c8b7b7320631222f2..14ffdd760f012009c4bfdb296d0ced326a7e7c21 100644 (file)
@@ -550,7 +550,7 @@ Built-in modules have no ``__file__`` attribute::
       File "<stdin>", line 1, in <module>
     AttributeError: module 'sys' has no attribute '__file__'
 
-Other C extensins are built as dynamic libraires, like the ``_asyncio`` module.
+Other C extensins are built as dynamic libraries, like the ``_asyncio`` module.
 They are built with the ``Py_BUILD_CORE_MODULE`` macro defined.
 Example on Linux x86-64::
 
index c11fe41659c2096e2ec91c028711bba2e231c347..4ee193f158fde4418f1dc41b6c99b408263f79cd 100644 (file)
@@ -50,13 +50,6 @@ This article explains the new features in Python 3.10, compared to 3.9.
 
 For full details, see the :ref:`changelog <changelog>`.
 
-.. note::
-
-   Prerelease users should be aware that this document is currently in draft
-   form. It will be updated substantially as Python 3.10 moves towards release,
-   so it's worth checking back even after reading earlier versions.
-
-
 Summary -- Release highlights
 =============================
 
@@ -1003,7 +996,7 @@ Added ``slots`` parameter in :func:`dataclasses.dataclass` decorator.
 Keyword-only fields
 ~~~~~~~~~~~~~~~~~~~
 
-dataclassses now supports fields that are keyword-only in the
+dataclasses now supports fields that are keyword-only in the
 generated __init__ method.  There are a number of ways of specifying
 keyword-only fields.
 
@@ -1178,7 +1171,7 @@ Feature parity with ``importlib_metadata`` 4.6
 (`history <https://importlib-metadata.readthedocs.io/en/latest/history.html>`_).
 
 :ref:`importlib.metadata entry points <entry-points>`
-now provides a nicer experience
+now provide a nicer experience
 for selecting entry points by group and name through a new
 :class:`importlib.metadata.EntryPoints` class. See the Compatibility
 Note in the docs for more info on the deprecation and usage.
@@ -1579,12 +1572,12 @@ Deprecated
 
 * Currently Python accepts numeric literals immediately followed by keywords,
   for example ``0in x``, ``1or x``, ``0if 1else 2``.  It allows confusing
-  and ambigious expressions like ``[0x1for x in y]`` (which can be
+  and ambiguous expressions like ``[0x1for x in y]`` (which can be
   interpreted as ``[0x1 for x in y]`` or ``[0x1f or x in y]``).  Starting in
   this release, a deprecation warning is raised if the numeric literal is
   immediately followed by one of keywords :keyword:`and`, :keyword:`else`,
   :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` and :keyword:`or`.
-  If future releases it will be changed to syntax warning, and finally to
+  In future releases it will be changed to syntax warning, and finally to
   syntax error.
   (Contributed by Serhiy Storchaka in :issue:`43833`).
 
@@ -1916,7 +1909,7 @@ Changes in the Python API
   if the *globals* dictionary has no ``"__builtins__"`` key, rather than using
   ``{"None": None}`` as builtins: same behavior as :func:`eval` and
   :func:`exec` functions.  Defining a function with ``def function(...): ...``
-  in Python is not affected, globals cannot be overriden with this syntax: it
+  in Python is not affected, globals cannot be overridden with this syntax: it
   also inherits the current builtins.
   (Contributed by Victor Stinner in :issue:`42990`.)
 
index f1725e7df022045a56f8ec42df718b174375d0f1..296c64d737d3ec3acd1c13a489bdd2fee9186ed3 100644 (file)
@@ -1378,10 +1378,6 @@ Porting to Python 3.9
     becomes an alias to the :c:func:`PyObject_NewVar` macro. They no longer
     access directly the :c:member:`PyTypeObject.tp_basicsize` member.
 
-  * :c:func:`PyType_HasFeature` now always calls :c:func:`PyType_GetFlags`.
-    Previously, it accessed directly the :c:member:`PyTypeObject.tp_flags`
-    member when the limited C API was not used.
-
   * :c:func:`PyObject_GET_WEAKREFS_LISTPTR` macro was converted to a function:
     the macro accessed directly the :c:member:`PyTypeObject.tp_weaklistoffset`
     member.
index 76c0b4e67ec05ea71d4b2cc2849e503f6a1e1875..f730658462147fb34bb000f61a975388de302167 100644 (file)
@@ -512,11 +512,11 @@ star_named_expression[expr_ty]:
     | named_expression
 
 
-assigment_expression[expr_ty]:
+assignment_expression[expr_ty]:
     | a=NAME ':=' ~ b=expression { _PyAST_NamedExpr(CHECK(expr_ty, _PyPegen_set_expr_context(p, a, Store)), b, EXTRA) }
 
 named_expression[expr_ty]:
-    | assigment_expression
+    | assignment_expression
     | invalid_named_expression
     | expression !':='
 
@@ -529,6 +529,7 @@ expressions[expr_ty]:
     | expression
 expression[expr_ty] (memo):
     | invalid_expression
+    | invalid_legacy_expression
     | a=disjunction 'if' b=disjunction 'else' c=expression { _PyAST_IfExp(b, a, c, EXTRA) }
     | disjunction
     | lambdef
@@ -666,7 +667,6 @@ await_primary[expr_ty] (memo):
     | AWAIT a=primary { CHECK_VERSION(expr_ty, 5, "Await expressions are", _PyAST_Await(a, EXTRA)) }
     | primary
 primary[expr_ty]:
-    | invalid_primary  # must be before 'primay genexp' because of invalid_genexp
     | a=primary '.' b=NAME { _PyAST_Attribute(a, b->v.Name.id, Load, EXTRA) }
     | a=primary b=genexp { _PyAST_Call(a, CHECK(asdl_expr_seq*, (asdl_expr_seq*)_PyPegen_singleton_seq(p, b)), NULL, EXTRA) }
     | a=primary '(' b=[arguments] ')' {
@@ -708,7 +708,7 @@ group[expr_ty]:
     | '(' a=(yield_expr | named_expression) ')' { a }
     | invalid_group
 genexp[expr_ty]:
-    | '(' a=( assigment_expression | expression !':=') b=for_if_clauses ')' { _PyAST_GeneratorExp(a, b, EXTRA) }
+    | '(' a=( assignment_expression | expression !':=') b=for_if_clauses ')' { _PyAST_GeneratorExp(a, b, EXTRA) }
     | invalid_comprehension
 set[expr_ty]: '{' a=star_named_expressions '}' { _PyAST_Set(a, EXTRA) }
 setcomp[expr_ty]:
@@ -747,7 +747,7 @@ arguments[expr_ty] (memo):
     | a=args [','] &')' { a }
     | invalid_arguments
 args[expr_ty]:
-    | a[asdl_expr_seq*]=','.(starred_expression | ( assigment_expression | expression !':=') !'=')+ b=[',' k=kwargs {k}] {
+    | a[asdl_expr_seq*]=','.(starred_expression | ( assignment_expression | expression !':=') !'=')+ b=[',' k=kwargs {k}] {
         _PyPegen_collect_call_seqs(p, a, b, EXTRA) }
     | a=kwargs { _PyAST_Call(_PyPegen_dummy_name(p),
                           CHECK_NULL_ALLOWED(asdl_expr_seq*, _PyPegen_seq_extract_starred_exprs(p, a)),
@@ -838,6 +838,8 @@ invalid_arguments:
         RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, asdl_seq_GET(b, b->size-1)->target, "Generator expression must be parenthesized") }
     | a=args ',' args { _PyPegen_arguments_parsing_error(p, a) }
 invalid_kwarg:
+    | a[Token*]=('True'|'False'|'None') b='=' {
+        RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "cannot assign to %s", PyBytes_AS_STRING(a->bytes)) }
     | a=NAME b='=' expression for_if_clauses {
         RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Maybe you meant '==' or ':=' instead of '='?")}
     | !(NAME '=') a=expression b='=' {
@@ -854,10 +856,10 @@ invalid_legacy_expression:
             "Missing parentheses in call to '%U'. Did you mean %U(...)?", a->v.Name.id, a->v.Name.id) : NULL}
 
 invalid_expression:
-   | invalid_legacy_expression
     # !(NAME STRING) is not matched so we don't show this error with some invalid string prefixes like: kf"dsfsdf"
     # Soft keywords need to also be ignored because they can be parsed as NAME NAME
    | !(NAME STRING | SOFT_KEYWORD) a=disjunction b=expression_without_invalid {
+        _PyPegen_check_legacy_stmt(p, a) ? NULL : p->tokens[p->mark-1]->level == 0 ? NULL :
         RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") }
    | a=disjunction 'if' b=disjunction !('else'|':') { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") }
 
@@ -900,8 +902,6 @@ invalid_del_stmt:
         RAISE_SYNTAX_ERROR_INVALID_TARGET(DEL_TARGETS, a) }
 invalid_block:
     | NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block") }
-invalid_primary:
-    | primary a='{' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "invalid syntax") }
 invalid_comprehension:
     | ('[' | '(' | '{') a=starred_expression for_if_clauses {
         RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "iterable unpacking cannot be used in comprehension") }
index 04858f281cab8d8d636e380b6a5dfc898388ad2b..d3186c32e35500e4834eea4283ee3d630bbb9410 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
 #include "sliceobject.h"
 #include "cellobject.h"
 #include "iterobject.h"
+#include "cpython/initconfig.h"
 #include "genobject.h"
 #include "descrobject.h"
 #include "genericaliasobject.h"
 
 #include "codecs.h"
 #include "pyerrors.h"
-
-#include "cpython/initconfig.h"
 #include "pythread.h"
 #include "pystate.h"
 #include "context.h"
index e8d3f9293b98d32cbeb073dd934734cb449a9b80..9eaab6b2e054c4406f3bb4af8f423a94a4907965 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 6822a65cad95e8a0a35ed3661990ef22f51b8bf8..641d7bdc48e2efd3c866b3082c5dfe3f75f455d9 100644 (file)
@@ -22,7 +22,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 09f9a2947efef38a01a4a1242477a2f0a26d156e..583165bee48ccc512c5b13d0520464cb1b4acbfc 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef Py_PYCORECONFIG_H
 #define Py_PYCORECONFIG_H
 #ifndef Py_LIMITED_API
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 /* --- PyStatus ----------------------------------------------- */
 
@@ -239,5 +242,8 @@ PyAPI_FUNC(PyStatus) PyConfig_SetWideStringList(PyConfig *config,
    See also PyConfig.orig_argv. */
 PyAPI_FUNC(void) Py_GetArgcArgv(int *argc, wchar_t ***argv);
 
+#ifdef __cplusplus
+}
+#endif
 #endif /* !Py_LIMITED_API */
 #endif /* !Py_PYCORECONFIG_H */
index 5e57129c3b82cff00d02689fa690ea9dd5f8a145..3f952456679ec943e5d6eb5231443d848b1a4bf0 100644 (file)
@@ -185,6 +185,12 @@ Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_Create(
     Py_ssize_t end,
     const char *reason          /* UTF-8 encoded string */
     );
+
+PyAPI_FUNC(PyObject *) _PyErr_ProgramDecodedTextObject(
+    PyObject *filename,
+    int lineno,
+    const char* encoding);
+
 PyAPI_FUNC(PyObject *) _PyUnicodeTranslateError_Create(
     PyObject *object,
     Py_ssize_t start,
index e3ccc5435608498d19ea454024cbb9757f0d7914..7c995b93074f6ed6afa7fc1c06a550a837aad95c 100644 (file)
@@ -2,8 +2,6 @@
 #  error "this header file must not be included directly"
 #endif
 
-#include "cpython/initconfig.h"
-
 PyAPI_FUNC(int) _PyInterpreterState_RequiresIDRef(PyInterpreterState *);
 PyAPI_FUNC(void) _PyInterpreterState_RequireIDRef(PyInterpreterState *, int);
 
@@ -242,7 +240,7 @@ PyAPI_FUNC(int) _PyInterpreterState_GetConfigCopy(
 PyAPI_FUNC(int) _PyInterpreterState_SetConfig(
     const struct PyConfig *config);
 
-// Get the configuration of the currrent interpreter.
+// Get the configuration of the current interpreter.
 // The caller must hold the GIL.
 PyAPI_FUNC(const PyConfig*) _Py_GetConfig(void);
 
index 56607d199ed542da7448cea7272ee84fe48713eb..754c7f4777f9c26afa911df35721d2ac8b1a63bd 100644 (file)
@@ -88,13 +88,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 0b5067f5d3f4b71ff4531dacb224b89e5e7dad72..0761f01efb42f85d22c47b9dc3a43bd74f049317 100644 (file)
@@ -834,12 +834,21 @@ 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. */
@@ -857,6 +866,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 6be8cb5e203e2d58503737c5956e10312732b557..90d98134b8919b8427124e6bc6524e7c0a3a9313 100644 (file)
@@ -29,6 +29,8 @@ _PyType_HasFeature(PyTypeObject *type, unsigned long feature) {
 
 extern void _PyType_InitCache(PyInterpreterState *interp);
 
+/* Only private in Python 3.10 and 3.9.8+; public in 3.11 */
+extern PyObject *_PyType_GetQualName(PyTypeObject *type);
 
 /* Inline functions trading binary compatibility for speed:
    _PyObject_Init() is the fast version of PyObject_Init(), and
index 4d282308769dc872d2f595ddda72ba0567b55e86..c01a47639d5e30b3e34547e092646e3a2cbf594f 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 9e6a8f4656af0e687e259e94cb439727cfa98ab5..61e638c34973c4e8325a94fb350312ccb5002809 100644 (file)
@@ -590,7 +590,7 @@ static inline PyObject* _Py_XNewRef(PyObject *obj)
 }
 
 // Py_NewRef() and Py_XNewRef() are exported as functions for the stable ABI.
-// Names overriden with macros by static inline functions for best
+// Names overridden with macros by static inline functions for best
 // performances.
 #define Py_NewRef(obj) _Py_NewRef(_PyObject_CAST(obj))
 #define Py_XNewRef(obj) _Py_XNewRef(_PyObject_CAST(obj))
index afa621e640403620d733091018964ac7bb6cb0ef..9e8a56099cc5a1fb12fc8bf7a8e05636d37ff696 100644 (file)
 /*--start constants--*/
 #define PY_MAJOR_VERSION        3
 #define PY_MINOR_VERSION        10
-#define PY_MICRO_VERSION        0
+#define PY_MICRO_VERSION        1
 #define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_FINAL
 #define PY_RELEASE_SERIAL       0
 
 /* Version as a string */
-#define PY_VERSION              "3.10.0"
+#define PY_VERSION              "3.10.1"
 /*--end constants--*/
 
 /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
index 2ded39a0d341a8e755d2280a253d917173ae50f1..9eed24c2a2a76940a7950cf55fa0e303ea711b0e 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'):
index b966ad26bf467b0641cfe91d904cbd83e781ac79..7abaaca2d2b284fc9a0c682ea942b90ec689f418 100644 (file)
@@ -479,7 +479,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):
@@ -492,7 +492,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 a7453fb1c77287898bedeaf3828daafe49b0f013..4fef64e3921e17004f2dbd16426002daea85fae2 100644 (file)
@@ -230,8 +230,6 @@ class Condition(_ContextManagerMixin, mixins._LoopBoundMixin):
         super().__init__(loop=loop)
         if lock is None:
             lock = Lock()
-        elif lock._loop is not self._get_loop():
-            raise ValueError("loop argument must agree with lock")
 
         self._lock = lock
         # Export the lock's locked(), acquire() and release() methods.
index 9a9d0d6e3cc269d15195355648c01b185548aa87..53eef84427be10c2f137370716e562f607624a20 100644 (file)
@@ -415,11 +415,9 @@ async def wait_for(fut, timeout):
 
         await _cancel_and_wait(fut, loop=loop)
         try:
-            fut.result()
+            return fut.result()
         except exceptions.CancelledError as exc:
             raise exceptions.TimeoutError() from exc
-        else:
-            raise exceptions.TimeoutError()
 
     waiter = loop.create_future()
     timeout_handle = loop.call_later(timeout, _release_waiter, waiter)
@@ -455,11 +453,9 @@ async def wait_for(fut, timeout):
             # exception, we should re-raise it
             # See https://bugs.python.org/issue40607
             try:
-                fut.result()
+                return fut.result()
             except exceptions.CancelledError as exc:
                 raise exceptions.TimeoutError() from exc
-            else:
-                raise exceptions.TimeoutError()
     finally:
         timeout_handle.cancel()
 
index e4f445e95026b55e7060a496d4da9841f1bc0e12..c88b818de62a6f4fda0e9c5af8bc11beff2fcbd9 100644 (file)
@@ -1379,7 +1379,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 7f1d20632ef139887bfb497f0261dea83d068978..fabe4f73c8d8085cffc2792dee4c1629a87b8b35 100644 (file)
@@ -197,10 +197,6 @@ class BZ2File(_compression.BaseStream):
         self._check_can_read()
         return self._buffer.readline(size)
 
-    def __iter__(self):
-        self._check_can_read()
-        return self._buffer.__iter__()
-
     def readlines(self, size=-1):
         """Read a list of lines of uncompressed bytes from the file.
 
index 3e00477616df8f048f32483e76797075a4364ab8..3755e76ba813f5b699c20307453a2fd1cd539287 100644 (file)
@@ -367,9 +367,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 764719859f7cea583fcc2abbac270d25a28a7cb3..6ee2ce626e4567fe684c376706aff3b4997ed3bb 100644 (file)
@@ -373,7 +373,7 @@ class _ExecutorManagerThread(threading.Thread):
         assert not self.thread_wakeup._closed
         wakeup_reader = self.thread_wakeup._reader
         readers = [result_reader, wakeup_reader]
-        worker_sentinels = [p.sentinel for p in self.processes.values()]
+        worker_sentinels = [p.sentinel for p in list(self.processes.values())]
         ready = mp.connection.wait(readers + worker_sentinels)
 
         cause = None
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 1e0a39f8d8512a4649c04bda8fb16f322b7348a4..c63a8492e2d3d5fc64887b426c37917fc8f5ec71 100644 (file)
@@ -540,10 +540,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
@@ -674,10 +674,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 dd41c54dffe1d71f40a68f9a5aad39af38d94f6c..69bac980be2054ca7c4e25697a4d5aeffd0134f1 100644 (file)
@@ -39,8 +39,8 @@ Python's deep copy operation avoids these problems by:
     set of components copied
 
 This version does not copy types like module, class, function, method,
-nor stack trace, stack frame, nor file, socket, window, nor array, nor
-any similar types.
+nor stack trace, stack frame, nor file, socket, window, nor any
+similar types.
 
 Classes can use the same interfaces to control copying that they use
 to control pickling: they can define methods called __getinitargs__(),
index 26959d90a4dd6a05424ea5c5af4c935b8f3291fb..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)
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 79739976d3d29b4053a2d61968773025642ad967..105a95b95540ebf4e388a44640e99edff821ce70 100644 (file)
@@ -229,7 +229,7 @@ class InitVar:
         self.type = type
 
     def __repr__(self):
-        if isinstance(self.type, type):
+        if isinstance(self.type, type) and not isinstance(self.type, GenericAlias):
             type_name = self.type.__name__
         else:
             # typing objects, e.g. List[int]
@@ -447,7 +447,7 @@ def _field_assign(frozen, name, value, self_name):
     return f'{self_name}.{name}={value}'
 
 
-def _field_init(f, frozen, globals, self_name):
+def _field_init(f, frozen, globals, self_name, slots):
     # Return the text of the line in the body of __init__ that will
     # initialize this field.
 
@@ -487,9 +487,15 @@ def _field_init(f, frozen, globals, self_name):
                 globals[default_name] = f.default
                 value = f.name
         else:
-            # This field does not need initialization.  Signify that
-            # to the caller by returning None.
-            return None
+            # If the class has slots, then initialize this field.
+            if slots and f.default is not MISSING:
+                globals[default_name] = f.default
+                value = default_name
+            else:
+                # This field does not need initialization: reading from it will
+                # just use the class attribute that contains the default.
+                # Signify that to the caller by returning None.
+                return None
 
     # Only test this now, so that we can create variables for the
     # default.  However, return None to signify that we're not going
@@ -521,7 +527,7 @@ def _init_param(f):
 
 
 def _init_fn(fields, std_fields, kw_only_fields, frozen, has_post_init,
-             self_name, globals):
+             self_name, globals, slots):
     # fields contains both real fields and InitVar pseudo-fields.
 
     # Make sure we don't have fields without defaults following fields
@@ -548,7 +554,7 @@ def _init_fn(fields, std_fields, kw_only_fields, frozen, has_post_init,
 
     body_lines = []
     for f in fields:
-        line = _field_init(f, frozen, locals, self_name)
+        line = _field_init(f, frozen, locals, self_name, slots)
         # line is None means that this field doesn't require
         # initialization (it's a pseudo-field).  Just skip it.
         if line:
@@ -1027,6 +1033,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen,
                                     '__dataclass_self__' if 'self' in fields
                                             else 'self',
                                     globals,
+                                    slots,
                           ))
 
     # Get the fields as a list, and include only real fields.  This is
@@ -1204,7 +1211,7 @@ def _is_dataclass_instance(obj):
 def is_dataclass(obj):
     """Returns True if obj is a dataclass or an instance of a
     dataclass."""
-    cls = obj if isinstance(obj, type) else type(obj)
+    cls = obj if isinstance(obj, type) and not isinstance(obj, GenericAlias) else type(obj)
     return hasattr(cls, _FIELDS)
 
 
@@ -1326,7 +1333,7 @@ def _astuple_inner(obj, tuple_factory):
 
 def make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True,
                    repr=True, eq=True, order=False, unsafe_hash=False,
-                   frozen=False, match_args=True, slots=False):
+                   frozen=False, match_args=True, kw_only=False, slots=False):
     """Return a new dynamically created dataclass.
 
     The dataclass name will be 'cls_name'.  'fields' is an iterable
@@ -1387,13 +1394,13 @@ def make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True,
         ns['__annotations__'] = annotations
 
     # We use `types.new_class()` instead of simply `type()` to allow dynamic creation
-    # of generic dataclassses.
+    # of generic dataclasses.
     cls = types.new_class(cls_name, bases, {}, exec_body_callback)
 
     # Apply the normal decorator.
     return dataclass(cls, init=init, repr=repr, eq=eq, order=order,
                      unsafe_hash=unsafe_hash, frozen=frozen,
-                     match_args=match_args, slots=slots)
+                     match_args=match_args, kw_only=kw_only, slots=slots)
 
 
 def replace(obj, /, **changes):
index 480bad2224c8e1e271c7d820a1da0e22d641fd64..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>.
index 3fee1ce27725cda243fd3dce26f83d8591d8b6e2..fe5d24e88058f745b7df7ddab4c5efc23e7bb27e 100644 (file)
@@ -428,6 +428,7 @@ def _unpack_opargs(code):
             extended_arg = (arg << 8) if op == EXTENDED_ARG else 0
         else:
             arg = None
+            extended_arg = 0
         yield (i, op, arg)
 
 def findlabels(code):
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 26696cfb9dcf9c6d80dbc7cbb0b9c2b70a47b13d..01d5331a63069b14241c6edad5682bc14f77ca48 100644 (file)
@@ -31,7 +31,7 @@ SCHEME_KEYS = ('purelib', 'platlib', 'headers', 'scripts', 'data')
 # while making the sysconfig module the single point of truth.
 # This makes it easier for OS distributions where they need to
 # alter locations for packages installations in a single place.
-# Note that this module is depracated (PEP 632); all consumers
+# Note that this module is deprecated (PEP 632); all consumers
 # of this information should switch to using sysconfig directly.
 INSTALL_SCHEMES = {"unix_prefix": {}, "unix_home": {}, "nt": {}}
 
@@ -43,7 +43,7 @@ for key in SCHEME_KEYS:
         sys_key = key
         sys_scheme = sysconfig._INSTALL_SCHEMES[sys_scheme_name]
         if key == "headers" and key not in sys_scheme:
-            # On POSIX-y platofrms, Python will:
+            # On POSIX-y platforms, Python will:
             # - Build from .h files in 'headers' (only there when
             #   building CPython)
             # - Install .h files to 'include'
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 ba898f65403df16340c3d4e3725d6eff8b30c49a..b27cbdfed46ffd2e4f2364f00fac61c1132ac2cc 100644 (file)
@@ -1034,10 +1034,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 977fedf67b1591db4fe2ac532523e4e056bdac3a..ba5ad5a36d06b740d6d515aa7bd47d8464483155 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 1d258c34fc9d4a4d639facd6e0120bf251deec50..3ad00565549968629376276f2a304dbce070076a 100644 (file)
@@ -110,4 +110,4 @@ class NonASCIILocalPartDefect(HeaderDefect):
     # parsing messages decoded from binary.
 
 class InvalidDateDefect(HeaderDefect):
-    """Header has unparseable or invalid date"""
+    """Header has unparsable or invalid date"""
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 f28ab11ed400828f39a629a46d2708f9de616bad..0a5730c00c35969870518b8ae71ef68216e04b70 100644 (file)
@@ -11,8 +11,8 @@ from importlib import resources
 
 __all__ = ["version", "bootstrap"]
 _PACKAGE_NAMES = ('setuptools', 'pip')
-_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"),
@@ -42,7 +42,7 @@ def _find_packages(path):
     # comparison since this case should not happen.
     filenames = sorted(filenames)
     for filename in filenames:
-        # filename is like 'pip-20.2.3-py2.py3-none-any.whl'
+        # filename is like 'pip-21.2.4-py3-none-any.whl'
         if not filename.endswith(".whl"):
             continue
         for name in _PACKAGE_NAMES:
@@ -52,7 +52,7 @@ def _find_packages(path):
         else:
             continue
 
-        # Extract '20.2.2' from 'pip-20.2.2-py2.py3-none-any.whl'
+        # Extract '21.2.4' from 'pip-21.2.4-py3-none-any.whl'
         version = filename.removeprefix(prefix).partition('-')[0]
         wheel_path = os.path.join(path, filename)
         packages[name] = _Package(version, None, wheel_path)
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 db79e66903ff4bfaf7e56ca2acda3749753d788c..f5657a6eba29c19e139bff5089e01d5f1eb362d5 100644 (file)
@@ -44,10 +44,11 @@ def _is_sunder(name):
 def _is_private(cls_name, name):
     # do not use `re` as `re` imports `enum`
     pattern = '_%s__' % (cls_name, )
+    pat_len = len(pattern)
     if (
-            len(name) >= 5
+            len(name) > pat_len
             and name.startswith(pattern)
-            and name[len(pattern)] != '_'
+            and name[pat_len:pat_len+1] != ['_']
             and (name[-1] != '_' or name[-2] != '_')
         ):
         return True
@@ -392,12 +393,19 @@ class EnumMeta(type):
                 start=start,
                 )
 
-    def __contains__(cls, member):
-        if not isinstance(member, Enum):
+    def __contains__(cls, obj):
+        if not isinstance(obj, Enum):
+            import warnings
+            warnings.warn(
+                    "in 3.12 __contains__ will no longer raise TypeError, but will return True if\n"
+                    "obj is a member or a member's value",
+                    DeprecationWarning,
+                    stacklevel=2,
+                    )
             raise TypeError(
                 "unsupported operand type(s) for 'in': '%s' and '%s'" % (
-                    type(member).__qualname__, cls.__class__.__qualname__))
-        return isinstance(member, cls) and member._name_ in cls._member_map_
+                    type(obj).__qualname__, cls.__class__.__qualname__))
+        return isinstance(obj, cls) and obj._name_ in cls._member_map_
 
     def __delattr__(cls, attr):
         # nicer error message when someone tries to delete an attribute
@@ -580,7 +588,7 @@ class EnumMeta(type):
             return object, Enum
 
         def _find_data_type(bases):
-            data_types = []
+            data_types = set()
             for chain in bases:
                 candidate = None
                 for base in chain.__mro__:
@@ -588,19 +596,19 @@ class EnumMeta(type):
                         continue
                     elif issubclass(base, Enum):
                         if base._member_type_ is not object:
-                            data_types.append(base._member_type_)
+                            data_types.add(base._member_type_)
                             break
                     elif '__new__' in base.__dict__:
                         if issubclass(base, Enum):
                             continue
-                        data_types.append(candidate or base)
+                        data_types.add(candidate or base)
                         break
                     else:
                         candidate = candidate or base
             if len(data_types) > 1:
                 raise TypeError('%r: too many data types: %r' % (class_name, data_types))
             elif data_types:
-                return data_types[0]
+                return data_types.pop()
             else:
                 return None
 
@@ -693,19 +701,25 @@ class Enum(metaclass=EnumMeta):
         except Exception as e:
             exc = e
             result = None
-        if isinstance(result, cls):
-            return result
-        else:
-            ve_exc = ValueError("%r is not a valid %s" % (value, cls.__qualname__))
-            if result is None and exc is None:
-                raise ve_exc
-            elif exc is None:
-                exc = TypeError(
-                        'error in %s._missing_: returned %r instead of None or a valid member'
-                        % (cls.__name__, result)
-                        )
-            exc.__context__ = ve_exc
-            raise exc
+        try:
+            if isinstance(result, cls):
+                return result
+            else:
+                ve_exc = ValueError("%r is not a valid %s" % (value, cls.__qualname__))
+                if result is None and exc is None:
+                    raise ve_exc
+                elif exc is None:
+                    exc = TypeError(
+                            'error in %s._missing_: returned %r instead of None or a valid member'
+                            % (cls.__name__, result)
+                            )
+                if not isinstance(exc, ValueError):
+                    exc.__context__ = ve_exc
+                raise exc
+        finally:
+            # ensure all variables that could hold an exception are destroyed
+            exc = None
+            ve_exc = None
 
     def _generate_next_value_(name, start, count, last_values):
         """
index 3d837b744800eda3747e26cc8e2c9aa3530e5aaf..475ec326c0c982bf2b31603d64d788ba6d2d35ca 100644 (file)
@@ -398,10 +398,6 @@ class GzipFile(_compression.BaseStream):
         self._check_not_closed()
         return self._buffer.readline(size)
 
-    def __iter__(self):
-        self._check_not_closed()
-        return self._buffer.__iter__()
-
 
 class _GzipReader(_compression.DecompressReader):
     def __init__(self, fp):
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 08cf2ed9b3716b7942dec780c24f0388ea471da1..a6ab135b2c3879b588bc24f8fa4c267180d51348 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
@@ -939,7 +940,12 @@ class HTTPConnection:
         sys.audit("http.client.connect", self, self.host, self.port)
         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 bb7ee035c4fefb786f199bcc9e1227818d8e63ce..032d31225315fb71a8efcbbc11b344f83ba1ea7c 100644 (file)
@@ -9,6 +9,12 @@ import os
 import string
 import sys
 
+# Modified keyword list is used in fetch_completions.
+completion_kwds = [s for s in keyword.kwlist
+                     if s not in {'True', 'False', 'None'}]  # In builtins.
+completion_kwds.extend(('match', 'case'))  # Context keywords.
+completion_kwds.sort()
+
 # Two types of completions; defined here for autocomplete_w import below.
 ATTRS, FILES = 0, 1
 from idlelib import autocomplete_w
@@ -177,9 +183,7 @@ class AutoComplete:
                     namespace = {**__main__.__builtins__.__dict__,
                                  **__main__.__dict__}
                     bigl = eval("dir()", namespace)
-                    kwds = (s for s in keyword.kwlist
-                            if s not in {'True', 'False', 'None'})
-                    bigl.extend(kwds)
+                    bigl.extend(completion_kwds)
                     bigl.sort()
                     if "__all__" in bigl:
                         smalll = sorted(eval("__all__", namespace))
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 642bb5db64dc341d238dd5f097c3985c782ea235..a811363c18d04e5770ec7071e08f0273dd04f0bf 100644 (file)
@@ -218,6 +218,11 @@ class AutoCompleteTest(unittest.TestCase):
         self.assertTrue(acp.open_completions(ac.TAB))
         self.text.delete('1.0', 'end')
 
+    def test_completion_kwds(self):
+        self.assertIn('and', ac.completion_kwds)
+        self.assertIn('case', ac.completion_kwds)
+        self.assertNotIn('None', ac.completion_kwds)
+
     def test_fetch_completions(self):
         # Test that fetch_completions returns 2 lists:
         # For attribute completion, a large list containing all variables, and
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 6902b800d5fcb75bb9c69ca7f66a1e1653c5946e..bb12b2b08652d54717f314849d28a8bfc8f5c3bb 100644 (file)
@@ -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 4e7440038ac997cd91569e97c1bbdc5f6e6da546..6c333b0bc3b81836a8af8a7a8e2a011fce1d3f02 100755 (executable)
@@ -66,6 +66,13 @@ use_subprocess = False
 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 3836727691229e3e81ef4bc3db666ec76e2efb90..47c4cbdcb8c3f9e2200b278a878ca78358331e9a 100644 (file)
@@ -40,6 +40,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 a510f08db48a89589b1dcba7714aa09ef3dcd33e..ce61883288aa350f877cd3b3caaeb6865f888bab 100644 (file)
@@ -79,7 +79,7 @@ def find_loader(name, path=None):
 
     """
     warnings.warn('Deprecated since Python 3.4 and slated for removal in '
-                  'Python 3.10; use importlib.util.find_spec() instead',
+                  'Python 3.12; use importlib.util.find_spec() instead',
                   DeprecationWarning, stacklevel=2)
     try:
         loader = sys.modules[name].__loader__
index eedde49dd03ad98116aecaae56108b85b46684df..e72edd10705c26a2726d798f94c3ce11f3aee230 100644 (file)
@@ -46,10 +46,11 @@ class DegenerateFiles:
         def joinpath(self, other):
             return DegenerateFiles.Path()
 
+        @property
         def name(self):
             return ''
 
-        def open(self):
+        def open(self, mode='rb', *args, **kwargs):
             raise ValueError()
 
     def __init__(self, spec):
index f5172eefc184111414f4ec0c26d8f897e0fb105c..b3e8fb05f1d985cf7ad4a1f4645a91aaf00dac98 100644 (file)
@@ -748,7 +748,7 @@ class FastPath:
 
     def children(self):
         with suppress(Exception):
-            return os.listdir(self.root or '')
+            return os.listdir(self.root or '.')
         with suppress(Exception):
             return self.zip_children()
         return []
index 2374e59f0b402299ccf48107238f6c7d0b5255d7..6d43d8dad46b997fca559b7ab719cb7cb779e47e 100644 (file)
@@ -859,7 +859,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])
@@ -1357,6 +1357,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 5dee0a744b2a99e1e88c52dfecfec56a8598d10f..0490b8c0be11dfec924f5dc075e42961d364bf91 100644 (file)
@@ -13,6 +13,7 @@ Usage::
 import argparse
 import json
 import sys
+from pathlib import Path
 
 
 def main():
@@ -25,9 +26,9 @@ def main():
                         help='a JSON file to be validated or pretty-printed',
                         default=sys.stdin)
     parser.add_argument('outfile', nargs='?',
-                        type=argparse.FileType('w', encoding="utf-8"),
+                        type=Path,
                         help='write the output of infile to outfile',
-                        default=sys.stdout)
+                        default=None)
     parser.add_argument('--sort-keys', action='store_true', default=False,
                         help='sort the output of dictionaries alphabetically by key')
     parser.add_argument('--no-ensure-ascii', dest='ensure_ascii', action='store_false',
@@ -58,15 +59,21 @@ def main():
         dump_args['indent'] = None
         dump_args['separators'] = ',', ':'
 
-    with options.infile as infile, options.outfile as outfile:
+    with options.infile as infile:
         try:
             if options.json_lines:
                 objs = (json.loads(line) for line in infile)
             else:
-                objs = (json.load(infile), )
-            for obj in objs:
-                json.dump(obj, outfile, **dump_args)
-                outfile.write('\n')
+                objs = (json.load(infile),)
+
+            if options.outfile is None:
+                out = sys.stdout
+            else:
+                out = options.outfile.open('w', encoding='utf-8')
+            with out as outfile:
+                for obj in objs:
+                    json.dump(obj, outfile, **dump_args)
+                    outfile.write('\n')
         except ValueError as e:
             raise SystemExit(e)
 
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 513b17e999880b5cb0f018e21ec7ce90fd73caed..23191d6501d2a836b24edb452fc3ddb6c1a2b2bf 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 4cabc0d740c29f5d8a6213a42a0ead9c745c2b0f..4e8f0a8cc2f469fd97810ac7343f3e1bcf98eec7 100644 (file)
@@ -187,14 +187,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):
     """
@@ -345,10 +348,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):
         """
@@ -365,8 +371,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 9abf06d91db1848e1df95ecd29433f592098f514..800f52198fbb794077fe43425df83db44e13960d 100644 (file)
@@ -221,10 +221,6 @@ class LZMAFile(_compression.BaseStream):
         self._check_can_read()
         return self._buffer.readline(size)
 
-    def __iter__(self):
-        self._check_can_read()
-        return self._buffer.__iter__()
-
     def write(self, data):
         """Write a bytes object to the file.
 
index 1e83131d05b1c7822a8fe79d44c37b332aceadb4..c389685c08f6f3a4e8ae0e04ace7a4511ac2bc9b 100644 (file)
@@ -175,7 +175,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 5ab312f2acaee6c2cfb32595c9a779fb5a98262c..e7f30f226101f52f518b2ced0f36010a6242711c 100644 (file)
@@ -1173,7 +1173,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 134fbae6b1cc7e2785c7cb1d95d2fc00365f6ca2..e32f9c11cdbf1685d0dcb907b380cef8c1ae95d3 100755 (executable)
@@ -1262,7 +1262,7 @@ _os_release_cache = None
 
 def _parse_os_release(lines):
     # These fields are mandatory fields with well-known defaults
-    # in pratice all Linux distributions override NAME, ID, and PRETTY_NAME.
+    # in practice all Linux distributions override NAME, ID, and PRETTY_NAME.
     info = {
         "NAME": "Linux",
         "ID": "linux",
index 13819f3fef212a3c05896deeeb62fbfba9efb6f4..d91421f0a6bf60a5a79b0c46050941d58637f180 100644 (file)
@@ -50,7 +50,8 @@ def pprint(object, stream=None, indent=1, width=80, depth=None, *,
     """Pretty-print a Python object to a stream [default is sys.stdout]."""
     printer = PrettyPrinter(
         stream=stream, indent=indent, width=width, depth=depth,
-        compact=compact, sort_dicts=sort_dicts, underscore_numbers=False)
+        compact=compact, sort_dicts=sort_dicts,
+        underscore_numbers=underscore_numbers)
     printer.pprint(object)
 
 def pformat(object, indent=1, width=80, depth=None, *,
index 0f9b59025cee384de3ca66ec8bada37850226a86..388614e51b1847cbd81400d9ce48dd734e050e14 100644 (file)
@@ -190,7 +190,7 @@ def main():
     )
     args = parser.parse_args()
     if args.filenames == ['-']:
-        filenames = sys.stdin.readlines()
+        filenames = [filename.rstrip('\n') for filename in sys.stdin.readlines()]
     else:
         filenames = args.filenames
     for filename in filenames:
index 7720694bd592e3c0a295a1195ac2d975ef847bc1..00c98ad51072cf83d063ca9e30dae065233a5341 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Mon Oct  4 18:28:12 2021
+# Autogenerated by Sphinx on Mon Dec  6 17:57:38 2021
 topics = {'assert': 'The "assert" statement\n'
            '**********************\n'
            '\n'
@@ -3339,9 +3339,9 @@ topics = {'assert': 'The "assert" statement\n'
              '\n'
              'The same keyword should not be repeated in class patterns.\n'
              '\n'
-             'The following is the logical flow for matching a mapping '
-             'pattern\n'
-             'against a subject value:\n'
+             'The following is the logical flow for matching a class pattern '
+             'against\n'
+             'a subject value:\n'
              '\n'
              '1. If "name_or_attr" is not an instance of the builtin "type" , '
              'raise\n'
@@ -5488,20 +5488,32 @@ topics = {'assert': 'The "assert" statement\n'
               'binding\n'
               'operations.\n'
               '\n'
-              'The following constructs bind names: formal parameters to '
-              'functions,\n'
-              '"import" statements, class and function definitions (these bind '
-              'the\n'
-              'class or function name in the defining block), and targets that '
-              'are\n'
-              'identifiers if occurring in an assignment, "for" loop header, '
-              'or after\n'
-              '"as" in a "with" statement or "except" clause. The "import" '
-              'statement\n'
-              'of the form "from ... import *" binds all names defined in the\n'
-              'imported module, except those beginning with an underscore.  '
-              'This form\n'
-              'may only be used at the module level.\n'
+              'The following constructs bind names:\n'
+              '\n'
+              '* formal parameters to functions,\n'
+              '\n'
+              '* class definitions,\n'
+              '\n'
+              '* function definitions,\n'
+              '\n'
+              '* assignment expressions,\n'
+              '\n'
+              '* targets that are identifiers if occurring in an assignment:\n'
+              '\n'
+              '  * "for" loop header,\n'
+              '\n'
+              '  * after "as" in a "with" statement, "except" clause or in the '
+              'as-\n'
+              '    pattern in structural pattern matching,\n'
+              '\n'
+              '  * in a capture pattern in structural pattern matching\n'
+              '\n'
+              '* "import" statements.\n'
+              '\n'
+              'The "import" statement of the form "from ... import *" binds '
+              'all names\n'
+              'defined in the imported module, except those beginning with an\n'
+              'underscore. This form may only be used at the module level.\n'
               '\n'
               'A target occurring in a "del" statement is also considered '
               'bound for\n'
@@ -5574,9 +5586,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 '
@@ -5585,9 +5597,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'
@@ -6943,22 +6956,31 @@ topics = {'assert': 'The "assert" statement\n'
                'trailing underscore characters:\n'
                '\n'
                '"_*"\n'
-               '   Not imported by "from module import *".  The special '
-               'identifier "_"\n'
-               '   is used in the interactive interpreter to store the result '
-               'of the\n'
-               '   last evaluation; it is stored in the "builtins" module.  '
-               'When not\n'
-               '   in interactive mode, "_" has no special meaning and is not '
-               'defined.\n'
-               '   See section The import statement.\n'
+               '   Not imported by "from module import *".\n'
+               '\n'
+               '"_"\n'
+               '   In a "case" pattern within a "match" statement, "_" is a '
+               'soft\n'
+               '   keyword that denotes a wildcard.\n'
+               '\n'
+               '   Separately, the interactive interpreter makes the result of '
+               'the\n'
+               '   last evaluation available in the variable "_". (It is '
+               'stored in the\n'
+               '   "builtins" module, alongside built-in functions like '
+               '"print".)\n'
+               '\n'
+               '   Elsewhere, "_" is a regular identifier. It is often used to '
+               'name\n'
+               '   “special” items, but it is not special to Python itself.\n'
                '\n'
                '   Note:\n'
                '\n'
                '     The name "_" is often used in conjunction with\n'
                '     internationalization; refer to the documentation for the\n'
                '     "gettext" module for more information on this '
-               'convention.\n'
+               'convention.It is\n'
+               '     also commonly used for unused variables.\n'
                '\n'
                '"__*__"\n'
                '   System-defined names, informally known as “dunder” names. '
@@ -7113,15 +7135,23 @@ topics = {'assert': 'The "assert" statement\n'
                 'trailing underscore characters:\n'
                 '\n'
                 '"_*"\n'
-                '   Not imported by "from module import *".  The special '
-                'identifier "_"\n'
-                '   is used in the interactive interpreter to store the result '
+                '   Not imported by "from module import *".\n'
+                '\n'
+                '"_"\n'
+                '   In a "case" pattern within a "match" statement, "_" is a '
+                'soft\n'
+                '   keyword that denotes a wildcard.\n'
+                '\n'
+                '   Separately, the interactive interpreter makes the result '
                 'of the\n'
-                '   last evaluation; it is stored in the "builtins" module.  '
-                'When not\n'
-                '   in interactive mode, "_" has no special meaning and is not '
-                'defined.\n'
-                '   See section The import statement.\n'
+                '   last evaluation available in the variable "_". (It is '
+                'stored in the\n'
+                '   "builtins" module, alongside built-in functions like '
+                '"print".)\n'
+                '\n'
+                '   Elsewhere, "_" is a regular identifier. It is often used '
+                'to name\n'
+                '   “special” items, but it is not special to Python itself.\n'
                 '\n'
                 '   Note:\n'
                 '\n'
@@ -7129,7 +7159,8 @@ topics = {'assert': 'The "assert" statement\n'
                 '     internationalization; refer to the documentation for '
                 'the\n'
                 '     "gettext" module for more information on this '
-                'convention.\n'
+                'convention.It is\n'
+                '     also commonly used for unused variables.\n'
                 '\n'
                 '"__*__"\n'
                 '   System-defined names, informally known as “dunder” names. '
@@ -7590,20 +7621,32 @@ topics = {'assert': 'The "assert" statement\n'
            '*Names* refer to objects.  Names are introduced by name binding\n'
            'operations.\n'
            '\n'
-           'The following constructs bind names: formal parameters to '
-           'functions,\n'
-           '"import" statements, class and function definitions (these bind '
-           'the\n'
-           'class or function name in the defining block), and targets that '
-           'are\n'
-           'identifiers if occurring in an assignment, "for" loop header, or '
-           'after\n'
-           '"as" in a "with" statement or "except" clause. The "import" '
-           'statement\n'
-           'of the form "from ... import *" binds all names defined in the\n'
-           'imported module, except those beginning with an underscore.  This '
-           'form\n'
-           'may only be used at the module level.\n'
+           'The following constructs bind names:\n'
+           '\n'
+           '* formal parameters to functions,\n'
+           '\n'
+           '* class definitions,\n'
+           '\n'
+           '* function definitions,\n'
+           '\n'
+           '* assignment expressions,\n'
+           '\n'
+           '* targets that are identifiers if occurring in an assignment:\n'
+           '\n'
+           '  * "for" loop header,\n'
+           '\n'
+           '  * after "as" in a "with" statement, "except" clause or in the '
+           'as-\n'
+           '    pattern in structural pattern matching,\n'
+           '\n'
+           '  * in a capture pattern in structural pattern matching\n'
+           '\n'
+           '* "import" statements.\n'
+           '\n'
+           'The "import" statement of the form "from ... import *" binds all '
+           'names\n'
+           'defined in the imported module, except those beginning with an\n'
+           'underscore. This form may only be used at the module level.\n'
            '\n'
            'A target occurring in a "del" statement is also considered bound '
            'for\n'
@@ -7673,8 +7716,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'
@@ -7683,9 +7726,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'
@@ -8020,9 +8063,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'
@@ -8644,22 +8687,24 @@ topics = {'assert': 'The "assert" statement\n'
                    'object.__getitem__(self, key)\n'
                    '\n'
                    '   Called to implement evaluation of "self[key]". For '
-                   'sequence types,\n'
-                   '   the accepted keys should be integers and slice '
-                   'objects.  Note that\n'
-                   '   the special interpretation of negative indexes (if the '
-                   'class wishes\n'
-                   '   to emulate a sequence type) is up to the '
-                   '"__getitem__()" method. If\n'
-                   '   *key* is of an inappropriate type, "TypeError" may be '
-                   'raised; if of\n'
-                   '   a value outside the set of indexes for the sequence '
-                   '(after any\n'
-                   '   special interpretation of negative values), '
-                   '"IndexError" should be\n'
-                   '   raised. For mapping types, if *key* is missing (not in '
+                   '*sequence*\n'
+                   '   types, the accepted keys should be integers and slice '
+                   'objects.\n'
+                   '   Note that the special interpretation of negative '
+                   'indexes (if the\n'
+                   '   class wishes to emulate a *sequence* type) is up to '
                    'the\n'
-                   '   container), "KeyError" should be raised.\n'
+                   '   "__getitem__()" method. If *key* is of an inappropriate '
+                   'type,\n'
+                   '   "TypeError" may be raised; if of a value outside the '
+                   'set of indexes\n'
+                   '   for the sequence (after any special interpretation of '
+                   'negative\n'
+                   '   values), "IndexError" should be raised. For *mapping* '
+                   'types, if\n'
+                   '   *key* is missing (not in the container), "KeyError" '
+                   'should be\n'
+                   '   raised.\n'
                    '\n'
                    '   Note:\n'
                    '\n'
@@ -8669,6 +8714,15 @@ topics = {'assert': 'The "assert" statement\n'
                    'of the\n'
                    '     sequence.\n'
                    '\n'
+                   '   Note:\n'
+                   '\n'
+                   '     When subscripting a *class*, the special class '
+                   'method\n'
+                   '     "__class_getitem__()" may be called instead of '
+                   '"__getitem__()".\n'
+                   '     See __class_getitem__ versus __getitem__ for more '
+                   'details.\n'
+                   '\n'
                    'object.__setitem__(self, key, value)\n'
                    '\n'
                    '   Called to implement assignment to "self[key]".  Same '
@@ -8704,19 +8758,13 @@ topics = {'assert': 'The "assert" statement\n'
                    '\n'
                    'object.__iter__(self)\n'
                    '\n'
-                   '   This method is called when an iterator is required for '
-                   'a container.\n'
-                   '   This method should return a new iterator object that '
-                   'can iterate\n'
-                   '   over all the objects in the container.  For mappings, '
-                   'it should\n'
-                   '   iterate over the keys of the container.\n'
-                   '\n'
-                   '   Iterator objects also need to implement this method; '
-                   'they are\n'
-                   '   required to return themselves.  For more information on '
-                   'iterator\n'
-                   '   objects, see Iterator Types.\n'
+                   '   This method is called when an *iterator* is required '
+                   'for a\n'
+                   '   container. This method should return a new iterator '
+                   'object that can\n'
+                   '   iterate over all the objects in the container.  For '
+                   'mappings, it\n'
+                   '   should iterate over the keys of the container.\n'
                    '\n'
                    'object.__reversed__(self)\n'
                    '\n'
@@ -10294,9 +10342,33 @@ topics = {'assert': 'The "assert" statement\n'
                  'Emulating generic types\n'
                  '=======================\n'
                  '\n'
-                 'One can implement the generic class syntax as specified by '
-                 '**PEP 484**\n'
-                 '(for example "List[int]") by defining a special method:\n'
+                 'When using *type annotations*, it is often useful to '
+                 '*parameterize* a\n'
+                 '*generic type* using Python’s square-brackets notation. For '
+                 'example,\n'
+                 'the annotation "list[int]" might be used to signify a "list" '
+                 'in which\n'
+                 'all the elements are of type "int".\n'
+                 '\n'
+                 'See also:\n'
+                 '\n'
+                 '  **PEP 484** - Type Hints\n'
+                 '     Introducing Python’s framework for type annotations\n'
+                 '\n'
+                 '  Generic Alias Types\n'
+                 '     Documentation for objects representing parameterized '
+                 'generic\n'
+                 '     classes\n'
+                 '\n'
+                 '  Generics, user-defined generics and "typing.Generic"\n'
+                 '     Documentation on how to implement generic classes that '
+                 'can be\n'
+                 '     parameterized at runtime and understood by static '
+                 'type-checkers.\n'
+                 '\n'
+                 'A class can *generally* only be parameterized if it defines '
+                 'the\n'
+                 'special class method "__class_getitem__()".\n'
                  '\n'
                  'classmethod object.__class_getitem__(cls, key)\n'
                  '\n'
@@ -10304,18 +10376,144 @@ topics = {'assert': 'The "assert" statement\n'
                  'generic class\n'
                  '   by type arguments found in *key*.\n'
                  '\n'
-                 'This method is looked up on the class object itself, and '
-                 'when defined\n'
-                 'in the class body, this method is implicitly a class '
-                 'method.  Note,\n'
-                 'this mechanism is primarily reserved for use with static '
-                 'type hints,\n'
-                 'other usage is discouraged.\n'
+                 '   When defined on a class, "__class_getitem__()" is '
+                 'automatically a\n'
+                 '   class method. As such, there is no need for it to be '
+                 'decorated with\n'
+                 '   "@classmethod" when it is defined.\n'
+                 '\n'
+                 '\n'
+                 'The purpose of *__class_getitem__*\n'
+                 '----------------------------------\n'
+                 '\n'
+                 'The purpose of "__class_getitem__()" is to allow runtime\n'
+                 'parameterization of standard-library generic classes in '
+                 'order to more\n'
+                 'easily apply *type hints* to these classes.\n'
+                 '\n'
+                 'To implement custom generic classes that can be '
+                 'parameterized at\n'
+                 'runtime and understood by static type-checkers, users should '
+                 'either\n'
+                 'inherit from a standard library class that already '
+                 'implements\n'
+                 '"__class_getitem__()", or inherit from "typing.Generic", '
+                 'which has its\n'
+                 'own implementation of "__class_getitem__()".\n'
+                 '\n'
+                 'Custom implementations of "__class_getitem__()" on classes '
+                 'defined\n'
+                 'outside of the standard library may not be understood by '
+                 'third-party\n'
+                 'type-checkers such as mypy. Using "__class_getitem__()" on '
+                 'any class\n'
+                 'for purposes other than type hinting is discouraged.\n'
+                 '\n'
+                 '\n'
+                 '*__class_getitem__* versus *__getitem__*\n'
+                 '----------------------------------------\n'
+                 '\n'
+                 'Usually, the subscription of an object using square brackets '
+                 'will call\n'
+                 'the "__getitem__()" instance method defined on the object’s '
+                 'class.\n'
+                 'However, if the object being subscribed is itself a class, '
+                 'the class\n'
+                 'method "__class_getitem__()" may be called instead.\n'
+                 '"__class_getitem__()" should return a GenericAlias object if '
+                 'it is\n'
+                 'properly defined.\n'
+                 '\n'
+                 'Presented with the *expression* "obj[x]", the Python '
+                 'interpreter\n'
+                 'follows something like the following process to decide '
+                 'whether\n'
+                 '"__getitem__()" or "__class_getitem__()" should be called:\n'
+                 '\n'
+                 '   from inspect import isclass\n'
+                 '\n'
+                 '   def subscribe(obj, x):\n'
+                 '       """Return the result of the expression `obj[x]`"""\n'
+                 '\n'
+                 '       class_of_obj = type(obj)\n'
+                 '\n'
+                 '       # If the class of obj defines __getitem__,\n'
+                 '       # call class_of_obj.__getitem__(obj, x)\n'
+                 "       if hasattr(class_of_obj, '__getitem__'):\n"
+                 '           return class_of_obj.__getitem__(obj, x)\n'
+                 '\n'
+                 '       # Else, if obj is a class and defines '
+                 '__class_getitem__,\n'
+                 '       # call obj.__class_getitem__(x)\n'
+                 '       elif isclass(obj) and hasattr(obj, '
+                 "'__class_getitem__'):\n"
+                 '           return obj.__class_getitem__(x)\n'
+                 '\n'
+                 '       # Else, raise an exception\n'
+                 '       else:\n'
+                 '           raise TypeError(\n'
+                 '               f"\'{class_of_obj.__name__}\' object is not '
+                 'subscriptable"\n'
+                 '           )\n'
+                 '\n'
+                 'In Python, all classes are themselves instances of other '
+                 'classes. The\n'
+                 'class of a class is known as that class’s *metaclass*, and '
+                 'most\n'
+                 'classes have the "type" class as their metaclass. "type" '
+                 'does not\n'
+                 'define "__getitem__()", meaning that expressions such as '
+                 '"list[int]",\n'
+                 '"dict[str, float]" and "tuple[str, bytes]" all result in\n'
+                 '"__class_getitem__()" being called:\n'
+                 '\n'
+                 '   >>> # list has class "type" as its metaclass, like most '
+                 'classes:\n'
+                 '   >>> type(list)\n'
+                 "   <class 'type'>\n"
+                 '   >>> type(dict) == type(list) == type(tuple) == type(str) '
+                 '== type(bytes)\n'
+                 '   True\n'
+                 '   >>> # "list[int]" calls "list.__class_getitem__(int)"\n'
+                 '   >>> list[int]\n'
+                 '   list[int]\n'
+                 '   >>> # list.__class_getitem__ returns a GenericAlias '
+                 'object:\n'
+                 '   >>> type(list[int])\n'
+                 "   <class 'types.GenericAlias'>\n"
+                 '\n'
+                 'However, if a class has a custom metaclass that defines\n'
+                 '"__getitem__()", subscribing the class may result in '
+                 'different\n'
+                 'behaviour. An example of this can be found in the "enum" '
+                 'module:\n'
+                 '\n'
+                 '   >>> from enum import Enum\n'
+                 '   >>> class Menu(Enum):\n'
+                 '   ...     """A breakfast menu"""\n'
+                 "   ...     SPAM = 'spam'\n"
+                 "   ...     BACON = 'bacon'\n"
+                 '   ...\n'
+                 '   >>> # Enum classes have a custom metaclass:\n'
+                 '   >>> type(Menu)\n'
+                 "   <class 'enum.EnumMeta'>\n"
+                 '   >>> # EnumMeta defines __getitem__,\n'
+                 '   >>> # so __class_getitem__ is not called,\n'
+                 '   >>> # and the result is not a GenericAlias object:\n'
+                 "   >>> Menu['SPAM']\n"
+                 "   <Menu.SPAM: 'spam'>\n"
+                 "   >>> type(Menu['SPAM'])\n"
+                 "   <enum 'Menu'>\n"
                  '\n'
                  'See also:\n'
                  '\n'
-                 '  **PEP 560** - Core support for typing module and generic '
+                 '  **PEP 560** - Core Support for typing module and generic '
                  'types\n'
+                 '     Introducing "__class_getitem__()", and outlining when '
+                 'a\n'
+                 '     subscription results in "__class_getitem__()" being '
+                 'called\n'
+                 '     instead of "__getitem__()"\n'
                  '\n'
                  '\n'
                  'Emulating callable objects\n'
@@ -10445,22 +10643,23 @@ topics = {'assert': 'The "assert" statement\n'
                  'object.__getitem__(self, key)\n'
                  '\n'
                  '   Called to implement evaluation of "self[key]". For '
-                 'sequence types,\n'
-                 '   the accepted keys should be integers and slice objects.  '
-                 'Note that\n'
-                 '   the special interpretation of negative indexes (if the '
-                 'class wishes\n'
-                 '   to emulate a sequence type) is up to the "__getitem__()" '
-                 'method. If\n'
-                 '   *key* is of an inappropriate type, "TypeError" may be '
-                 'raised; if of\n'
-                 '   a value outside the set of indexes for the sequence '
-                 '(after any\n'
-                 '   special interpretation of negative values), "IndexError" '
+                 '*sequence*\n'
+                 '   types, the accepted keys should be integers and slice '
+                 'objects.\n'
+                 '   Note that the special interpretation of negative indexes '
+                 '(if the\n'
+                 '   class wishes to emulate a *sequence* type) is up to the\n'
+                 '   "__getitem__()" method. If *key* is of an inappropriate '
+                 'type,\n'
+                 '   "TypeError" may be raised; if of a value outside the set '
+                 'of indexes\n'
+                 '   for the sequence (after any special interpretation of '
+                 'negative\n'
+                 '   values), "IndexError" should be raised. For *mapping* '
+                 'types, if\n'
+                 '   *key* is missing (not in the container), "KeyError" '
                  'should be\n'
-                 '   raised. For mapping types, if *key* is missing (not in '
-                 'the\n'
-                 '   container), "KeyError" should be raised.\n'
+                 '   raised.\n'
                  '\n'
                  '   Note:\n'
                  '\n'
@@ -10470,6 +10669,14 @@ topics = {'assert': 'The "assert" statement\n'
                  'the\n'
                  '     sequence.\n'
                  '\n'
+                 '   Note:\n'
+                 '\n'
+                 '     When subscripting a *class*, the special class method\n'
+                 '     "__class_getitem__()" may be called instead of '
+                 '"__getitem__()".\n'
+                 '     See __class_getitem__ versus __getitem__ for more '
+                 'details.\n'
+                 '\n'
                  'object.__setitem__(self, key, value)\n'
                  '\n'
                  '   Called to implement assignment to "self[key]".  Same note '
@@ -10505,19 +10712,13 @@ topics = {'assert': 'The "assert" statement\n'
                  '\n'
                  'object.__iter__(self)\n'
                  '\n'
-                 '   This method is called when an iterator is required for a '
-                 'container.\n'
-                 '   This method should return a new iterator object that can '
-                 'iterate\n'
-                 '   over all the objects in the container.  For mappings, it '
-                 'should\n'
-                 '   iterate over the keys of the container.\n'
-                 '\n'
-                 '   Iterator objects also need to implement this method; they '
-                 'are\n'
-                 '   required to return themselves.  For more information on '
-                 'iterator\n'
-                 '   objects, see Iterator Types.\n'
+                 '   This method is called when an *iterator* is required for '
+                 'a\n'
+                 '   container. This method should return a new iterator '
+                 'object that can\n'
+                 '   iterate over all the objects in the container.  For '
+                 'mappings, it\n'
+                 '   should iterate over the keys of the container.\n'
                  '\n'
                  'object.__reversed__(self)\n'
                  '\n'
@@ -10760,9 +10961,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'
@@ -12971,20 +13172,18 @@ topics = {'assert': 'The "assert" statement\n'
           '      A function or method which uses the "yield" statement (see\n'
           '      section The yield statement) is called a *generator '
           'function*.\n'
-          '      Such a function, when called, always returns an iterator '
-          'object\n'
-          '      which can be used to execute the body of the function:  '
-          'calling\n'
-          '      the iterator’s "iterator.__next__()" method will cause the\n'
-          '      function to execute until it provides a value using the '
-          '"yield"\n'
-          '      statement.  When the function executes a "return" statement '
-          'or\n'
-          '      falls off the end, a "StopIteration" exception is raised and '
-          'the\n'
-          '      iterator will have reached the end of the set of values to '
-          'be\n'
-          '      returned.\n'
+          '      Such a function, when called, always returns an *iterator*\n'
+          '      object which can be used to execute the body of the '
+          'function:\n'
+          '      calling the iterator’s "iterator.__next__()" method will '
+          'cause\n'
+          '      the function to execute until it provides a value using the\n'
+          '      "yield" statement.  When the function executes a "return"\n'
+          '      statement or falls off the end, a "StopIteration" exception '
+          'is\n'
+          '      raised and the iterator will have reached the end of the set '
+          'of\n'
+          '      values to be returned.\n'
           '\n'
           '   Coroutine functions\n'
           '      A function or method which is defined using "async def" is\n'
@@ -13000,9 +13199,9 @@ topics = {'assert': 'The "assert" statement\n'
           '      which uses the "yield" statement is called a *asynchronous\n'
           '      generator function*.  Such a function, when called, returns '
           'an\n'
-          '      asynchronous iterator object which can be used in an "async '
-          'for"\n'
-          '      statement to execute the body of the function.\n'
+          '      *asynchronous iterator* object which can be used in an '
+          '"async\n'
+          '      for" statement to execute the body of the function.\n'
           '\n'
           '      Calling the asynchronous iterator’s "aiterator.__anext__()"\n'
           '      method will return an *awaitable* which when awaited will\n'
index f001c0678e195fae4624a2a296e0670521a3e1be..0dedf186b1a1eb993623a90789f2d8c2ce0d1690 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, start by creating a database Connection object:
+
+    import sqlite3
+    cx = sqlite3.connect("test.db")  # test.db will be created or opened
+
+The special path name ":memory:" can be provided to connect to a transient
+in-memory database:
+
+    cx = sqlite3.connect(":memory:")  # connect to a database in RAM
+
+Once a connection has been established, 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 a8dcd7e8bfeddbc0a1cdfbe676bf2bad8793920c..e332184a7d10745c4a382eeca770679d19e3e562 100644 (file)
@@ -454,7 +454,7 @@ class CursorTests(unittest.TestCase):
         self.assertEqual(row, None)
 
     def test_array_size(self):
-        # must default ot 1
+        # must default to 1
         self.assertEqual(self.cu.arraysize, 1)
 
         # now set to 2
index 268cc71a0952b7ca7d4f3c059c17a7b2c43b1d9d..cfcc456fd786efafb0f732020956ff052d4b4aa1 100644 (file)
@@ -147,21 +147,17 @@ class StatisticsError(ValueError):
 
 # === Private utilities ===
 
-def _sum(data, start=0):
-    """_sum(data [, start]) -> (type, sum, count)
+def _sum(data):
+    """_sum(data) -> (type, sum, count)
 
     Return a high-precision sum of the given numeric data as a fraction,
     together with the type to be converted to and the count of items.
 
-    If optional argument ``start`` is given, it is added to the total.
-    If ``data`` is empty, ``start`` (defaulting to 0) is returned.
-
-
     Examples
     --------
 
-    >>> _sum([3, 2.25, 4.5, -0.5, 1.0], 0.75)
-    (<class 'float'>, Fraction(11, 1), 5)
+    >>> _sum([3, 2.25, 4.5, -0.5, 0.25])
+    (<class 'float'>, Fraction(19, 2), 5)
 
     Some sources of round-off error will be avoided:
 
@@ -184,10 +180,9 @@ def _sum(data, start=0):
     allowed.
     """
     count = 0
-    n, d = _exact_ratio(start)
-    partials = {d: n}
+    partials = {}
     partials_get = partials.get
-    T = _coerce(int, type(start))
+    T = int
     for typ, values in groupby(data, type):
         T = _coerce(T, typ)  # or raise TypeError
         for n, d in map(_exact_ratio, values):
@@ -200,8 +195,7 @@ def _sum(data, start=0):
         assert not _isfinite(total)
     else:
         # Sum all the partial sums using builtin sum.
-        # FIXME is this faster if we sum them in order of the denominator?
-        total = sum(Fraction(n, d) for d, n in sorted(partials.items()))
+        total = sum(Fraction(n, d) for d, n in partials.items())
     return (T, total, count)
 
 
@@ -252,27 +246,19 @@ def _exact_ratio(x):
     x is expected to be an int, Fraction, Decimal or float.
     """
     try:
-        # Optimise the common case of floats. We expect that the most often
-        # used numeric type will be builtin floats, so try to make this as
-        # fast as possible.
-        if type(x) is float or type(x) is Decimal:
-            return x.as_integer_ratio()
-        try:
-            # x may be an int, Fraction, or Integral ABC.
-            return (x.numerator, x.denominator)
-        except AttributeError:
-            try:
-                # x may be a float or Decimal subclass.
-                return x.as_integer_ratio()
-            except AttributeError:
-                # Just give up?
-                pass
+        return x.as_integer_ratio()
+    except AttributeError:
+        pass
     except (OverflowError, ValueError):
         # float NAN or INF.
         assert not _isfinite(x)
         return (x, None)
-    msg = "can't convert type '{}' to numerator/denominator"
-    raise TypeError(msg.format(type(x).__name__))
+    try:
+        # x may be an Integral ABC.
+        return (x.numerator, x.denominator)
+    except AttributeError:
+        msg = f"can't convert type '{type(x).__name__}' to numerator/denominator"
+        raise TypeError(msg)
 
 
 def _convert(value, T):
@@ -719,14 +705,20 @@ def _ss(data, c=None):
     if c is not None:
         T, total, count = _sum((x-c)**2 for x in data)
         return (T, total)
-    c = mean(data)
-    T, total, count = _sum((x-c)**2 for x in data)
-    # The following sum should mathematically equal zero, but due to rounding
-    # error may not.
-    U, total2, count2 = _sum((x - c) for x in data)
-    assert T == U and count == count2
-    total -= total2 ** 2 / len(data)
-    assert not total < 0, 'negative sum of square deviations: %f' % total
+    T, total, count = _sum(data)
+    mean_n, mean_d = (total / count).as_integer_ratio()
+    partials = Counter()
+    for n, d in map(_exact_ratio, data):
+        diff_n = n * mean_d - d * mean_n
+        diff_d = d * mean_d
+        partials[diff_d * diff_d] += diff_n * diff_n
+    if None in partials:
+        # The sum will be a NAN or INF. We can ignore all the finite
+        # partials, and just look at this special one.
+        total = partials[None]
+        assert not _isfinite(total)
+    else:
+        total = sum(Fraction(n, d) for d, n in partials.items())
     return (T, total)
 
 
@@ -830,6 +822,9 @@ def stdev(data, xbar=None):
     1.0810874155219827
 
     """
+    # Fixme: Despite the exact sum of squared deviations, some inaccuracy
+    # remain because there are two rounding steps.  The first occurs in
+    # the _convert() step for variance(), the second occurs in math.sqrt().
     var = variance(data, xbar)
     try:
         return var.sqrt()
@@ -846,6 +841,9 @@ def pstdev(data, mu=None):
     0.986893273527251
 
     """
+    # Fixme: Despite the exact sum of squared deviations, some inaccuracy
+    # remain because there are two rounding steps.  The first occurs in
+    # the _convert() step for pvariance(), the second occurs in math.sqrt().
     var = pvariance(data, mu)
     try:
         return var.sqrt()
index 95b48f6429d5f81ad19a1cf6102d85e976117b0e..daf9f000060a35643a7f633cbbe7842a3260bc94 100644 (file)
@@ -184,7 +184,7 @@ _PYTHON_BUILD = is_python_build(True)
 
 if _PYTHON_BUILD:
     for scheme in ('posix_prefix', 'posix_home'):
-        # On POSIX-y platofrms, Python will:
+        # On POSIX-y platforms, Python will:
         # - Build from .h files in 'headers' (which is only added to the
         #   scheme when building CPython)
         # - Install .h files to 'include'
index 18d415adf5441847c72ae8916ecd6ff6ff5e8ef8..c1ee1222e09b5af9e76f024a5a16ff5037b9979b 100755 (executable)
@@ -2349,6 +2349,15 @@ class TarFile(object):
                     raise ReadError(str(e)) from None
             except SubsequentHeaderError as e:
                 raise ReadError(str(e)) from None
+            except Exception as e:
+                try:
+                    import zlib
+                    if isinstance(e, zlib.error):
+                        raise ReadError(f'zlib error: {e}') from None
+                    else:
+                        raise e
+                except ImportError:
+                    raise e
             break
 
         if tarinfo is not None:
index efcf7a7fb3bbc1968d56a911c752d7b0e3d7fc86..7b6821240f2b4bfa40efaa0a43b623ed623dee1b 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 ab43ece5df1cbb4302d0f09a5b4692acb2598f1a..3bc5b8f3d79b02c3df5dbc705ddfd1a91d3c1696 100644 (file)
@@ -611,6 +611,7 @@ class _TestProcess(BaseTestCase):
         del c
         p.start()
         p.join()
+        gc.collect()  # For PyPy or other GCs.
         self.assertIs(wr(), None)
         self.assertEqual(q.get(), 5)
         close_queue(q)
@@ -2667,6 +2668,7 @@ class _TestPool(BaseTestCase):
         self.pool.map(identity, objs)
 
         del objs
+        gc.collect()  # For PyPy or other GCs.
         time.sleep(DELTA)  # let threaded cleanup code run
         self.assertEqual(set(wr() for wr in refs), {None})
         # With a process pool, copies of the objects are returned, check
@@ -3791,13 +3793,6 @@ class _TestSharedMemory(BaseTestCase):
         self.assertIn(sms.name, str(sms))
         self.assertIn(str(sms.size), str(sms))
 
-        # Test pickling
-        sms.buf[0:6] = b'pickle'
-        pickled_sms = pickle.dumps(sms)
-        sms2 = pickle.loads(pickled_sms)
-        self.assertEqual(sms.name, sms2.name)
-        self.assertEqual(bytes(sms.buf[0:6]), bytes(sms2.buf[0:6]), b'pickle')
-
         # Modify contents of shared memory segment through memoryview.
         sms.buf[0] = 42
         self.assertEqual(sms.buf[0], 42)
@@ -3896,6 +3891,29 @@ class _TestSharedMemory(BaseTestCase):
 
         sms.close()
 
+    def test_shared_memory_recreate(self):
+        # Test if shared memory segment is created properly,
+        # when _make_filename returns an existing shared memory segment name
+        with unittest.mock.patch(
+            'multiprocessing.shared_memory._make_filename') as mock_make_filename:
+
+            NAME_PREFIX = shared_memory._SHM_NAME_PREFIX
+            names = ['test01_fn', '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]
+
+            mock_make_filename.side_effect = names
+            shm1 = shared_memory.SharedMemory(create=True, size=1)
+            self.addCleanup(shm1.unlink)
+            self.assertEqual(shm1._name, names[0])
+
+            mock_make_filename.side_effect = names
+            shm2 = shared_memory.SharedMemory(create=True, size=1)
+            self.addCleanup(shm2.unlink)
+            self.assertEqual(shm2._name, names[1])
+
+    def test_invalid_shared_memory_cration(self):
         # Test creating a shared memory segment with negative size
         with self.assertRaises(ValueError):
             sms_invalid = shared_memory.SharedMemory(create=True, size=-1)
@@ -3908,6 +3926,47 @@ class _TestSharedMemory(BaseTestCase):
         with self.assertRaises(ValueError):
             sms_invalid = shared_memory.SharedMemory(create=True)
 
+    def test_shared_memory_pickle_unpickle(self):
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                sms = shared_memory.SharedMemory(create=True, size=512)
+                self.addCleanup(sms.unlink)
+                sms.buf[0:6] = b'pickle'
+
+                # Test pickling
+                pickled_sms = pickle.dumps(sms, protocol=proto)
+
+                # Test unpickling
+                sms2 = pickle.loads(pickled_sms)
+                self.assertIsInstance(sms2, shared_memory.SharedMemory)
+                self.assertEqual(sms.name, sms2.name)
+                self.assertEqual(bytes(sms.buf[0:6]), b'pickle')
+                self.assertEqual(bytes(sms2.buf[0:6]), b'pickle')
+
+                # Test that unpickled version is still the same SharedMemory
+                sms.buf[0:6] = b'newval'
+                self.assertEqual(bytes(sms.buf[0:6]), b'newval')
+                self.assertEqual(bytes(sms2.buf[0:6]), b'newval')
+
+                sms2.buf[0:6] = b'oldval'
+                self.assertEqual(bytes(sms.buf[0:6]), b'oldval')
+                self.assertEqual(bytes(sms2.buf[0:6]), b'oldval')
+
+    def test_shared_memory_pickle_unpickle_dead_object(self):
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                sms = shared_memory.SharedMemory(create=True, size=512)
+                sms.buf[0:6] = b'pickle'
+                pickled_sms = pickle.dumps(sms, protocol=proto)
+
+                # Now, we are going to kill the original object.
+                # So, unpickled one won't be able to attach to it.
+                sms.close()
+                sms.unlink()
+
+                with self.assertRaises(FileNotFoundError):
+                    pickle.loads(pickled_sms)
+
     def test_shared_memory_across_processes(self):
         # bpo-40135: don't define shared memory block's name in case of
         # the failure when we run multiprocessing tests in parallel.
@@ -4125,29 +4184,45 @@ class _TestSharedMemory(BaseTestCase):
             empty_sl.shm.unlink()
 
     def test_shared_memory_ShareableList_pickling(self):
-        sl = shared_memory.ShareableList(range(10))
-        self.addCleanup(sl.shm.unlink)
-
-        serialized_sl = pickle.dumps(sl)
-        deserialized_sl = pickle.loads(serialized_sl)
-        self.assertTrue(
-            isinstance(deserialized_sl, shared_memory.ShareableList)
-        )
-        self.assertTrue(deserialized_sl[-1], 9)
-        self.assertFalse(sl is deserialized_sl)
-        deserialized_sl[4] = "changed"
-        self.assertEqual(sl[4], "changed")
-
-        # Verify data is not being put into the pickled representation.
-        name = 'a' * len(sl.shm.name)
-        larger_sl = shared_memory.ShareableList(range(400))
-        self.addCleanup(larger_sl.shm.unlink)
-        serialized_larger_sl = pickle.dumps(larger_sl)
-        self.assertTrue(len(serialized_sl) == len(serialized_larger_sl))
-        larger_sl.shm.close()
-
-        deserialized_sl.shm.close()
-        sl.shm.close()
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                sl = shared_memory.ShareableList(range(10))
+                self.addCleanup(sl.shm.unlink)
+
+                serialized_sl = pickle.dumps(sl, protocol=proto)
+                deserialized_sl = pickle.loads(serialized_sl)
+                self.assertIsInstance(
+                    deserialized_sl, shared_memory.ShareableList)
+                self.assertEqual(deserialized_sl[-1], 9)
+                self.assertIsNot(sl, deserialized_sl)
+
+                deserialized_sl[4] = "changed"
+                self.assertEqual(sl[4], "changed")
+                sl[3] = "newvalue"
+                self.assertEqual(deserialized_sl[3], "newvalue")
+
+                larger_sl = shared_memory.ShareableList(range(400))
+                self.addCleanup(larger_sl.shm.unlink)
+                serialized_larger_sl = pickle.dumps(larger_sl, protocol=proto)
+                self.assertEqual(len(serialized_sl), len(serialized_larger_sl))
+                larger_sl.shm.close()
+
+                deserialized_sl.shm.close()
+                sl.shm.close()
+
+    def test_shared_memory_ShareableList_pickling_dead_object(self):
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                sl = shared_memory.ShareableList(range(10))
+                serialized_sl = pickle.dumps(sl, protocol=proto)
+
+                # Now, we are going to kill the original object.
+                # So, unpickled one won't be able to attach to it.
+                sl.shm.close()
+                sl.shm.unlink()
+
+                with self.assertRaises(FileNotFoundError):
+                    pickle.loads(serialized_sl)
 
     def test_shared_memory_cleaned_after_process_termination(self):
         cmd = '''if 1:
@@ -4184,6 +4259,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).
@@ -4193,7 +4275,7 @@ class _TestSharedMemory(BaseTestCase):
                     "shared_memory objects to clean up at shutdown", err)
 
 #
-#
+# Test to verify that `Finalize` works.
 #
 
 class _TestFinalize(BaseTestCase):
@@ -4205,6 +4287,7 @@ class _TestFinalize(BaseTestCase):
         util._finalizer_registry.clear()
 
     def tearDown(self):
+        gc.collect()  # For PyPy or other GCs.
         self.assertFalse(util._finalizer_registry)
         util._finalizer_registry.update(self.registry_backup)
 
@@ -4216,12 +4299,14 @@ class _TestFinalize(BaseTestCase):
         a = Foo()
         util.Finalize(a, conn.send, args=('a',))
         del a           # triggers callback for a
+        gc.collect()  # For PyPy or other GCs.
 
         b = Foo()
         close_b = util.Finalize(b, conn.send, args=('b',))
         close_b()       # triggers callback for b
         close_b()       # does nothing because callback has already been called
         del b           # does nothing because callback has already been called
+        gc.collect()  # For PyPy or other GCs.
 
         c = Foo()
         util.Finalize(c, conn.send, args=('c',))
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 6414f1ace3fed31807c6ae62d2dee110477bd7f7..9f551d9b9748d395dc006958370241e5f6378020 100644 (file)
@@ -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 7c7086a806b1cd0ffeefd4be7574103d07bac80d..b56a84856d14fdf5394b4f07d3941573ec01a666 100644 (file)
@@ -112,7 +112,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 472c6ebec00cb2888e4b4ef0ccd6399b3cf67d53..b79175944d2bdf3b7bb8e37d4a422f873a31eac4 100644 (file)
@@ -39,6 +39,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)
 
@@ -134,3 +135,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 d69bcc9496843f372ca6078c0e6601cc59677643..dffb7d4418dfe656a8c87f1e4329b8e0ea9432e3 100644 (file)
@@ -3,6 +3,7 @@ Various tests for synchronization primitives.
 """
 
 import os
+import gc
 import sys
 import time
 from _thread import start_new_thread, TIMEOUT_MAX
@@ -221,6 +222,7 @@ class BaseLockTests(BaseTestCase):
         lock = self.locktype()
         ref = weakref.ref(lock)
         del lock
+        gc.collect()  # For PyPy or other GCs.
         self.assertIsNone(ref())
 
 
index 8e01d311360e35898679debf2c32614960581afc..f13d42f664880b069d7d48a87172c8eb6ae827dd 100644 (file)
@@ -828,7 +828,7 @@ def create_data():
     return x
 
 
-class AbstractUnpickleTests(unittest.TestCase):
+class AbstractUnpickleTests:
     # Subclass must define self.loads.
 
     _testdata = create_data()
@@ -1441,7 +1441,7 @@ class AbstractUnpickleTests(unittest.TestCase):
 
 
 
-class AbstractPickleTests(unittest.TestCase):
+class AbstractPickleTests:
     # Subclass must define self.dumps, self.loads.
 
     optimized = False
@@ -2383,7 +2383,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__()
@@ -3032,7 +3033,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
 
@@ -3305,7 +3306,7 @@ class BadGetattr:
         self.foo
 
 
-class AbstractPickleModuleTests(unittest.TestCase):
+class AbstractPickleModuleTests:
 
     def test_dump_closed_file(self):
         f = open(TESTFN, "wb")
@@ -3412,7 +3413,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
@@ -3452,7 +3453,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
@@ -3481,7 +3482,7 @@ class AbstractIdentityPersistentPicklerTests(unittest.TestCase):
         self.assertRaises(pickle.UnpicklingError, self.loads, pickled)
 
 
-class AbstractPicklerUnpicklerObjectTests(unittest.TestCase):
+class AbstractPicklerUnpicklerObjectTests:
 
     pickler_class = None
     unpickler_class = None
@@ -3695,7 +3696,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
@@ -3723,7 +3724,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
@@ -3740,7 +3741,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):
@@ -3761,7 +3762,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 318f47e225306ad7e94c73a934259dd4076160b5..44c5bd5820a75e2debee2eb4ed765ece4e1139ee 100644 (file)
@@ -687,9 +687,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)
@@ -708,16 +707,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 5d1e9406879cc613ac3aff646baf69aad204a559..43ae31483420dee8ac34079816ac3e3151edd362 100644 (file)
@@ -80,33 +80,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 import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
@@ -118,7 +98,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
@@ -139,24 +120,24 @@ def import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
     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)
 
 
 class CleanImport(object):
index 0632577cdb303c0e4ad735c93ac6a223be3a3ae8..92a64e8354acbce5aa0762a2b84c6552103c7269 100644 (file)
@@ -157,7 +157,7 @@ class catch_threading_exception:
     Context manager catching threading.Thread exception using
     threading.excepthook.
 
-    Attributes set when an exception is catched:
+    Attributes set when an exception is caught:
 
     * exc_type
     * exc_value
index 81bce2e620421612a03bff2f795c00d61a46d612..177a8a64a4329fe193d36f1aa34fa7c6049ac5ae 100644 (file)
@@ -1221,7 +1221,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 f453f6064b3ae5cc93d36a5ec6adc99a8051ce76..ec49b2acbbb8523ffef0486793445c44e891b753 100644 (file)
@@ -12,7 +12,6 @@ import argparse
 
 from io import StringIO
 
-from test import support
 from test.support import os_helper
 from unittest import mock
 class StdIOBuffer(StringIO):
@@ -2146,6 +2145,42 @@ 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         
+
+            options:
+              -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:
+              {}          
+
+            options:
+              -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(),
@@ -5391,13 +5426,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()
old mode 100644 (file)
new mode 100755 (executable)
index 18f78d5..6a48c1c
@@ -1097,6 +1097,7 @@ class BaseTest:
         p = weakref.proxy(s)
         self.assertEqual(p.tobytes(), s.tobytes())
         s = None
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertRaises(ReferenceError, len, p)
 
     @unittest.skipUnless(hasattr(sys, 'getrefcount'),
index 326f3ab2beb1d6f1287231ffe062c7741cdd03e9..39fc7e96738164c91b315e0c712e8dcc551ab068 100644 (file)
@@ -1044,6 +1044,14 @@ Module(
         with self.assertRaisesRegex(ValueError, msg):
             ast.literal_eval(node)
 
+    def test_literal_eval_syntax_errors(self):
+        msg = "unexpected character after line continuation character"
+        with self.assertRaisesRegex(SyntaxError, msg):
+            ast.literal_eval(r'''
+                \
+                (\
+            \ ''')
+
     def test_bad_integer(self):
         # issue13436: Bad error message with invalid numeric values
         body = [ast.ImportFrom(module='time',
index f448f8d53b63227cbc1ea277ff552bdfd53e0d0a..473bce484b47b022f06a2d15f5f8c1e81766e940 100644 (file)
@@ -1044,6 +1044,7 @@ class AsyncGenAsyncioTest(unittest.TestCase):
             await g.__anext__()
             await g.__anext__()
             del g
+            gc_collect()  # For PyPy or other GCs.
 
             await asyncio.sleep(0.1)
 
index 6194cd06176dac3341500b2b973edcbe6493e042..623db5fda6437d843364df39f4b8a691cc33587b 100644 (file)
@@ -724,24 +724,68 @@ class ConditionTests(test_utils.TestCase):
         self.loop.run_until_complete(f())
 
     def test_explicit_lock(self):
-        lock = asyncio.Lock()
-        cond = asyncio.Condition(lock)
+        async def f(lock=None, cond=None):
+            if lock is None:
+                lock = asyncio.Lock()
+            if cond is None:
+                cond = asyncio.Condition(lock)
+            self.assertIs(cond._lock, lock)
+            self.assertFalse(lock.locked())
+            self.assertFalse(cond.locked())
+            async with cond:
+                self.assertTrue(lock.locked())
+                self.assertTrue(cond.locked())
+            self.assertFalse(lock.locked())
+            self.assertFalse(cond.locked())
+            async with lock:
+                self.assertTrue(lock.locked())
+                self.assertTrue(cond.locked())
+            self.assertFalse(lock.locked())
+            self.assertFalse(cond.locked())
 
-        self.assertIs(cond._lock, lock)
-        self.assertIs(cond._loop, lock._loop)
+        # All should work in the same way.
+        self.loop.run_until_complete(f())
+        self.loop.run_until_complete(f(asyncio.Lock()))
+        lock = asyncio.Lock()
+        self.loop.run_until_complete(f(lock, asyncio.Condition(lock)))
 
     def test_ambiguous_loops(self):
-        loop = self.new_test_loop()
+        loop = asyncio.new_event_loop()
         self.addCleanup(loop.close)
 
-        lock = asyncio.Lock()
-        lock._loop = loop
+        async def wrong_loop_in_lock():
+            with self.assertRaises(TypeError):
+                asyncio.Lock(loop=loop)  # actively disallowed since 3.10
+            lock = asyncio.Lock()
+            lock._loop = loop  # use private API for testing
+            async with lock:
+                # acquired immediately via the fast-path
+                # without interaction with any event loop.
+                cond = asyncio.Condition(lock)
+                # cond.acquire() will trigger waiting on the lock
+                # and it will discover the event loop mismatch.
+                with self.assertRaisesRegex(
+                    RuntimeError,
+                    "is bound to a different event loop",
+                ):
+                    await cond.acquire()
 
-        async def _create_condition():
-            with self.assertRaises(ValueError):
-                asyncio.Condition(lock)
+        async def wrong_loop_in_cond():
+            # Same analogy here with the condition's loop.
+            lock = asyncio.Lock()
+            async with lock:
+                with self.assertRaises(TypeError):
+                    asyncio.Condition(lock, loop=loop)
+                cond = asyncio.Condition(lock)
+                cond._loop = loop
+                with self.assertRaisesRegex(
+                    RuntimeError,
+                    "is bound to a different event loop",
+                ):
+                    await cond.wait()
 
-        self.loop.run_until_complete(_create_condition())
+        self.loop.run_until_complete(wrong_loop_in_lock())
+        self.loop.run_until_complete(wrong_loop_in_cond())
 
     def test_timeout_in_block(self):
         loop = asyncio.new_event_loop()
index 6eaa28994421843e020eef0f0de310f2bf60c3bd..a6ea24ceceda2a74760d2b5cb6fa27a6d7e347b8 100644 (file)
@@ -711,7 +711,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 3cf88188ecf3b17d2a54eef24eb9881280283a5d..14fa6dd76f9ca867d7ae2149d8da81923215f4e3 100644 (file)
@@ -228,7 +228,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 f7345c5c40688503298c593d4b121e16e47e7984..773d5057fe4b2efb97b519fa1801eb15e1344ca2 100644 (file)
@@ -1148,20 +1148,16 @@ class BaseTaskTests:
         self.assertEqual(res, "ok")
 
     def test_wait_for_cancellation_race_condition(self):
-        def gen():
-            yield 0.1
-            yield 0.1
-            yield 0.1
-            yield 0.1
+        async def inner():
+            with contextlib.suppress(asyncio.CancelledError):
+                await asyncio.sleep(1)
+            return 1
 
-        loop = self.new_test_loop(gen)
+        async def main():
+            result = await asyncio.wait_for(inner(), timeout=.01)
+            assert result == 1
 
-        fut = self.new_future(loop)
-        loop.call_later(0.1, fut.set_result, "ok")
-        task = loop.create_task(asyncio.wait_for(fut, timeout=1))
-        loop.call_later(0.1, task.cancel)
-        res = loop.run_until_complete(task)
-        self.assertEqual(res, "ok")
+        asyncio.run(main())
 
     def test_wait_for_waits_for_task_cancellation(self):
         loop = asyncio.new_event_loop()
@@ -1240,24 +1236,6 @@ class BaseTaskTests:
         with self.assertRaises(FooException):
             loop.run_until_complete(foo())
 
-    def test_wait_for_raises_timeout_error_if_returned_during_cancellation(self):
-        loop = asyncio.new_event_loop()
-        self.addCleanup(loop.close)
-
-        async def foo():
-            async def inner():
-                try:
-                    await asyncio.sleep(0.2)
-                except asyncio.CancelledError:
-                    return 42
-
-            inner_task = self.new_task(loop, inner())
-
-            await asyncio.wait_for(inner_task, timeout=_EPSILON)
-
-        with self.assertRaises(asyncio.TimeoutError):
-            loop.run_until_complete(foo())
-
     def test_wait_for_self_cancellation(self):
         loop = asyncio.new_event_loop()
         self.addCleanup(loop.close)
@@ -2690,6 +2668,7 @@ class BaseTaskTests:
                 self.new_task(self.loop, gen)
             finally:
                 gen.close()
+        gc.collect()  # For PyPy or other GCs.
 
         self.assertTrue(m_log.error.called)
         message = m_log.error.call_args[0][0]
@@ -3672,7 +3651,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)
@@ -3680,7 +3659,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):
index 398698c79c16dfaabf4cf018a4b9f7ea6bfee8d5..6ec59531fa88f071320d277f529a92e92b471fdf 100644 (file)
@@ -57,7 +57,6 @@ import importlib
 import linecache
 from contextlib import contextmanager
 from itertools import islice, repeat
-import test.support
 from test.support import import_helper
 from test.support import os_helper
 
@@ -1193,13 +1192,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 a3214c90ed61e4d193747c47feffee84239058f5..4b32aad2419f4a567a898a4c120def43a4b4cccd 100644 (file)
@@ -1,7 +1,6 @@
 # Test properties of bool promised by PEP 285
 
 import unittest
-from test import support
 from test.support import os_helper
 
 import os
@@ -370,8 +369,6 @@ class BoolTest(unittest.TestCase):
         f(x)
         self.assertGreaterEqual(x.count, 1)
 
-def test_main():
-    support.run_unittest(BoolTest)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 7913beb87a352520aed648383d3fb1cd77432e3f..9965c1fe2e5f17583f49450cffcaa806d777054f 100644 (file)
@@ -1005,15 +1005,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 5f78c337028a99085ac20367bee9f7342c0051dd..974e3d03a6172b63150067081f8b55885094404c 100644 (file)
@@ -264,7 +264,7 @@ class CAPITest(unittest.TestCase):
 
     def test_getitem_with_error(self):
         # Test _Py_CheckSlotResult(). Raise an exception and then calls
-        # PyObject_GetItem(): check that the assertion catchs the bug.
+        # PyObject_GetItem(): check that the assertion catches the bug.
         # PyObject_GetItem() must not be called with an exception set.
         code = textwrap.dedent("""
             import _testcapi
@@ -762,6 +762,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):
 
@@ -982,6 +1013,14 @@ class Test_ModuleStateAccess(unittest.TestCase):
                 with self.assertRaises(TypeError):
                     increment_count(1, 2, 3)
 
+    def test_Py_CompileString(self):
+        # Check that Py_CompileString respects the coding cookie
+        _compile = _testcapi.Py_CompileString
+        code = b"# -*- coding: latin1 -*-\nprint('\xc2\xa4')\n"
+        result = _compile(code)
+        expected = compile(code, "<string>", "exec")
+        self.assertEqual(result.co_consts, expected.co_consts)
+
 
 if __name__ == "__main__":
     unittest.main()
index cbf9ff2a863c3cea141fcd560745762b2814ec67..d93e98f372532f00257357d6fe1271912af29ee2 100644 (file)
@@ -864,9 +864,10 @@ class SyntaxErrorTests(unittest.TestCase):
     def test_decoding_error_at_the_end_of_the_line(self):
         self.check_string(br"'\u1f'")
 
-def test_main():
-    support.run_unittest(CmdLineTest, IgnoreEnvironmentTest, SyntaxErrorTests)
+
+def tearDownModule():
     support.reap_children()
 
+
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 6ffec918ebbd5927acc575ec17ccd5e2cc1e179d..c93ed5be7fbde8269848029241e663194a633772 100644 (file)
@@ -739,9 +739,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 74cd0458a51083a91c59f40f707d125f4102d797..b9c4f8bdcb382e7daba7bc279b44b9ef1b749c5b 100644 (file)
@@ -135,7 +135,7 @@ try:
 except ImportError:
     ctypes = None
 from test.support import (run_doctest, run_unittest, cpython_only,
-                          check_impl_detail)
+                          check_impl_detail, gc_collect)
 
 
 def consts(t):
@@ -343,6 +343,7 @@ class CodeWeakRefTest(unittest.TestCase):
         coderef = weakref.ref(f.__code__, callback)
         self.assertTrue(bool(coderef()))
         del f
+        gc_collect()  # For PyPy or other GCs.
         self.assertFalse(bool(coderef()))
         self.assertTrue(self.called)
 
index 328a47b2e376693d80d24d813abf9f282d3ab3b5..f7310fbb1474ae83999ab53c3f7d66fcd8c2abb3 100644 (file)
@@ -114,7 +114,7 @@ class ReadTest(MixInCheckStateHandling):
         q = Queue(b"")
         r = codecs.getreader(self.encoding)(q)
         result = ""
-        for (c, partialresult) in zip(input.encode(self.encoding), partialresults):
+        for (c, partialresult) in zip(input.encode(self.encoding), partialresults, strict=True):
             q.write(bytes([c]))
             result += r.read()
             self.assertEqual(result, partialresult)
@@ -125,7 +125,7 @@ class ReadTest(MixInCheckStateHandling):
         # do the check again, this time using an incremental decoder
         d = codecs.getincrementaldecoder(self.encoding)()
         result = ""
-        for (c, partialresult) in zip(input.encode(self.encoding), partialresults):
+        for (c, partialresult) in zip(input.encode(self.encoding), partialresults, strict=True):
             result += d.decode(bytes([c]))
             self.assertEqual(result, partialresult)
         # check that there's nothing left in the buffers
@@ -135,7 +135,7 @@ class ReadTest(MixInCheckStateHandling):
         # Check whether the reset method works properly
         d.reset()
         result = ""
-        for (c, partialresult) in zip(input.encode(self.encoding), partialresults):
+        for (c, partialresult) in zip(input.encode(self.encoding), partialresults, strict=True):
             result += d.decode(bytes([c]))
             self.assertEqual(result, partialresult)
         # check that there's nothing left in the buffers
@@ -2341,7 +2341,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))
@@ -2428,8 +2432,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))
@@ -2478,6 +2524,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 1f659d7d604e31d18b8b14ec2a42e21a68da2be3..3404b8ad1bcf73791df8bc1b7bef0ed74cbea5da 100644 (file)
@@ -668,6 +668,7 @@ class TestNamedTuple(unittest.TestCase):
         a.w = 5
         self.assertEqual(a.__dict__, {'w': 5})
 
+    @support.cpython_only
     def test_field_descriptor(self):
         Point = namedtuple('Point', 'x y')
         p = Point(11, 22)
@@ -1594,7 +1595,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 99ba4873cab6021841f6460228e9780624b55aac..4de54488d84b62bb5f6c481dbe37d8ef97cb832f 100644 (file)
@@ -648,6 +648,17 @@ if 1:
         self.assertIs(f1.__code__.co_linetable, f2.__code__.co_linetable)
         self.assertIs(f1.__code__.co_code, f2.__code__.co_code)
 
+    # Stripping unused constants is not a strict requirement for the
+    # Python semantics, it's a more an implementation detail.
+    @support.cpython_only
+    def test_strip_unused_consts(self):
+        # Python 3.10rc1 appended None to co_consts when None is not used
+        # at all. See bpo-45056.
+        def f1():
+            "docstring"
+            return 42
+        self.assertEqual(f1.__code__.co_consts, ("docstring", 42))
+
     # This is a regression test for a CPython specific peephole optimizer
     # implementation bug present in a few releases.  It's assertion verifies
     # that peephole optimization was actually done though that isn't an
index cc51b8c06a0637b0d466d3b8ddaa903d210a21e7..9e15ecf3aae29924a07baffd0166502935c97b3c 100644 (file)
@@ -91,7 +91,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
@@ -100,7 +101,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 abd7e39cc5ae739dd6aa963e339247944e3bbf4e..c6a261b418b543f5948842b3fd124703e7579771 100644 (file)
@@ -777,8 +777,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 99651f5f4ed4da37a93f5aeb2a80084c75d71182..84209ca2520b89d631856afb67be5aa4a2cd16a4 100644 (file)
@@ -463,6 +463,7 @@ class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase
         executor.map(abs, range(-5, 5))
         threads = executor._threads
         del executor
+        support.gc_collect()  # For PyPy or other GCs.
 
         for t in threads:
             self.assertRegex(t.name, r'^SpecialPool_[0-4]$')
@@ -473,6 +474,7 @@ class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase
         executor.map(abs, range(-5, 5))
         threads = executor._threads
         del executor
+        support.gc_collect()  # For PyPy or other GCs.
 
         for t in threads:
             # Ensure that our default name is reasonably sane and unique when
@@ -535,6 +537,7 @@ class ProcessPoolShutdownTest(ExecutorShutdownTest):
         call_queue = executor._call_queue
         executor_manager_thread = executor._executor_manager_thread
         del executor
+        support.gc_collect()  # For PyPy or other GCs.
 
         # Make sure that all the executor resources were properly cleaned by
         # the shutdown process
@@ -759,6 +762,7 @@ class AsCompletedTests:
                 futures_list.remove(future)
                 wr = weakref.ref(future)
                 del future
+                support.gc_collect()  # For PyPy or other GCs.
                 self.assertIsNone(wr())
 
         futures_list[0].set_result("test")
@@ -766,6 +770,7 @@ class AsCompletedTests:
             futures_list.remove(future)
             wr = weakref.ref(future)
             del future
+            support.gc_collect()  # For PyPy or other GCs.
             self.assertIsNone(wr())
             if futures_list:
                 futures_list[0].set_result("test")
@@ -865,6 +870,7 @@ class ExecutorTest:
         for obj in self.executor.map(make_dummy_object, range(10)):
             wr = weakref.ref(obj)
             del obj
+            support.gc_collect()  # For PyPy or other GCs.
             self.assertIsNone(wr())
 
 
@@ -905,6 +911,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):
 
@@ -1509,16 +1529,10 @@ class FutureTests(BaseTestCase):
         self.assertEqual(f.exception(), e)
 
 
-_threads_key = None
-
 def setUpModule():
-    global _threads_key
-    _threads_key = threading_helper.threading_setup()
-
-
-def tearDownModule():
-    threading_helper.threading_cleanup(*_threads_key)
-    multiprocessing.util._cleanup_tests()
+    unittest.addModuleCleanup(multiprocessing.util._cleanup_tests)
+    thread_info = threading_helper.threading_setup()
+    unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
 
 
 if __name__ == "__main__":
index 5a080654acb6c78ee258453bc28c20921e5ac8d1..fbaae2dd09fd95989d298c464a6d3b4874da92ac 100644 (file)
@@ -780,6 +780,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 603162eaeaa7bfe3ae640f91679a8ffd471958aa..127d7500656a59607bad14e9583a7368cb71a9ed 100644 (file)
@@ -552,6 +552,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")
+
 
 class TestAsyncNullcontext(unittest.TestCase):
     @_async_test
index ba3d233f63d1c1c944d80bb683e4cdbb1fffc34d..f1ca8cb254d1887f166d6d9a2081f1ee878b5589 100644 (file)
@@ -7,6 +7,7 @@ import abc
 from operator import le, lt, ge, gt, eq, ne
 
 import unittest
+from test import support
 
 order_comparisons = le, lt, ge, gt
 equality_comparisons = eq, ne
@@ -805,6 +806,7 @@ class TestCopy(unittest.TestCase):
         self.assertEqual(v[c], d)
         self.assertEqual(len(v), 2)
         del c, d
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(v), 1)
         x, y = C(), C()
         # The underlying containers are decoupled
@@ -834,6 +836,7 @@ class TestCopy(unittest.TestCase):
         self.assertEqual(v[a].i, b.i)
         self.assertEqual(v[c].i, d.i)
         del c
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(v), 1)
 
     def test_deepcopy_weakvaluedict(self):
@@ -857,6 +860,7 @@ class TestCopy(unittest.TestCase):
         self.assertIs(t, d)
         del x, y, z, t
         del d
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(v), 1)
 
     def test_deepcopy_bound_method(self):
index 09e72a71f1db922126d1b655f62a9ff91dfdf541..6e5dfc63d43cef48a57b03c95c0c8e0329631dfe 100644 (file)
@@ -897,7 +897,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):
@@ -934,6 +934,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 33c9fcd1656219d963dceae24ae1dd44c75da517..ef5009ab116776bdb0cab909894c4eb05574230f 100644 (file)
@@ -8,6 +8,7 @@ import abc
 import pickle
 import inspect
 import builtins
+import types
 import unittest
 from unittest.mock import Mock
 from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional, Protocol
@@ -1126,6 +1127,10 @@ class TestCase(unittest.TestCase):
         self.assertEqual(repr(InitVar[int]), 'dataclasses.InitVar[int]')
         self.assertEqual(repr(InitVar[List[int]]),
                          'dataclasses.InitVar[typing.List[int]]')
+        self.assertEqual(repr(InitVar[list[int]]),
+                         'dataclasses.InitVar[list[int]]')
+        self.assertEqual(repr(InitVar[int|str]),
+                         'dataclasses.InitVar[int | str]')
 
     def test_init_var_inheritance(self):
         # Note that this deliberately tests that a dataclass need not
@@ -1350,6 +1355,17 @@ class TestCase(unittest.TestCase):
                 with self.assertRaisesRegex(TypeError, 'should be called on dataclass instances'):
                     replace(obj, x=0)
 
+    def test_is_dataclass_genericalias(self):
+        @dataclass
+        class A(types.GenericAlias):
+            origin: type
+            args: type
+        self.assertTrue(is_dataclass(A))
+        a = A(list, int)
+        self.assertTrue(is_dataclass(type(a)))
+        self.assertTrue(is_dataclass(a))
+
+
     def test_helper_fields_with_class_instance(self):
         # Check that we can call fields() on either a class or instance,
         #  and get back the same thing.
@@ -1907,7 +1923,7 @@ class TestCase(unittest.TestCase):
         # Check MRO resolution.
         self.assertEqual(Child.__mro__, (Child, Parent, Generic, object))
 
-    def test_dataclassses_pickleable(self):
+    def test_dataclasses_pickleable(self):
         global P, Q, R
         @dataclass
         class P:
@@ -2859,13 +2875,48 @@ class TestSlots(unittest.TestCase):
         foo: str
         bar: int
 
+    @dataclass(frozen=True)
+    class FrozenWithoutSlotsClass:
+        foo: str
+        bar: int
+
     def test_frozen_pickle(self):
         # bpo-43999
 
-        assert self.FrozenSlotsClass.__slots__ == ("foo", "bar")
-        p = pickle.dumps(self.FrozenSlotsClass("a", 1))
-        assert pickle.loads(p) == self.FrozenSlotsClass("a", 1)
+        self.assertEqual(self.FrozenSlotsClass.__slots__, ("foo", "bar"))
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                obj = self.FrozenSlotsClass("a", 1)
+                p = pickle.loads(pickle.dumps(obj, protocol=proto))
+                self.assertIsNot(obj, p)
+                self.assertEqual(obj, p)
+
+                obj = self.FrozenWithoutSlotsClass("a", 1)
+                p = pickle.loads(pickle.dumps(obj, protocol=proto))
+                self.assertIsNot(obj, p)
+                self.assertEqual(obj, p)
+
+    def test_slots_with_default_no_init(self):
+        # Originally reported in bpo-44649.
+        @dataclass(slots=True)
+        class A:
+            a: str
+            b: str = field(default='b', init=False)
+
+        obj = A("a")
+        self.assertEqual(obj.a, 'a')
+        self.assertEqual(obj.b, 'b')
+
+    def test_slots_with_default_factory_no_init(self):
+        # Originally reported in bpo-44649.
+        @dataclass(slots=True)
+        class A:
+            a: str
+            b: str = field(default_factory=lambda:'b', init=False)
 
+        obj = A("a")
+        self.assertEqual(obj.a, 'a')
+        self.assertEqual(obj.b, 'b')
 
 class TestDescriptors(unittest.TestCase):
     def test_set_name(self):
@@ -3695,7 +3746,7 @@ class TestKeywordArgs(unittest.TestCase):
         with self.assertRaisesRegex(TypeError, msg):
             B(3, 4, 5)
 
-        # Explicitely make a field that follows KW_ONLY be non-keyword-only.
+        # Explicitly make a field that follows KW_ONLY be non-keyword-only.
         @dataclass
         class C:
             a: int
@@ -3851,5 +3902,16 @@ class TestKeywordArgs(unittest.TestCase):
                 c: int = 1
                 d: int
 
+    def test_make_dataclass(self):
+        A = make_dataclass("A", ['a'], kw_only=True)
+        self.assertTrue(fields(A)[0].kw_only)
+
+        B = make_dataclass("B",
+                           ['a', ('b', int, field(kw_only=False))],
+                           kw_only=True)
+        self.assertTrue(fields(B)[0].kw_only)
+        self.assertFalse(fields(B)[1].kw_only)
+
+
 if __name__ == '__main__':
     unittest.main()
index bdb9f02e5756a278effeb42c083a4e32279dec51..7f9094fa7bd4e61dd494651cdd7ac042148c50e8 100644 (file)
@@ -1,59 +1,57 @@
 import unittest
 import sys
 
-from test.support import run_unittest
 from test.support.import_helper 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 e02d1e16ae3da7c7bf33eac5b92f52fadde531b6..16a023084e984af6602316c61f774c6931c89c96 100644 (file)
@@ -1,23 +1,21 @@
 """Test script for the dbm.open function based on testdumbdbm.py"""
 
 import unittest
-import glob
+import dbm
+import os
 from test.support import import_helper
 from test.support import os_helper
 
-# Skip tests if dbm module doesn't exist.
-dbm = import_helper.import_module('dbm')
-
 try:
     from dbm import ndbm
 except ImportError:
     ndbm = None
 
-_fname = os_helper.TESTFN
+dirname = os_helper.TESTFN
+_fname = os.path.join(dirname, os_helper.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:
@@ -31,11 +29,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) + "*"):
-        os_helper.unlink(f)
+def cleaunup_test_dir():
+    os_helper.rmtree(dirname)
+
+def setup_test_dir():
+    cleaunup_test_dir()
+    os.mkdir(dirname)
 
 
 class AnyDBMTestCase:
@@ -134,80 +133,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(os_helper.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 = os_helper.TESTFN
-        self.d = dbm.open(self.filename, 'c')
-        self.d.close()
+        self.addCleanup(cleaunup_test_dir)
+        setup_test_dir()
         self.dbm = import_helper.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 28d56909b30034bd03235237cf5d4c3650b07c0b..b6173a5ffec96c46e24fba6d36d410ed89592fa3 100644 (file)
@@ -43,6 +43,17 @@ from test.support import warnings_helper
 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':
@@ -51,7 +62,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'])
@@ -5500,6 +5511,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 8bd6ebdbbadb5dbdadc2a88b525308f00613623c..7886bbfea1f0d73cbbb649f0c19cca78068e2833 100644 (file)
@@ -869,6 +869,7 @@ class TestSubclass(unittest.TestCase):
         p = weakref.proxy(d)
         self.assertEqual(str(p), str(d))
         d = None
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertRaises(ReferenceError, str, p)
 
     def test_strange_subclass(self):
index c67911b8cdf71c3a3a89beebb601493406e8af4d..3df69ba11407a7d3e9e1711b31f867bab59075b0 100644 (file)
@@ -4996,8 +4996,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 ...
 
@@ -5720,7 +5723,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):
@@ -5735,12 +5738,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 666cd81e68d81aca6dbe27b5bbfc8b0949a2a163..54d100288cb627434c348f93ac23d3daf56f60af 100644 (file)
@@ -1051,7 +1051,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
@@ -1398,7 +1398,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 8cdccad0d79ab620f474ea30c572c07e08b61825..243084c75c42bced1a5312f4a338c78452456d5e 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.support import import_helper
index 9a24e00f64b4a420041aa52968a28b0fc0cefa6d..6afd90af8442add79afcbccde5fc7e19a6963cb2 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 d03aa75a6a9a092807adc6e66a245ddc7ed304ff..000549f5b6f1143df81a077b0eed02f6a97defe8 100644 (file)
@@ -180,6 +180,23 @@ dis_bug42562 = """\
           2 RETURN_VALUE
 """
 
+# Extended arg followed by NOP
+code_bug_45757 = bytes([
+        0x90, 0x01,  # EXTENDED_ARG 0x01
+        0x09, 0xFF,  # NOP 0xFF
+        0x90, 0x01,  # EXTENDED_ARG 0x01
+        0x64, 0x29,  # LOAD_CONST 0x29
+        0x53, 0x00,  # RETURN_VALUE 0x00
+    ])
+
+dis_bug_45757 = """\
+          0 EXTENDED_ARG             1
+          2 NOP
+          4 EXTENDED_ARG             1
+          6 LOAD_CONST             297 (297)
+          8 RETURN_VALUE
+"""
+
 _BIG_LINENO_FORMAT = """\
 %3d           0 LOAD_GLOBAL              0 (spam)
               2 POP_TOP
@@ -534,6 +551,10 @@ class DisTests(unittest.TestCase):
     def test_bug_42562(self):
         self.do_disassembly_test(bug42562, dis_bug42562)
 
+    def test_bug_45757(self):
+        # Extended arg followed by NOP
+        self.do_disassembly_test(code_bug_45757, dis_bug_45757)
+
     def test_big_linenos(self):
         def func(count):
             namespace = {}
@@ -689,10 +710,7 @@ class DisWithFileTests(DisTests):
 if sys.flags.optimize:
     code_info_consts = "0: None"
 else:
-    code_info_consts = (
-    """0: 'Formatted details of methods, functions, or code.'
-   1: None"""
-)
+    code_info_consts = "0: 'Formatted details of methods, functions, or code.'"
 
 code_info_code_info = f"""\
 Name:              code_info
@@ -816,7 +834,6 @@ Flags:             NOFREE
 Constants:
    0: 0
    1: 1
-   2: None
 Names:
    0: x"""
 
@@ -1248,5 +1265,46 @@ class TestBytecodeTestCase(BytecodeTestCase):
         with self.assertRaises(AssertionError):
             self.assertNotInBytecode(code, "LOAD_CONST", 1)
 
+
+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 90bfc70a133ae103a558f89acbf644fc2a60b18e..4b40af0213234e1a3bf90d06789dc89a448e93da 100644 (file)
@@ -15,16 +15,14 @@ with warnings_helper.check_warnings(
     import distutils.tests
 
 
-def test_main():
-    # used by regrtest
-    support.run_unittest(distutils.tests.test_suite())
-    support.reap_children()
-
-
 def load_tests(*_):
     # used by unittest
     return distutils.tests.test_suite()
 
 
+def tearDownModule():
+    support.reap_children()
+
+
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 828a0ff56763a40fef53d7e8c1b17a47e4f568bd..9703f871ad640c38761ba3c1d931894614380886 100644 (file)
@@ -96,6 +96,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)
@@ -501,6 +512,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
@@ -556,6 +568,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
@@ -597,6 +610,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
@@ -617,6 +631,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
@@ -3110,20 +3125,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):
@@ -3136,8 +3142,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 4001f716471dc2431c5ed1ba1bbeeb955e9791fe..a3ccbbbabfb328f25870df6b8d7750f044ee92f3 100644 (file)
@@ -2743,6 +2743,20 @@ message 2
         self.assertEqual(str(cm.exception),
                          'There may be at most 1 To headers in a message')
 
+
+# Test the NonMultipart class
+class TestNonMultipart(TestEmailBase):
+    def test_nonmultipart_is_not_multipart(self):
+        msg = MIMENonMultipart('text', 'plain')
+        self.assertFalse(msg.is_multipart())
+
+    def test_attach_raises_exception(self):
+        msg = Message()
+        msg['Subject'] = 'subpart 1'
+        r = MIMENonMultipart('text', 'plain')
+        self.assertRaises(errors.MultipartConversionError, r.attach, msg)
+
+
 # A general test of parser->model->generator idempotency.  IOW, read a message
 # in, parse it into a message object tree, then without touching the tree,
 # regenerate the plain text.  The original text and the transformed text
@@ -3009,6 +3023,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 479d712da65d94d1c012d9c235becc0ff8da9995..503d4925c9402ff89807b01039ec7d8b8fecc481 100644 (file)
@@ -250,7 +250,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))
@@ -311,6 +311,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
@@ -580,7 +588,6 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
     def get_expected_config(self, expected_preconfig, expected,
                             expected_pathconfig, env, api,
                             modify_path_cb=None):
-        cls = self.__class__
         configs = self._get_expected_config()
 
         pre_config = configs['pre_config']
@@ -1149,7 +1156,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',
@@ -1227,7 +1234,6 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
             self.fail(f"Unable to find home in {paths!r}")
 
         prefix = exec_prefix = home
-        ver = sys.version_info
         expected_paths = self.module_search_paths(prefix=home, exec_prefix=home)
 
         config = {
@@ -1497,8 +1503,7 @@ class StdPrinterTests(EmbeddingTestsMixin, unittest.TestCase):
     #   "Set up a preliminary stderr printer until we have enough
     #    infrastructure for the io module in place."
 
-    def get_stdout_fd(self):
-        return sys.__stdout__.fileno()
+    STDOUT_FD = 1
 
     def create_printer(self, fd):
         ctypes = import_helper.import_module('ctypes')
@@ -1510,7 +1515,7 @@ class StdPrinterTests(EmbeddingTestsMixin, unittest.TestCase):
     def test_write(self):
         message = "unicode:\xe9-\u20ac-\udc80!\n"
 
-        stdout_fd = self.get_stdout_fd()
+        stdout_fd = self.STDOUT_FD
         stdout_fd_copy = os.dup(stdout_fd)
         self.addCleanup(os.close, stdout_fd_copy)
 
@@ -1531,7 +1536,7 @@ class StdPrinterTests(EmbeddingTestsMixin, unittest.TestCase):
         self.assertEqual(data, message.encode('utf8', 'backslashreplace'))
 
     def test_methods(self):
-        fd = self.get_stdout_fd()
+        fd = self.STDOUT_FD
         printer = self.create_printer(fd)
         self.assertEqual(printer.fileno(), fd)
         self.assertEqual(printer.isatty(), os.isatty(fd))
@@ -1539,7 +1544,7 @@ class StdPrinterTests(EmbeddingTestsMixin, unittest.TestCase):
         printer.close()  # noop
 
     def test_disallow_instantiation(self):
-        fd = self.get_stdout_fd()
+        fd = self.STDOUT_FD
         printer = self.create_printer(fd)
         support.check_disallow_instantiation(self, type(printer))
 
index eb1266b960440a6a6cb4c88eaf148a74ab184482..03cf3533fc62d6deeeba2a17c89a45c22204a12f 100644 (file)
@@ -11,6 +11,7 @@ from pickle import dumps, loads, PicklingError, HIGHEST_PROTOCOL
 from test.support import ALWAYS_EQ, check__all__, threading_helper
 from datetime import timedelta
 
+python_version = sys.version_info[:2]
 
 # for pickle tests
 try:
@@ -347,17 +348,38 @@ class TestEnum(unittest.TestCase):
         self.assertTrue(IntLogic.true)
         self.assertFalse(IntLogic.false)
 
-    def test_contains(self):
+    @unittest.skipIf(
+            python_version >= (3, 12),
+            '__contains__ now returns True/False for all inputs',
+            )
+    def test_contains_er(self):
         Season = self.Season
         self.assertIn(Season.AUTUMN, Season)
         with self.assertRaises(TypeError):
-            3 in Season
+            with self.assertWarns(DeprecationWarning):
+                3 in Season
         with self.assertRaises(TypeError):
-            'AUTUMN' in Season
-
+            with self.assertWarns(DeprecationWarning):
+                'AUTUMN' in Season
         val = Season(3)
         self.assertIn(val, Season)
+        #
+        class OtherEnum(Enum):
+            one = 1; two = 2
+        self.assertNotIn(OtherEnum.two, Season)
 
+    @unittest.skipIf(
+            python_version < (3, 12),
+            '__contains__ only works with enum memmbers before 3.12',
+            )
+    def test_contains_tf(self):
+        Season = self.Season
+        self.assertIn(Season.AUTUMN, Season)
+        self.assertTrue(3 in Season)
+        self.assertFalse('AUTUMN' in Season)
+        val = Season(3)
+        self.assertIn(val, Season)
+        #
         class OtherEnum(Enum):
             one = 1; two = 2
         self.assertNotIn(OtherEnum.two, Season)
@@ -1932,6 +1954,38 @@ class TestEnum(unittest.TestCase):
         else:
             raise Exception('Exception not raised.')
 
+    def test_missing_exceptions_reset(self):
+        import weakref
+        #
+        class TestEnum(enum.Enum):
+            VAL1 = 'val1'
+            VAL2 = 'val2'
+        #
+        class Class1:
+            def __init__(self):
+                # Gracefully handle an exception of our own making
+                try:
+                    raise ValueError()
+                except ValueError:
+                    pass
+        #
+        class Class2:
+            def __init__(self):
+                # Gracefully handle an exception of Enum's making
+                try:
+                    TestEnum('invalid_value')
+                except ValueError:
+                    pass
+        # No strong refs here so these are free to die.
+        class_1_ref = weakref.ref(Class1())
+        class_2_ref = weakref.ref(Class2())
+        #
+        # The exception raised by Enum creates a reference loop and thus
+        # Class2 instances will stick around until the next gargage collection
+        # cycle, unlike Class1.
+        self.assertIs(class_1_ref(), None)
+        self.assertIs(class_2_ref(), None)
+
     def test_multiple_mixin(self):
         class MaxMixin:
             @classproperty
@@ -2085,7 +2139,7 @@ class TestEnum(unittest.TestCase):
         exec(code, global_ns, local_ls)
 
     @unittest.skipUnless(
-            sys.version_info[:2] == (3, 9),
+            python_version == (3, 9),
             'private variables are now normal attributes',
             )
     def test_warning_for_private_variables(self):
@@ -2390,19 +2444,42 @@ class TestFlag(unittest.TestCase):
         test_pickle_dump_load(self.assertIs, FlagStooges.CURLY|FlagStooges.MOE)
         test_pickle_dump_load(self.assertIs, FlagStooges)
 
-    def test_contains(self):
+    @unittest.skipIf(
+            python_version >= (3, 12),
+            '__contains__ now returns True/False for all inputs',
+            )
+    def test_contains_er(self):
         Open = self.Open
         Color = self.Color
         self.assertFalse(Color.BLACK in Open)
         self.assertFalse(Open.RO in Color)
         with self.assertRaises(TypeError):
-            'BLACK' in Color
+            with self.assertWarns(DeprecationWarning):
+                'BLACK' in Color
         with self.assertRaises(TypeError):
-            'RO' in Open
+            with self.assertWarns(DeprecationWarning):
+                'RO' in Open
         with self.assertRaises(TypeError):
-            1 in Color
+            with self.assertWarns(DeprecationWarning):
+                1 in Color
         with self.assertRaises(TypeError):
-            1 in Open
+            with self.assertWarns(DeprecationWarning):
+                1 in Open
+
+    @unittest.skipIf(
+            python_version < (3, 12),
+            '__contains__ only works with enum memmbers before 3.12',
+            )
+    def test_contains_tf(self):
+        Open = self.Open
+        Color = self.Color
+        self.assertFalse(Color.BLACK in Open)
+        self.assertFalse(Open.RO in Color)
+        self.assertFalse('BLACK' in Color)
+        self.assertFalse('RO' in Open)
+        self.assertTrue(1 in Color)
+        self.assertTrue(1 in Open)
+
 
     def test_member_contains(self):
         Perm = self.Perm
@@ -2883,7 +2960,11 @@ class TestIntFlag(unittest.TestCase):
         self.assertEqual(len(lst), len(Thing))
         self.assertEqual(len(Thing), 0, Thing)
 
-    def test_contains(self):
+    @unittest.skipIf(
+            python_version >= (3, 12),
+            '__contains__ now returns True/False for all inputs',
+            )
+    def test_contains_er(self):
         Open = self.Open
         Color = self.Color
         self.assertTrue(Color.GREEN in Color)
@@ -2891,13 +2972,33 @@ class TestIntFlag(unittest.TestCase):
         self.assertFalse(Color.GREEN in Open)
         self.assertFalse(Open.RW in Color)
         with self.assertRaises(TypeError):
-            'GREEN' in Color
+            with self.assertWarns(DeprecationWarning):
+                'GREEN' in Color
         with self.assertRaises(TypeError):
-            'RW' in Open
+            with self.assertWarns(DeprecationWarning):
+                'RW' in Open
         with self.assertRaises(TypeError):
-            2 in Color
+            with self.assertWarns(DeprecationWarning):
+                2 in Color
         with self.assertRaises(TypeError):
-            2 in Open
+            with self.assertWarns(DeprecationWarning):
+                2 in Open
+
+    @unittest.skipIf(
+            python_version < (3, 12),
+            '__contains__ only works with enum memmbers before 3.12',
+            )
+    def test_contains_tf(self):
+        Open = self.Open
+        Color = self.Color
+        self.assertTrue(Color.GREEN in Color)
+        self.assertTrue(Open.RW in Open)
+        self.assertTrue(Color.GREEN in Open)
+        self.assertTrue(Open.RW in Color)
+        self.assertFalse('GREEN' in Color)
+        self.assertFalse('RW' in Open)
+        self.assertTrue(2 in Color)
+        self.assertTrue(2 in Open)
 
     def test_member_contains(self):
         Perm = self.Perm
@@ -3267,7 +3368,7 @@ class TestIntEnumConvert(unittest.TestCase):
                           if name[0:2] not in ('CO', '__')],
                          [], msg='Names other than CONVERT_TEST_* found.')
 
-    @unittest.skipUnless(sys.version_info[:2] == (3, 8),
+    @unittest.skipUnless(python_version == (3, 8),
                          '_convert was deprecated in 3.8')
     def test_convert_warn(self):
         with self.assertWarns(DeprecationWarning):
@@ -3276,7 +3377,7 @@ class TestIntEnumConvert(unittest.TestCase):
                 ('test.test_enum', '__main__')[__name__=='__main__'],
                 filter=lambda x: x.startswith('CONVERT_TEST_'))
 
-    @unittest.skipUnless(sys.version_info >= (3, 9),
+    @unittest.skipUnless(python_version >= (3, 9),
                          '_convert was removed in 3.9')
     def test_convert_raise(self):
         with self.assertRaises(AttributeError):
@@ -3285,6 +3386,33 @@ class TestIntEnumConvert(unittest.TestCase):
                 ('test.test_enum', '__main__')[__name__=='__main__'],
                 filter=lambda x: x.startswith('CONVERT_TEST_'))
 
+class TestHelpers(unittest.TestCase):
+
+    sunder_names = '_bad_', '_good_', '_what_ho_'
+    dunder_names = '__mal__', '__bien__', '__que_que__'
+    private_names = '_MyEnum__private', '_MyEnum__still_private'
+    private_and_sunder_names = '_MyEnum__private_', '_MyEnum__also_private_'
+    random_names = 'okay', '_semi_private', '_weird__', '_MyEnum__'
+
+    def test_sunder(self):
+        for name in self.sunder_names + self.private_and_sunder_names:
+            self.assertTrue(enum._is_sunder(name), '%r is a not sunder name?' % name)
+        for name in self.dunder_names + self.private_names + self.random_names:
+            self.assertFalse(enum._is_sunder(name), '%r is a sunder name?' % name)
+
+    def test_dunder(self):
+        for name in self.dunder_names:
+            self.assertTrue(enum._is_dunder(name), '%r is a not dunder name?' % name)
+        for name in self.sunder_names + self.private_names + self.private_and_sunder_names + self.random_names:
+            self.assertFalse(enum._is_dunder(name), '%r is a dunder name?' % name)
+
+    def test_is_private(self):
+        for name in self.private_names + self.private_and_sunder_names:
+            self.assertTrue(enum._is_private('MyEnum', name), '%r is a not private name?')
+        for name in self.sunder_names + self.dunder_names + self.random_names:
+            self.assertFalse(enum._is_private('MyEnum', name), '%r is a private name?')
+
 
 if __name__ == '__main__':
     unittest.main()
+
index 520deb301ecf8ab1ba42d29377f842d5416c4327..ad2864bc41637fcba557bc9f5d9a31354771f1b5 100644 (file)
@@ -209,6 +209,10 @@ class ExceptionTests(unittest.TestCase):
                     src = src.decode(encoding, 'replace')
                 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\\', 2, 2)
 
     def testSyntaxErrorOffset(self):
         check = self.check
@@ -223,12 +227,13 @@ class ExceptionTests(unittest.TestCase):
         check('x = "a', 1, 5)
         check('lambda x: x = 2', 1, 1)
         check('f{a + b + c}', 1, 2)
-        check('[file for str(file) in []\n])', 2, 2)
+        check('[file for str(file) in []\n])', 1, 11)
         check('a = « hello » « world »', 1, 5)
         check('[\nfile\nfor str(file)\nin\n[]\n]', 3, 5)
         check('[file for\n str(file) in []]', 2, 2)
         check("ages = {'Alice'=22, 'Bob'=23}", 1, 16)
         check('match ...:\n    case {**rest, "key": value}:\n        ...', 2, 19)
+        check("[a b c d e f]", 1, 2)
 
         # Errors thrown by compile.c
         check('class foo:return 1', 1, 11)
@@ -656,6 +661,7 @@ class ExceptionTests(unittest.TestCase):
         except MyException as e:
             pass
         obj = None
+        gc_collect()  # For PyPy or other GCs.
         obj = wr()
         self.assertIsNone(obj)
 
@@ -667,6 +673,7 @@ class ExceptionTests(unittest.TestCase):
         except MyException:
             pass
         obj = None
+        gc_collect()  # For PyPy or other GCs.
         obj = wr()
         self.assertIsNone(obj)
 
@@ -678,6 +685,7 @@ class ExceptionTests(unittest.TestCase):
         except:
             pass
         obj = None
+        gc_collect()  # For PyPy or other GCs.
         obj = wr()
         self.assertIsNone(obj)
 
@@ -690,6 +698,7 @@ class ExceptionTests(unittest.TestCase):
             except:
                 break
         obj = None
+        gc_collect()  # For PyPy or other GCs.
         obj = wr()
         self.assertIsNone(obj)
 
@@ -708,6 +717,7 @@ class ExceptionTests(unittest.TestCase):
             # must clear the latter manually for our test to succeed.
             e.__context__ = None
             obj = None
+            gc_collect()  # For PyPy or other GCs.
             obj = wr()
             # guarantee no ref cycles on CPython (don't gc_collect)
             if check_impl_detail(cpython=False):
@@ -898,6 +908,7 @@ class ExceptionTests(unittest.TestCase):
         next(g)
         testfunc(g)
         g = obj = None
+        gc_collect()  # For PyPy or other GCs.
         obj = wr()
         self.assertIsNone(obj)
 
@@ -951,6 +962,7 @@ class ExceptionTests(unittest.TestCase):
             raise Exception(MyObject())
         except:
             pass
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(e, (None, None, None))
 
     def test_raise_does_not_create_context_chain_cycle(self):
@@ -1413,6 +1425,7 @@ class ExceptionTests(unittest.TestCase):
             self.assertNotEqual(wr(), None)
         else:
             self.fail("MemoryError not raised")
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(wr(), None)
 
     @no_tracing
@@ -1433,6 +1446,7 @@ class ExceptionTests(unittest.TestCase):
             self.assertNotEqual(wr(), None)
         else:
             self.fail("RecursionError not raised")
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(wr(), None)
 
     def test_errno_ENOTDIR(self):
@@ -1453,6 +1467,7 @@ class ExceptionTests(unittest.TestCase):
         with support.catch_unraisable_exception() as cm:
             del obj
 
+            gc_collect()  # For PyPy or other GCs.
             self.assertEqual(cm.unraisable.object, BrokenDel.__del__)
             self.assertIsNotNone(cm.unraisable.exc_traceback)
 
@@ -1830,7 +1845,7 @@ class NameErrorTests(unittest.TestCase):
             with support.captured_stderr() as err:
                 sys.__excepthook__(*sys.exc_info())
 
-        self.assertNotIn("a1", err.getvalue())
+        self.assertNotRegex(err.getvalue(), r"NameError.*a1")
 
     def test_name_error_with_custom_exceptions(self):
         def f():
@@ -1871,6 +1886,37 @@ class NameErrorTests(unittest.TestCase):
 
         self.assertNotIn("something", err.getvalue())
 
+    def test_issue45826(self):
+        # regression test for bpo-45826
+        def f():
+            with self.assertRaisesRegex(NameError, 'aaa'):
+                aab
+
+        try:
+            f()
+        except self.failureException:
+            with support.captured_stderr() as err:
+                sys.__excepthook__(*sys.exc_info())
+
+        self.assertIn("aab", err.getvalue())
+
+    def test_issue45826_focused(self):
+        def f():
+            try:
+                nonsense
+            except BaseException as E:
+                E.with_traceback(None)
+                raise ZeroDivisionError()
+
+        try:
+            f()
+        except ZeroDivisionError:
+            with support.captured_stderr() as err:
+                sys.__excepthook__(*sys.exc_info())
+
+        self.assertIn("nonsense", err.getvalue())
+        self.assertIn("ZeroDivisionError", err.getvalue())
+
 
 class AttributeErrorTests(unittest.TestCase):
     def test_attributes(self):
@@ -2271,7 +2317,7 @@ class SyntaxErrorTests(unittest.TestCase):
                  abcdefg
              SyntaxError: bad bad
              """)),
-            # End offset pass the source lenght
+            # End offset pass the source length
             (("bad.py", 1, 2, "abcdefg", 1, 100),
              dedent(
              """
@@ -2288,6 +2334,7 @@ class SyntaxErrorTests(unittest.TestCase):
                 except SyntaxError as exc:
                     with support.captured_stderr() as err:
                         sys.__excepthook__(*sys.exc_info())
+                    self.assertIn(expected, err.getvalue())
                     the_exception = exc
 
     def test_encodings(self):
@@ -2306,6 +2353,19 @@ class SyntaxErrorTests(unittest.TestCase):
         finally:
             unlink(TESTFN)
 
+        # Check backwards tokenizer errors
+        source = '# -*- coding: ascii -*-\n\n(\n'
+        try:
+            with open(TESTFN, 'w', encoding='ascii') as testfile:
+                testfile.write(source)
+            rc, out, err = script_helper.assert_python_failure('-Wd', '-X', 'utf8', TESTFN)
+            err = err.decode('utf-8').splitlines()
+
+            self.assertEqual(err[-3], '    (')
+            self.assertEqual(err[-2], '    ^')
+        finally:
+            unlink(TESTFN)
+
     def test_attributes_new_constructor(self):
         args = ("bad.py", 1, 2, "abcdefg", 1, 100)
         the_exception = SyntaxError("bad bad", args)
index 83ee7a5b0d01206b7caa3cf4b0e8cf9acba32a4d..fc8c39365f12b795bbc20be50a398e8a2cb02247 100644 (file)
@@ -6,7 +6,7 @@ import struct
 import sys
 import unittest
 from multiprocessing import Process
-from test.support import (verbose, run_unittest, cpython_only)
+from test.support import verbose, cpython_only
 from test.support.import_helper import import_module
 from test.support.os_helper import TESTFN, unlink
 
@@ -210,8 +210,5 @@ class TestFcntl(unittest.TestCase):
             os.close(test_pipe_w)
 
 
-def test_main():
-    run_unittest(TestFcntl)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 1ec756f334d28f784beb993f9554e763d5477b8d..1146a37323c9bfe229ce973f67450faae82cf4bc 100644 (file)
@@ -7,6 +7,7 @@ from weakref import proxy
 import io
 import _pyio as pyio
 
+from test.support import gc_collect
 from test.support.os_helper import TESTFN
 from test.support import os_helper
 from test.support import warnings_helper
@@ -30,6 +31,7 @@ class AutoFileTests:
         self.assertEqual(self.f.tell(), p.tell())
         self.f.close()
         self.f = None
+        gc_collect()  # For PyPy or other GCs.
         self.assertRaises(ReferenceError, getattr, p, 'tell')
 
     def testAttributes(self):
index 64ba5a0e18169ceccb2b790b43cd9a8bca3447bf..9b5ac12bccc58f9ce4615bb48060c5edf5815e16 100644 (file)
@@ -246,8 +246,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 ff611a90eede3bd2babe1be9fd9ad695d15dc1a9..4269b0e53f56dfa627395d8196014f0ee5b35b19 100644 (file)
@@ -9,7 +9,7 @@ from array import array
 from weakref import proxy
 from functools import wraps
 
-from test.support import (run_unittest, cpython_only, swap_attr)
+from test.support import cpython_only, swap_attr, gc_collect
 from test.support.os_helper import (TESTFN, TESTFN_UNICODE, make_bad_fd)
 from test.support.warnings_helper import check_warnings
 from collections import UserList
@@ -36,6 +36,7 @@ class AutoFileTests:
         self.assertEqual(self.f.tell(), p.tell())
         self.f.close()
         self.f = None
+        gc_collect()  # For PyPy or other GCs.
         self.assertRaises(ReferenceError, getattr, p, 'tell')
 
     def testSeekTell(self):
@@ -605,15 +606,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 14a4c678fc909706b01d4099ab3f6df4550b0ca2..bd1ca943c7c09407828be82b9ee8bc01a5848ff2 100644 (file)
@@ -944,7 +944,7 @@ x = (
                              "Bf''",
                              "BF''",]
         double_quote_cases = [case.replace("'", '"') for case in single_quote_cases]
-        self.assertAllRaise(SyntaxError, 'unexpected EOF while parsing',
+        self.assertAllRaise(SyntaxError, 'invalid syntax',
                             single_quote_cases + double_quote_cases)
 
     def test_leading_trailing_spaces(self):
index 3492ba44f21034ff1331766ae2d9f58abbdfc6b5..56e3d8ab8528afb4840a6ef1b4c11bfdb160387c 100644 (file)
@@ -10,6 +10,7 @@ import errno
 import os
 import threading
 import time
+import unittest
 try:
     import ssl
 except ImportError:
@@ -1144,18 +1145,10 @@ class MiscTestCase(TestCase):
         support.check__all__(self, ftplib, not_exported=not_exported)
 
 
-def test_main():
-    tests = [TestFTPClass, TestTimeouts,
-             TestIPv6Environment,
-             TestTLS_FTPClassMixin, TestTLS_FTPClass,
-             MiscTestCase]
-
+def setUpModule():
     thread_info = threading_helper.threading_setup()
-    try:
-        support.run_unittest(*tests)
-    finally:
-        threading_helper.threading_cleanup(*thread_info)
+    unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
 
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index fbf5578872e6b0519f2be5aa7646ea89d6e39fef..7bc355ff7213ee0be8845851363a90998c06fddb 100644 (file)
@@ -167,6 +167,7 @@ class TestPartial:
         p = proxy(f)
         self.assertEqual(f.func, p.func)
         f = None
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertRaises(ReferenceError, getattr, p, 'func')
 
     def test_with_bound_and_unbound_methods(self):
@@ -2410,7 +2411,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
@@ -2418,6 +2419,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:
@@ -2436,6 +2441,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 4ef11232a336819dbea468218d751be21a5c0b91..5a3944e69e640ef3a6f68049a6a0775806faeb47 100644 (file)
@@ -329,7 +329,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 1528cf6e20ee609cc69e77500dc3aa5e38b3fae4..6c28b2b677ceeb5371a1ba01483cce0798166093 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)
 from test.support.import_helper import import_module
 from test.support.os_helper import temp_dir, TESTFN, unlink
@@ -1389,30 +1389,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 53d579e723c470f4463660b014dc3652dc6fcc21..d14c757c7b6e435aa1c300a1ea91f72ab2b1cd7f 100644 (file)
@@ -1966,6 +1966,8 @@ True
 """
 
 coroutine_tests = """\
+>>> from test.support import gc_collect
+
 Sending a value into a started generator:
 
 >>> def f():
@@ -2189,7 +2191,7 @@ And finalization:
 
 >>> g = f()
 >>> next(g)
->>> del g
+>>> del g; gc_collect()  # For PyPy or other GCs.
 exiting
 
 
@@ -2204,7 +2206,7 @@ GeneratorExit is not caught by except Exception:
 
 >>> g = f()
 >>> next(g)
->>> del g
+>>> del g; gc_collect()  # For PyPy or other GCs.
 finally
 
 
index 2e70e751d4eee5b5ccb4daf50d9b6697eccc5316..0daaff099a868d7d23fdef7e79cd93a6b39049cc 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 c71d055297e0c98db7718a49b92b0746aef2a51b..d0bde3fd040e60e05a851321f1fb4fb62c4167f4 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
+from test.support import check_syntax_error
 from test.support.warnings_helper import check_warnings
 import unittest
 import warnings
@@ -53,10 +53,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 7b51e45aad92bac75fde153f00f215f3a322e68d..f86e767ac0e59cbe7e04088a8e02730bc02666fb 100644 (file)
@@ -10,7 +10,6 @@ import struct
 import sys
 import unittest
 from subprocess import PIPE, Popen
-from test import support
 from test.support import import_helper
 from test.support import os_helper
 from test.support import _4G, bigmemtest
@@ -842,9 +841,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 fdf15efde12ef2ea251ba36a390ac77b6ad2edf7..9450104d0b9a75a76ad7a0961e1cc205663fab8f 100644 (file)
@@ -1920,14 +1920,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 69790ec746314529d7b808f63996f32e0182d4c5..1cc020f63539decafddf10df24ccab0715cad4f7 100644 (file)
@@ -1302,21 +1302,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 0e94ce91801d6716d6d2274ac3a68c8ac774f6d8..9290bac80a78ac365aa9c3f515e8a916117a3032 100644 (file)
@@ -4,6 +4,7 @@ init = test_util.import_importlib('importlib')
 
 import sys
 import threading
+import unittest
 import weakref
 
 from test import support
@@ -139,15 +140,10 @@ class LifetimeTests:
  ) = test_util.test_both(LifetimeTests, init=init)
 
 
-@threading_helper.reap_threads
-def test_main():
-    support.run_unittest(Frozen_ModuleLockAsRLockTests,
-                         Source_ModuleLockAsRLockTests,
-                         Frozen_DeadlockAvoidanceTests,
-                         Source_DeadlockAvoidanceTests,
-                         Frozen_LifetimeTests,
-                         Source_LifetimeTests)
+def setUpModule():
+    thread_info = threading_helper.threading_setup()
+    unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
 
 
 if __name__ == '__main__':
-    test_main()
+    unittets.main()
index 03bde96de6c2978664e57d8c96d360adf7100817..76b028eac97bf948127f9c1d459a9681f69b998e 100644 (file)
@@ -14,7 +14,7 @@ import shutil
 import threading
 import unittest
 from unittest import mock
-from test.support import (verbose, run_unittest)
+from test.support import verbose
 from test.support.import_helper import forget
 from test.support.os_helper import (TESTFN, unlink, rmtree)
 from test.support import script_helper, threading_helper
@@ -258,19 +258,16 @@ class ThreadedImportTests(unittest.TestCase):
         script_helper.assert_python_ok(fn)
 
 
-@threading_helper.reap_threads
-def test_main():
-    old_switchinterval = None
+def setUpModule():
+    thread_info = threading_helper.threading_setup()
+    unittest.addModuleCleanup(threading_helper.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 a9778282d90a4ea0e5f61dbc14d5d365b5951976..93ff2f85df193d0435ae9e716bc33fc7b5e45a92 100644 (file)
@@ -24,7 +24,7 @@ try:
 except ImportError:
     ThreadPoolExecutor = None
 
-from test.support import run_unittest, cpython_only
+from test.support import cpython_only
 from test.support import MISSING_C_DOCSTRINGS, ALWAYS_EQ
 from test.support.import_helper import DirsOnSysPath
 from test.support.os_helper import TESTFN
@@ -493,6 +493,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")
@@ -3316,6 +3325,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
@@ -4350,19 +4370,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,
-        TestGetsourceInteractive,
-    )
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 32c29ea5dc4a76ee2ce1982d2adb7a4626d0a3b4..35013b6a090cbb9a5afcf3604ce79b33c3e96cde 100644 (file)
@@ -73,6 +73,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)
@@ -1546,7 +1550,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)
@@ -1911,7 +1915,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)
@@ -2410,7 +2414,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)
@@ -4372,6 +4376,31 @@ class SignalsTest(unittest.TestCase):
         """Check that a partial write, when it gets interrupted, properly
         invokes the signal handler, and bubbles up the exception raised
         in the latter."""
+
+        # XXX This test has three flaws that appear when objects are
+        # XXX not reference counted.
+
+        # - if wio.write() happens to trigger a garbage collection,
+        #   the signal exception may be raised when some __del__
+        #   method is running; it will not reach the assertRaises()
+        #   call.
+
+        # - more subtle, if the wio object is not destroyed at once
+        #   and survives this function, the next opened file is likely
+        #   to have the same fileno (since the file descriptor was
+        #   actively closed).  When wio.__del__ is finally called, it
+        #   will close the other's test file...  To trigger this with
+        #   CPython, try adding "global wio" in this function.
+
+        # - This happens only for streams created by the _pyio module,
+        #   because a wio.close() that fails still consider that the
+        #   file needs to be closed again.  You can try adding an
+        #   "assert wio.closed" at the end of the function.
+
+        # Fortunately, a little gc.collect() seems to be enough to
+        # work around all these issues.
+        support.gc_collect()  # For PyPy or other GCs.
+
         read_results = []
         def _read():
             s = os.read(r, 1)
index 109c3f84a5c426dc45a1277bdc992b10421ae2e4..9d37cff990338559b1fc2c19e938d323b77eb9ab 100644 (file)
@@ -5,6 +5,7 @@
 import unittest
 import sys
 import typing
+from test import support
 
 
 \f
@@ -266,12 +267,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_subclass_with_union(self):
         self.assertTrue(issubclass(int, int | float | int))
@@ -308,10 +311,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 20cb9c06809146960d1d89c3f1289cab3ec741ba..554f602f6252c00aa05e6e63a13d0456fb19febb 100644 (file)
@@ -2,7 +2,7 @@
 
 import sys
 import unittest
-from test.support import run_unittest, cpython_only
+from test.support import cpython_only
 from test.support.os_helper import TESTFN, unlink
 from test.support import check_free_after_iterating, ALWAYS_EQ, NEVER_EQ
 import pickle
@@ -1037,9 +1037,5 @@ class TestCase(unittest.TestCase):
         self.assertRaises(ZeroDivisionError, iter, BadIterableClass())
 
 
-def test_main():
-    run_unittest(TestCase)
-
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 3f4fb4cf071889505cd5c65ebfe68a5abd154529..a12f6f0b9773e4f9d31d7abc27babec4f75139e5 100644 (file)
@@ -1442,6 +1442,7 @@ class TestBasicOps(unittest.TestCase):
         p = weakref.proxy(a)
         self.assertEqual(getattr(p, '__class__'), type(b))
         del a
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertRaises(ReferenceError, getattr, p, '__class__')
 
         ans = list('abc')
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 0386690cad95beb1ea5858bb0a8ba8cdf4a75458..1d7fca6efb1cc725aae787fe4a0df421d598eb85 100644 (file)
@@ -131,6 +131,15 @@ class TestTool(unittest.TestCase):
         self.assertEqual(out, b'')
         self.assertEqual(err, b'')
 
+    def test_writing_in_place(self):
+        infile = self._create_infile()
+        rc, out, err = assert_python_ok('-m', 'json.tool', infile, infile)
+        with open(infile, "r", encoding="utf-8") as fp:
+            self.assertEqual(fp.read(), self.expect)
+        self.assertEqual(rc, 0)
+        self.assertEqual(out, b'')
+        self.assertEqual(err, b'')
+
     def test_jsonlines(self):
         args = sys.executable, '-m', 'json.tool', '--json-lines'
         process = subprocess.run(args, input=self.jsonlines_raw, capture_output=True, text=True, check=True)
index 8f1a92e5c725c3061f01bc61b26bccb9344f7ac1..06e33f4c4c2f3859cddc810c24432ff125f8ba53 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(os_helper.TESTFN, 'w', encoding='utf-8') as fd:
             self.addCleanup(os_helper.unlink, os_helper.TESTFN)
             fd.write(textwrap.dedent("""\
index 2c788f2dfa65e6ad4cb3ad8c47d1eb21dce53ae1..f844e62ca2e72be8245fcc779fa9e2d18db8fd6a 100644 (file)
@@ -496,7 +496,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 af841d64e35b8b567a202480dbd09f41b7e2145a..93f6e5f85a0a35d1914d1e219a473f77966215bb 100644 (file)
@@ -5190,6 +5190,13 @@ class RotatingFileHandlerTest(BaseFileTest):
                 self.fn, encoding="utf-8", 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, encoding="utf-8", maxBytes=1)
@@ -5284,6 +5291,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(
@@ -5489,25 +5505,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 1e2066b89168f419ebcab08b705ce0231e479785..145c8cfced4080bd99c72d121ac2c4e9164b9cbd 100644 (file)
@@ -9,9 +9,7 @@ import sys
 from test import support
 import unittest
 
-from test.support import (
-    _4G, bigmemtest, run_unittest
-)
+from test.support import _4G, bigmemtest
 from test.support.import_helper import import_module
 from test.support.os_helper import (
     TESTFN, unlink
@@ -1941,14 +1939,5 @@ ISSUE_21872_DAT = (
 )
 
 
-def test_main():
-    run_unittest(
-        CompressorDecompressorTestCase,
-        CompressDecompressFunctionTestCase,
-        FileTestCase,
-        OpenTestCase,
-        MiscellaneousTestCase,
-    )
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 8a5d69246228e3fec8f3db909ddaa2f611a8feca..604fc4525f53e9f3ddae4de6f1ff21956628328f 100644 (file)
@@ -2300,15 +2300,9 @@ class MiscTestCase(unittest.TestCase):
                              not_exported={"linesep", "fcntl"})
 
 
-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 3d128749bec40faa8a3b2163df2d1789aa4362f1..e5f4e2bbadefb76df694d02bfa938a1379e9ed2c 100644 (file)
@@ -1783,16 +1783,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 fb9cb04452c30022803bafc22d8d9182275d84a0..4098a22644092f89efc0671e4d8bfc49c5010309 100644 (file)
@@ -113,20 +113,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 3efa1505e5c92c443b53e62b62831c602081bc60..cf8bb5e3a0520d2cf7add7d29c584fe33605135e 100644 (file)
@@ -403,8 +403,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 1ed6bf9f919a2c3fc2fbe204c744367d74537859..28b274462388eda9414a284c192336f10c35097b 100644 (file)
@@ -1656,8 +1656,5 @@ class MiscTestCase(unittest.TestCase):
         support.check__all__(self, optparse, not_exported=not_exported)
 
 
-def test_main():
-    support.run_unittest(__name__)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 684e308ad3a0596af73d3f8103bc4c7ff4d10526..0ad13d59ded372f0b60e489e6e9422f9499c9205 100644 (file)
@@ -4501,6 +4501,22 @@ class TimesTests(unittest.TestCase):
             self.assertEqual(times.elapsed, 0)
 
 
+@requires_os_func('fork')
+class ForkTests(unittest.TestCase):
+    def test_fork(self):
+        # bpo-42540: ensure os.fork() with non-default memory allocator does
+        # not crash on exit.
+        code = """if 1:
+            import os
+            from test import support
+            pid = os.fork()
+            if pid != 0:
+                support.wait_process(pid, exitcode=0)
+        """
+        assert_python_ok("-c", code)
+        assert_python_ok("-c", code, PYTHONMALLOC="malloc_debug")
+
+
 # Only test if the C version is provided, otherwise TestPEP519 already tested
 # the pure Python implementation.
 if hasattr(os, "_fspath"):
index d3766e580b984392fdf496282131515c0e7c2f39..ebce3e9c272f9c7315d736b2e32b8d31cb8c186f 100644 (file)
@@ -188,7 +188,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:
@@ -197,7 +197,6 @@ def test_main():
             raise unittest.SkipTest(msg)
         raise
     dsp.close()
-    support.run_unittest(__name__)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index e716f4d3859326389f27911dd9e26d7d98dca5b6..5f6d9f47d13d7545d265d9a68424265e760a3470 100644 (file)
@@ -324,7 +324,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'))
@@ -1284,7 +1284,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 a9afca867ca8f79d7cedb2f02609664edb3e17c2..d4c037dabff97e0cf9780b35e3cfc62a169048e9 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.support import os_helper
 # This little helper class is essential for testing pdb under doctest.
@@ -1688,7 +1688,7 @@ def bœr():
         os_helper.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(os_helper.rmtree, module_name)
         stdout, stderr = self._run_pdb(['-m', module_name], "")
@@ -1701,7 +1701,7 @@ def bœr():
         os_helper.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(os_helper.rmtree, pkg_name)
         stdout, stderr = self._run_pdb(['-m', modpath.replace('/', '.')], "")
@@ -1915,19 +1915,20 @@ class ChecklineTests(unittest.TestCase):
         self.assertEqual(db.checkline(os_helper.TESTFN, 1), 1)
 
     def test_checkline_is_not_executable(self):
-        with open(os_helper.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(os_helper.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(os_helper.TESTFN, lineno))
+        with redirect_stdout(StringIO()):
+            db = pdb.Pdb()
+            for lineno in range(num_lines):
+                self.assertFalse(db.checkline(os_helper.TESTFN, lineno))
 
 
 def load_tests(*args):
index 4034154e4dcfb591f7335b95a95d3750cad57fdc..11a4d1740b8dcecb35982ea1fd1a9bf18b591053 100644 (file)
@@ -514,5 +514,12 @@ class TestBuglets(unittest.TestCase):
             except Exception or Exception:
                 pass
 
+    def test_bpo_45773_pop_jump_if_true(self):
+        compile("while True or spam: pass", "<test>", "exec")
+
+    def test_bpo_45773_pop_jump_if_false(self):
+        compile("while True or not spam: pass", "<test>", "exec")
+
+
 if __name__ == "__main__":
     unittest.main()
index f8b43a1eb666fbd5d02a6bea1350b4b143a69dd0..8775ff4b79157df93156b142f08db4c36ed39499 100644 (file)
@@ -9,6 +9,7 @@ import sys
 import warnings
 import weakref
 
+import doctest
 import unittest
 from test import support
 from test.support import import_helper
@@ -31,7 +32,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)
@@ -40,7 +41,7 @@ class PyPickleTests(AbstractPickleModuleTests):
     Unpickler = pickle._Unpickler
 
 
-class PyUnpicklerTests(AbstractUnpickleTests):
+class PyUnpicklerTests(AbstractUnpickleTests, unittest.TestCase):
 
     unpickler = pickle._Unpickler
     bad_stack_errors = (IndexError,)
@@ -54,7 +55,7 @@ class PyUnpicklerTests(AbstractUnpickleTests):
         return u.load()
 
 
-class PyPicklerTests(AbstractPickleTests):
+class PyPicklerTests(AbstractPickleTests, unittest.TestCase):
 
     pickler = pickle._Pickler
     unpickler = pickle._Unpickler
@@ -73,7 +74,7 @@ class PyPicklerTests(AbstractPickleTests):
 
 
 class InMemoryPickleTests(AbstractPickleTests, AbstractUnpickleTests,
-                          BigmemPickleTests):
+                          BigmemPickleTests, unittest.TestCase):
 
     bad_stack_errors = (pickle.UnpicklingError, IndexError)
     truncated_errors = (pickle.UnpicklingError, EOFError,
@@ -110,14 +111,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
@@ -183,13 +184,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
 
@@ -197,7 +198,7 @@ class PyDispatchTableTests(AbstractDispatchTableTests):
         return pickle.dispatch_table.copy()
 
 
-class PyChainDispatchTableTests(AbstractDispatchTableTests):
+class PyChainDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
 
     pickler_class = pickle._Pickler
 
@@ -205,7 +206,7 @@ class PyChainDispatchTableTests(AbstractDispatchTableTests):
         return collections.ChainMap({}, pickle.dispatch_table)
 
 
-class PyPicklerHookTests(AbstractHookTests):
+class PyPicklerHookTests(AbstractHookTests, unittest.TestCase):
     class CustomPyPicklerClass(pickle._Pickler,
                                AbstractCustomPicklerClass):
         pass
@@ -213,7 +214,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):
@@ -241,7 +242,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
 
@@ -254,17 +255,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
@@ -514,22 +515,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 f5e9ae41c3c1a48c8d6c831d7aef86521803a4dd..d37af79e878a2e52042e2752f0ca5c9649a45bfa 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))
@@ -94,11 +95,10 @@ class MiscTestCase(unittest.TestCase):
         support.check__all__(self, pickletools, not_exported=not_exported)
 
 
-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 6a13b36d1cb70ec430fe7ac50265fbcc18ad9b51..6335e7cbe09c4e4e0ff5c78764251cf191da4882 100644 (file)
@@ -3,7 +3,7 @@ import os
 import string
 import unittest
 import shutil
-from test.support import run_unittest, reap_children, unix_shell
+from test.support import reap_children, unix_shell
 from test.support.os_helper import TESTFN, unlink
 
 
@@ -199,9 +199,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 6e3618f6b0f98b0f2466e4cd98d6ff0a01017587..800fe38fb486a1b46df381de86a1e5764367fbac 100644 (file)
@@ -1,4 +1,3 @@
-from test.support import run_unittest
 from test.support.import_helper import unload, CleanImport
 from test.support.warnings_helper import check_warnings
 import unittest
@@ -580,9 +579,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
@@ -591,4 +588,4 @@ def test_main():
 
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index de62350696a920c9ab73eb3550fa1461c35a48e4..82bbb3af9f1b399c444a4358e9cd8a7110a31b1c 100644 (file)
@@ -7,7 +7,7 @@ import select
 import threading
 import time
 import unittest
-from test.support import run_unittest, cpython_only
+from test.support import cpython_only
 from test.support import threading_helper
 from test.support.os_helper import TESTFN
 
@@ -229,8 +229,5 @@ class PollTests(unittest.TestCase):
             os.close(w)
 
 
-def test_main():
-    run_unittest(PollTests)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 8dd6ea69c0d1a01036f7d921d868754db7190237..44cf5231f9d23f4eb7b5fa5181cd3ee0b1cf177f 100644 (file)
@@ -9,6 +9,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
@@ -538,15 +539,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 = threading_helper.threading_setup()
-    try:
-        test_support.run_unittest(*tests)
-    finally:
-        threading_helper.threading_cleanup(*thread_info)
+    unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
 
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index e4666884ce06a1137759d3fd96ce7fb95e20e44b..56b72f465c1c08cb94fff4dc64d21f4c03db764d 100644 (file)
@@ -2171,17 +2171,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 7de7d52ff8365022e42d159714a237caae7c0a61..d97fe447c38b01a246b1cc9903e987a0738423d0 100644 (file)
@@ -6,7 +6,6 @@ import unittest
 import os
 from difflib import unified_diff
 from io import StringIO
-from test.support import run_unittest
 from test.support.os_helper import TESTFN, unlink, temp_dir, change_cwd
 from contextlib import contextmanager
 
@@ -156,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 0afa3e6fce1812bc5c6194fc9e54eb996e7d9bc7..44c16989716a0dd51d408dd880b2e40e1bf00300 100644 (file)
@@ -1571,20 +1571,11 @@ class TestInternalUtilities(unittest.TestCase):
                 self.assertIsNone(self._get_revised_path(trailing_argv0dir))
 
 
-@threading_helper.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 = threading_helper.threading_setup()
+    unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
+    unittest.addModuleCleanup(reap_children)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 508b739019593d6084a19ebf88a631afc36aaa7a..cfa6003a867dafc8e27afcb402d62485f40b2545 100644 (file)
@@ -6,6 +6,7 @@ import threading
 import time
 import unittest
 import weakref
+from test.support import gc_collect
 from test.support import import_helper
 from test.support import threading_helper
 
@@ -419,11 +420,12 @@ class BaseSimpleQueueTest:
     def setUp(self):
         self.q = self.type2test()
 
-    def feed(self, q, seq, rnd):
+    def feed(self, q, seq, rnd, sentinel):
         while True:
             try:
                 val = seq.pop()
             except IndexError:
+                q.put(sentinel)
                 return
             q.put(val)
             if rnd.random() > 0.5:
@@ -462,11 +464,10 @@ class BaseSimpleQueueTest:
                 return
             results.append(val)
 
-    def run_threads(self, n_feeders, n_consumers, q, inputs,
-                    feed_func, consume_func):
+    def run_threads(self, n_threads, q, inputs, feed_func, consume_func):
         results = []
         sentinel = None
-        seq = inputs + [sentinel] * n_consumers
+        seq = inputs.copy()
         seq.reverse()
         rnd = random.Random(42)
 
@@ -480,11 +481,11 @@ class BaseSimpleQueueTest:
             return wrapper
 
         feeders = [threading.Thread(target=log_exceptions(feed_func),
-                                    args=(q, seq, rnd))
-                   for i in range(n_feeders)]
+                                    args=(q, seq, rnd, sentinel))
+                   for i in range(n_threads)]
         consumers = [threading.Thread(target=log_exceptions(consume_func),
                                       args=(q, results, sentinel))
-                     for i in range(n_consumers)]
+                     for i in range(n_threads)]
 
         with threading_helper.start_threads(feeders + consumers):
             pass
@@ -542,7 +543,7 @@ class BaseSimpleQueueTest:
         # Test a pair of concurrent put() and get()
         q = self.q
         inputs = list(range(100))
-        results = self.run_threads(1, 1, q, inputs, self.feed, self.consume)
+        results = self.run_threads(1, q, inputs, self.feed, self.consume)
 
         # One producer, one consumer => results appended in well-defined order
         self.assertEqual(results, inputs)
@@ -552,7 +553,7 @@ class BaseSimpleQueueTest:
         N = 50
         q = self.q
         inputs = list(range(10000))
-        results = self.run_threads(N, N, q, inputs, self.feed, self.consume)
+        results = self.run_threads(N, q, inputs, self.feed, self.consume)
 
         # Multiple consumers without synchronization append the
         # results in random order
@@ -563,7 +564,7 @@ class BaseSimpleQueueTest:
         N = 50
         q = self.q
         inputs = list(range(10000))
-        results = self.run_threads(N, N, q, inputs,
+        results = self.run_threads(N, q, inputs,
                                    self.feed, self.consume_nonblock)
 
         self.assertEqual(sorted(results), inputs)
@@ -573,7 +574,7 @@ class BaseSimpleQueueTest:
         N = 50
         q = self.q
         inputs = list(range(1000))
-        results = self.run_threads(N, N, q, inputs,
+        results = self.run_threads(N, q, inputs,
                                    self.feed, self.consume_timeout)
 
         self.assertEqual(sorted(results), inputs)
@@ -590,6 +591,7 @@ class BaseSimpleQueueTest:
             q.put(C())
         for i in range(N):
             wr = weakref.ref(q.get())
+            gc_collect()  # For PyPy or other GCs.
             self.assertIsNone(wr())
 
 
index 57da0e15a756b60cc050ec704302ebb7762f01a2..8dc62a933e872e73c378c5c3222f11a131182ca2 100644 (file)
@@ -438,6 +438,7 @@ class TestContext(unittest.TestCase):
         f()
 
     def test_3611(self):
+        import gc
         # A re-raised exception in a __del__ caused the __context__
         # to be cleared
         class C:
@@ -451,9 +452,11 @@ class TestContext(unittest.TestCase):
             x = C()
             try:
                 try:
-                    x.x
+                    f.x
                 except AttributeError:
+                    # make x.__del__ trigger
                     del x
+                    gc.collect()  # For PyPy or other GCs.
                     raise TypeError
             except Exception as e:
                 self.assertNotEqual(e.__context__, None)
index e8fb8d2f9cc603ac450b319b738849daf44b7c74..59dbef903800530e2b91f904a951174b249cda4d 100644 (file)
@@ -255,7 +255,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 d909e316b7fd65b346fda3b914b5faa82fcd5062..f2642c6ba181db9aab68065af75a3342df5c8d0a 100644 (file)
@@ -174,8 +174,5 @@ class ResourceTest(unittest.TestCase):
                          limits)
 
 
-def test_main(verbose=None):
-    support.run_unittest(ResourceTest)
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 801143f9b5f8100f9a5f5f34290e06d166b5670b..eda4e6a46df437a24f21ab96a88cb7c32c7faf7d 100644 (file)
@@ -24,7 +24,7 @@ import sys
 from urllib.error import URLError
 import urllib.request
 from test.support import os_helper
-from test.support import findfile, run_unittest
+from test.support import findfile
 from test.support.os_helper import FakePath, TESTFN
 
 
@@ -1506,22 +1506,5 @@ class CDATAHandlerTest(unittest.TestCase):
         self.assertEqual(self.char_index, 2)
 
 
-def test_main():
-    run_unittest(MakeParserTest,
-                 ParseTest,
-                 SaxutilsTest,
-                 PrepareInputSourceTest,
-                 StringXmlgenTest,
-                 BytesXmlgenTest,
-                 WriterXmlgenTest,
-                 StreamWriterXmlgenTest,
-                 StreamReaderWriterXmlgenTest,
-                 ExpatReaderTest,
-                 ErrorReportingTest,
-                 XmlReaderTest,
-                 LexicalHandlerTest,
-                 CDATAHandlerTest)
-
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 4239b26408ecdfd49ebee1e9f28c09bd6468edb1..59d59127982e3c9f6e60d882d30c52ea202033cb 100644 (file)
@@ -2,6 +2,7 @@ import unittest
 import weakref
 
 from test.support import check_syntax_error, cpython_only
+from test.support import gc_collect
 
 
 class ScopeTests(unittest.TestCase):
@@ -422,6 +423,7 @@ class ScopeTests(unittest.TestCase):
         for i in range(100):
             f1()
 
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(Foo.count, 0)
 
     def testClassAndGlobal(self):
@@ -754,6 +756,7 @@ class ScopeTests(unittest.TestCase):
         tester.dig()
         ref = weakref.ref(tester)
         del tester
+        gc_collect()  # For PyPy or other GCs.
         self.assertIsNone(ref())
 
 
index 851b1fc1b9e0c49f055215be10d759713033b24f..fe6b725a4bd05065eaf2386b16aa8ac68b14424f 100644 (file)
@@ -49,7 +49,7 @@ def find_ready_matching(ready, flag):
     return match
 
 
-class BaseSelectorTestCase(unittest.TestCase):
+class BaseSelectorTestCase:
 
     def make_socketpair(self):
         rd, wr = socketpair()
@@ -493,26 +493,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)
 
@@ -529,7 +531,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)
 
@@ -561,19 +564,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 b1fab0f6207f40d9746cac90cc0a67b60c6c7d54..29bb39df76c8a56929bae7960bd8e76b613cdf7f 100644 (file)
@@ -593,6 +593,7 @@ class TestSet(TestJointOps, unittest.TestCase):
         p = weakref.proxy(s)
         self.assertEqual(str(p), str(s))
         s = None
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertRaises(ReferenceError, str, p)
 
     def test_rich_compare(self):
index cfdd67c26c5f51fcc35659d83c5bef847f17c4d6..dcb5aefc3bae17868830ece63e18902b7444e403 100644 (file)
@@ -1,4 +1,6 @@
 import unittest
+import dbm
+import os
 import shelve
 import glob
 import pickle
@@ -43,12 +45,8 @@ class byteskeydict(MutableMapping):
 
 
 class TestCase(unittest.TestCase):
-
-    fn = "shelftemp.db"
-
-    def tearDown(self):
-        for f in glob.glob(self.fn+"*"):
-            os_helper.unlink(f)
+    dirname = os_helper.TESTFN
+    fn = os.path.join(os_helper.TESTFN, "shelftemp.db")
 
     def test_close(self):
         d1 = {}
@@ -65,29 +63,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(os_helper.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()
@@ -164,63 +157,52 @@ class TestCase(unittest.TestCase):
         with shelve.Shelf({}) as s:
             self.assertEqual(s._protocol, pickle.DEFAULT_PROTOCOL)
 
-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+"*"):
-                os_helper.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 = os_helper.TESTFN
+        os.mkdir(dirname)
+        self.addCleanup(os_helper.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 12af22fa3ca916d436d806f261ba4501f36145cd..5c15648b605c67d3abc4dd63caecfd69c0cc6da1 100755 (executable)
@@ -199,7 +199,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
@@ -326,9 +326,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
@@ -340,6 +338,7 @@ class ThreadableTest:
     def _setUp(self):
         self.wait_threads = threading_helper.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()
@@ -347,6 +346,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('.')
@@ -363,15 +367,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()
@@ -870,6 +866,7 @@ class GeneralModuleTests(unittest.TestCase):
             p = proxy(s)
             self.assertEqual(p.fileno(), s.fileno())
         s = None
+        support.gc_collect()  # For PyPy or other GCs.
         try:
             p.fileno()
         except ReferenceError:
@@ -4416,7 +4413,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.
@@ -6175,6 +6172,7 @@ class SendfileUsingSendTest(ThreadedTCPSocketTest):
     def testWithTimeoutTriggeredSend(self):
         conn = self.accept_conn()
         conn.recv(88192)
+        time.sleep(1)
 
     # errors
 
@@ -6494,13 +6492,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:
@@ -6514,8 +6505,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):
@@ -6603,84 +6595,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)
-    tests.append(TestMacOSTCPFlags)
-
+def setUpModule():
     thread_info = threading_helper.threading_setup()
-    support.run_unittest(*tests)
-    threading_helper.threading_cleanup(*thread_info)
+    unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
 
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index f4a84701c5d8b3d23c8efd6268b34503c1c98418..a485f7d4c3c0c185effa6148abe86dee5ca72d4a 100644 (file)
@@ -2343,6 +2343,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):
@@ -4869,7 +4870,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,
@@ -4900,20 +4901,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 = threading_helper.threading_setup()
-    try:
-        support.run_unittest(*tests)
-    finally:
-        threading_helper.threading_cleanup(*thread_info)
+    unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 436c420149489f03a2f7e5ae37eb8a7b7ddb5832..2853b1b2b2f4f65fcca594b762a6d86bd60e6e51 100644 (file)
@@ -1247,20 +1247,14 @@ class TestSum(NumericTestCase):
         # Override test for empty data.
         for data in ([], (), iter([])):
             self.assertEqual(self.func(data), (int, Fraction(0), 0))
-            self.assertEqual(self.func(data, 23), (int, Fraction(23), 0))
-            self.assertEqual(self.func(data, 2.3), (float, Fraction(2.3), 0))
 
     def test_ints(self):
         self.assertEqual(self.func([1, 5, 3, -4, -8, 20, 42, 1]),
                          (int, Fraction(60), 8))
-        self.assertEqual(self.func([4, 2, 3, -8, 7], 1000),
-                         (int, Fraction(1008), 5))
 
     def test_floats(self):
         self.assertEqual(self.func([0.25]*20),
                          (float, Fraction(5.0), 20))
-        self.assertEqual(self.func([0.125, 0.25, 0.5, 0.75], 1.5),
-                         (float, Fraction(3.125), 4))
 
     def test_fractions(self):
         self.assertEqual(self.func([Fraction(1, 1000)]*500),
@@ -1281,14 +1275,6 @@ class TestSum(NumericTestCase):
         data = [random.uniform(-100, 1000) for _ in range(1000)]
         self.assertApproxEqual(float(self.func(data)[1]), math.fsum(data), rel=2e-16)
 
-    def test_start_argument(self):
-        # Test that the optional start argument works correctly.
-        data = [random.uniform(1, 1000) for _ in range(100)]
-        t = self.func(data)[1]
-        self.assertEqual(t+42, self.func(data, 42)[1])
-        self.assertEqual(t-23, self.func(data, -23)[1])
-        self.assertEqual(t+Fraction(1e20), self.func(data, 1e20)[1])
-
     def test_strings_fail(self):
         # Sum of strings should fail.
         self.assertRaises(TypeError, self.func, [1, 2, 3], '999')
@@ -1911,10 +1897,13 @@ class TestMode(NumericTestCase, AverageMixin, UnivariateTypeMixin):
 
     def test_counter_data(self):
         # Test that a Counter is treated like any other iterable.
-        data = collections.Counter([1, 1, 1, 2])
-        # Since the keys of the counter are treated as data points, not the
-        # counts, this should return the first mode encountered, 1
-        self.assertEqual(self.func(data), 1)
+        # We're making sure mode() first calls iter() on its input.
+        # The concern is that a Counter of a Counter returns the original
+        # unchanged rather than counting its keys.
+        c = collections.Counter(a=1, b=2)
+        # If iter() is called, mode(c) loops over the keys, ['a', 'b'],
+        # all the counts will be 1, and the first encountered mode is 'a'.
+        self.assertEqual(self.func(c), 'a')
 
 
 class TestMultiMode(unittest.TestCase):
@@ -2077,6 +2066,13 @@ class TestPVariance(VarianceStdevMixin, NumericTestCase, UnivariateTypeMixin):
         self.assertEqual(result, exact)
         self.assertIsInstance(result, Decimal)
 
+    def test_accuracy_bug_20499(self):
+        data = [0, 0, 1]
+        exact = 2 / 9
+        result = self.func(data)
+        self.assertEqual(result, exact)
+        self.assertIsInstance(result, float)
+
 
 class TestVariance(VarianceStdevMixin, NumericTestCase, UnivariateTypeMixin):
     # Tests for sample variance.
@@ -2117,6 +2113,13 @@ class TestVariance(VarianceStdevMixin, NumericTestCase, UnivariateTypeMixin):
         self.assertEqual(self.func(data), 0.5)
         self.assertEqual(self.func(data, xbar=2.0), 1.0)
 
+    def test_accuracy_bug_20499(self):
+        data = [0, 0, 2]
+        exact = 4 / 3
+        result = self.func(data)
+        self.assertEqual(result, exact)
+        self.assertIsInstance(result, float)
+
 class TestPStdev(VarianceStdevMixin, NumericTestCase):
     # Tests for population standard deviation.
     def setUp(self):
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 f0f0e6f6069da7f9ac2f8bb4f2dffda758d9f938..7bb049296912b9b6f477fb4a57ed2ae37571b0fe 100644 (file)
@@ -3022,6 +3022,7 @@ class POSIXProcessTestCase(BaseTestCase):
         pid = p.pid
         with warnings_helper.check_warnings(('', ResourceWarning)):
             p = None
+            support.gc_collect()  # For PyPy or other GCs.
 
         os.kill(pid, signal.SIGKILL)
         if mswindows:
index 11ca0c2fb2d2f347ad8528eeb8a9ec1072f2d493..79290986c494d500af1a86d8ad57efbd1b7cbb2b 100644 (file)
@@ -709,9 +709,5 @@ class TestSupport(unittest.TestCase):
     # SuppressCrashReport
 
 
-def test_main():
-    tests = [TestSupport]
-    support.run_unittest(*tests)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 45b2785f348314d6066f464e72f075682982d849..8f961c6bfdbba7352f77c029f6f708c4891aebd4 100644 (file)
@@ -524,9 +524,15 @@ SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
 >>> f((x)=2)
 Traceback (most recent call last):
 SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
->>> f(True=2)
+>>> f(True=1)
 Traceback (most recent call last):
-SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
+SyntaxError: cannot assign to True
+>>> f(False=1)
+Traceback (most recent call last):
+SyntaxError: cannot assign to False
+>>> f(None=1)
+Traceback (most recent call last):
+SyntaxError: cannot assign to None
 >>> f(__debug__=1)
 Traceback (most recent call last):
 SyntaxError: cannot assign to __debug__
@@ -1487,7 +1493,13 @@ def func2():
     def test_invalid_line_continuation_error_position(self):
         self._check_error(r"a = 3 \ 4",
                           "unexpected character after line continuation character",
-                          lineno=1, offset=9)
+                          lineno=1, offset=8)
+        self._check_error('1,\\#\n2',
+                          "unexpected character after line continuation character",
+                          lineno=1, offset=4)
+        self._check_error('\nfgdfgf\n1,\\#\n2\n',
+                          "unexpected character after line continuation character",
+                          lineno=3, offset=4)
 
     def test_invalid_line_continuation_left_recursive(self):
         # Check bpo-42218: SyntaxErrors following left-recursive rules
index 1fd5247a91bb51e5d5a6f463a81279907b938195..35da72c432b0aff69a4246e499c2cae926a86984 100644 (file)
@@ -379,7 +379,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)
@@ -446,7 +446,7 @@ class SysModuleTest(unittest.TestCase):
         self.assertEqual((None, None, None), d.pop(main_id))
 
         # 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.
         exc_type, exc_value, exc_tb = d.pop(thread_id)
         stack = traceback.extract_stack(exc_tb.tb_frame)
@@ -1069,6 +1069,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 cfdda24a269f560cd9614e5009e556bbf55fef7b..e4b5c52bf1eaf4ae8039d3369c76574c46a49c58 100644 (file)
@@ -19,6 +19,10 @@ try:
     import gzip
 except ImportError:
     gzip = None
+try:
+    import zlib
+except ImportError:
+    zlib = None
 try:
     import bz2
 except ImportError:
@@ -687,6 +691,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 6e5ef097c888f967b60b38fce40ac5404b5c5892..30f043172478fba9332541ebdff0672a1eb1a1ef 100644 (file)
@@ -804,8 +804,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 3a3f6a999ce0af132c8b7103b95dbd7d41d3817e..2b0ec46a1032761bb84412868351735fdd8897f3 100644 (file)
@@ -62,6 +62,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.
 
@@ -430,6 +449,7 @@ class TestMkstempInner(TestBadTempdir, BaseTestCase):
             self.do_create(dir=dir).write(b"blat")
             self.do_create(dir=pathlib.Path(dir)).write(b"blat")
         finally:
+            support.gc_collect()  # For PyPy or other GCs.
             os.rmdir(dir)
 
     def test_file_mode(self):
@@ -880,6 +900,8 @@ class TestMktemp(BaseTestCase):
         extant = list(range(TEST_FILES))
         for i in extant:
             extant[i] = self.do_create(pre="aa")
+        del extant
+        support.gc_collect()  # For PyPy or other GCs.
 
 ##     def test_warning(self):
 ##         # mktemp issues a warning when used
@@ -1432,7 +1454,7 @@ class TestTemporaryDirectory(BaseTestCase):
             self.assertEqual(
                 temp_path.exists(),
                 sys.platform.startswith("win"),
-                f"TemporaryDirectory {temp_path!s} existance state unexpected")
+                f"TemporaryDirectory {temp_path!s} existence state unexpected")
             temp_dir.cleanup()
             self.assertFalse(
                 temp_path.exists(),
@@ -1491,7 +1513,7 @@ class TestTemporaryDirectory(BaseTestCase):
             self.assertEqual(
                 temp_path.exists(),
                 sys.platform.startswith("win"),
-                f"TemporaryDirectory {temp_path!s} existance state unexpected")
+                f"TemporaryDirectory {temp_path!s} existence state unexpected")
 
     def test_del_on_shutdown(self):
         # A TemporaryDirectory may be cleaned up during shutdown
@@ -1556,7 +1578,7 @@ class TestTemporaryDirectory(BaseTestCase):
             self.assertEqual(
                 temp_path.exists(),
                 sys.platform.startswith("win"),
-                f"TemporaryDirectory {temp_path!s} existance state unexpected")
+                f"TemporaryDirectory {temp_path!s} existence state unexpected")
             err = err.decode('utf-8', 'backslashreplace')
             self.assertNotIn("Exception", err)
             self.assertNotIn("Error", err)
index 62b57fa3388376bf618f0adabd1791c3b1e30e36..4ae8a833b990d78f4acb5f18df440e42b6a6f596 100644 (file)
@@ -132,6 +132,7 @@ class ThreadRunningTests(BasicThreadTest):
             del task
             while not done:
                 time.sleep(POLL_SLEEP)
+                support.gc_collect()  # For PyPy or other GCs.
             self.assertEqual(thread._count(), orig)
 
     def test_unraisable_exception(self):
index c51de6f4b85537f998565c764a36b532c8438e23..c54806e5946b68f423a7f910b08ce470b608bbfb 100644 (file)
@@ -928,6 +928,39 @@ class ThreadTests(BaseTestCase):
                b'is deprecated and will be removed in Python 3.12')
         self.assertIn(msg, err)
 
+    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 9862094eaccd810a42fb3f8e933afd7e6681ca0e..13facb513367a42a12ada3e0458a109a239afe39 100644 (file)
@@ -37,7 +37,7 @@ class BaseLocalTest:
             t.join()
         del t
 
-        gc.collect()
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(weaklist), n)
 
         # XXX _threading_local keeps the local of the last stopped thread alive.
@@ -46,7 +46,7 @@ class BaseLocalTest:
 
         # Assignment to the same thread local frees it sometimes (!)
         local.someothervar = None
-        gc.collect()
+        support.gc_collect()  # For PyPy or other GCs.
         deadlist = [weak for weak in weaklist if weak() is None]
         self.assertIn(len(deadlist), (n-1, n), (n, len(deadlist)))
 
@@ -89,7 +89,7 @@ class BaseLocalTest:
             # 2) GC the cycle (triggers threadmodule.c::local_clear
             # before local_dealloc)
             del cycle
-            gc.collect()
+            support.gc_collect()  # For PyPy or other GCs.
             e1.set()
             e2.wait()
 
@@ -190,7 +190,7 @@ class BaseLocalTest:
         x.local.x = x
         wr = weakref.ref(x)
         del x
-        gc.collect()
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertIsNone(wr())
 
 
index 15e8078e936623bb80210f980cc54a0f37d449d5..bac82b8a4451137930b19bd296cfde202c2b87b0 100644 (file)
@@ -4,7 +4,6 @@ import unittest
 import signal
 import os
 import sys
-from test import support
 from test.support import threading_helper
 import _thread as thread
 import time
@@ -231,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 },
@@ -239,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 db929bd881778ccf53bb1bff6e08f76a70e20417..875615ad5100710800e440ae9dd2f73dc05c0d1f 100644 (file)
@@ -436,8 +436,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 823d5c3e1767e4f7505c045dbef8fd307f5022aa..70a0175d77104c9820f30d1961f3aaa8e7b0d069 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 59842a5e25e3660c24505ea5c1c230238bc74b29..69cc2322cd9aa8732277864ac94f2bf561b0da6e 100644 (file)
@@ -6,11 +6,9 @@ import_helper.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 c25628bc4963723e4fc04874ef9d1cce3d24f73d..18cd4aba24af260fc6a10398de4fabb388e9e084 100644 (file)
@@ -51,6 +51,9 @@ class TracebackCases(unittest.TestCase):
     def syntax_error_bad_indentation2(self):
         compile(" print(2)", "?", "exec")
 
+    def tokenizer_error_with_caret_range(self):
+        compile("blech  (  ", "?", "exec")
+
     def test_caret(self):
         err = self.get_exception_format(self.syntax_error_with_caret,
                                         SyntaxError)
@@ -81,6 +84,13 @@ class TracebackCases(unittest.TestCase):
         self.assertEqual(err[1].find("y"), err[2].find("^"))  # in the right place
         self.assertEqual(err[2].count("^"), len("y for y in range(30)"))
 
+        err = self.get_exception_format(self.tokenizer_error_with_caret_range,
+                                        SyntaxError)
+        self.assertIn("^", err[2]) # third line has caret
+        self.assertEqual(err[2].count('\n'), 1)   # and no additional newline
+        self.assertEqual(err[1].find("("), err[2].find("^"))  # in the right place
+        self.assertEqual(err[2].count("^"), 1)
+
     def test_nocaret(self):
         exc = SyntaxError("error", ("x.py", 23, None, "bad syntax"))
         err = traceback.format_exception_only(SyntaxError, exc)
@@ -775,6 +785,17 @@ class BaseExceptionReportingTests:
         err = self.get_report(Exception(''))
         self.assertIn('Exception\n', err)
 
+    def test_exception_modulename_not_unicode(self):
+        class X(Exception):
+            def __str__(self):
+                return "I am X"
+
+        X.__module__ = 42
+
+        err = self.get_report(X())
+        exp = f'<unknown>.{X.__qualname__}: I am X\n'
+        self.assertEqual(exp, err)
+
     def test_syntax_error_various_offsets(self):
         for offset in range(-5, 10):
             for add in [0, 2]:
@@ -794,6 +815,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 556656747bbcbe42eb4f597e41bec2c92d9d2464..82be98dfd8f5ac6765d703b4a1a0dc08b4f3c6dd 100644 (file)
@@ -1082,15 +1082,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 abb26433652f1783de04a2fe267217ae0fc2f10b..8f59839d066e682d58312ed418a03db87e457a5e 100644 (file)
@@ -11,25 +11,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 013b0e9ee21da4b92cbaa3a21882f179420b1111..96dc179a69ecaca79e720f0b3809768eef4ee31b 100644 (file)
-from test import support
 from test.support import import_helper
 
-
 # Skip this test if _tkinter does not exist.
 import_helper.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 b1218abc8af5ecc5a580817e3db6488e304ace04..3dfda5cb9566369a666a82445ed88e002b491a59 100644 (file)
@@ -1236,6 +1236,17 @@ class ClassCreationTests(unittest.TestCase):
         self.assertEqual(D.__orig_bases__, (c,))
         self.assertEqual(D.__mro__, (D, A, object))
 
+    def test_new_class_with_mro_entry_genericalias(self):
+        L1 = types.new_class('L1', (typing.List[int],), {})
+        self.assertEqual(L1.__bases__, (list, typing.Generic))
+        self.assertEqual(L1.__orig_bases__, (typing.List[int],))
+        self.assertEqual(L1.__mro__, (L1, list, typing.Generic, object))
+
+        L2 = types.new_class('L2', (list[int],), {})
+        self.assertEqual(L2.__bases__, (list,))
+        self.assertEqual(L2.__orig_bases__, (list[int],))
+        self.assertEqual(L2.__mro__, (L2, list, object))
+
     def test_new_class_with_mro_entry_none(self):
         class A: pass
         class B: pass
@@ -1351,6 +1362,11 @@ class ClassCreationTests(unittest.TestCase):
         for bases in [x, y, z, t]:
             self.assertIs(types.resolve_bases(bases), bases)
 
+    def test_resolve_bases_with_mro_entry(self):
+        self.assertEqual(types.resolve_bases((typing.List[int],)),
+                         (list, typing.Generic))
+        self.assertEqual(types.resolve_bases((list[int],)), (list,))
+
     def test_metaclass_derivation(self):
         # issue1294232: correct metaclass calculation
         new_calls = []  # to check the order of __new__ calls
index c84ff0f0a24ac05d6d9bce8c3deb4a7c5a27fb14..fdec29ea58773b9fdff288440f0644884c557153 100644 (file)
@@ -708,6 +708,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])
@@ -2969,7 +2971,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:
@@ -3333,6 +3335,22 @@ class GetUtilitiesTestCase(TestCase):
                          (Concatenate[int, P], int))
         self.assertEqual(get_args(list | str), (list, 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):
 
@@ -4065,6 +4083,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__()
@@ -4888,6 +4919,8 @@ class SpecialAttrsTests(BaseTestCase):
             typing.Concatenate[Any, SpecialAttrsP]: 'Concatenate',
             typing.Final[Any]: 'Final',
             typing.Literal[Any]: 'Literal',
+            typing.Literal[1, 2]: 'Literal',
+            typing.Literal[True, 2]: 'Literal',
             typing.Optional[Any]: 'Optional',
             typing.TypeGuard[Any]: 'TypeGuard',
             typing.Union[Any]: 'Any',
index e3979491879838d8ca701a1fc1c93a91a788349d..80c22c6cdd1dad7fa15af3ed67ae2682f4850a58 100644 (file)
@@ -6,7 +6,6 @@ import sys
 import unicodedata
 
 import unittest
-from test.support import run_unittest
 from test.support.os_helper import (rmtree, change_cwd, TESTFN_UNICODE,
     TESTFN_UNENCODABLE, create_empty_file)
 
@@ -136,8 +135,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 7ef11aac9f8ef62bd735583b4709d1f142b82c70..54916dec4eafa3b78c750c5209ebf70776db647b 100644 (file)
@@ -5,7 +5,6 @@ import sys
 import unittest
 import warnings
 from unicodedata import normalize
-from test import support
 from test.support import os_helper
 
 
@@ -185,15 +184,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 9f67b49f3a6b2b35cec0c9335593a72671b9c3ad..33e1149bfd360f0522ba0a00c7a900e35f1eae8f 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 ebb43c30b4d5052bb95161208156330425333ef5..36fb05d3db0e2a884a8457a5dece468e69cb5ad9 100644 (file)
@@ -661,17 +661,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 = threading_helper.threading_setup()
-
-def tearDownModule():
-    if threads_key:
-        threading_helper.threading_cleanup(*threads_key)
+    thread_info = threading_helper.threading_setup()
+    unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
+
 
 if __name__ == "__main__":
     unittest.main()
index 098ba17af59758e2b090a2fe3fb360c1051dc9e2..94d626598bac38e8e6bed7d838208f81a0c7e5b7 100644 (file)
@@ -150,14 +150,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 1a5314ccff315a4d216658fdd80cab1eb0d57392..096833d1ebb355b7a6193d15bd88e0dab0a0e9b0 100644 (file)
@@ -12,6 +12,7 @@ import random
 
 from test import support
 from test.support import script_helper, ALWAYS_EQ
+from test.support import gc_collect
 
 # Used in ReferencesTestCase.test_ref_created_during_del() .
 ref_from_del = None
@@ -135,6 +136,7 @@ class ReferencesTestCase(TestBase):
         ref1 = weakref.ref(o, self.callback)
         ref2 = weakref.ref(o, self.callback)
         del o
+        gc_collect()  # For PyPy or other GCs.
         self.assertIsNone(ref1(), "expected reference to be invalidated")
         self.assertIsNone(ref2(), "expected reference to be invalidated")
         self.assertEqual(self.cbcalled, 2,
@@ -168,13 +170,16 @@ class ReferencesTestCase(TestBase):
         ref1 = weakref.proxy(o, self.callback)
         ref2 = weakref.proxy(o, self.callback)
         del o
+        gc_collect()  # For PyPy or other GCs.
 
         def check(proxy):
             proxy.bar
 
         self.assertRaises(ReferenceError, check, ref1)
         self.assertRaises(ReferenceError, check, ref2)
-        self.assertRaises(ReferenceError, bool, weakref.proxy(C()))
+        ref3 = weakref.proxy(C())
+        gc_collect()  # For PyPy or other GCs.
+        self.assertRaises(ReferenceError, bool, ref3)
         self.assertEqual(self.cbcalled, 2)
 
     def check_basic_ref(self, factory):
@@ -191,6 +196,7 @@ class ReferencesTestCase(TestBase):
         o = factory()
         ref = weakref.ref(o, self.callback)
         del o
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(self.cbcalled, 1,
                      "callback did not properly set 'cbcalled'")
         self.assertIsNone(ref(),
@@ -215,6 +221,7 @@ class ReferencesTestCase(TestBase):
         self.assertEqual(weakref.getweakrefcount(o), 2,
                      "wrong weak ref count for object")
         del proxy
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(weakref.getweakrefcount(o), 1,
                      "wrong weak ref count for object after deleting proxy")
 
@@ -480,6 +487,7 @@ class ReferencesTestCase(TestBase):
                      "got wrong number of weak reference objects")
 
         del ref1, ref2, proxy1, proxy2
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(weakref.getweakrefcount(o), 0,
                      "weak reference objects not unlinked from"
                      " referent when discarded.")
@@ -493,6 +501,7 @@ class ReferencesTestCase(TestBase):
         ref1 = weakref.ref(o, self.callback)
         ref2 = weakref.ref(o, self.callback)
         del ref1
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(weakref.getweakrefs(o), [ref2],
                      "list of refs does not match")
 
@@ -500,10 +509,12 @@ class ReferencesTestCase(TestBase):
         ref1 = weakref.ref(o, self.callback)
         ref2 = weakref.ref(o, self.callback)
         del ref2
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(weakref.getweakrefs(o), [ref1],
                      "list of refs does not match")
 
         del ref1
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(weakref.getweakrefs(o), [],
                      "list of refs not cleared")
 
@@ -989,6 +1000,7 @@ class SubclassableWeakrefTestCase(TestBase):
         self.assertTrue(mr.called)
         self.assertEqual(mr.value, 24)
         del o
+        gc_collect()  # For PyPy or other GCs.
         self.assertIsNone(mr())
         self.assertTrue(mr.called)
 
@@ -1291,15 +1303,18 @@ class MappingTestCase(TestBase):
         del items1, items2
         self.assertEqual(len(dict), self.COUNT)
         del objects[0]
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(dict), self.COUNT - 1,
                      "deleting object did not cause dictionary update")
         del objects, o
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(dict), 0,
                      "deleting the values did not clear the dictionary")
         # regression on SF bug #447152:
         dict = weakref.WeakValueDictionary()
         self.assertRaises(KeyError, dict.__getitem__, 1)
         dict[2] = C()
+        gc_collect()  # For PyPy or other GCs.
         self.assertRaises(KeyError, dict.__getitem__, 2)
 
     def test_weak_keys(self):
@@ -1320,9 +1335,11 @@ class MappingTestCase(TestBase):
         del items1, items2
         self.assertEqual(len(dict), self.COUNT)
         del objects[0]
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(dict), (self.COUNT - 1),
                      "deleting object did not cause dictionary update")
         del objects, o
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(dict), 0,
                      "deleting the keys did not clear the dictionary")
         o = Object(42)
@@ -1455,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
@@ -1821,6 +1838,7 @@ class MappingTestCase(TestBase):
         for o in objs:
             count += 1
             del d[o]
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(d), 0)
         self.assertEqual(count, 2)
 
@@ -2129,6 +2147,7 @@ class FinalizeTestCase(unittest.TestCase):
 
 libreftest = """ Doctest for examples in the library reference: weakref.rst
 
+>>> from test.support import gc_collect
 >>> import weakref
 >>> class Dict(dict):
 ...     pass
@@ -2148,6 +2167,7 @@ True
 >>> o is o2
 True
 >>> del o, o2
+>>> gc_collect()  # For PyPy or other GCs.
 >>> print(r())
 None
 
@@ -2200,6 +2220,7 @@ True
 >>> id2obj(a_id) is a
 True
 >>> del a
+>>> gc_collect()  # For PyPy or other GCs.
 >>> try:
 ...     id2obj(a_id)
 ... except KeyError:
index 49a9b5c3c658a89afb1dc490ea61c147d197ccbc..9b31d5fce3472f693350278ea64aaeee2af8a5d7 100644 (file)
@@ -5,6 +5,7 @@ from collections import UserString as ustr
 from collections.abc import Set, MutableSet
 import gc
 import contextlib
+from test import support
 
 
 class Foo:
@@ -48,6 +49,7 @@ class TestWeakSet(unittest.TestCase):
         self.assertEqual(len(self.s), len(self.d))
         self.assertEqual(len(self.fs), 1)
         del self.obj
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertEqual(len(self.fs), 0)
 
     def test_contains(self):
@@ -57,6 +59,7 @@ class TestWeakSet(unittest.TestCase):
         self.assertNotIn(1, self.s)
         self.assertIn(self.obj, self.fs)
         del self.obj
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertNotIn(ustr('F'), self.fs)
 
     def test_union(self):
@@ -215,6 +218,7 @@ class TestWeakSet(unittest.TestCase):
         self.assertEqual(self.s, dup)
         self.assertRaises(TypeError, self.s.add, [])
         self.fs.add(Foo())
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertTrue(len(self.fs) == 1)
         self.fs.add(self.obj)
         self.assertTrue(len(self.fs) == 1)
@@ -406,6 +410,7 @@ class TestWeakSet(unittest.TestCase):
         n1 = len(s)
         del it
         gc.collect()
+        gc.collect()  # For PyPy or other GCs.
         n2 = len(s)
         # one item may be kept alive inside the iterator
         self.assertIn(n1, (0, 1))
index 1807e47c66c387afe72681e746d467d78324e174..70a85552cc03b01ab37bce4defa964e7ceb7ee5a 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 e7aa615e7f45b4b9aac8718f48647b2c7a2f0b70..8157c2da6efaa640d4bd73ee995ed1d36b98a2e8 100644 (file)
@@ -3,7 +3,6 @@
 
 import os, sys, errno
 import unittest
-from test import support
 from test.support import import_helper
 import threading
 from platform import machine, win32_edition
@@ -490,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 93ca6b99a92c9c014f631cbc903afa3da1f103c9..42094f467731d461ba771022f576857c49715c03 100644 (file)
@@ -580,7 +580,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 553529a30017027336b9202f30bacffc06cfe954..285559a872a65fbcac886f4aa0f1c3b4bf871ee2 100644 (file)
@@ -26,7 +26,7 @@ from itertools import product, islice
 from test import support
 from test.support import os_helper
 from test.support import warnings_helper
-from test.support import findfile, gc_collect, swap_attr
+from test.support import findfile, gc_collect, swap_attr, swap_item
 from test.support.import_helper import import_fresh_module
 from test.support.os_helper import TESTFN
 
@@ -167,12 +167,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")])
@@ -180,8 +179,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):
@@ -2480,6 +2477,7 @@ class BasicElementTest(ElementTestCase, unittest.TestCase):
         wref = weakref.ref(e, wref_cb)
         self.assertEqual(wref().tag, 'e')
         del e
+        gc_collect()  # For PyPy or other GCs.
         self.assertEqual(flag, True)
         self.assertEqual(wref(), None)
 
@@ -3333,7 +3331,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 e68613bb910dd41b1f1aee0ef27fd1ac696dfc45..bec8208571902e7be60e0e930e452536b4b3d4b4 100644 (file)
@@ -169,6 +169,18 @@ class MiscTests(unittest.TestCase):
         del parser
         support.gc_collect()
 
+    def test_dict_disappearing_during_get_item(self):
+        # test fix for seg fault reported in issue 27946
+        class X:
+            def __hash__(self):
+                e.attrib = {} # this frees e->extra->attrib
+                [{i: i} for i in range(1000)] # exhaust the dict keys cache
+                return 13
+
+        e = cET.Element("elem", {1: 2})
+        r = e.get(X())
+        self.assertIsNone(r)
+
 
 @unittest.skipUnless(cET, 'requires _elementtree')
 class TestAliasWorking(unittest.TestCase):
index a9f67466071bc677fb64e488602082105c933319..1f06f5fdf483e9d2722cb0e523eb23076a4b33c0 100644 (file)
@@ -561,7 +561,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?
@@ -1504,16 +1504,10 @@ class UseBuiltinTypesTestCase(unittest.TestCase):
         self.assertTrue(server.use_builtin_types)
 
 
-@threading_helper.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 = threading_helper.threading_setup()
+    unittest.addModuleCleanup(threading_helper.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 f6f5ca4adce450ac542ca51532f3bd543c732f85..19d3a880f4cd7b4630d11a23bbfc09c239d5c100 100644 (file)
@@ -547,8 +547,9 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase):
         # Check that the cached data is removed if the file is deleted
         os.remove(TEMP_ZIP)
         zi.invalidate_caches()
-        self.assertIsNone(zi._files)
+        self.assertFalse(zi._files)
         self.assertIsNone(zipimport._zip_directory_cache.get(zi.archive))
+        self.assertIsNone(zi.find_spec("name_does_not_matter"))
 
     def testZipImporterMethodsInSubDirectory(self):
         packdir = TESTPACK + os.sep
@@ -855,15 +856,9 @@ class BadFileZipImportTestCase(unittest.TestCase):
             zipimport._zip_directory_cache.clear()
 
 
-def test_main():
-    try:
-        support.run_unittest(
-              UncompressedZipImportTestCase,
-              CompressedZipImportTestCase,
-              BadFileZipImportTestCase,
-            )
-    finally:
-        os_helper.unlink(TESTMOD)
+def tearDownModule():
+    os_helper.unlink(TESTMOD)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index a9375fd55857bc117c77e2b5dba256fe73c95b6b..59b35ef63f9871beee3d94301bbce15b2130f90c 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 766011fa0312b34e01c534c89de9defd62ed56c6..2d8974291360d1c336a72a9768a1d7d86f340dff 100644 (file)
@@ -634,7 +634,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):
@@ -1100,11 +1100,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):
@@ -1510,20 +1523,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:
@@ -1534,7 +1556,7 @@ def _shutdown():
             break
 
         for lock in locks:
-            # mimick Thread.join()
+            # mimic Thread.join()
             lock.acquire()
             lock.release()
 
index 552fc54a4934d49b81f28f28b8132ea86360491e..fa88448a2c071d8c4332e98246bf61539b8cfe8c 100644 (file)
@@ -2736,7 +2736,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):
@@ -3331,7 +3331,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):
@@ -3356,7 +3356,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 41da86c2adef49f259fd8d8ee394949fd8751ff2..488162ff0dd966ff64466f43c0cb6b8982a1812b 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, AbstractTkTest
 from tkinter import colorchooser
 from tkinter.colorchooser import askcolor
@@ -64,7 +64,5 @@ class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
             self.assertRaises(RuntimeError, askcolor)
 
 
-tests_gui = (ChooserTest, DefaultRootTest,)
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
index 91f99741171972cf7d3aa1cc846b0946ae20632a..058c53a9023647f241e470a2485d1e61f810d567 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')
@@ -159,7 +159,5 @@ class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
         self.assertRaises(RuntimeError, font.nametofont, fontname)
 
 
-tests_gui = (FontTest, DefaultRootTest)
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
index 2526e92200d9029b1d08329fd4886191da8e4e81..cc69ccac62d7421511d578725cd2e20e3a5a4010 100644 (file)
@@ -78,6 +78,7 @@ class BitmapImageTest(AbstractTkTest, unittest.TestCase):
         self.assertEqual(image.height(), 16)
         self.assertIn('::img::test', self.root.image_names())
         del image
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertNotIn('::img::test', self.root.image_names())
 
     def test_create_from_data(self):
@@ -92,6 +93,7 @@ class BitmapImageTest(AbstractTkTest, unittest.TestCase):
         self.assertEqual(image.height(), 16)
         self.assertIn('::img::test', self.root.image_names())
         del image
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertNotIn('::img::test', self.root.image_names())
 
     def assertEqualStrList(self, actual, expected):
@@ -172,6 +174,7 @@ class PhotoImageTest(AbstractTkTest, unittest.TestCase):
         self.assertEqual(image['file'], testfile)
         self.assertIn('::img::test', self.root.image_names())
         del image
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertNotIn('::img::test', self.root.image_names())
 
     def check_create_from_data(self, ext):
@@ -189,6 +192,7 @@ class PhotoImageTest(AbstractTkTest, unittest.TestCase):
         self.assertEqual(image['file'], '')
         self.assertIn('::img::test', self.root.image_names())
         del image
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertNotIn('::img::test', self.root.image_names())
 
     def test_create_from_ppm_file(self):
@@ -372,7 +376,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 760ba721340829ec24bf17a43b83e2eafe81b44a..61b0eda2fc750aed9ed39a2dceb09b83eb927b42 100644 (file)
@@ -41,7 +41,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 0dec08e9041a0ebaaf003db92ef860d29a28bf27..d38541a5a45e7658a63aaa192568914b110c54ac 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.commondialog import Dialog
 from tkinter.messagebox import showinfo
@@ -32,7 +32,5 @@ class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
             self.assertRaises(RuntimeError, showinfo, "Spam", "Egg Information")
 
 
-tests_gui = (DefaultRootTest,)
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
index 7e78433a7c9acf8b52257a9d0df9fe0439247005..b9201f1070940bd24861b1290c3243e0c95fa25a 100644 (file)
@@ -346,7 +346,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 b64b854c4db7efb601fb0b571f0bbc2cf077e5a9..18cd2712b0c5ed19f38958eb5d46561edaf4b0ed 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
 
@@ -31,7 +31,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 6aebe8d16d556b66ca243ddf3e9464572a46c742..427e168454362cfb6f91704b3466f07a510ed671 100644 (file)
@@ -1,4 +1,6 @@
 import unittest
+from test import support
+
 import gc
 import tkinter
 from tkinter import (Variable, StringVar, IntVar, DoubleVar, BooleanVar, Tcl,
@@ -46,6 +48,7 @@ class TestVariable(TestBase):
         v = Variable(self.root, "sample string", "varname")
         self.assertTrue(self.info_exists("varname"))
         del v
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertFalse(self.info_exists("varname"))
 
     def test_dont_unset_not_existing(self):
@@ -53,9 +56,11 @@ class TestVariable(TestBase):
         v1 = Variable(self.root, name="name")
         v2 = Variable(self.root, name="name")
         del v1
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertFalse(self.info_exists("name"))
         # shouldn't raise exception
         del v2
+        support.gc_collect()  # For PyPy or other GCs.
         self.assertFalse(self.info_exists("name"))
 
     def test_equality(self):
@@ -333,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 1a70e0befe6234b519989849b18620dbec19df6e..1220c4831c52f4a34cb1052476bf15dd95820334 100644 (file)
@@ -2,7 +2,7 @@ import sys
 import unittest
 import tkinter
 from tkinter import ttk
-from test.support import requires, run_unittest
+from test.support import requires, gc_collect
 from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest
 
 requires('gui')
@@ -18,6 +18,7 @@ class LabeledScaleTest(AbstractTkTest, unittest.TestCase):
         x = ttk.LabeledScale(self.root)
         var = x._variable._name
         x.destroy()
+        gc_collect()  # For PyPy or other GCs.
         self.assertRaises(tkinter.TclError, x.tk.globalgetvar, var)
 
         # manually created variable
@@ -30,6 +31,7 @@ class LabeledScaleTest(AbstractTkTest, unittest.TestCase):
         else:
             self.assertEqual(float(x.tk.globalgetvar(name)), myvar.get())
         del myvar
+        gc_collect()  # For PyPy or other GCs.
         self.assertRaises(tkinter.TclError, x.tk.globalgetvar, name)
 
         # checking that the tracing callback is properly removed
@@ -171,6 +173,7 @@ class LabeledScaleTest(AbstractTkTest, unittest.TestCase):
     def test_resize(self):
         x = ttk.LabeledScale(self.root)
         x.pack(expand=True, fill='both')
+        gc_collect()  # For PyPy or other GCs.
         x.update()
 
         width, height = x.master.winfo_width(), x.master.winfo_height()
@@ -206,6 +209,7 @@ class OptionMenuTest(AbstractTkTest, unittest.TestCase):
         optmenu.destroy()
         self.assertEqual(optmenu.tk.globalgetvar(name), var.get())
         del var
+        gc_collect()  # For PyPy or other GCs.
         self.assertRaises(tkinter.TclError, optmenu.tk.globalgetvar, name)
 
 
@@ -251,6 +255,7 @@ class OptionMenuTest(AbstractTkTest, unittest.TestCase):
 
         # check that variable is updated correctly
         optmenu.pack()
+        gc_collect()  # For PyPy or other GCs.
         optmenu['menu'].invoke(0)
         self.assertEqual(optmenu._variable.get(), items[0])
 
@@ -296,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):
+            success.append(textvar.get())
+        optmenu = ttk.OptionMenu(self.root, textvar, "a", *items)
+        optmenu.pack()
+        cb_name = textvar.trace_add("write", cb_test)
+        optmenu['menu'].invoke(1)
+        self.assertEqual(success, ['b'])
+        self.assertEqual(textvar.get(), 'b')
+        textvar.trace_remove("write", cb_name)
+        optmenu.destroy()
+
 
 class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
 
@@ -303,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 1fac83a004a6d0e441c289dcec070120237bb5dd..1cb7e74c66ec748f3eb5f965ae947e3c902b3bc5 100644 (file)
@@ -1,10 +1,10 @@
 import unittest
 import tkinter
 from tkinter import ttk, TclError
-from test.support import requires
+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
@@ -839,6 +826,7 @@ class ScaleTest(AbstractWidgetTest, unittest.TestCase):
         self.assertEqual(conv(self.scale.get()), var.get())
         self.assertEqual(conv(self.scale.get()), max + 5)
         del var
+        gc_collect()  # For PyPy or other GCs.
 
         # the same happens with the value option
         self.scale['value'] = max + 10
@@ -948,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')
@@ -967,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)
@@ -977,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')
@@ -993,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)
@@ -1003,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()
@@ -1036,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()
@@ -1056,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')
@@ -1070,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)
 
@@ -1079,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>')
@@ -1099,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):
@@ -1118,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()
@@ -1366,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(), ())
@@ -1394,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)
@@ -1420,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')
 
@@ -1444,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')
@@ -1486,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)
@@ -1497,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(), '')
@@ -1512,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)
@@ -1564,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')
@@ -1595,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')
@@ -1672,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
@@ -1743,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'])
@@ -1776,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'])
@@ -1809,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 b854235a62679354cde7529ffd398ae1d5562008..acdd565ec48a92cf2395ba759195f6caaf58f6b9 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 c7947f118beaadc94a1a265c9ad1d10bbcd01816..d6a010f4157582b6f583b30e868fc60e016bd76a 100644 (file)
@@ -604,6 +604,8 @@ class TracebackException:
         stype = self.exc_type.__qualname__
         smod = self.exc_type.__module__
         if smod not in ("__main__", "builtins"):
+            if not isinstance(smod, str):
+                smod = "<unknown>"
             stype = smod + '.' + stype
 
         if not issubclass(self.exc_type, SyntaxError):
@@ -633,7 +635,7 @@ class TracebackException:
 
             if self.offset is not None:
                 offset = self.offset
-                end_offset = self.end_offset if self.end_offset is not None else offset
+                end_offset = self.end_offset if self.end_offset not in {None, 0} else offset
                 if offset == end_offset or end_offset == -1:
                     end_offset = offset + 1
 
index 7e36c2c51d3be01272b7d6a64bbeb689dc2a34b5..f3b320b90caebc1e4ce6145f1155c15f757cec3a 100644 (file)
@@ -2877,7 +2877,8 @@ class RawTurtle(TPen, TNavigator):
         between the orientation of the turtleshape and the heading of the
         turtle (its direction of movement).
 
-        Deprecated since Python 3.1
+        (Incorrectly marked as deprecated since Python 3.1, it is really
+        settiltangle that is deprecated.)
 
         Examples (for a Turtle instance named turtle):
         >>> turtle.shape("circle")
index c2dc97dd57ae396bed6f207a6d74777fe52d93fb..62122a994866fe2fd49f94d10146f040e1bf2e8c 100644 (file)
@@ -82,7 +82,7 @@ def resolve_bases(bases):
     updated = False
     shift = 0
     for i, base in enumerate(bases):
-        if isinstance(base, type):
+        if isinstance(base, type) and not isinstance(base, GenericAlias):
             continue
         if not hasattr(base, "__mro_entries__"):
             continue
index 00700ebc23cdc3470623245710ccfaef10308011..b743d400c0e5fa0f5c4186dbf385983d50d3b46b 100644 (file)
@@ -143,7 +143,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
@@ -156,14 +156,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")
@@ -401,9 +403,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
@@ -526,7 +529,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
@@ -549,9 +553,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:
@@ -654,9 +655,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:
@@ -668,6 +670,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):
@@ -684,10 +687,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__}
@@ -1800,7 +1804,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, base_locals)
                 hints[name] = value
         return hints if include_extras else {k: _strip_annotations(t) for k, t in hints.items()}
@@ -1832,7 +1836,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]
@@ -2417,7 +2427,7 @@ class NewType:
     """NewType creates simple unique types with almost zero
     runtime overhead. NewType(name, tp) is considered a subtype of tp
     by static type checkers. At runtime, NewType(name, tp) returns
-    a dummy function that simply returns its argument. Usage::
+    a dummy callable that simply returns its argument. Usage::
 
         UserId = NewType('UserId', int)
 
index 86ed7046c499a374f953bf721f8c7eeeab2e4adc..4f9a80be80c5a0a0d26ed12c4e8c3c193d0ef6f3 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 e8d9c05b023378247f518f91f502c0452577fe24..61003d0c6ead9351625b48cd1682eea223b98c50 100644 (file)
@@ -651,12 +651,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."""
@@ -1138,7 +1146,8 @@ class TestCase(object):
     def assertDictContainsSubset(self, subset, dictionary, msg=None):
         """Checks whether dictionary is a superset of subset."""
         warnings.warn('assertDictContainsSubset is deprecated',
-                      DeprecationWarning)
+                      DeprecationWarning,
+                      stacklevel=2)
         missing = []
         mismatched = []
         for key, value in subset.items():
index c6067151de14fee25b7962178f3d7d88256ff24d..6226bd4bc0c195543b55ced4b30e2eebe6de82e2 100644 (file)
@@ -1004,6 +1004,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
@@ -1022,12 +1027,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)
 
 
@@ -2927,6 +2926,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 f5e64d68e7b1014529432f45718736efd172e279..a0db3423b868aa8463ffadcb284d586442435c32 100644 (file)
@@ -2,6 +2,7 @@ import datetime
 import warnings
 import weakref
 import unittest
+from test.support import gc_collect
 from itertools import product
 
 
@@ -124,8 +125,10 @@ class Test_Assertions(unittest.TestCase):
                     self.foo()
 
         Foo("test_functional").run()
+        gc_collect()  # For PyPy or other GCs.
         self.assertIsNone(wr())
         Foo("test_with").run()
+        gc_collect()  # For PyPy or other GCs.
         self.assertIsNone(wr())
 
     def testAssertNotRegex(self):
index 6e48b9e4bfed367a1ceb0b2008fdfd5fe06b380e..e46b99fd00264868a60061d1b53d2a4f587c7967 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 = []
@@ -235,7 +297,49 @@ class TestAsyncCase(unittest.TestCase):
         output = test.run()
         self.assertTrue(cancelled)
 
+    def test_debug_cleanup_same_loop(self):
+        class Test(unittest.IsolatedAsyncioTestCase):
+            async def asyncSetUp(self):
+                async def coro():
+                    await asyncio.sleep(0)
+                fut = asyncio.ensure_future(coro())
+                self.addAsyncCleanup(self.cleanup, fut)
+                events.append('asyncSetUp')
+
+            async def test_func(self):
+                events.append('test')
+                raise MyException()
 
+            async def asyncTearDown(self):
+                events.append('asyncTearDown')
+
+            async def cleanup(self, fut):
+                try:
+                    # Raises an exception if in different loop
+                    await asyncio.wait([fut])
+                    events.append('cleanup')
+                except:
+                    import traceback
+                    traceback.print_exc()
+                    raise
+
+        events = []
+        test = Test("test_func")
+        result = test.run()
+        self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
+        self.assertIn('MyException', result.errors[0][1])
+
+        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'])
 
 
 if __name__ == "__main__":
index b8aca92a8ebe9f74304cea2bb277a76fd11b4894..442651e1e4884db3a11954aee21c22649699bd4f 100644 (file)
@@ -19,7 +19,7 @@ from unittest.test.support import (
     TestEquality, TestHashing, LoggingResult, LegacyLoggingResult,
     ResultWithNoStartTestRunStopTestRun
 )
-from test.support import captured_stderr
+from test.support import captured_stderr, gc_collect
 
 
 log_foo = logging.getLogger('foo')
@@ -706,6 +706,10 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing):
             with self.assertRaises(self.failureException):
                 self.assertDictContainsSubset({'foo': one}, {'foo': '\uFFFD'})
 
+        with self.assertWarns(DeprecationWarning) as warninfo:
+            self.assertDictContainsSubset({}, {})
+        self.assertEqual(warninfo.warnings[0].filename, __file__)
+
     def testAssertEqual(self):
         equal_pairs = [
                 ((), ()),
@@ -1947,6 +1951,7 @@ test case
         for method_name in ('test1', 'test2'):
             testcase = TestCase(method_name)
             testcase.run()
+            gc_collect()  # For PyPy or other GCs.
             self.assertEqual(MyException.ninstance, 0)
 
 
index c14410afbefdc46870a840f78e57d2fa14825803..7cb9d33f5e5f3898d77a303d287c129b908d361e 100644 (file)
@@ -460,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 bab2ca64d4a43cb566b7396d0d14748a8ae2e269..b49d77ba44b24fe6d69f6bbe75139b3b5dc23075 100644 (file)
@@ -202,7 +202,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 c55fec6aa1c47da4d4ae65b251e95f049a7d578c..25eaee9c0f291b6d7ff65b511295f2020d5f38cc 100644 (file)
@@ -334,7 +334,7 @@ class zipimporter(_bootstrap_external._LoaderBasics):
             _zip_directory_cache[self.archive] = self._files
         except ZipImportError:
             _zip_directory_cache.pop(self.archive, None)
-            self._files = None
+            self._files = {}
 
 
     def __repr__(self):
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
index e89b1c1a4210066cadd8953fc9db09c758384102..9fefe67753666c2eebdb39459ef6830c2fe181c8 100755 (executable)
@@ -265,10 +265,10 @@ def library_recipes():
             tk_patches = ['tk868_on_10_8_10_9.patch']
 
         else:
-            tcl_tk_ver='8.6.11'
-            tcl_checksum='8a4c004f48984a03a7747e9ba06e4da4'
+            tcl_tk_ver='8.6.12'
+            tcl_checksum='87ea890821d2221f2ab5157bc5eb885f'
 
-            tk_checksum='c7ee71a2d05bba78dfffd76528dc17c6'
+            tk_checksum='1d6dcf6120356e3d211e056dff5e462a'
             tk_patches = [ ]
 
 
@@ -454,7 +454,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,
@@ -1602,7 +1602,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 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 3ef2811da434c38c02e622f58171cddc14d40cfa..8f2f153d500194b697d634efbe3a47d1e390ede2 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 790d974b9685afed77e7152b39f34ffb1d5c1161..ee85f35b10da41b49fbfbac86eeeac9d60c5bacf 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
@@ -1260,10 +1259,10 @@ quicktest:      @DEF_MAKE_RULE@ platform
 # SSL tests
 .PHONY: multisslcompile multissltest
 multisslcompile: build_all
-       $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py --steps=modules
+       $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/ssl/multissltests.py --steps=modules
 
 multissltest: build_all
-       $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py
+       $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/ssl/multissltests.py
 
 install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKINSTALLLAST@
        if test "x$(ENSUREPIP)" != "xno"  ; then \
@@ -1963,7 +1962,7 @@ distclean: clobber
 
 # Check that all symbols exported by libpython start with "Py" or "_Py"
 smelly: @DEF_MAKE_RULE@
-       $(RUNSHARED) ./$(BUILDPYTHON) Tools/scripts/smelly.py
+       $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/smelly.py
 
 # Find files with funny names
 funny:
@@ -2003,6 +2002,12 @@ patchcheck: @DEF_MAKE_RULE@
 check-limited-abi: all
        $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/stable_abi.py --all $(srcdir)/Misc/stable_abi.txt
 
+.PHONY: update-config
+update-config:
+       curl -sL -o config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
+       curl -sL -o config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
+       chmod +x config.guess config.sub
+
 # Dependencies
 
 Python/thread.o: @THREADHEADERS@ $(srcdir)/Python/condvar.h
index 4590145a87abe7524092768912c91fc796a8d23e..94b0ed0b241cd6814957150d682c669f324850ad 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1880,6 +1880,7 @@ Bob Watson
 Colin Watson
 David Watson
 Aaron Watters
+Alex Waygood
 Henrik Weber
 Leon Weber
 Steve Weber
index 2f32593be316983d289e2ef68d7209a798af6805..c86689583fb42695510e73a87fa3d2f89e3bec34 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2,6 +2,567 @@
 Python News
 +++++++++++
 
+What's New in Python 3.10.1 final?
+==================================
+
+*Release date: 2021-12-06*
+
+Core and Builtins
+-----------------
+
+- bpo-42268: Fail the configure step if the selected compiler doesn't
+  support memory sanitizer. Patch by Pablo Galindo
+
+- bpo-45727: Refine the custom syntax error that suggests that a comma may
+  be missing to trigger only when the expressions are detected between
+  parentheses or brackets. Patch by Pablo Galindo
+
+- bpo-45614: Fix :mod:`traceback` display for exceptions with invalid module
+  name.
+
+- bpo-45848: Allow the parser to obtain error lines directly from encoded
+  files. Patch by Pablo Galindo
+
+- bpo-45826: Fixed a crash when calling ``.with_traceback(None)`` on
+  ``NameError``. This occurs internally in
+  ``unittest.TestCase.assertRaises()``.
+
+- bpo-45822: Fixed a bug in the parser that was causing it to not respect
+  :pep:`263` coding cookies when no flags are provided. Patch by Pablo
+  Galindo
+
+- bpo-45820: Fix a segfault when the parser fails without reading any input.
+  Patch by Pablo Galindo
+
+- bpo-42540: Fix crash when :func:`os.fork` is called with an active
+  non-default memory allocator.
+
+- bpo-45738: Fix computation of error location for invalid continuation
+  characters in the parser. Patch by Pablo Galindo.
+
+- bpo-45773: Fix a compiler hang when attempting to optimize certain jump
+  patterns.
+
+- bpo-45716: Improve the :exc:`SyntaxError` message when using ``True``,
+  ``None`` or ``False`` as keywords in a function call. Patch by Pablo
+  Galindo.
+
+- bpo-45688: :data:`sys.stdlib_module_names` now contains the macOS-specific
+  module :mod:`_scproxy`.
+
+- bpo-30570: Fixed a crash in ``issubclass()`` from infinite recursion when
+  searching pathological ``__bases__`` tuples.
+
+- bpo-45521: Fix a bug in the obmalloc radix tree code.  On 64-bit machines,
+  the bug causes the tree to hold 46-bits of virtual addresses, rather than
+  the intended 48-bits.
+
+- bpo-45494: Fix parser crash when reporting errors involving invalid
+  continuation characters. Patch by Pablo Galindo.
+
+- bpo-45408: Fix a crash in the parser when reporting tokenizer errors that
+  occur at the same time unclosed parentheses are detected. 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).
+
+- bpo-45056: Compiler now removes trailing unused constants from co_consts.
+
+Library
+-------
+
+- bpo-27946: Fix possible crash when getting an attribute of
+  class:`xml.etree.ElementTree.Element` simultaneously with replacing the
+  ``attrib`` dict.
+
+- bpo-37658: Fix issue when on certain conditions ``asyncio.wait_for()`` may
+  allow a coroutine to complete successfully, but fail to return the result,
+  potentially causing memory leaks or other issues.
+
+- bpo-44649: Handle dataclass(slots=True) with a field that has default a
+  default value, but for which init=False.
+
+- bpo-45803: Added missing kw_only parameter to
+  dataclasses.make_dataclass().
+
+- bpo-45831: :mod:`faulthandler` can now write ASCII-only strings (like
+  filenames and function names) with a single write() syscall when dumping a
+  traceback. It reduces the risk of getting an unreadable dump when two
+  threads or two processes dump a traceback to the same file (like stderr)
+  at the same time. Patch by Victor Stinner.
+
+- bpo-41735: Fix thread lock in ``zlib.Decompress.flush()`` method before
+  ``PyObject_GetBuffer``.
+
+- bpo-45235: Reverted an argparse bugfix that caused regression in the
+  handling of default arguments for subparsers.  This prevented leaf level
+  arguments from taking precedence over root level arguments.
+
+- bpo-45765: In importlib.metadata, fix distribution discovery for an empty
+  path.
+
+- bpo-45757: Fix bug where :mod:`dis` produced an incorrect oparg when
+  :opcode:`EXTENDED_ARG` is followed by an opcode that does not use its
+  argument.
+
+- bpo-45644: In-place JSON file formatting using ``python3 -m json.tool
+  infile infile`` now works correctly, previously it left the file empty.
+  Patch by Chris Wesseling.
+
+- bpo-45679: Fix caching of multi-value :data:`typing.Literal`.
+  ``Literal[True, 2]`` is no longer equal to ``Literal[1, 2]``.
+
+- bpo-45664: Fix :func:`types.resolve_bases` and :func:`types.new_class` for
+  :class:`types.GenericAlias` instance as a base.
+
+- bpo-45663: Fix :func:`dataclasses.is_dataclass` for dataclasses which are
+  subclasses of :class:`types.GenericAlias`.
+
+- bpo-45662: Fix the repr of :data:`dataclasses.InitVar` with a type alias
+  to the built-in class, e.g. ``InitVar[list[int]]``.
+
+- bpo-45438: Fix typing.Signature string representation for generic builtin
+  types.
+
+- bpo-45574: Fix warning about ``print_escape`` being unused.
+
+- bpo-45581: :meth:`sqlite3.connect` now correctly raises :exc:`MemoryError`
+  if the underlying SQLite API signals memory error. Patch by Erlend E.
+  Aasland.
+
+- bpo-45557: pprint.pprint() now handles underscore_numbers correctly.
+  Previously it was always setting it to False.
+
+- bpo-45515: Add references to :mod:`zoneinfo` in the :mod:`datetime`
+  documentation, mostly replacing outdated references to ``dateutil.tz``.
+  Change by Paul Ganssle.
+
+- bpo-45475: Reverted optimization of iterating :class:`gzip.GzipFile`,
+  :class:`bz2.BZ2File`, and :class:`lzma.LZMAFile` (see bpo-43787) because
+  it caused regression when user iterate them without having reference of
+  them. Patch by Inada Naoki.
+
+- bpo-45428: Fix a regression in py_compile when reading filenames from
+  standard input.
+
+- 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-45249: Fix the behaviour of :func:`traceback.print_exc` when
+  displaying the caret when the ``end_offset`` in the exception is set to 0.
+  Patch by Pablo Galindo
+
+- bpo-45416: Fix use of :class:`asyncio.Condition` with explicit
+  :class:`asyncio.Lock` objects, which was a regression due to removal of
+  explicit loop arguments. Patch by Joongi Kim.
+
+- bpo-45419: Correct interfaces on DegenerateFiles.Path.
+
+- 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-45329: Fix freed memory access in :class:`pyexpat.xmlparser` when
+  building it with an installed expat library <= 2.2.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-45183: Have zipimport.zipimporter.find_spec() not raise an exception
+  when the underlying zip file has been deleted and the internal cache has
+  been reset via invalidate_cache().
+
+- 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-42135: Fix typo: ``importlib.find_loader`` is really slated for
+  removal in Python 3.12 not 3.10, like the others in GH-25169.
+
+  Patch by Hugo van Kemenade.
+
+- 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-20499: Improve the speed and accuracy of statistics.pvariance().
+
+- 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-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.
+
+- bpo-44295: Ensure deprecation warning from
+  :func:`assertDictContainsSubset` points at calling code - by Anthony
+  Sottile.
+
+- bpo-43498: Avoid a possible *"RuntimeError: dictionary changed size during
+  iteration"* when adjusting the process count of
+  :class:`ProcessPoolExecutor`.
+
+Documentation
+-------------
+
+- bpo-45640: Properly marked-up grammar tokens in the documentation are now
+  clickable and take you to the definition of a given piece of grammar.
+  Patch by Arthur Milchior.
+
+- bpo-45788: Link doc for sys.prefix to sysconfig doc on installation paths.
+
+- bpo-45772: ``socket.socket`` documentation is corrected to a class from a
+  function.
+
+- bpo-45392: Update the docstring of the :class:`type` built-in to remove a
+  redundant line and to mention keyword arguments for the constructor.
+
+- 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-45250: Update the documentation to note that CPython does not
+  consistently require iterators to define ``__iter__``.
+
+- 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.
+
+- bpo-45024: :mod:`collections.abc` documentation has been expanded to
+  explicitly cover how instance and subclass checks work, with additional
+  doctest examples and an exhaustive list of ABCs which test membership
+  purely by presence of the right :term:`special method`\s. Patch by Raymond
+  Hettinger.
+
+- bpo-25381: In the extending chapter of the extending doc, update a
+  paragraph about the global variables containing exception information.
+
+- bpo-43905: Expanded :func:`~dataclasses.astuple` and
+  :func:`~dataclasses.asdict` docs, warning about deepcopy being applied and
+  providing a workaround.
+
+Tests
+-----
+
+- bpo-19460: Add new Test for
+  :class:`email.mime.nonmultipart.MIMENonMultipart`.
+
+- bpo-45835: Fix race condition in test_queue tests with multiple "feeder"
+  threads.
+
+- bpo-45678: Add tests for scenarios in which
+  :class:`functools.singledispatchmethod` is stacked on top of a method that
+  has already been wrapped by two other decorators. Patch by Alex Waygood.
+
+- bpo-45578: Add tests for :func:`dis.distb`
+
+- bpo-45678: Add tests to ensure that ``functools.singledispatchmethod``
+  correctly wraps the attributes of the target function.
+
+- bpo-45577: Add subtests for all ``pickle`` protocols in ``test_zoneinfo``.
+
+- bpo-45566: Fix ``test_frozen_pickle`` in ``test_dataclasses`` to check all
+  ``pickle`` versions.
+
+- 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-39679: Add more test cases for `@functools.singledispatchmethod` when
+  combined with `@classmethod` or `@staticmethod`.
+
+- bpo-45400: Fix
+  test_name_error_suggestions_do_not_trigger_for_too_many_locals() of
+  test_exceptions if a directory name contains "a1" (like
+  "Python-3.11.0a1"): use a stricter regular expression. Patch by Victor
+  Stinner.
+
+- 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-45128: Fix ``test_multiprocessing_fork`` failure due to
+  ``test_logging`` and ``sys.modules`` manipulation.
+
+- 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-45125: Improves pickling tests and docs of ``SharedMemory`` and
+  ``SharableList`` objects.
+
+- bpo-44860: Update ``test_sysconfig.test_user_similar()`` for the
+  posix_user scheme: ``platlib`` doesn't use :data:`sys.platlibdir`. Patch
+  by Victor Stinner.
+
+- bpo-25130: Add calls of :func:`gc.collect` in tests to support PyPy.
+
+Build
+-----
+
+- bpo-44035: CI now verifies that autoconf files have been regenerated with
+  a current and unpatched autoconf package.
+
+- bpo-33393: Update ``config.guess`` to 2021-06-03 and ``config.sub`` to
+  2021-08-14. ``Makefile`` now has an ``update-config`` target to make
+  updating more convenient.
+
+- bpo-45866: ``make regen-all`` now produces the same output when run from a
+  directory other than the source tree: when building Python out of the
+  source tree. pegen now strips directory of the "generated by pygen from
+  <FILENAME>" header Patch by Victor Stinner.
+
+- bpo-41498: Python now compiles on platforms without ``sigset_t``. Several
+  functions in :mod:`signal` are not available when ``sigset_t`` is missing.
+
+  Based on patch by Roman Yurchak for pyodide.
+
+- bpo-45881: ``setup.py`` now uses ``CC`` from environment first to discover
+  multiarch and cross compile paths.
+
+- 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-45561: Run smelly.py tool from $(srcdir).
+
+- bpo-45532: Update :data:`sys.version` to use ``main`` as fallback
+  information. Patch by Jeong YunWon.
+
+- bpo-45536: The ``configure`` script now checks whether OpenSSL headers and
+  libraries provide required APIs. Most common APIs are verified. The check
+  detects outdated or missing OpenSSL. Failures do not stop configure.
+
+- bpo-45221: Fixed regression in handling of ``LDFLAGS`` and ``CPPFLAGS``
+  options where :meth:`argparse.parse_known_args` could interpret an option
+  as one of the built-in command line argument, for example ``-h`` for help.
+
+- 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.
+
+- bpo-45067: The ncurses function extended_color_content was introduced in
+  2017
+
+  (https://invisible-island.net/ncurses/NEWS.html#index-t20170401).  The
+
+  ncurses-devel package in CentOS 7 had a older version ncurses resulted in
+  compilation error.  For compiling ncurses with extended color support, we
+  verify the version of the ncurses library >= 20170401.
+
+Windows
+-------
+
+- bpo-45901: When installed through the Microsoft Store and set as the
+  default app for :file:`*.py` files, command line arguments will now be
+  passed to Python when invoking a script without explicitly launching
+  Python (that is, ``script.py args`` rather than ``python script.py
+  args``).
+
+- bpo-45616: Fix Python Launcher's ability to distinguish between versions
+  3.1 and 3.10 when either one is explicitly requested.  Previously, 3.1
+  would be used if 3.10 was requested but not installed, and 3.10 would be
+  used if 3.1 was requested but 3.10 was installed.
+
+- bpo-45732: Updates bundled Tcl/Tk to 8.6.12.
+
+- bpo-45720: Internal reference to :file:`shlwapi.dll` was dropped to help
+  improve startup time. This DLL will no longer be loaded at the start of
+  every Python process.
+
+- bpo-43652: Update Tcl/Tk to 8.6.11, actually this time. The previous
+  update incorrectly included 8.6.10.
+
+- 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-45732: Update python.org macOS installer to use Tcl/Tk 8.6.12.
+
+- 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.
+
+- bpo-34602: When building CPython on macOS with ``./configure
+  --with-undefined-behavior-sanitizer --with-pydebug``, the stack size is
+  now quadrupled to allow for the entire test suite to pass.
+
+IDLE
+----
+
+- bpo-45495: Add context keywords 'case' and 'match' to completions list.
+
+- 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.
+
+- bpo-45193: Make completion boxes appear on Ubuntu again.
+
+Tools/Demos
+-----------
+
+- bpo-44786: Fix a warning in regular expression in the c-analyzer script.
+
+C API
+-----
+
+- bpo-39026: Fix Python.h to build C extensions with Xcode: remove a
+  relative include from ``Include/cpython/pystate.h``.
+
+- bpo-45307: Restore the private C API function
+  :func:`_PyImport_FindExtensionObject`. It will be removed in Python 3.11.
+
+- 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.10.0 final?
 ==================================
 
@@ -1241,7 +1802,7 @@ Core and Builtins
   names) no longer cause any runtime effects with ``from __future__ import
   annotations``.
 
-- bpo-43914: :exc:`SyntaxError` exceptions raised by the intepreter will
+- bpo-43914: :exc:`SyntaxError` exceptions raised by the interpreter will
   highlight the full error range of the expression that consistutes the
   syntax error itself, instead of just where the problem is detected. Patch
   by Pablo Galindo.
@@ -1339,7 +1900,7 @@ Library
   and containment will return ``True`` if the value is either a member of
   that enum or one of its members' value.
 
-- bpo-42904: For backwards compatbility with previous minor versions of
+- bpo-42904: For backwards compatibility with previous minor versions of
   Python, if :func:`typing.get_type_hints` receives no namespace dictionary
   arguments, :func:`typing.get_type_hints` will search through the global
   then local namespaces during evaluation of stringized type annotations
@@ -1411,9 +1972,9 @@ Library
   alpha, will now raise ``TypeError`` during substitution.
 
 - bpo-43867: The :mod:`multiprocessing` ``Server`` class now explicitly
-  catchs :exc:`SystemExit` and closes the client connection in this case. It
-  happens when the ``Server.serve_client()`` method reachs the end of file
-  (EOF).
+  catches :exc:`SystemExit` and closes the client connection in this case.
+  It happens when the ``Server.serve_client()`` method reaches the end of
+  file (EOF).
 
 - bpo-40443: Remove unused imports: pyclbr no longer uses copy, and typing
   no longer uses ast. Patch by Victor Stinner.
@@ -1570,7 +2131,7 @@ Library
   preferred "user", "home", and "prefix" (default) scheme names.
 
 - bpo-43265: Improve :meth:`sqlite3.Connection.backup` error handling. The
-  error message for non-existant target database names is now ``unknown
+  error message for non-existent target database names is now ``unknown
   database <database name>`` instead of ``SQL logic error``. Patch by Erlend
   E. Aasland.
 
@@ -1906,7 +2467,7 @@ Core and Builtins
   :c:func:`Py_DecodeLocale` function now escapes byte sequences which would
   be decoded as Unicode characters outside the [U+0000; U+10ffff] range.
 
-- bpo-43410: Fix a bug that was causing the parser to crash when emiting
+- bpo-43410: Fix a bug that was causing the parser to crash when emitting
   syntax errors when reading input from stdin. Patch by Pablo Galindo
 
 - bpo-43406: Fix a possible race condition where ``PyErr_CheckSignals``
@@ -2282,7 +2843,7 @@ Core and Builtins
   key, rather than using ``{"None": None}`` as builtins: same behavior as
   :func:`eval` and :func:`exec` functions. Defining a function with ``def
   function(...): ...`` in Python is not affected, globals cannot be
-  overriden with this syntax: it also inherits the current builtins. Patch
+  overridden with this syntax: it also inherits the current builtins. Patch
   by Victor Stinner.
 
 - bpo-42990: Functions have a new ``__builtins__`` attribute which is used
@@ -2406,7 +2967,7 @@ Tests
 -----
 
 - bpo-43288: Fix test_importlib to correctly skip Unicode file tests if the
-  fileystem does not support them.
+  filesystem does not support them.
 
 Build
 -----
@@ -2692,7 +3253,7 @@ Build
   Victor Stinner.
 
 - bpo-42874: Removed the grep -q and -E flags in the tzpath validation
-  section of the configure script to better accomodate users of some
+  section of the configure script to better accommodate users of some
   platforms (specifically Solaris 10).
 
 - bpo-31904: Add library search path by wr-cc in add_cross_compiling_paths()
@@ -3028,7 +3589,7 @@ Documentation
 Tests
 -----
 
-- bpo-42794: Update test_nntplib to use offical group name of news.aioe.org
+- bpo-42794: Update test_nntplib to use official group name of news.aioe.org
   for testing. Patch by Dong-hee Na.
 
 - bpo-31904: Skip some asyncio tests on VxWorks.
@@ -3059,7 +3620,7 @@ Build
 
 - bpo-42604: Now all platforms use a value for the "EXT_SUFFIX" build
   variable derived from SOABI (for instance in freeBSD, "EXT_SUFFIX" is now
-  ".cpython-310d.so" instead of ".so"). Previosuly only Linux, Mac and
+  ".cpython-310d.so" instead of ".so"). Previously only Linux, Mac and
   VxWorks were using a value for "EXT_SUFFIX" that included "SOABI".
 
 - bpo-42598: Fix implicit function declarations in configure which could
@@ -3475,7 +4036,7 @@ Documentation
 Tests
 -----
 
-- bpo-41473: Reenable test_gdb on gdb 9.2 and newer:
+- bpo-41473: Re-enable test_gdb on gdb 9.2 and newer:
   https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb
   10.1.
 
@@ -3792,7 +4353,7 @@ Library
   the parameterized types in the ``GenericAlias``.  They have now been
   changed to do so.
 
-- bpo-29566: ``binhex.binhex()`` consisently writes macOS 9 line endings.
+- bpo-29566: ``binhex.binhex()`` consistently writes macOS 9 line endings.
 
 - bpo-26789: The :class:`logging.FileHandler` class now keeps a reference to
   the builtin :func:`open` function to be able to open or reopen the file
@@ -3888,7 +4449,7 @@ Library
   :func:`dataclasses.dataclass` objects now have the proper ``__qualname__``
   attribute referring to the class they belong to. Patch by Batuhan Taskaya.
 
-- bpo-30681: Handle exceptions caused by unparseable date headers when using
+- bpo-30681: Handle exceptions caused by unparsable date headers when using
   email "default" policy.  Patch by Tim Bell, Georges Toth
 
 - bpo-41586: Add F_SETPIPE_SZ and F_GETPIPE_SZ to fcntl module. Allow
@@ -4102,7 +4663,7 @@ Core and Builtins
   types.
 
 - bpo-41690: Fix a possible stack overflow in the parser when parsing
-  functions and classes with a huge ammount of arguments. Patch by Pablo
+  functions and classes with a huge amount of arguments. Patch by Pablo
   Galindo.
 
 - bpo-1635741: Port the :mod:`_overlapped` extension module to multi-phase
@@ -6084,9 +6645,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 overallocated 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 overallocated size than to the
+  old size and adds padding.
 
 - bpo-39926: Update Unicode database to Unicode version 13.0.0.
 
@@ -6939,7 +7500,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
@@ -7121,7 +7682,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
@@ -7710,7 +8271,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
@@ -7907,7 +8468,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
@@ -8023,7 +8584,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
@@ -8159,7 +8720,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.
 
@@ -8414,7 +8975,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.
@@ -8624,7 +9186,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
@@ -8648,7 +9210,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
@@ -8970,7 +9532,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.
 
index 76209100ecd2eea639d8fd408c42cac47d429448..4a2ee18e8e9750d29f8f4ee29d991a01b617527a 100644 (file)
@@ -285,7 +285,7 @@ macro Py_UNBLOCK_THREADS
 macro Py_END_ALLOW_THREADS
     added 3.2
 
-# The following were added in PC/python3.def in the intial stable ABI commit,
+# The following were added in PC/python3.def in the initial stable ABI commit,
 # 4d0d471a8031de90a2b1ce99c4ac4780e60b3bc9,
 # and later amendments in 3.2:
 # 0d012f284be829c6217f60523db0e1671b7db9d9
index ecc73d1ca8bf0f577a096617ff6837cfae60dcb4..56079b0277d1a677165b6ec82a968fbc775cff1b 100644 (file)
@@ -3239,6 +3239,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 2e8cb97fe77c920f54f21003ae6119306f9791d5..50afc097b35026ee129006b120b0b665cb9e5f5b 100644 (file)
@@ -489,34 +489,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 3109fd16bc744bf8bdb81557f521d2aa67974280..72f0791a4398b6f61a8eb972a8e7e3431baf0181 100644 (file)
@@ -229,21 +229,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",
@@ -251,8 +254,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;
@@ -445,9 +481,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);
@@ -489,7 +525,7 @@ err:
 }
 
 /* Since dialect is now a heap type, it inherits pickling method for
- * protocol 0 and 1 from object, therefore it needs to be overriden */
+ * protocol 0 and 1 from object, therefore it needs to be overridden */
 
 PyDoc_STRVAR(dialect_reduce_doc, "raises an exception to avoid pickling");
 
index f8f8efa4ee879301365bbbcfa25d6d891a9e6963..ddf289e3e8f600eddb8c07527ab5eb684c894e97 100644 (file)
@@ -834,7 +834,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
index a21a9daaed02cc1dbcf31f12c2155093c56c5026..ec6feca8b0f809e038ebe5ed36e2de91bfcb63cd 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 6110027980827c4ea7804bb0188dbf53b84e06fd..9600ddc7413b2e925ad649b04f06cf8420b9fec8 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 3726db194e032f24a975db001d178f9cb3792049..24e091b6887ccdf4b71250b7b72bb2043c1ca14a 100644 (file)
@@ -7,10 +7,7 @@
 
 
 import time
-try:
-    from test.support import import_fresh_module
-except ImportError:
-    from test.test_support import import_fresh_module
+from test.support.import_helper import import_fresh_module
 
 C = import_fresh_module('decimal', fresh=['_decimal'])
 P = import_fresh_module('decimal', blocked=['_decimal'])
index 98ecd502c03fe910b79fdf4881c545f31406d0e9..edf753f3704a18347ac3df8a4de7ee7368e46529 100644 (file)
@@ -47,7 +47,7 @@ from subprocess import PIPE, STDOUT
 from queue import Queue, Empty
 from threading import Thread, Event, Lock
 
-from test.support import import_fresh_module
+from test.support.import_helper import import_fresh_module
 from randdec import randfloat, all_unary, all_binary, all_ternary
 from randdec import unary_optarg, binary_optarg, ternary_optarg
 from formathelper import rand_format, rand_locale
index 19b2aad4a503b1e2bc1904ac50a03550810ac9d5..c3daacfb7b44f464698bc66f43ee114c7cd275c8 100644 (file)
@@ -31,7 +31,7 @@
 
 import os, sys, locale, random
 import platform, subprocess
-from test.support import import_fresh_module
+from test.support.import_helper import import_fresh_module
 from distutils.spawn import find_executable
 
 C = import_fresh_module('decimal', fresh=['_decimal'])
index b4528a90b3e095195a29ed5cab1452d992578135..9dadeef712938430a6c4de6c57e44a2926c609f3 100644 (file)
@@ -1393,22 +1393,19 @@ _elementtree_Element_get_impl(ElementObject *self, PyObject *key,
                               PyObject *default_value)
 /*[clinic end generated code: output=523c614142595d75 input=ee153bbf8cdb246e]*/
 {
-    PyObject* value;
-
-    if (!self->extra || !self->extra->attrib)
-        value = default_value;
-    else {
-        value = PyDict_GetItemWithError(self->extra->attrib, key);
-        if (!value) {
-            if (PyErr_Occurred()) {
-                return NULL;
-            }
-            value = default_value;
+    if (self->extra && self->extra->attrib) {
+        PyObject *attrib = self->extra->attrib;
+        Py_INCREF(attrib);
+        PyObject *value = PyDict_GetItemWithError(attrib, key);
+        Py_XINCREF(value);
+        Py_DECREF(attrib);
+        if (value != NULL || PyErr_Occurred()) {
+            return value;
         }
     }
 
-    Py_INCREF(value);
-    return value;
+    Py_INCREF(default_value);
+    return default_value;
 }
 
 static PyObject *
index 5984d34cc08290c4b17552ee43f2eb938af3ffa2..ba966f568b399a40391cb5b92e158d27abed43ba 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 691d4a293e8498045bc512539f3b569a70e81c9b..919490c88f7d09560f139a775dab6688bb3ade27 100644 (file)
@@ -4527,7 +4527,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;
@@ -6540,7 +6540,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 5813e34d57afed8202647008274bed0fd7548707..64610393ec1c35f294be903dcb51230fff94b60e 100644 (file)
@@ -87,6 +87,7 @@ pysqlite_connection_init(pysqlite_Connection *self, PyObject *args,
     }
 
     if (PySys_Audit("sqlite3.connect", "O", database_obj) < 0) {
+        Py_DECREF(database_obj);
         return -1;
     }
 
@@ -112,6 +113,10 @@ pysqlite_connection_init(pysqlite_Connection *self, PyObject *args,
 
     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 a5e5525481f756fa48bd6af0ebe04d7192cd8b8a..ba70a6c51f4409520891f792faeb969a5fcdf800 100644 (file)
@@ -273,51 +273,58 @@ static PyMethodDef module_methods[] = {
     {NULL, NULL}
 };
 
-static int add_integer_constants(PyObject *module) {
-    int ret = 0;
-
-    ret += PyModule_AddIntMacro(module, PARSE_DECLTYPES);
-    ret += PyModule_AddIntMacro(module, PARSE_COLNAMES);
-    ret += PyModule_AddIntMacro(module, SQLITE_OK);
-    ret += PyModule_AddIntMacro(module, SQLITE_DENY);
-    ret += PyModule_AddIntMacro(module, SQLITE_IGNORE);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_INDEX);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TABLE);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_INDEX);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_TABLE);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_TRIGGER);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_VIEW);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TRIGGER);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_VIEW);
-    ret += PyModule_AddIntMacro(module, SQLITE_DELETE);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_INDEX);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_TABLE);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_INDEX);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_TABLE);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_TRIGGER);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_VIEW);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_TRIGGER);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_VIEW);
-    ret += PyModule_AddIntMacro(module, SQLITE_INSERT);
-    ret += PyModule_AddIntMacro(module, SQLITE_PRAGMA);
-    ret += PyModule_AddIntMacro(module, SQLITE_READ);
-    ret += PyModule_AddIntMacro(module, SQLITE_SELECT);
-    ret += PyModule_AddIntMacro(module, SQLITE_TRANSACTION);
-    ret += PyModule_AddIntMacro(module, SQLITE_UPDATE);
-    ret += PyModule_AddIntMacro(module, SQLITE_ATTACH);
-    ret += PyModule_AddIntMacro(module, SQLITE_DETACH);
-    ret += PyModule_AddIntMacro(module, SQLITE_ALTER_TABLE);
-    ret += PyModule_AddIntMacro(module, SQLITE_REINDEX);
-    ret += PyModule_AddIntMacro(module, SQLITE_ANALYZE);
-    ret += PyModule_AddIntMacro(module, SQLITE_CREATE_VTABLE);
-    ret += PyModule_AddIntMacro(module, SQLITE_DROP_VTABLE);
-    ret += PyModule_AddIntMacro(module, SQLITE_FUNCTION);
-    ret += PyModule_AddIntMacro(module, SQLITE_SAVEPOINT);
+static int
+add_integer_constants(PyObject *module) {
+#define ADD_INT(ival)                                           \
+    do {                                                        \
+        if (PyModule_AddIntConstant(module, #ival, ival) < 0) { \
+            return -1;                                          \
+        }                                                       \
+    } while (0);                                                \
+
+    ADD_INT(PARSE_DECLTYPES);
+    ADD_INT(PARSE_COLNAMES);
+    ADD_INT(SQLITE_OK);
+    ADD_INT(SQLITE_DENY);
+    ADD_INT(SQLITE_IGNORE);
+    ADD_INT(SQLITE_CREATE_INDEX);
+    ADD_INT(SQLITE_CREATE_TABLE);
+    ADD_INT(SQLITE_CREATE_TEMP_INDEX);
+    ADD_INT(SQLITE_CREATE_TEMP_TABLE);
+    ADD_INT(SQLITE_CREATE_TEMP_TRIGGER);
+    ADD_INT(SQLITE_CREATE_TEMP_VIEW);
+    ADD_INT(SQLITE_CREATE_TRIGGER);
+    ADD_INT(SQLITE_CREATE_VIEW);
+    ADD_INT(SQLITE_DELETE);
+    ADD_INT(SQLITE_DROP_INDEX);
+    ADD_INT(SQLITE_DROP_TABLE);
+    ADD_INT(SQLITE_DROP_TEMP_INDEX);
+    ADD_INT(SQLITE_DROP_TEMP_TABLE);
+    ADD_INT(SQLITE_DROP_TEMP_TRIGGER);
+    ADD_INT(SQLITE_DROP_TEMP_VIEW);
+    ADD_INT(SQLITE_DROP_TRIGGER);
+    ADD_INT(SQLITE_DROP_VIEW);
+    ADD_INT(SQLITE_INSERT);
+    ADD_INT(SQLITE_PRAGMA);
+    ADD_INT(SQLITE_READ);
+    ADD_INT(SQLITE_SELECT);
+    ADD_INT(SQLITE_TRANSACTION);
+    ADD_INT(SQLITE_UPDATE);
+    ADD_INT(SQLITE_ATTACH);
+    ADD_INT(SQLITE_DETACH);
+    ADD_INT(SQLITE_ALTER_TABLE);
+    ADD_INT(SQLITE_REINDEX);
+    ADD_INT(SQLITE_ANALYZE);
+    ADD_INT(SQLITE_CREATE_VTABLE);
+    ADD_INT(SQLITE_DROP_VTABLE);
+    ADD_INT(SQLITE_FUNCTION);
+    ADD_INT(SQLITE_SAVEPOINT);
 #if SQLITE_VERSION_NUMBER >= 3008003
-    ret += PyModule_AddIntMacro(module, SQLITE_RECURSIVE);
+    ADD_INT(SQLITE_RECURSIVE);
 #endif
-    ret += PyModule_AddIntMacro(module, SQLITE_DONE);
-    return ret;
+    ADD_INT(SQLITE_DONE);
+#undef ADD_INT
+    return 0;
 }
 
 static struct PyModuleDef _sqlite3module = {
index 7b21240e9a0339ac9758c5ddd7c478137ae1f392..d21b533530187e733e94452e4a4af131585ceabf 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 103bd4062292db0b7c62a14cbb14074713f37328..9f25b64eb167134fedbc5d71eaaa38fed1cb2677 100644 (file)
@@ -390,6 +390,19 @@ static PyTypeObject _HashInheritanceTester_Type = {
     PyType_GenericNew,                  /* tp_new */
 };
 
+static PyObject*
+pycompilestring(PyObject* self, PyObject *obj) {
+    if (PyBytes_CheckExact(obj) == 0) {
+        PyErr_SetString(PyExc_ValueError, "Argument must be a bytes object");
+        return NULL;
+    }
+    const char *the_string = PyBytes_AsString(obj);
+    if (the_string == NULL) {
+        return NULL;
+    }
+    return Py_CompileString(the_string, "blech", Py_file_input);
+}
+
 static PyObject*
 test_lazy_hash_inheritance(PyObject* self, PyObject *Py_UNUSED(ignored))
 {
@@ -5269,7 +5282,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;
@@ -5312,7 +5325,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;
@@ -5826,6 +5839,7 @@ static PyMethodDef TestMethods[] = {
     {"return_null_without_error", return_null_without_error, METH_NOARGS},
     {"return_result_with_error", return_result_with_error, METH_NOARGS},
     {"getitem_with_error", getitem_with_error, METH_VARARGS},
+    {"Py_CompileString",     pycompilestring, METH_O},
     {"PyTime_FromSeconds", test_pytime_fromseconds,  METH_VARARGS},
     {"PyTime_FromSecondsObject", test_pytime_fromsecondsobject,  METH_VARARGS},
     {"PyTime_AsSecondsDouble", test_pytime_assecondsdouble, METH_VARARGS},
index ad60f32f7e7a627ecdf5472c1b31fc271ef4f96b..e0ed77d265cdcc7fd82b0dc66847156fa028e873 100644 (file)
@@ -844,6 +844,28 @@ 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;
+    }
+
+    if (PyModule_AddObjectRef(module, "Error", PyExc_Exception) < 0) {
+        Py_DECREF(module);
+        return NULL;
+    }
+    return module;
+}
+
 
 /*** Helper for imp test ***/
 
index 388e26e58d42048572e95a737da7277c08a6a012..813d7ec232c35d6f81c9bccb56e291c737386758 100644 (file)
@@ -1215,7 +1215,7 @@ where the corresponding signal handler will be executed.\n\
 If *signum* is omitted, SIGINT is assumed.\n\
 A subthread can use this function to interrupt the main thread.\n\
 \n\
-Note: the default signal hander for SIGINT raises ``KeyboardInterrupt``."
+Note: the default signal handler for SIGINT raises ``KeyboardInterrupt``."
 );
 
 static lockobject *newlockobject(PyObject *module);
index 329b291729d581b1fcef17a59c629e3ada288f5c..2a3e65b6c97df2e70376bb25ce96ad9918c79ad8 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 c722330ee491a9d85bb9292f5a3b301aa93e1553..04fa09422b2134c0ab425f2a4491062ccfe7b478 100644 (file)
@@ -1342,7 +1342,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 43378f94f984501776d0da5f9c027e651d9875bd..855ac77a7f73fd82626df3783131d41e1298d33b 100644 (file)
@@ -1063,7 +1063,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");
 
@@ -1072,7 +1072,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)
@@ -1080,8 +1080,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])) {
@@ -1122,8 +1123,15 @@ _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;
+    }
+    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 */
@@ -1135,7 +1143,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");
 
@@ -1144,7 +1152,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)
@@ -1152,8 +1160,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])) {
@@ -1194,8 +1203,15 @@ _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;
+    }
+    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 */
@@ -2801,4 +2817,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=557c3b37e4c492ac input=a9049054013a1b77]*/
+/*[clinic end generated code: output=814dae36b6f885cb input=a9049054013a1b77]*/
index 4713bab7486acb9fda93a776cbb54da8e715172c..4c27314a80c862c94f575dee1ca1708d0cde78d3 100644 (file)
@@ -354,7 +354,7 @@ exit:
 
 #endif /* defined(HAVE_GETITIMER) */
 
-#if defined(PYPTHREAD_SIGMASK)
+#if defined(HAVE_SIGSET_T) && defined(PYPTHREAD_SIGMASK)
 
 PyDoc_STRVAR(signal_pthread_sigmask__doc__,
 "pthread_sigmask($module, how, mask, /)\n"
@@ -391,9 +391,9 @@ exit:
     return return_value;
 }
 
-#endif /* defined(PYPTHREAD_SIGMASK) */
+#endif /* defined(HAVE_SIGSET_T) && defined(PYPTHREAD_SIGMASK) */
 
-#if defined(HAVE_SIGPENDING)
+#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGPENDING)
 
 PyDoc_STRVAR(signal_sigpending__doc__,
 "sigpending($module, /)\n"
@@ -416,9 +416,9 @@ signal_sigpending(PyObject *module, PyObject *Py_UNUSED(ignored))
     return signal_sigpending_impl(module);
 }
 
-#endif /* defined(HAVE_SIGPENDING) */
+#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGPENDING) */
 
-#if defined(HAVE_SIGWAIT)
+#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAIT)
 
 PyDoc_STRVAR(signal_sigwait__doc__,
 "sigwait($module, sigset, /)\n"
@@ -451,9 +451,9 @@ exit:
     return return_value;
 }
 
-#endif /* defined(HAVE_SIGWAIT) */
+#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAIT) */
 
-#if (defined(HAVE_SIGFILLSET) || defined(MS_WINDOWS))
+#if ((defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS))
 
 PyDoc_STRVAR(signal_valid_signals__doc__,
 "valid_signals($module, /)\n"
@@ -476,9 +476,9 @@ signal_valid_signals(PyObject *module, PyObject *Py_UNUSED(ignored))
     return signal_valid_signals_impl(module);
 }
 
-#endif /* (defined(HAVE_SIGFILLSET) || defined(MS_WINDOWS)) */
+#endif /* ((defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)) */
 
-#if defined(HAVE_SIGWAITINFO)
+#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAITINFO)
 
 PyDoc_STRVAR(signal_sigwaitinfo__doc__,
 "sigwaitinfo($module, sigset, /)\n"
@@ -509,9 +509,9 @@ exit:
     return return_value;
 }
 
-#endif /* defined(HAVE_SIGWAITINFO) */
+#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAITINFO) */
 
-#if defined(HAVE_SIGTIMEDWAIT)
+#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGTIMEDWAIT)
 
 PyDoc_STRVAR(signal_sigtimedwait__doc__,
 "sigtimedwait($module, sigset, timeout, /)\n"
@@ -548,7 +548,7 @@ exit:
     return return_value;
 }
 
-#endif /* defined(HAVE_SIGTIMEDWAIT) */
+#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGTIMEDWAIT) */
 
 #if defined(HAVE_PTHREAD_KILL)
 
@@ -698,4 +698,4 @@ exit:
 #ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
     #define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
 #endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */
-/*[clinic end generated code: output=59c33f0af42aebb5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c353e686367bc384 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 363d62a0657ebd0d0684694231bdb32ac4d474de..ef6dd59a084d8de4dddfc193e0166b5d2f52a2f8 100644 (file)
@@ -1505,7 +1505,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 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 a2a2db29be343d8eaef3106fc36d0f97bfa665bb..16da00817b5057eb08b1093099f34710607ca981 100644 (file)
@@ -3081,14 +3081,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_GetOne();
     }
+    Py_INCREF(result);
 #ifndef SLOW_PROD
     /* Fast paths for integers keeping temporary products in C.
      * Assumes all inputs are the same type.
@@ -3104,7 +3099,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 25ddc82cb893ab33660e575a48e9e0352323c581..03de4703239a7c308e891e0593f94302e8a11c88 100644 (file)
@@ -5930,6 +5930,7 @@ parse_posix_spawn_flags(PyObject *module, const char *func_name, PyObject *setpg
 
     }
 
+#ifdef HAVE_SIGSET_T
    if (setsigmask) {
         sigset_t set;
         if (!_Py_Sigset_Converter(setsigmask, &set)) {
@@ -5955,6 +5956,13 @@ parse_posix_spawn_flags(PyObject *module, const char *func_name, PyObject *setpg
         }
         all_flags |= POSIX_SPAWN_SETSIGDEF;
     }
+#else
+    if (setsigmask || setsigdef) {
+        PyErr_SetString(PyExc_NotImplementedError,
+                        "sigset is not supported on this platform");
+        goto fail;
+    }
+#endif
 
     if (scheduler) {
 #ifdef POSIX_SPAWN_SETSCHEDULER
@@ -10062,9 +10070,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 711ac686934b0285282c0c43c90ec7828652800c..5452ffbf17acfc227f4daa6a651a8616d3bee6a2 100644 (file)
@@ -23,9 +23,7 @@ PyAPI_FUNC(int) _Py_Gid_Converter(PyObject *, gid_t *);
 # define HAVE_SIGSET_T
 #endif
 
-#ifdef HAVE_SIGSET_T
 PyAPI_FUNC(int) _Py_Sigset_Converter(PyObject *, void *);
-#endif /* HAVE_SIGSET_T */
 #endif /* Py_LIMITED_API */
 
 #ifdef __cplusplus
index ec684638ead1182e6839fd9980d9474ca8623aae..b3d9bdda7e7ac5bafad38ef5f1ba11b60b0874bb 100644 (file)
@@ -1204,10 +1204,10 @@ static void
 xmlparse_dealloc(xmlparseobject *self)
 {
     PyObject_GC_UnTrack(self);
+    (void)xmlparse_clear(self);
     if (self->itself != NULL)
         XML_ParserFree(self->itself);
     self->itself = NULL;
-    (void)xmlparse_clear(self);
 
     if (self->handlers != NULL) {
         PyMem_Free(self->handlers);
index 6980051dc08f8ad437822ec483bcee7539cdf95b..d186aa460a07b1986a088650c26f5edcb53cef13 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 a4eeec9807c919525c0a1b20a31dfcf39f92ef6b..96881d4a49f105c3885de66acdfa0ca36a35686a 100644 (file)
@@ -58,6 +58,8 @@ module signal
 [clinic start generated code]*/
 /*[clinic end generated code: output=da39a3ee5e6b4b0d input=b0301a3bde5fe9d3]*/
 
+#ifdef HAVE_SETSIG_T
+
 /*[python input]
 
 class sigset_t_converter(CConverter):
@@ -66,6 +68,7 @@ class sigset_t_converter(CConverter):
 
 [python start generated code]*/
 /*[python end generated code: output=da39a3ee5e6b4b0d input=b5689d14466b6823]*/
+#endif
 
 /*
    NOTES ON THE INTERACTION BETWEEN SIGNALS AND THREADS
@@ -930,6 +933,7 @@ signal_getitimer_impl(PyObject *module, int which)
 #endif // HAVE_GETITIMER
 
 
+#ifdef HAVE_SIGSET_T
 #if defined(PYPTHREAD_SIGMASK) || defined(HAVE_SIGPENDING)
 static PyObject*
 sigset_to_set(sigset_t mask)
@@ -1061,9 +1065,9 @@ signal_sigwait_impl(PyObject *module, sigset_t sigset)
 }
 
 #endif   /* #ifdef HAVE_SIGWAIT */
+#endif   /* #ifdef HAVE_SIGSET_T */
 
-
-#if defined(HAVE_SIGFILLSET) || defined(MS_WINDOWS)
+#if (defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)
 
 /*[clinic input]
 signal.valid_signals
@@ -1101,7 +1105,8 @@ signal_valid_signals_impl(PyObject *module)
 #endif
 }
 
-#endif   /* #if defined(HAVE_SIGFILLSET) || defined(MS_WINDOWS) */
+#endif   /* #if (defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS) */
+
 
 
 #if defined(HAVE_SIGWAITINFO) || defined(HAVE_SIGTIMEDWAIT)
@@ -1166,6 +1171,7 @@ fill_siginfo(siginfo_t *si)
 }
 #endif
 
+#ifdef HAVE_SIGSET_T
 #ifdef HAVE_SIGWAITINFO
 
 /*[clinic input]
@@ -1268,6 +1274,7 @@ signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
 }
 
 #endif   /* #ifdef HAVE_SIGTIMEDWAIT */
+#endif   /* #ifdef HAVE_SIGSET_T */
 
 
 #if defined(HAVE_PTHREAD_KILL)
@@ -1594,7 +1601,7 @@ signal_get_set_handlers(signal_state_t *state, PyObject *mod_dict)
         Py_XDECREF(old_func);
     }
 
-    // Instal Python SIGINT handler which raises KeyboardInterrupt
+    // Install Python SIGINT handler which raises KeyboardInterrupt
     PyObject* sigint_func = get_handler(SIGINT);
     if (sigint_func == state->default_handler) {
         PyObject *int_handler = PyMapping_GetItemString(mod_dict,
index 898ec05ab7b1d958c880698065ead0e0ffb9cee8..ab8618b341544756dba217255556941f66b43366 100644 (file)
@@ -927,7 +927,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;
         }
 
@@ -1513,10 +1513,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 */
@@ -2207,13 +2207,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,
@@ -2241,8 +2241,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 bc4ff608e81b381741025fdd67268f072f32fb75..a6940f2fd43a3fc3bc1984c69b5145234896a477 100644 (file)
@@ -82,7 +82,7 @@ typedef struct {
     Bytef *next_posi;
 } _Uint32Window;
 
-/* Initialize the buffer with an inital buffer size.
+/* Initialize the buffer with an initial buffer size.
 
    On success, return value >= 0
    On failure, return value < 0 */
@@ -1266,12 +1266,13 @@ zlib_Decompress_flush_impl(compobject *self, PyTypeObject *cls,
         return NULL;
     }
 
+    ENTER_ZLIB(self);
+
     if (PyObject_GetBuffer(self->unconsumed_tail, &data, PyBUF_SIMPLE) == -1) {
+        LEAVE_ZLIB(self);
         return NULL;
     }
 
-    ENTER_ZLIB(self);
-
     self->zst.next_in = data.buf;
     ibuflen = data.len;
 
index c056c6698850c9ac0dcfdd31f90d94f9db8dcb71..3ac85544defbdd0d5ee5fdbcd1c71c28b6def717 100644 (file)
@@ -2557,14 +2557,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 57a9607d10c31ae1913dec1d4f56a6f7b90f8318..97669bef368da8ad60eb04ae923435df82751f3d 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,12 @@ 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) {
+        return Py_NewRef(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 +155,12 @@ 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) {
+        return Py_NewRef(descr);
+    }
+    if (descr_check((PyDescrObject *)descr, obj) < 0) {
+        return NULL;
+    }
 
     if (descr->d_member->flags & PY_AUDIT_READ) {
         if (PySys_Audit("object.__getattr__", "Os",
@@ -177,10 +175,12 @@ 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) {
+        return Py_NewRef(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 +193,17 @@ 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) {
+        return Py_NewRef(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 +213,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 +221,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 +263,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 92faa7c1320237ae7efa5c6240a017e5b643e0ba..e4ce7e74d2c57fc24b1368de50c198cbdcd1bc26 100644 (file)
@@ -2350,7 +2350,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 aa973016aefeacc4bd496b5e79c10837c53da88f..d02cf9d3ba9f0689b329c5136d210d5296356fd4 100644 (file)
@@ -46,7 +46,7 @@ PyFrame_GetLineNumber(PyFrameObject *f)
         return f->f_lineno;
     }
     else {
-        return PyCode_Addr2Line(f->f_code, f->f_lasti*2);
+        return PyCode_Addr2Line(f->f_code, f->f_lasti*sizeof(_Py_CODEUNIT));
     }
 }
 
@@ -68,7 +68,7 @@ frame_getlasti(PyFrameObject *f, void *closure)
     if (f->f_lasti < 0) {
         return PyLong_FromLong(-1);
     }
-    return PyLong_FromLong(f->f_lasti*2);
+    return PyLong_FromLong(f->f_lasti*sizeof(_Py_CODEUNIT));
 }
 
 
@@ -275,8 +275,8 @@ marklines(PyCodeObject *code, int len)
     }
 
     while (PyLineTable_NextAddressRange(&bounds)) {
-        assert(bounds.ar_start/2 < len);
-        linestarts[bounds.ar_start/2] = bounds.ar_line;
+        assert(bounds.ar_start/(int)sizeof(_Py_CODEUNIT) < len);
+        linestarts[bounds.ar_start/sizeof(_Py_CODEUNIT)] = bounds.ar_line;
     }
     return linestarts;
 }
index 38b68e410c443c3ec344058bb58908c4c880ecd3..dbe5d89b7396296f845ffa578ab0410e894fed43 100644 (file)
@@ -418,6 +418,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,
 };
 
index 898cbc20c5f81c3d36b4acdbe82d43c6f932be17..533ee7436d31133e3ba3be94eb268560f18926fb 100644 (file)
@@ -2024,7 +2024,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 1e06bee5c50ff1164c04c720cd217d9d64098a54..615703a963ede62e56879255248602196eaeacac 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.
  *
@@ -1328,7 +1328,7 @@ _Py_GetAllocatedBlocks(void)
 
 #define MAP_TOP_BITS INTERIOR_BITS
 #define MAP_TOP_LENGTH (1 << MAP_TOP_BITS)
-#define MAP_TOP_MASK (MAP_BOT_LENGTH - 1)
+#define MAP_TOP_MASK (MAP_TOP_LENGTH - 1)
 
 #define MAP_MID_BITS INTERIOR_BITS
 #define MAP_MID_LENGTH (1 << MAP_MID_BITS)
index caff85c9e38939e56ae62012b3798b4cb754095e..6524963b8abc371bc49c50e4b7aaf7c0ab81bc1d 100644 (file)
@@ -16,7 +16,7 @@
    reduces the cost of hash collisions because consecutive memory accesses
    tend to be much cheaper than scattered probes.  After LINEAR_PROBES steps,
    we then use more of the upper bits from the hash value and apply a simple
-   linear congruential random number genearator.  This helps break-up long
+   linear congruential random number generator.  This helps break-up long
    chains of collisions.
 
    All arithmetic on hash should ignore overflow.
@@ -1407,7 +1407,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 a689da052daf84334d44976cafa7cebb0dd529a7..02046e5f2ebefe4055ed48d08df6a161efa90db8 100644 (file)
@@ -3617,6 +3617,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)
 {
@@ -4213,10 +4221,8 @@ static PyMethodDef type_methods[] = {
 };
 
 PyDoc_STRVAR(type_doc,
-/* this text signature cannot be accurate yet.  will fix.  --larry */
-"type(object_or_name, bases, dict)\n"
 "type(object) -> the object's type\n"
-"type(name, bases, dict) -> a new type");
+"type(name, bases, dict, **kwds) -> a new type");
 
 static int
 type_traverse(PyTypeObject *type, visitproc visit, void *arg)
index 849dd5cfe2f10bf1bcd2e513bd1b66a432e8d144..c72871074b3ebd190a12fa7e6f74fd32db462256 100644 (file)
@@ -6408,9 +6408,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;
@@ -6423,6 +6424,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
@@ -6441,8 +6445,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)                                                  \
@@ -6469,11 +6471,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++;
 
@@ -6527,7 +6529,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') {
@@ -6540,12 +6545,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) {
@@ -6572,14 +6574,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 */
@@ -6605,8 +6613,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,
@@ -6633,12 +6646,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;
@@ -6653,6 +6668,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 *
@@ -6791,9 +6814,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;
@@ -6802,6 +6826,9 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s,
     PyObject *exc = NULL;
 
     if (size == 0) {
+        if (consumed) {
+            *consumed = 0;
+        }
         _Py_RETURN_UNICODE_EMPTY();
     }
 
@@ -6820,8 +6847,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)                                                        \
@@ -6836,11 +6861,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;
@@ -6856,10 +6891,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') {
@@ -6872,18 +6909,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,
@@ -6905,7 +6947,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);
 }
 
 
@@ -7473,7 +7522,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)
@@ -16149,7 +16198,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 603a1eb13c4ff016c7406853ab717149965dc5d2..7c0eeab5dbab4a36ee5957ac764c6dc026a45158 100644 (file)
@@ -91,7 +91,6 @@
 
 #include <windows.h>
 #include <pathcch.h>
-#include <shlwapi.h>
 
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
@@ -332,7 +331,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 f5b225ac08cfe109a0e7d5e62c22682db1b5a895..734e7533398b149409d2ea4d9a51a6c908b825ab 100644 (file)
@@ -344,7 +344,7 @@ _locate_pythons_for_key(HKEY root, LPCWSTR subkey, REGSAM flags, int bits,
                     }
                     else if (attrs & FILE_ATTRIBUTE_DIRECTORY) {
                         debug(L"locate_pythons_for_key: '%ls' is a directory\n",
-                              ip->executable, attrs);
+                              ip->executable);
                     }
                     else if (find_existing_python(ip->executable)) {
                         debug(L"locate_pythons_for_key: %ls: already found\n",
@@ -542,8 +542,17 @@ find_python_by_version(wchar_t const * wanted_ver)
     }
     for (i = 0; i < num_installed_pythons; i++, ip++) {
         n = wcslen(ip->version);
-        if (n > wlen)
+        /*
+         * If wlen is greater than 1, we're probably trying to find a specific
+         * version and thus want an exact match: 3.1 != 3.10.  Otherwise, we
+         * just want a prefix match.
+         */
+        if ((wlen > 1) && (n != wlen)) {
+            continue;
+        }
+        if (n > wlen) {
             n = wlen;
+        }
         if ((wcsncmp(ip->version, wanted_ver, n) == 0) &&
             /* bits == 0 => don't care */
             ((bits == 0) || (ip->bits == bits))) {
index 747c97a00699dd70d5a4c3afac41676e44d7988a..15119b02a802a7bdc7f37c6eab8ca4b36396c358 100644 (file)
@@ -430,7 +430,7 @@ def get_appxmanifest(ns):
         ["python", "python{}".format(VER_MAJOR), "python{}".format(VER_DOT)],
         PYTHON_VE_DATA,
         "console",
-        ("python.file", [".py"], '"%1"', "Python File", PY_PNG),
+        ("python.file", [".py"], '"%1" %*', "Python File", PY_PNG),
     )
 
     add_application(
@@ -441,7 +441,7 @@ def get_appxmanifest(ns):
         ["pythonw", "pythonw{}".format(VER_MAJOR), "pythonw{}".format(VER_DOT)],
         PYTHONW_VE_DATA,
         "windows",
-        ("python.windowedfile", [".pyw"], '"%1"', "Python File (no console)", PY_PNG),
+        ("python.windowedfile", [".pyw"], '"%1" %*', "Python File (no console)", PY_PNG),
     )
 
     if ns.include_pip and ns.include_launchers:
index 92987af7138dd38c0a32dc52115794c48bde2cee..ff7e71e0fdb4e1d52e3892dff1dfc802e85eedc0 100644 (file)
@@ -2,9 +2,13 @@
 
 #include "python_ver_rc.h"
 
+#ifndef RT_MANIFEST
+// bpo-45220: Cannot reliably #include RT_MANIFEST from
+// anywhere, so we hardcode it
+#define RT_MANIFEST 24
+#endif
 // 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..af797ce95d5077e36a79f09dc6f1510ebdec6ab7 100644 (file)
@@ -2,9 +2,14 @@
 
 #include "python_ver_rc.h"
 
+#ifndef RT_MANIFEST
+// bpo-45220: Cannot reliably #include RT_MANIFEST from
+// anywhere, so we hardcode it
+#define RT_MANIFEST 24
+#endif
+
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 1 RT_MANIFEST "python.manifest"
 
 /////////////////////////////////////////////////////////////////////////////
index ae0b029b8070a44c23a9da1b860f2bc888119158..c3d3bff019895e90ef64b289342720b63799f2e6 100644 (file)
@@ -2,9 +2,14 @@
 
 #include "python_ver_rc.h"
 
+#ifndef RT_MANIFEST
+// bpo-45220: Cannot reliably #include RT_MANIFEST from
+// anywhere, so we hardcode it
+#define RT_MANIFEST 24
+#endif
+
 // 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..ae64fbd217af740254c79528f4a55ecab79c9b2e 100644 (file)
@@ -2,9 +2,14 @@
 
 #include "python_ver_rc.h"
 
+#ifndef RT_MANIFEST
+// bpo-45220: Cannot reliably #include RT_MANIFEST from
+// anywhere, so we hardcode it
+#define RT_MANIFEST 24
+#endif
+
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 2 RT_MANIFEST "python.manifest"
 
 /////////////////////////////////////////////////////////////////////////////
index 88bf3592e18124bf6b7bbe19449ddce13cc4736c..38570b74fa3e0204cbee99df4e702556d4f5dde0 100644 (file)
@@ -2,9 +2,14 @@
 
 #include "python_ver_rc.h"
 
+#ifndef RT_MANIFEST
+// bpo-45220: Cannot reliably #include RT_MANIFEST from
+// anywhere, so we hardcode it
+#define RT_MANIFEST 24
+#endif
+
 // 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..9ae2aa0f6f2f2cc1a0d3331d979fd8feb6c51d52 100644 (file)
@@ -2,9 +2,14 @@
 
 #include <winver.h>
 
+#ifndef RT_MANIFEST
+// bpo-45220: Cannot reliably #include RT_MANIFEST from
+// anywhere, so we hardcode it
+#define RT_MANIFEST 24
+#endif
+
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 2 RT_MANIFEST "python.manifest"
 
 /////////////////////////////////////////////////////////////////////////////
diff --git a/PCbuild/Directory.Build.props b/PCbuild/Directory.Build.props
new file mode 100644 (file)
index 0000000..4464f46
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <!-- This is intentionally left blank but exists to avoid being imported from some directory above -->\r
+</Project>\r
diff --git a/PCbuild/Directory.Build.targets b/PCbuild/Directory.Build.targets
new file mode 100644 (file)
index 0000000..3d2fe55
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- This is intentionally left blank but exists to avoid being imported from some directory above -->
+</Project>
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 62e92a991ce0de2af50b89f468d7c20c40881c0b..9dd08669588a7e27d1d374b7ef2bbddf35bd3283 100644 (file)
@@ -55,8 +55,8 @@ set libraries=%libraries%                                       bzip2-1.0.6
 if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries%  libffi-3.3.0\r
 if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries%     openssl-1.1.1l\r
 set libraries=%libraries%                                       sqlite-3.35.5.0\r
-if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.11.0\r
-if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.11.0\r
+if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.12.0\r
+if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.12.0\r
 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tix-8.4.3.6\r
 set libraries=%libraries%                                       xz-5.2.2\r
 set libraries=%libraries%                                       zlib-1.2.11\r
@@ -78,7 +78,7 @@ echo.Fetching external binaries...
 set binaries=\r
 if NOT "%IncludeLibffi%"=="false"  set binaries=%binaries% libffi-3.3.0\r
 if NOT "%IncludeSSL%"=="false"     set binaries=%binaries% openssl-bin-1.1.1l\r
-if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.11.0\r
+if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.12.0\r
 if NOT "%IncludeSSLSrc%"=="false"  set binaries=%binaries% nasm-2.11.06\r
 \r
 for %%b in (%binaries%) do (\r
index eba4d7591568dd3063a882eebb610cea7d95ff55..c826ffa080c504f7acbf15bb0e2cc48c371c7d4d 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 733e64bc9ebd103ae9bf105521456754ab6a661a..540903029e28fd786678962b9633c29b8b416964 100644 (file)
@@ -11,8 +11,8 @@
 \r
     We set BasePlatformToolset for ICC's benefit, it's otherwise ignored.\r
     -->\r
-    <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and ('$(MSBuildToolsVersion)' == '17.0' or '$(VisualStudioVersion)' == '17.0')">v142</BasePlatformToolset>\r
-    <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and ('$(MSBuildToolsVersion)' == '16.0' or '$(VisualStudioVersion)' == '16.0')">v142</BasePlatformToolset>\r
+    <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VisualStudioVersion)' == '17.0'">v142</BasePlatformToolset>\r
+    <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VisualStudioVersion)' == '16.0'">v142</BasePlatformToolset>\r
     <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and ('$(MSBuildToolsVersion)' == '15.0' or '$(VisualStudioVersion)' == '15.0')">v141</BasePlatformToolset>\r
     <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath14)' != ''">v140</BasePlatformToolset>\r
     <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath12)' != ''">v120</BasePlatformToolset>\r
index 3d3da704117fc991496911dc9b6007334adb17dc..9bb129d932ba3ccb33f153b6655851f1a43618b3 100644 (file)
       <PreprocessorDefinitions Condition="$(IncludeExternals)">_Py_HAVE_ZLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>version.lib;shlwapi.lib;ws2_32.lib;pathcch.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>version.lib;ws2_32.lib;pathcch.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
     </Link>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
index e7cd94ff5b843563c9ad6fe958b1a2c47bf15c78..44bb73132376dc78148117946de0f62611c4e28c 100644 (file)
@@ -4,7 +4,7 @@
   <PropertyGroup>\r
     <TclMajorVersion>8</TclMajorVersion>\r
     <TclMinorVersion>6</TclMinorVersion>\r
-    <TclPatchLevel>11</TclPatchLevel>\r
+    <TclPatchLevel>12</TclPatchLevel>\r
     <TclRevision>0</TclRevision>\r
     <TkMajorVersion>$(TclMajorVersion)</TkMajorVersion>\r
     <TkMinorVersion>$(TclMinorVersion)</TkMinorVersion>\r
index 2a437d5281b4308fd83963000b6efe2806512277..67515ecc6f1453dd3a5c3f75ff45d0bf510b9ef4 100644 (file)
@@ -1,4 +1,4 @@
-// @generated by pegen.py from ./Grammar/python.gram
+// @generated by pegen.py from python.gram
 #include "pegen.h"
 
 #if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
@@ -170,7 +170,7 @@ static char *soft_keywords[] = {
 #define star_expression_type 1096
 #define star_named_expressions_type 1097
 #define star_named_expression_type 1098
-#define assigment_expression_type 1099
+#define assignment_expression_type 1099
 #define named_expression_type 1100
 #define annotated_rhs_type 1101
 #define expressions_type 1102
@@ -259,245 +259,245 @@ static char *soft_keywords[] = {
 #define invalid_ann_assign_target_type 1185
 #define invalid_del_stmt_type 1186
 #define invalid_block_type 1187
-#define invalid_primary_type 1188  // Left-recursive
-#define invalid_comprehension_type 1189
-#define invalid_dict_comprehension_type 1190
-#define invalid_parameters_type 1191
-#define invalid_parameters_helper_type 1192
-#define invalid_lambda_parameters_type 1193
-#define invalid_lambda_parameters_helper_type 1194
-#define invalid_star_etc_type 1195
-#define invalid_lambda_star_etc_type 1196
-#define invalid_double_type_comments_type 1197
-#define invalid_with_item_type 1198
-#define invalid_for_target_type 1199
-#define invalid_group_type 1200
-#define invalid_import_from_targets_type 1201
-#define invalid_with_stmt_type 1202
-#define invalid_with_stmt_indent_type 1203
-#define invalid_try_stmt_type 1204
-#define invalid_except_stmt_type 1205
-#define invalid_finally_stmt_type 1206
-#define invalid_except_stmt_indent_type 1207
-#define invalid_match_stmt_type 1208
-#define invalid_case_block_type 1209
-#define invalid_as_pattern_type 1210
-#define invalid_class_pattern_type 1211
-#define invalid_class_argument_pattern_type 1212
-#define invalid_if_stmt_type 1213
-#define invalid_elif_stmt_type 1214
-#define invalid_else_stmt_type 1215
-#define invalid_while_stmt_type 1216
-#define invalid_for_stmt_type 1217
-#define invalid_def_raw_type 1218
-#define invalid_class_def_raw_type 1219
-#define invalid_double_starred_kvpairs_type 1220
-#define invalid_kvpair_type 1221
-#define _loop0_1_type 1222
-#define _loop0_2_type 1223
-#define _loop0_4_type 1224
-#define _gather_3_type 1225
-#define _loop0_6_type 1226
-#define _gather_5_type 1227
-#define _loop0_8_type 1228
-#define _gather_7_type 1229
-#define _loop0_10_type 1230
-#define _gather_9_type 1231
-#define _loop1_11_type 1232
-#define _loop0_13_type 1233
-#define _gather_12_type 1234
-#define _tmp_14_type 1235
-#define _tmp_15_type 1236
-#define _tmp_16_type 1237
-#define _tmp_17_type 1238
-#define _tmp_18_type 1239
-#define _tmp_19_type 1240
-#define _tmp_20_type 1241
-#define _tmp_21_type 1242
-#define _loop1_22_type 1243
-#define _tmp_23_type 1244
-#define _tmp_24_type 1245
-#define _loop0_26_type 1246
-#define _gather_25_type 1247
-#define _loop0_28_type 1248
-#define _gather_27_type 1249
-#define _tmp_29_type 1250
-#define _tmp_30_type 1251
-#define _loop0_31_type 1252
-#define _loop1_32_type 1253
-#define _loop0_34_type 1254
-#define _gather_33_type 1255
-#define _tmp_35_type 1256
-#define _loop0_37_type 1257
-#define _gather_36_type 1258
-#define _tmp_38_type 1259
-#define _loop0_40_type 1260
-#define _gather_39_type 1261
-#define _loop0_42_type 1262
-#define _gather_41_type 1263
-#define _loop0_44_type 1264
-#define _gather_43_type 1265
-#define _loop0_46_type 1266
-#define _gather_45_type 1267
-#define _tmp_47_type 1268
-#define _loop1_48_type 1269
-#define _tmp_49_type 1270
-#define _loop1_50_type 1271
-#define _loop0_52_type 1272
-#define _gather_51_type 1273
-#define _tmp_53_type 1274
-#define _tmp_54_type 1275
-#define _tmp_55_type 1276
-#define _tmp_56_type 1277
-#define _loop0_58_type 1278
-#define _gather_57_type 1279
-#define _loop0_60_type 1280
-#define _gather_59_type 1281
-#define _tmp_61_type 1282
-#define _loop0_63_type 1283
-#define _gather_62_type 1284
-#define _loop0_65_type 1285
-#define _gather_64_type 1286
-#define _tmp_66_type 1287
-#define _tmp_67_type 1288
-#define _tmp_68_type 1289
-#define _tmp_69_type 1290
-#define _loop0_70_type 1291
-#define _loop0_71_type 1292
-#define _loop0_72_type 1293
-#define _loop1_73_type 1294
-#define _loop0_74_type 1295
-#define _loop1_75_type 1296
-#define _loop1_76_type 1297
-#define _loop1_77_type 1298
-#define _loop0_78_type 1299
-#define _loop1_79_type 1300
-#define _loop0_80_type 1301
-#define _loop1_81_type 1302
-#define _loop0_82_type 1303
-#define _loop1_83_type 1304
-#define _loop1_84_type 1305
-#define _tmp_85_type 1306
-#define _loop1_86_type 1307
-#define _loop0_88_type 1308
-#define _gather_87_type 1309
-#define _loop1_89_type 1310
-#define _loop0_90_type 1311
-#define _loop0_91_type 1312
-#define _loop0_92_type 1313
-#define _loop1_93_type 1314
-#define _loop0_94_type 1315
-#define _loop1_95_type 1316
-#define _loop1_96_type 1317
-#define _loop1_97_type 1318
-#define _loop0_98_type 1319
-#define _loop1_99_type 1320
-#define _loop0_100_type 1321
-#define _loop1_101_type 1322
-#define _loop0_102_type 1323
-#define _loop1_103_type 1324
-#define _loop1_104_type 1325
-#define _loop1_105_type 1326
-#define _loop1_106_type 1327
-#define _tmp_107_type 1328
-#define _loop0_109_type 1329
-#define _gather_108_type 1330
-#define _tmp_110_type 1331
-#define _tmp_111_type 1332
-#define _tmp_112_type 1333
-#define _tmp_113_type 1334
-#define _loop1_114_type 1335
-#define _tmp_115_type 1336
-#define _tmp_116_type 1337
-#define _tmp_117_type 1338
-#define _loop0_119_type 1339
-#define _gather_118_type 1340
-#define _loop1_120_type 1341
-#define _loop0_121_type 1342
-#define _loop0_122_type 1343
-#define _loop0_124_type 1344
-#define _gather_123_type 1345
-#define _tmp_125_type 1346
-#define _loop0_127_type 1347
-#define _gather_126_type 1348
-#define _loop0_129_type 1349
-#define _gather_128_type 1350
-#define _loop0_131_type 1351
-#define _gather_130_type 1352
-#define _loop0_133_type 1353
-#define _gather_132_type 1354
-#define _loop0_134_type 1355
-#define _loop0_136_type 1356
-#define _gather_135_type 1357
-#define _loop1_137_type 1358
-#define _tmp_138_type 1359
-#define _loop0_140_type 1360
-#define _gather_139_type 1361
-#define _tmp_141_type 1362
-#define _tmp_142_type 1363
-#define _tmp_143_type 1364
-#define _tmp_144_type 1365
-#define _tmp_145_type 1366
-#define _tmp_146_type 1367
-#define _tmp_147_type 1368
-#define _loop0_148_type 1369
-#define _loop0_149_type 1370
-#define _loop0_150_type 1371
-#define _tmp_151_type 1372
-#define _tmp_152_type 1373
-#define _tmp_153_type 1374
-#define _tmp_154_type 1375
-#define _loop0_155_type 1376
-#define _loop1_156_type 1377
-#define _loop0_157_type 1378
-#define _loop1_158_type 1379
-#define _tmp_159_type 1380
-#define _tmp_160_type 1381
-#define _tmp_161_type 1382
-#define _loop0_163_type 1383
-#define _gather_162_type 1384
-#define _loop0_165_type 1385
-#define _gather_164_type 1386
-#define _loop0_167_type 1387
-#define _gather_166_type 1388
-#define _loop0_169_type 1389
-#define _gather_168_type 1390
-#define _tmp_170_type 1391
-#define _tmp_171_type 1392
-#define _tmp_172_type 1393
-#define _tmp_173_type 1394
-#define _tmp_174_type 1395
-#define _tmp_175_type 1396
-#define _tmp_176_type 1397
-#define _loop0_178_type 1398
-#define _gather_177_type 1399
-#define _tmp_179_type 1400
-#define _tmp_180_type 1401
-#define _tmp_181_type 1402
-#define _tmp_182_type 1403
-#define _tmp_183_type 1404
-#define _tmp_184_type 1405
-#define _tmp_185_type 1406
-#define _tmp_186_type 1407
-#define _tmp_187_type 1408
-#define _tmp_188_type 1409
-#define _tmp_189_type 1410
-#define _tmp_190_type 1411
-#define _tmp_191_type 1412
-#define _tmp_192_type 1413
-#define _tmp_193_type 1414
-#define _tmp_194_type 1415
-#define _tmp_195_type 1416
-#define _tmp_196_type 1417
-#define _tmp_197_type 1418
-#define _tmp_198_type 1419
-#define _tmp_199_type 1420
-#define _tmp_200_type 1421
-#define _tmp_201_type 1422
-#define _tmp_202_type 1423
-#define _tmp_203_type 1424
-#define _tmp_204_type 1425
-#define _tmp_205_type 1426
+#define invalid_comprehension_type 1188
+#define invalid_dict_comprehension_type 1189
+#define invalid_parameters_type 1190
+#define invalid_parameters_helper_type 1191
+#define invalid_lambda_parameters_type 1192
+#define invalid_lambda_parameters_helper_type 1193
+#define invalid_star_etc_type 1194
+#define invalid_lambda_star_etc_type 1195
+#define invalid_double_type_comments_type 1196
+#define invalid_with_item_type 1197
+#define invalid_for_target_type 1198
+#define invalid_group_type 1199
+#define invalid_import_from_targets_type 1200
+#define invalid_with_stmt_type 1201
+#define invalid_with_stmt_indent_type 1202
+#define invalid_try_stmt_type 1203
+#define invalid_except_stmt_type 1204
+#define invalid_finally_stmt_type 1205
+#define invalid_except_stmt_indent_type 1206
+#define invalid_match_stmt_type 1207
+#define invalid_case_block_type 1208
+#define invalid_as_pattern_type 1209
+#define invalid_class_pattern_type 1210
+#define invalid_class_argument_pattern_type 1211
+#define invalid_if_stmt_type 1212
+#define invalid_elif_stmt_type 1213
+#define invalid_else_stmt_type 1214
+#define invalid_while_stmt_type 1215
+#define invalid_for_stmt_type 1216
+#define invalid_def_raw_type 1217
+#define invalid_class_def_raw_type 1218
+#define invalid_double_starred_kvpairs_type 1219
+#define invalid_kvpair_type 1220
+#define _loop0_1_type 1221
+#define _loop0_2_type 1222
+#define _loop0_4_type 1223
+#define _gather_3_type 1224
+#define _loop0_6_type 1225
+#define _gather_5_type 1226
+#define _loop0_8_type 1227
+#define _gather_7_type 1228
+#define _loop0_10_type 1229
+#define _gather_9_type 1230
+#define _loop1_11_type 1231
+#define _loop0_13_type 1232
+#define _gather_12_type 1233
+#define _tmp_14_type 1234
+#define _tmp_15_type 1235
+#define _tmp_16_type 1236
+#define _tmp_17_type 1237
+#define _tmp_18_type 1238
+#define _tmp_19_type 1239
+#define _tmp_20_type 1240
+#define _tmp_21_type 1241
+#define _loop1_22_type 1242
+#define _tmp_23_type 1243
+#define _tmp_24_type 1244
+#define _loop0_26_type 1245
+#define _gather_25_type 1246
+#define _loop0_28_type 1247
+#define _gather_27_type 1248
+#define _tmp_29_type 1249
+#define _tmp_30_type 1250
+#define _loop0_31_type 1251
+#define _loop1_32_type 1252
+#define _loop0_34_type 1253
+#define _gather_33_type 1254
+#define _tmp_35_type 1255
+#define _loop0_37_type 1256
+#define _gather_36_type 1257
+#define _tmp_38_type 1258
+#define _loop0_40_type 1259
+#define _gather_39_type 1260
+#define _loop0_42_type 1261
+#define _gather_41_type 1262
+#define _loop0_44_type 1263
+#define _gather_43_type 1264
+#define _loop0_46_type 1265
+#define _gather_45_type 1266
+#define _tmp_47_type 1267
+#define _loop1_48_type 1268
+#define _tmp_49_type 1269
+#define _loop1_50_type 1270
+#define _loop0_52_type 1271
+#define _gather_51_type 1272
+#define _tmp_53_type 1273
+#define _tmp_54_type 1274
+#define _tmp_55_type 1275
+#define _tmp_56_type 1276
+#define _loop0_58_type 1277
+#define _gather_57_type 1278
+#define _loop0_60_type 1279
+#define _gather_59_type 1280
+#define _tmp_61_type 1281
+#define _loop0_63_type 1282
+#define _gather_62_type 1283
+#define _loop0_65_type 1284
+#define _gather_64_type 1285
+#define _tmp_66_type 1286
+#define _tmp_67_type 1287
+#define _tmp_68_type 1288
+#define _tmp_69_type 1289
+#define _loop0_70_type 1290
+#define _loop0_71_type 1291
+#define _loop0_72_type 1292
+#define _loop1_73_type 1293
+#define _loop0_74_type 1294
+#define _loop1_75_type 1295
+#define _loop1_76_type 1296
+#define _loop1_77_type 1297
+#define _loop0_78_type 1298
+#define _loop1_79_type 1299
+#define _loop0_80_type 1300
+#define _loop1_81_type 1301
+#define _loop0_82_type 1302
+#define _loop1_83_type 1303
+#define _loop1_84_type 1304
+#define _tmp_85_type 1305
+#define _loop1_86_type 1306
+#define _loop0_88_type 1307
+#define _gather_87_type 1308
+#define _loop1_89_type 1309
+#define _loop0_90_type 1310
+#define _loop0_91_type 1311
+#define _loop0_92_type 1312
+#define _loop1_93_type 1313
+#define _loop0_94_type 1314
+#define _loop1_95_type 1315
+#define _loop1_96_type 1316
+#define _loop1_97_type 1317
+#define _loop0_98_type 1318
+#define _loop1_99_type 1319
+#define _loop0_100_type 1320
+#define _loop1_101_type 1321
+#define _loop0_102_type 1322
+#define _loop1_103_type 1323
+#define _loop1_104_type 1324
+#define _loop1_105_type 1325
+#define _loop1_106_type 1326
+#define _tmp_107_type 1327
+#define _loop0_109_type 1328
+#define _gather_108_type 1329
+#define _tmp_110_type 1330
+#define _tmp_111_type 1331
+#define _tmp_112_type 1332
+#define _tmp_113_type 1333
+#define _loop1_114_type 1334
+#define _tmp_115_type 1335
+#define _tmp_116_type 1336
+#define _tmp_117_type 1337
+#define _loop0_119_type 1338
+#define _gather_118_type 1339
+#define _loop1_120_type 1340
+#define _loop0_121_type 1341
+#define _loop0_122_type 1342
+#define _loop0_124_type 1343
+#define _gather_123_type 1344
+#define _tmp_125_type 1345
+#define _loop0_127_type 1346
+#define _gather_126_type 1347
+#define _loop0_129_type 1348
+#define _gather_128_type 1349
+#define _loop0_131_type 1350
+#define _gather_130_type 1351
+#define _loop0_133_type 1352
+#define _gather_132_type 1353
+#define _loop0_134_type 1354
+#define _loop0_136_type 1355
+#define _gather_135_type 1356
+#define _loop1_137_type 1357
+#define _tmp_138_type 1358
+#define _loop0_140_type 1359
+#define _gather_139_type 1360
+#define _tmp_141_type 1361
+#define _tmp_142_type 1362
+#define _tmp_143_type 1363
+#define _tmp_144_type 1364
+#define _tmp_145_type 1365
+#define _tmp_146_type 1366
+#define _tmp_147_type 1367
+#define _tmp_148_type 1368
+#define _loop0_149_type 1369
+#define _loop0_150_type 1370
+#define _loop0_151_type 1371
+#define _tmp_152_type 1372
+#define _tmp_153_type 1373
+#define _tmp_154_type 1374
+#define _tmp_155_type 1375
+#define _loop0_156_type 1376
+#define _loop1_157_type 1377
+#define _loop0_158_type 1378
+#define _loop1_159_type 1379
+#define _tmp_160_type 1380
+#define _tmp_161_type 1381
+#define _tmp_162_type 1382
+#define _loop0_164_type 1383
+#define _gather_163_type 1384
+#define _loop0_166_type 1385
+#define _gather_165_type 1386
+#define _loop0_168_type 1387
+#define _gather_167_type 1388
+#define _loop0_170_type 1389
+#define _gather_169_type 1390
+#define _tmp_171_type 1391
+#define _tmp_172_type 1392
+#define _tmp_173_type 1393
+#define _tmp_174_type 1394
+#define _tmp_175_type 1395
+#define _tmp_176_type 1396
+#define _tmp_177_type 1397
+#define _loop0_179_type 1398
+#define _gather_178_type 1399
+#define _tmp_180_type 1400
+#define _tmp_181_type 1401
+#define _tmp_182_type 1402
+#define _tmp_183_type 1403
+#define _tmp_184_type 1404
+#define _tmp_185_type 1405
+#define _tmp_186_type 1406
+#define _tmp_187_type 1407
+#define _tmp_188_type 1408
+#define _tmp_189_type 1409
+#define _tmp_190_type 1410
+#define _tmp_191_type 1411
+#define _tmp_192_type 1412
+#define _tmp_193_type 1413
+#define _tmp_194_type 1414
+#define _tmp_195_type 1415
+#define _tmp_196_type 1416
+#define _tmp_197_type 1417
+#define _tmp_198_type 1418
+#define _tmp_199_type 1419
+#define _tmp_200_type 1420
+#define _tmp_201_type 1421
+#define _tmp_202_type 1422
+#define _tmp_203_type 1423
+#define _tmp_204_type 1424
+#define _tmp_205_type 1425
+#define _tmp_206_type 1426
 
 static mod_ty file_rule(Parser *p);
 static mod_ty interactive_rule(Parser *p);
@@ -598,7 +598,7 @@ static expr_ty star_expressions_rule(Parser *p);
 static expr_ty star_expression_rule(Parser *p);
 static asdl_expr_seq* star_named_expressions_rule(Parser *p);
 static expr_ty star_named_expression_rule(Parser *p);
-static expr_ty assigment_expression_rule(Parser *p);
+static expr_ty assignment_expression_rule(Parser *p);
 static expr_ty named_expression_rule(Parser *p);
 static expr_ty annotated_rhs_rule(Parser *p);
 static expr_ty expressions_rule(Parser *p);
@@ -687,7 +687,6 @@ static void *invalid_assignment_rule(Parser *p);
 static expr_ty invalid_ann_assign_target_rule(Parser *p);
 static void *invalid_del_stmt_rule(Parser *p);
 static void *invalid_block_rule(Parser *p);
-static void *invalid_primary_rule(Parser *p);
 static void *invalid_comprehension_rule(Parser *p);
 static void *invalid_dict_comprehension_rule(Parser *p);
 static void *invalid_parameters_rule(Parser *p);
@@ -868,38 +867,38 @@ static void *_tmp_144_rule(Parser *p);
 static void *_tmp_145_rule(Parser *p);
 static void *_tmp_146_rule(Parser *p);
 static void *_tmp_147_rule(Parser *p);
-static asdl_seq *_loop0_148_rule(Parser *p);
+static void *_tmp_148_rule(Parser *p);
 static asdl_seq *_loop0_149_rule(Parser *p);
 static asdl_seq *_loop0_150_rule(Parser *p);
-static void *_tmp_151_rule(Parser *p);
+static asdl_seq *_loop0_151_rule(Parser *p);
 static void *_tmp_152_rule(Parser *p);
 static void *_tmp_153_rule(Parser *p);
 static void *_tmp_154_rule(Parser *p);
-static asdl_seq *_loop0_155_rule(Parser *p);
-static asdl_seq *_loop1_156_rule(Parser *p);
-static asdl_seq *_loop0_157_rule(Parser *p);
-static asdl_seq *_loop1_158_rule(Parser *p);
-static void *_tmp_159_rule(Parser *p);
+static void *_tmp_155_rule(Parser *p);
+static asdl_seq *_loop0_156_rule(Parser *p);
+static asdl_seq *_loop1_157_rule(Parser *p);
+static asdl_seq *_loop0_158_rule(Parser *p);
+static asdl_seq *_loop1_159_rule(Parser *p);
 static void *_tmp_160_rule(Parser *p);
 static void *_tmp_161_rule(Parser *p);
-static asdl_seq *_loop0_163_rule(Parser *p);
-static asdl_seq *_gather_162_rule(Parser *p);
-static asdl_seq *_loop0_165_rule(Parser *p);
-static asdl_seq *_gather_164_rule(Parser *p);
-static asdl_seq *_loop0_167_rule(Parser *p);
-static asdl_seq *_gather_166_rule(Parser *p);
-static asdl_seq *_loop0_169_rule(Parser *p);
-static asdl_seq *_gather_168_rule(Parser *p);
-static void *_tmp_170_rule(Parser *p);
+static void *_tmp_162_rule(Parser *p);
+static asdl_seq *_loop0_164_rule(Parser *p);
+static asdl_seq *_gather_163_rule(Parser *p);
+static asdl_seq *_loop0_166_rule(Parser *p);
+static asdl_seq *_gather_165_rule(Parser *p);
+static asdl_seq *_loop0_168_rule(Parser *p);
+static asdl_seq *_gather_167_rule(Parser *p);
+static asdl_seq *_loop0_170_rule(Parser *p);
+static asdl_seq *_gather_169_rule(Parser *p);
 static void *_tmp_171_rule(Parser *p);
 static void *_tmp_172_rule(Parser *p);
 static void *_tmp_173_rule(Parser *p);
 static void *_tmp_174_rule(Parser *p);
 static void *_tmp_175_rule(Parser *p);
 static void *_tmp_176_rule(Parser *p);
-static asdl_seq *_loop0_178_rule(Parser *p);
-static asdl_seq *_gather_177_rule(Parser *p);
-static void *_tmp_179_rule(Parser *p);
+static void *_tmp_177_rule(Parser *p);
+static asdl_seq *_loop0_179_rule(Parser *p);
+static asdl_seq *_gather_178_rule(Parser *p);
 static void *_tmp_180_rule(Parser *p);
 static void *_tmp_181_rule(Parser *p);
 static void *_tmp_182_rule(Parser *p);
@@ -926,6 +925,7 @@ static void *_tmp_202_rule(Parser *p);
 static void *_tmp_203_rule(Parser *p);
 static void *_tmp_204_rule(Parser *p);
 static void *_tmp_205_rule(Parser *p);
+static void *_tmp_206_rule(Parser *p);
 
 
 // file: statements? $
@@ -948,7 +948,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'
         )
@@ -1087,7 +1087,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=')'
             &&
@@ -1689,7 +1689,7 @@ simple_stmts_rule(Parser *p)
         if (
             (a = (asdl_stmt_seq*)_gather_12_rule(p))  // ';'.simple_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'
         )
@@ -2309,7 +2309,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]"));
@@ -2351,7 +2351,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]"));
@@ -2392,7 +2392,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?"));
@@ -3047,7 +3047,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]"));
@@ -3433,7 +3433,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=')'
         )
@@ -3602,7 +3602,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]"));
@@ -3705,7 +3705,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]"));
@@ -3943,7 +3943,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?"));
@@ -4081,7 +4081,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?"));
@@ -4237,7 +4237,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?"));
@@ -4339,11 +4339,11 @@ for_stmt_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_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?"));
@@ -4403,11 +4403,11 @@ for_stmt_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_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?"));
@@ -4527,7 +4527,7 @@ with_stmt_rule(Parser *p)
             &&
             (a = (asdl_withitem_seq*)_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=')'
             &&
@@ -4576,7 +4576,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
         )
@@ -4627,7 +4627,7 @@ with_stmt_rule(Parser *p)
             &&
             (a = (asdl_withitem_seq*)_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=')'
             &&
@@ -4679,7 +4679,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
         )
@@ -4931,9 +4931,9 @@ try_stmt_rule(Parser *p)
             &&
             (ex = (asdl_excepthandler_seq*)_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?"));
@@ -5023,7 +5023,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=':'
             &&
@@ -5314,7 +5314,7 @@ subject_expr_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (values = star_named_expressions_rule(p), 1)  // star_named_expressions?
+            (values = star_named_expressions_rule(p), !p->error_indicator)  // star_named_expressions?
         )
         {
             D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
@@ -5410,7 +5410,7 @@ case_block_rule(Parser *p)
             &&
             (pattern = patterns_rule(p))  // patterns
             &&
-            (guard = guard_rule(p), 1)  // guard?
+            (guard = guard_rule(p), !p->error_indicator)  // guard?
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -7163,7 +7163,7 @@ sequence_pattern_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 9))  // token='['
             &&
-            (patterns = maybe_sequence_pattern_rule(p), 1)  // maybe_sequence_pattern?
+            (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator)  // maybe_sequence_pattern?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
         )
@@ -7202,7 +7202,7 @@ sequence_pattern_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (patterns = open_sequence_pattern_rule(p), 1)  // open_sequence_pattern?
+            (patterns = open_sequence_pattern_rule(p), !p->error_indicator)  // open_sequence_pattern?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -7260,7 +7260,7 @@ open_sequence_pattern_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (patterns = maybe_sequence_pattern_rule(p), 1)  // maybe_sequence_pattern?
+            (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator)  // maybe_sequence_pattern?
         )
         {
             D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
@@ -7305,7 +7305,7 @@ maybe_sequence_pattern_rule(Parser *p)
         if (
             (patterns = _gather_57_rule(p))  // ','.maybe_star_pattern+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
@@ -7556,7 +7556,7 @@ mapping_pattern_rule(Parser *p)
             &&
             (rest = double_star_pattern_rule(p))  // double_star_pattern
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
         )
@@ -7605,7 +7605,7 @@ mapping_pattern_rule(Parser *p)
             &&
             (rest = double_star_pattern_rule(p))  // double_star_pattern
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_2 = _PyPegen_expect_token(p, 26))  // token='}'
         )
@@ -7648,7 +7648,7 @@ mapping_pattern_rule(Parser *p)
             &&
             (items = items_pattern_rule(p))  // items_pattern
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
         )
@@ -7891,7 +7891,7 @@ class_pattern_rule(Parser *p)
             &&
             (patterns = positional_patterns_rule(p))  // positional_patterns
             &&
-            (_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=')'
         )
@@ -7937,7 +7937,7 @@ class_pattern_rule(Parser *p)
             &&
             (keywords = keyword_patterns_rule(p))  // keyword_patterns
             &&
-            (_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=')'
         )
@@ -7989,7 +7989,7 @@ class_pattern_rule(Parser *p)
             &&
             (keywords = keyword_patterns_rule(p))  // keyword_patterns
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_2 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -8196,7 +8196,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?"));
@@ -8261,7 +8261,7 @@ raise_stmt_rule(Parser *p)
             &&
             (a = expression_rule(p))  // expression
             &&
-            (b = _tmp_66_rule(p), 1)  // ['from' expression]
+            (b = _tmp_66_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]"));
@@ -8452,15 +8452,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_67_rule(p), 1)  // ['->' expression]
+            (a = _tmp_67_rule(p), !p->error_indicator)  // ['->' expression]
             &&
             (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_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
         )
@@ -8512,15 +8512,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_68_rule(p), 1)  // ['->' expression]
+            (a = _tmp_68_rule(p), !p->error_indicator)  // ['->' expression]
             &&
             (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_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
         )
@@ -8728,7 +8728,7 @@ parameters_rule(Parser *p)
             &&
             (c = _loop0_71_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?"));
@@ -8758,7 +8758,7 @@ parameters_rule(Parser *p)
             &&
             (b = _loop0_72_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?"));
@@ -8788,7 +8788,7 @@ parameters_rule(Parser *p)
             &&
             (b = _loop0_74_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?"));
@@ -8815,7 +8815,7 @@ parameters_rule(Parser *p)
         if (
             (a = _loop1_75_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?"));
@@ -9053,7 +9053,7 @@ star_etc_rule(Parser *p)
             &&
             (b = _loop0_82_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?"));
@@ -9086,7 +9086,7 @@ star_etc_rule(Parser *p)
             &&
             (b = _loop1_83_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?"));
@@ -9220,7 +9220,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?"));
@@ -9247,7 +9247,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=')'
         )
@@ -9299,7 +9299,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?"));
@@ -9329,7 +9329,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=')'
         )
@@ -9379,11 +9379,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?"));
@@ -9411,9 +9411,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=')'
         )
@@ -9468,7 +9468,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?"));
@@ -9746,7 +9746,7 @@ class_def_raw_rule(Parser *p)
             &&
             (a = _PyPegen_name_token(p))  // NAME
             &&
-            (b = _tmp_85_rule(p), 1)  // ['(' arguments? ')']
+            (b = _tmp_85_rule(p), !p->error_indicator)  // ['(' arguments? ')']
             &&
             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
             &&
@@ -9912,7 +9912,7 @@ star_expressions_rule(Parser *p)
             &&
             (b = _loop1_86_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))+ ','?"));
@@ -10107,7 +10107,7 @@ star_named_expressions_rule(Parser *p)
         if (
             (a = (asdl_expr_seq*)_gather_87_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+ ','?"));
@@ -10210,9 +10210,9 @@ star_named_expression_rule(Parser *p)
     return _res;
 }
 
-// assigment_expression: NAME ':=' ~ expression
+// assignment_expression: NAME ':=' ~ expression
 static expr_ty
-assigment_expression_rule(Parser *p)
+assignment_expression_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -10235,7 +10235,7 @@ assigment_expression_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> assigment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
+        D(fprintf(stderr, "%*c> assignment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
         int _cut_var = 0;
         Token * _literal;
         expr_ty a;
@@ -10250,7 +10250,7 @@ assigment_expression_rule(Parser *p)
             (b = expression_rule(p))  // expression
         )
         {
-            D(fprintf(stderr, "%*c+ assigment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
+            D(fprintf(stderr, "%*c+ assignment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
             if (_token == NULL) {
                 D(p->level--);
@@ -10269,7 +10269,7 @@ assigment_expression_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s assigment_expression[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s assignment_expression[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
         if (_cut_var) {
             D(p->level--);
@@ -10282,7 +10282,7 @@ assigment_expression_rule(Parser *p)
     return _res;
 }
 
-// named_expression: assigment_expression | invalid_named_expression | expression !':='
+// named_expression: assignment_expression | invalid_named_expression | expression !':='
 static expr_ty
 named_expression_rule(Parser *p)
 {
@@ -10293,24 +10293,24 @@ named_expression_rule(Parser *p)
     }
     expr_ty _res = NULL;
     int _mark = p->mark;
-    { // assigment_expression
+    { // assignment_expression
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
-        expr_ty assigment_expression_var;
+        D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+        expr_ty assignment_expression_var;
         if (
-            (assigment_expression_var = assigment_expression_rule(p))  // assigment_expression
+            (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
         )
         {
-            D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
-            _res = assigment_expression_var;
+            D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+            _res = assignment_expression_var;
             goto done;
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
     }
     if (p->call_invalid_rules) { // invalid_named_expression
         if (p->error_indicator) {
@@ -10448,7 +10448,7 @@ expressions_rule(Parser *p)
             &&
             (b = _loop1_89_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))+ ','?"));
@@ -10536,6 +10536,7 @@ expressions_rule(Parser *p)
 
 // expression:
 //     | invalid_expression
+//     | invalid_legacy_expression
 //     | disjunction 'if' disjunction 'else' expression
 //     | disjunction
 //     | lambdef
@@ -10581,6 +10582,25 @@ expression_rule(Parser *p)
         D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
     }
+    if (p->call_invalid_rules) { // invalid_legacy_expression
+        if (p->error_indicator) {
+            D(p->level--);
+            return NULL;
+        }
+        D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
+        void *invalid_legacy_expression_var;
+        if (
+            (invalid_legacy_expression_var = invalid_legacy_expression_rule(p))  // invalid_legacy_expression
+        )
+        {
+            D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
+            _res = invalid_legacy_expression_var;
+            goto done;
+        }
+        p->mark = _mark;
+        D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
+    }
     { // disjunction 'if' disjunction 'else' expression
         if (p->error_indicator) {
             D(p->level--);
@@ -10704,7 +10724,7 @@ lambdef_rule(Parser *p)
         if (
             (_keyword = _PyPegen_expect_token(p, 528))  // 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=':'
             &&
@@ -10827,7 +10847,7 @@ lambda_parameters_rule(Parser *p)
             &&
             (c = _loop0_91_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?"));
@@ -10857,7 +10877,7 @@ lambda_parameters_rule(Parser *p)
             &&
             (b = _loop0_92_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?"));
@@ -10887,7 +10907,7 @@ lambda_parameters_rule(Parser *p)
             &&
             (b = _loop0_94_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?"));
@@ -10914,7 +10934,7 @@ lambda_parameters_rule(Parser *p)
         if (
             (a = _loop1_95_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?"));
@@ -11154,7 +11174,7 @@ lambda_star_etc_rule(Parser *p)
             &&
             (b = _loop0_102_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?"));
@@ -11187,7 +11207,7 @@ lambda_star_etc_rule(Parser *p)
             &&
             (b = _loop1_103_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?"));
@@ -11465,7 +11485,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=','
         )
@@ -11494,7 +11514,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=':'
         )
@@ -13857,7 +13877,6 @@ await_primary_rule(Parser *p)
 
 // Left-recursive
 // primary:
-//     | invalid_primary
 //     | primary '.' NAME
 //     | primary genexp
 //     | primary '(' arguments? ')'
@@ -13915,25 +13934,6 @@ primary_raw(Parser *p)
     UNUSED(_start_lineno); // Only used by EXTRA macro
     int _start_col_offset = p->tokens[_mark]->col_offset;
     UNUSED(_start_col_offset); // Only used by EXTRA macro
-    if (p->call_invalid_rules) { // invalid_primary
-        if (p->error_indicator) {
-            D(p->level--);
-            return NULL;
-        }
-        D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
-        void *invalid_primary_var;
-        if (
-            (invalid_primary_var = invalid_primary_rule(p))  // invalid_primary
-        )
-        {
-            D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
-            _res = invalid_primary_var;
-            goto done;
-        }
-        p->mark = _mark;
-        D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
-    }
     { // primary '.' NAME
         if (p->error_indicator) {
             D(p->level--);
@@ -14024,7 +14024,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=')'
         )
@@ -14176,7 +14176,7 @@ slices_rule(Parser *p)
         if (
             (a = (asdl_expr_seq*)_gather_108_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+ ','?"));
@@ -14238,13 +14238,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_110_rule(p), 1)  // [':' expression?]
+            (c = _tmp_110_rule(p), !p->error_indicator)  // [':' expression?]
         )
         {
             D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
@@ -14667,7 +14667,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=']'
         )
@@ -14819,7 +14819,7 @@ tuple_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (a = _tmp_115_rule(p), 1)  // [star_named_expression ',' star_named_expressions?]
+            (a = _tmp_115_rule(p), !p->error_indicator)  // [star_named_expression ',' star_named_expressions?]
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -14919,7 +14919,7 @@ group_rule(Parser *p)
 }
 
 // genexp:
-//     | '(' (assigment_expression | expression !':=') for_if_clauses ')'
+//     | '(' (assignment_expression | expression !':=') for_if_clauses ')'
 //     | invalid_comprehension
 static expr_ty
 genexp_rule(Parser *p)
@@ -14940,12 +14940,12 @@ genexp_rule(Parser *p)
     UNUSED(_start_lineno); // Only used by EXTRA macro
     int _start_col_offset = p->tokens[_mark]->col_offset;
     UNUSED(_start_col_offset); // Only used by EXTRA macro
-    { // '(' (assigment_expression | expression !':=') for_if_clauses ')'
+    { // '(' (assignment_expression | expression !':=') for_if_clauses ')'
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
+        D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
         Token * _literal;
         Token * _literal_1;
         void *a;
@@ -14953,14 +14953,14 @@ genexp_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (a = _tmp_117_rule(p))  // assigment_expression | expression !':='
+            (a = _tmp_117_rule(p))  // assignment_expression | expression !':='
             &&
             (b = for_if_clauses_rule(p))  // for_if_clauses
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
         {
-            D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
+            D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
             if (_token == NULL) {
                 D(p->level--);
@@ -14980,7 +14980,7 @@ genexp_rule(Parser *p)
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
     }
     if (p->call_invalid_rules) { // invalid_comprehension
         if (p->error_indicator) {
@@ -15191,7 +15191,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='}'
         )
@@ -15359,7 +15359,7 @@ double_starred_kvpairs_rule(Parser *p)
         if (
             (a = _gather_118_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+ ','?"));
@@ -15730,7 +15730,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?"));
@@ -15788,7 +15788,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=')'
         )
@@ -15833,7 +15833,7 @@ arguments_rule(Parser *p)
 }
 
 // args:
-//     | ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
+//     | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
 //     | kwargs
 static expr_ty
 args_rule(Parser *p)
@@ -15854,21 +15854,21 @@ args_rule(Parser *p)
     UNUSED(_start_lineno); // Only used by EXTRA macro
     int _start_col_offset = p->tokens[_mark]->col_offset;
     UNUSED(_start_col_offset); // Only used by EXTRA macro
-    { // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
+    { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
+        D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
         asdl_expr_seq* a;
         void *b;
         if (
-            (a = (asdl_expr_seq*)_gather_123_rule(p))  // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+
+            (a = (asdl_expr_seq*)_gather_123_rule(p))  // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
             &&
-            (b = _tmp_125_rule(p), 1)  // [',' kwargs]
+            (b = _tmp_125_rule(p), !p->error_indicator)  // [',' kwargs]
         )
         {
-            D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
+            D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
             if (_token == NULL) {
                 D(p->level--);
@@ -15888,7 +15888,7 @@ args_rule(Parser *p)
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
     }
     { // kwargs
         if (p->error_indicator) {
@@ -16368,7 +16368,7 @@ star_targets_rule(Parser *p)
             &&
             (b = _loop0_134_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))* ','?"));
@@ -16422,7 +16422,7 @@ star_targets_list_seq_rule(Parser *p)
         if (
             (a = (asdl_expr_seq*)_gather_135_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+ ','?"));
@@ -16470,7 +16470,7 @@ star_targets_tuple_seq_rule(Parser *p)
             &&
             (b = _loop1_137_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))+ ','?"));
@@ -16833,7 +16833,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=')'
         )
@@ -16872,7 +16872,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=']'
         )
@@ -17131,7 +17131,7 @@ del_targets_rule(Parser *p)
         if (
             (a = (asdl_expr_seq*)_gather_139_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+ ','?"));
@@ -17377,7 +17377,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=')'
         )
@@ -17416,7 +17416,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=']'
         )
@@ -17646,7 +17646,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=')'
             &&
@@ -17846,7 +17846,7 @@ invalid_arguments_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (_opt_var = _tmp_141_rule(p), 1)  // [args | expression for_if_clauses]
+            (_opt_var = _tmp_141_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]"));
@@ -17991,7 +17991,10 @@ invalid_arguments_rule(Parser *p)
     return _res;
 }
 
-// invalid_kwarg: NAME '=' expression for_if_clauses | !(NAME '=') expression '='
+// invalid_kwarg:
+//     | ('True' | 'False' | 'None') '='
+//     | NAME '=' expression for_if_clauses
+//     | !(NAME '=') expression '='
 static void *
 invalid_kwarg_rule(Parser *p)
 {
@@ -18002,6 +18005,33 @@ invalid_kwarg_rule(Parser *p)
     }
     void * _res = NULL;
     int _mark = p->mark;
+    { // ('True' | 'False' | 'None') '='
+        if (p->error_indicator) {
+            D(p->level--);
+            return NULL;
+        }
+        D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
+        Token* a;
+        Token * b;
+        if (
+            (a = (Token*)_tmp_142_rule(p))  // 'True' | 'False' | 'None'
+            &&
+            (b = _PyPegen_expect_token(p, 22))  // token='='
+        )
+        {
+            D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
+            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to %s" , PyBytes_AS_STRING ( a -> bytes ) );
+            if (_res == NULL && PyErr_Occurred()) {
+                p->error_indicator = 1;
+                D(p->level--);
+                return NULL;
+            }
+            goto done;
+        }
+        p->mark = _mark;
+        D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('True' | 'False' | 'None') '='"));
+    }
     { // NAME '=' expression for_if_clauses
         if (p->error_indicator) {
             D(p->level--);
@@ -18044,7 +18074,7 @@ invalid_kwarg_rule(Parser *p)
         expr_ty a;
         Token * b;
         if (
-            _PyPegen_lookahead(0, _tmp_142_rule, p)
+            _PyPegen_lookahead(0, _tmp_143_rule, p)
             &&
             (a = expression_rule(p))  // expression
             &&
@@ -18229,7 +18259,6 @@ invalid_legacy_expression_rule(Parser *p)
 }
 
 // invalid_expression:
-//     | invalid_legacy_expression
 //     | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
 //     | disjunction 'if' disjunction !('else' | ':')
 static void *
@@ -18242,25 +18271,6 @@ invalid_expression_rule(Parser *p)
     }
     void * _res = NULL;
     int _mark = p->mark;
-    if (p->call_invalid_rules) { // invalid_legacy_expression
-        if (p->error_indicator) {
-            D(p->level--);
-            return NULL;
-        }
-        D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
-        void *invalid_legacy_expression_var;
-        if (
-            (invalid_legacy_expression_var = invalid_legacy_expression_rule(p))  // invalid_legacy_expression
-        )
-        {
-            D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
-            _res = invalid_legacy_expression_var;
-            goto done;
-        }
-        p->mark = _mark;
-        D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
-    }
     { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
         if (p->error_indicator) {
             D(p->level--);
@@ -18270,7 +18280,7 @@ invalid_expression_rule(Parser *p)
         expr_ty a;
         expr_ty b;
         if (
-            _PyPegen_lookahead(0, _tmp_143_rule, p)
+            _PyPegen_lookahead(0, _tmp_144_rule, p)
             &&
             (a = disjunction_rule(p))  // disjunction
             &&
@@ -18278,7 +18288,7 @@ invalid_expression_rule(Parser *p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
-            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
+            _res = _PyPegen_check_legacy_stmt ( p , a ) ? NULL : p -> tokens [ p -> mark - 1 ] -> level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
                 D(p->level--);
@@ -18306,7 +18316,7 @@ invalid_expression_rule(Parser *p)
             &&
             (b = disjunction_rule(p))  // disjunction
             &&
-            _PyPegen_lookahead(0, _tmp_144_rule, p)
+            _PyPegen_lookahead(0, _tmp_145_rule, p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
@@ -18388,7 +18398,7 @@ invalid_named_expression_rule(Parser *p)
             &&
             (b = bitwise_or_rule(p))  // bitwise_or
             &&
-            _PyPegen_lookahead(0, _tmp_145_rule, p)
+            _PyPegen_lookahead(0, _tmp_146_rule, p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
@@ -18414,7 +18424,7 @@ invalid_named_expression_rule(Parser *p)
         Token * b;
         expr_ty bitwise_or_var;
         if (
-            _PyPegen_lookahead(0, _tmp_146_rule, p)
+            _PyPegen_lookahead(0, _tmp_147_rule, p)
             &&
             (a = bitwise_or_rule(p))  // bitwise_or
             &&
@@ -18422,7 +18432,7 @@ invalid_named_expression_rule(Parser *p)
             &&
             (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
             &&
-            _PyPegen_lookahead(0, _tmp_147_rule, p)
+            _PyPegen_lookahead(0, _tmp_148_rule, p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
@@ -18499,7 +18509,7 @@ invalid_assignment_rule(Parser *p)
         D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
         Token * _literal;
         Token * _literal_1;
-        asdl_seq * _loop0_148_var;
+        asdl_seq * _loop0_149_var;
         expr_ty a;
         expr_ty expression_var;
         if (
@@ -18507,7 +18517,7 @@ invalid_assignment_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (_loop0_148_var = _loop0_148_rule(p))  // star_named_expressions*
+            (_loop0_149_var = _loop0_149_rule(p))  // star_named_expressions*
             &&
             (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -18564,10 +18574,10 @@ invalid_assignment_rule(Parser *p)
         }
         D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
         Token * _literal;
-        asdl_seq * _loop0_149_var;
+        asdl_seq * _loop0_150_var;
         expr_ty a;
         if (
-            (_loop0_149_var = _loop0_149_rule(p))  // ((star_targets '='))*
+            (_loop0_150_var = _loop0_150_rule(p))  // ((star_targets '='))*
             &&
             (a = star_expressions_rule(p))  // star_expressions
             &&
@@ -18594,10 +18604,10 @@ invalid_assignment_rule(Parser *p)
         }
         D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
         Token * _literal;
-        asdl_seq * _loop0_150_var;
+        asdl_seq * _loop0_151_var;
         expr_ty a;
         if (
-            (_loop0_150_var = _loop0_150_rule(p))  // ((star_targets '='))*
+            (_loop0_151_var = _loop0_151_rule(p))  // ((star_targets '='))*
             &&
             (a = yield_expr_rule(p))  // yield_expr
             &&
@@ -18623,7 +18633,7 @@ invalid_assignment_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
-        void *_tmp_151_var;
+        void *_tmp_152_var;
         expr_ty a;
         AugOperator* augassign_var;
         if (
@@ -18631,7 +18641,7 @@ invalid_assignment_rule(Parser *p)
             &&
             (augassign_var = augassign_rule(p))  // augassign
             &&
-            (_tmp_151_var = _tmp_151_rule(p))  // yield_expr | star_expressions
+            (_tmp_152_var = _tmp_152_rule(p))  // yield_expr | star_expressions
         )
         {
             D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
@@ -18825,51 +18835,6 @@ invalid_block_rule(Parser *p)
     return _res;
 }
 
-// Left-recursive
-// invalid_primary: primary '{'
-static void *
-invalid_primary_rule(Parser *p)
-{
-    D(p->level++);
-    if (p->error_indicator) {
-        D(p->level--);
-        return NULL;
-    }
-    void * _res = NULL;
-    int _mark = p->mark;
-    { // primary '{'
-        if (p->error_indicator) {
-            D(p->level--);
-            return NULL;
-        }
-        D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
-        Token * a;
-        expr_ty primary_var;
-        if (
-            (primary_var = primary_rule(p))  // primary
-            &&
-            (a = _PyPegen_expect_token(p, 25))  // token='{'
-        )
-        {
-            D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
-            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
-            if (_res == NULL && PyErr_Occurred()) {
-                p->error_indicator = 1;
-                D(p->level--);
-                return NULL;
-            }
-            goto done;
-        }
-        p->mark = _mark;
-        D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
-    }
-    _res = NULL;
-  done:
-    D(p->level--);
-    return _res;
-}
-
 // invalid_comprehension:
 //     | ('[' | '(' | '{') starred_expression for_if_clauses
 //     | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
@@ -18890,11 +18855,11 @@ invalid_comprehension_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
-        void *_tmp_152_var;
+        void *_tmp_153_var;
         expr_ty a;
         asdl_comprehension_seq* for_if_clauses_var;
         if (
-            (_tmp_152_var = _tmp_152_rule(p))  // '[' | '(' | '{'
+            (_tmp_153_var = _tmp_153_rule(p))  // '[' | '(' | '{'
             &&
             (a = starred_expression_rule(p))  // starred_expression
             &&
@@ -18921,12 +18886,12 @@ invalid_comprehension_rule(Parser *p)
         }
         D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
         Token * _literal;
-        void *_tmp_153_var;
+        void *_tmp_154_var;
         expr_ty a;
         asdl_expr_seq* b;
         asdl_comprehension_seq* for_if_clauses_var;
         if (
-            (_tmp_153_var = _tmp_153_rule(p))  // '[' | '{'
+            (_tmp_154_var = _tmp_154_rule(p))  // '[' | '{'
             &&
             (a = star_named_expression_rule(p))  // star_named_expression
             &&
@@ -18956,12 +18921,12 @@ invalid_comprehension_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
-        void *_tmp_154_var;
+        void *_tmp_155_var;
         expr_ty a;
         Token * b;
         asdl_comprehension_seq* for_if_clauses_var;
         if (
-            (_tmp_154_var = _tmp_154_rule(p))  // '[' | '{'
+            (_tmp_155_var = _tmp_155_rule(p))  // '[' | '{'
             &&
             (a = star_named_expression_rule(p))  // star_named_expression
             &&
@@ -19059,11 +19024,11 @@ invalid_parameters_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
-        asdl_seq * _loop0_155_var;
+        asdl_seq * _loop0_156_var;
         arg_ty a;
         void *invalid_parameters_helper_var;
         if (
-            (_loop0_155_var = _loop0_155_rule(p))  // param_no_default*
+            (_loop0_156_var = _loop0_156_rule(p))  // param_no_default*
             &&
             (invalid_parameters_helper_var = invalid_parameters_helper_rule(p))  // invalid_parameters_helper
             &&
@@ -19130,13 +19095,13 @@ invalid_parameters_helper_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
-        asdl_seq * _loop1_156_var;
+        asdl_seq * _loop1_157_var;
         if (
-            (_loop1_156_var = _loop1_156_rule(p))  // param_with_default+
+            (_loop1_157_var = _loop1_157_rule(p))  // param_with_default+
         )
         {
             D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
-            _res = _loop1_156_var;
+            _res = _loop1_157_var;
             goto done;
         }
         p->mark = _mark;
@@ -19167,11 +19132,11 @@ invalid_lambda_parameters_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
-        asdl_seq * _loop0_157_var;
+        asdl_seq * _loop0_158_var;
         arg_ty a;
         void *invalid_lambda_parameters_helper_var;
         if (
-            (_loop0_157_var = _loop0_157_rule(p))  // lambda_param_no_default*
+            (_loop0_158_var = _loop0_158_rule(p))  // lambda_param_no_default*
             &&
             (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p))  // invalid_lambda_parameters_helper
             &&
@@ -19240,13 +19205,13 @@ invalid_lambda_parameters_helper_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
-        asdl_seq * _loop1_158_var;
+        asdl_seq * _loop1_159_var;
         if (
-            (_loop1_158_var = _loop1_158_rule(p))  // lambda_param_with_default+
+            (_loop1_159_var = _loop1_159_rule(p))  // lambda_param_with_default+
         )
         {
             D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
-            _res = _loop1_158_var;
+            _res = _loop1_159_var;
             goto done;
         }
         p->mark = _mark;
@@ -19276,12 +19241,12 @@ invalid_star_etc_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
-        void *_tmp_159_var;
+        void *_tmp_160_var;
         Token * a;
         if (
             (a = _PyPegen_expect_token(p, 16))  // token='*'
             &&
-            (_tmp_159_var = _tmp_159_rule(p))  // ')' | ',' (')' | '**')
+            (_tmp_160_var = _tmp_160_rule(p))  // ')' | ',' (')' | '**')
         )
         {
             D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
@@ -19351,11 +19316,11 @@ invalid_lambda_star_etc_rule(Parser *p)
         }
         D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
         Token * _literal;
-        void *_tmp_160_var;
+        void *_tmp_161_var;
         if (
             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
             &&
-            (_tmp_160_var = _tmp_160_rule(p))  // ':' | ',' (':' | '**')
+            (_tmp_161_var = _tmp_161_rule(p))  // ':' | ',' (':' | '**')
         )
         {
             D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
@@ -19457,7 +19422,7 @@ invalid_with_item_rule(Parser *p)
             &&
             (a = expression_rule(p))  // expression
             &&
-            _PyPegen_lookahead(1, _tmp_161_rule, p)
+            _PyPegen_lookahead(1, _tmp_162_rule, p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
@@ -19501,7 +19466,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'
             &&
@@ -19673,23 +19638,23 @@ invalid_with_stmt_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
-        asdl_seq * _gather_162_var;
+        asdl_seq * _gather_163_var;
         Token * _keyword;
         Token * _literal;
         void *_opt_var;
         UNUSED(_opt_var); // Silence compiler warnings
         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, 519))  // token='with'
             &&
-            (_gather_162_var = _gather_162_rule(p))  // ','.(expression ['as' star_target])+
+            (_gather_163_var = _gather_163_rule(p))  // ','.(expression ['as' star_target])+
             &&
             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
         )
         {
             D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
-            _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_162_var, _literal);
+            _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_163_var, _literal);
             goto done;
         }
         p->mark = _mark;
@@ -19702,7 +19667,7 @@ invalid_with_stmt_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
-        asdl_seq * _gather_164_var;
+        asdl_seq * _gather_165_var;
         Token * _keyword;
         Token * _literal;
         Token * _literal_1;
@@ -19712,15 +19677,15 @@ invalid_with_stmt_rule(Parser *p)
         void *_opt_var_1;
         UNUSED(_opt_var_1); // Silence compiler warnings
         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, 519))  // token='with'
             &&
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (_gather_164_var = _gather_164_rule(p))  // ','.(expressions ['as' star_target])+
+            (_gather_165_var = _gather_165_rule(p))  // ','.(expressions ['as' star_target])+
             &&
-            (_opt_var_1 = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
@@ -19728,7 +19693,7 @@ invalid_with_stmt_rule(Parser *p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
-            _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_164_var, _opt_var_1, _literal_1, _literal_2);
+            _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_165_var, _opt_var_1, _literal_1, _literal_2);
             goto done;
         }
         p->mark = _mark;
@@ -19760,18 +19725,18 @@ invalid_with_stmt_indent_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
-        asdl_seq * _gather_166_var;
+        asdl_seq * _gather_167_var;
         Token * _literal;
         void *_opt_var;
         UNUSED(_opt_var); // Silence compiler warnings
         Token * a;
         Token * newline_var;
         if (
-            (_opt_var = _PyPegen_expect_token(p, ASYNC), 1)  // ASYNC?
+            (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
             &&
             (a = _PyPegen_expect_token(p, 519))  // token='with'
             &&
-            (_gather_166_var = _gather_166_rule(p))  // ','.(expression ['as' star_target])+
+            (_gather_167_var = _gather_167_rule(p))  // ','.(expression ['as' star_target])+
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -19799,7 +19764,7 @@ invalid_with_stmt_indent_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
-        asdl_seq * _gather_168_var;
+        asdl_seq * _gather_169_var;
         Token * _literal;
         Token * _literal_1;
         Token * _literal_2;
@@ -19810,15 +19775,15 @@ invalid_with_stmt_indent_rule(Parser *p)
         Token * a;
         Token * newline_var;
         if (
-            (_opt_var = _PyPegen_expect_token(p, ASYNC), 1)  // ASYNC?
+            (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
             &&
             (a = _PyPegen_expect_token(p, 519))  // token='with'
             &&
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (_gather_168_var = _gather_168_rule(p))  // ','.(expressions ['as' star_target])+
+            (_gather_169_var = _gather_169_rule(p))  // ','.(expressions ['as' star_target])+
             &&
-            (_opt_var_1 = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
@@ -19907,7 +19872,7 @@ invalid_try_stmt_rule(Parser *p)
             &&
             (block_var = block_rule(p))  // block
             &&
-            _PyPegen_lookahead(0, _tmp_170_rule, p)
+            _PyPegen_lookahead(0, _tmp_171_rule, p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
@@ -19965,7 +19930,7 @@ invalid_except_stmt_rule(Parser *p)
             &&
             (expressions_var = expressions_rule(p))  // expressions
             &&
-            (_opt_var = _tmp_171_rule(p), 1)  // ['as' NAME]
+            (_opt_var = _tmp_172_rule(p), !p->error_indicator)  // ['as' NAME]
             &&
             (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
         )
@@ -19999,7 +19964,7 @@ invalid_except_stmt_rule(Parser *p)
             &&
             (expression_var = expression_rule(p))  // expression
             &&
-            (_opt_var = _tmp_172_rule(p), 1)  // ['as' NAME]
+            (_opt_var = _tmp_173_rule(p), !p->error_indicator)  // ['as' NAME]
             &&
             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
         )
@@ -20129,7 +20094,7 @@ invalid_except_stmt_indent_rule(Parser *p)
             &&
             (expression_var = expression_rule(p))  // expression
             &&
-            (_opt_var = _tmp_173_rule(p), 1)  // ['as' NAME]
+            (_opt_var = _tmp_174_rule(p), !p->error_indicator)  // ['as' NAME]
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -20300,7 +20265,7 @@ invalid_case_block_rule(Parser *p)
             &&
             (patterns_var = patterns_rule(p))  // patterns
             &&
-            (_opt_var = guard_rule(p), 1)  // guard?
+            (_opt_var = guard_rule(p), !p->error_indicator)  // guard?
             &&
             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11)  // token=':'
         )
@@ -20335,7 +20300,7 @@ invalid_case_block_rule(Parser *p)
             &&
             (patterns_var = patterns_rule(p))  // patterns
             &&
-            (_opt_var = guard_rule(p), 1)  // guard?
+            (_opt_var = guard_rule(p), !p->error_indicator)  // guard?
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -20513,7 +20478,7 @@ invalid_class_argument_pattern_rule(Parser *p)
         asdl_pattern_seq* a;
         asdl_seq* keyword_patterns_var;
         if (
-            (_opt_var = _tmp_174_rule(p), 1)  // [positional_patterns ',']
+            (_opt_var = _tmp_175_rule(p), !p->error_indicator)  // [positional_patterns ',']
             &&
             (keyword_patterns_var = keyword_patterns_rule(p))  // keyword_patterns
             &&
@@ -20868,7 +20833,7 @@ invalid_for_stmt_rule(Parser *p)
         expr_ty star_expressions_var;
         expr_ty star_targets_var;
         if (
-            (_opt_var = _PyPegen_expect_token(p, ASYNC), 1)  // ASYNC?
+            (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
             &&
             (a = _PyPegen_expect_token(p, 517))  // token='for'
             &&
@@ -20935,7 +20900,7 @@ invalid_def_raw_rule(Parser *p)
         expr_ty name_var;
         Token * newline_var;
         if (
-            (_opt_var = _PyPegen_expect_token(p, ASYNC), 1)  // ASYNC?
+            (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
             &&
             (a = _PyPegen_expect_token(p, 526))  // token='def'
             &&
@@ -20943,11 +20908,11 @@ invalid_def_raw_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (_opt_var_1 = params_rule(p), 1)  // params?
+            (_opt_var_1 = params_rule(p), !p->error_indicator)  // params?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
-            (_opt_var_2 = _tmp_175_rule(p), 1)  // ['->' expression]
+            (_opt_var_2 = _tmp_176_rule(p), !p->error_indicator)  // ['->' expression]
             &&
             (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -21003,7 +20968,7 @@ invalid_class_def_raw_rule(Parser *p)
             &&
             (name_var = _PyPegen_name_token(p))  // NAME
             &&
-            (_opt_var = _tmp_176_rule(p), 1)  // ['(' arguments? ')']
+            (_opt_var = _tmp_177_rule(p), !p->error_indicator)  // ['(' arguments? ')']
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -21051,11 +21016,11 @@ invalid_double_starred_kvpairs_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
-        asdl_seq * _gather_177_var;
+        asdl_seq * _gather_178_var;
         Token * _literal;
         void *invalid_kvpair_var;
         if (
-            (_gather_177_var = _gather_177_rule(p))  // ','.double_starred_kvpair+
+            (_gather_178_var = _gather_178_rule(p))  // ','.double_starred_kvpair+
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
@@ -21063,7 +21028,7 @@ invalid_double_starred_kvpairs_rule(Parser *p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
-            _res = _PyPegen_dummy_name(p, _gather_177_var, _literal, invalid_kvpair_var);
+            _res = _PyPegen_dummy_name(p, _gather_178_var, _literal, invalid_kvpair_var);
             goto done;
         }
         p->mark = _mark;
@@ -21116,7 +21081,7 @@ invalid_double_starred_kvpairs_rule(Parser *p)
             &&
             (a = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            _PyPegen_lookahead(1, _tmp_179_rule, p)
+            _PyPegen_lookahead(1, _tmp_180_rule, p)
         )
         {
             D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
@@ -22489,12 +22454,12 @@ _loop1_22_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
-        void *_tmp_180_var;
+        void *_tmp_181_var;
         while (
-            (_tmp_180_var = _tmp_180_rule(p))  // star_targets '='
+            (_tmp_181_var = _tmp_181_rule(p))  // star_targets '='
         )
         {
-            _res = _tmp_180_var;
+            _res = _tmp_181_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -22997,12 +22962,12 @@ _loop0_31_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
-        void *_tmp_181_var;
+        void *_tmp_182_var;
         while (
-            (_tmp_181_var = _tmp_181_rule(p))  // '.' | '...'
+            (_tmp_182_var = _tmp_182_rule(p))  // '.' | '...'
         )
         {
-            _res = _tmp_181_var;
+            _res = _tmp_182_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -23063,12 +23028,12 @@ _loop1_32_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
-        void *_tmp_182_var;
+        void *_tmp_183_var;
         while (
-            (_tmp_182_var = _tmp_182_rule(p))  // '.' | '...'
+            (_tmp_183_var = _tmp_183_rule(p))  // '.' | '...'
         )
         {
-            _res = _tmp_182_var;
+            _res = _tmp_183_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -26179,12 +26144,12 @@ _loop1_84_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
-        void *_tmp_183_var;
+        void *_tmp_184_var;
         while (
-            (_tmp_183_var = _tmp_183_rule(p))  // '@' named_expression NEWLINE
+            (_tmp_184_var = _tmp_184_rule(p))  // '@' named_expression NEWLINE
         )
         {
-            _res = _tmp_183_var;
+            _res = _tmp_184_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -26246,7 +26211,7 @@ _tmp_85_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=')'
         )
@@ -26297,12 +26262,12 @@ _loop1_86_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
-        void *_tmp_184_var;
+        void *_tmp_185_var;
         while (
-            (_tmp_184_var = _tmp_184_rule(p))  // ',' star_expression
+            (_tmp_185_var = _tmp_185_rule(p))  // ',' star_expression
         )
         {
-            _res = _tmp_184_var;
+            _res = _tmp_185_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -26482,12 +26447,12 @@ _loop1_89_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
-        void *_tmp_185_var;
+        void *_tmp_186_var;
         while (
-            (_tmp_185_var = _tmp_185_rule(p))  // ',' expression
+            (_tmp_186_var = _tmp_186_rule(p))  // ',' expression
         )
         {
-            _res = _tmp_185_var;
+            _res = _tmp_186_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -27512,12 +27477,12 @@ _loop1_104_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
-        void *_tmp_186_var;
+        void *_tmp_187_var;
         while (
-            (_tmp_186_var = _tmp_186_rule(p))  // 'or' conjunction
+            (_tmp_187_var = _tmp_187_rule(p))  // 'or' conjunction
         )
         {
-            _res = _tmp_186_var;
+            _res = _tmp_187_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -27583,12 +27548,12 @@ _loop1_105_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
-        void *_tmp_187_var;
+        void *_tmp_188_var;
         while (
-            (_tmp_187_var = _tmp_187_rule(p))  // 'and' inversion
+            (_tmp_188_var = _tmp_188_rule(p))  // 'and' inversion
         )
         {
-            _res = _tmp_187_var;
+            _res = _tmp_188_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -27875,7 +27840,7 @@ _tmp_110_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_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
@@ -28215,7 +28180,7 @@ _tmp_115_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_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
@@ -28292,7 +28257,7 @@ _tmp_116_rule(Parser *p)
     return _res;
 }
 
-// _tmp_117: assigment_expression | expression !':='
+// _tmp_117: assignment_expression | expression !':='
 static void *
 _tmp_117_rule(Parser *p)
 {
@@ -28303,24 +28268,24 @@ _tmp_117_rule(Parser *p)
     }
     void * _res = NULL;
     int _mark = p->mark;
-    { // assigment_expression
+    { // assignment_expression
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
-        expr_ty assigment_expression_var;
+        D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+        expr_ty assignment_expression_var;
         if (
-            (assigment_expression_var = assigment_expression_rule(p))  // assigment_expression
+            (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
-            _res = assigment_expression_var;
+            D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+            _res = assignment_expression_var;
             goto done;
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
     }
     { // expression !':='
         if (p->error_indicator) {
@@ -28561,12 +28526,12 @@ _loop0_121_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
-        void *_tmp_188_var;
+        void *_tmp_189_var;
         while (
-            (_tmp_188_var = _tmp_188_rule(p))  // 'if' disjunction
+            (_tmp_189_var = _tmp_189_rule(p))  // 'if' disjunction
         )
         {
-            _res = _tmp_188_var;
+            _res = _tmp_189_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -28627,12 +28592,12 @@ _loop0_122_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
-        void *_tmp_189_var;
+        void *_tmp_190_var;
         while (
-            (_tmp_189_var = _tmp_189_rule(p))  // 'if' disjunction
+            (_tmp_190_var = _tmp_190_rule(p))  // 'if' disjunction
         )
         {
-            _res = _tmp_189_var;
+            _res = _tmp_190_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -28666,7 +28631,7 @@ _loop0_122_rule(Parser *p)
     return _seq;
 }
 
-// _loop0_124: ',' (starred_expression | (assigment_expression | expression !':=') !'=')
+// _loop0_124: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
 static asdl_seq *
 _loop0_124_rule(Parser *p)
 {
@@ -28687,18 +28652,18 @@ _loop0_124_rule(Parser *p)
     }
     Py_ssize_t _children_capacity = 1;
     Py_ssize_t _n = 0;
-    { // ',' (starred_expression | (assigment_expression | expression !':=') !'=')
+    { // ',' (starred_expression | (assignment_expression | expression !':=') !'=')
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
+        D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
         Token * _literal;
         void *elem;
         while (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (elem = _tmp_190_rule(p))  // starred_expression | (assigment_expression | expression !':=') !'='
+            (elem = _tmp_191_rule(p))  // starred_expression | (assignment_expression | expression !':=') !'='
         )
         {
             _res = elem;
@@ -28724,7 +28689,7 @@ _loop0_124_rule(Parser *p)
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
     if (!_seq) {
@@ -28742,7 +28707,7 @@ _loop0_124_rule(Parser *p)
 }
 
 // _gather_123:
-//     | (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
+//     | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124
 static asdl_seq *
 _gather_123_rule(Parser *p)
 {
@@ -28753,27 +28718,27 @@ _gather_123_rule(Parser *p)
     }
     asdl_seq * _res = NULL;
     int _mark = p->mark;
-    { // (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
+    { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
+        D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
         void *elem;
         asdl_seq * seq;
         if (
-            (elem = _tmp_190_rule(p))  // starred_expression | (assigment_expression | expression !':=') !'='
+            (elem = _tmp_191_rule(p))  // starred_expression | (assignment_expression | expression !':=') !'='
             &&
             (seq = _loop0_124_rule(p))  // _loop0_124
         )
         {
-            D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
+            D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
             goto done;
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
     }
     _res = NULL;
   done:
@@ -29308,12 +29273,12 @@ _loop0_134_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
-        void *_tmp_191_var;
+        void *_tmp_192_var;
         while (
-            (_tmp_191_var = _tmp_191_rule(p))  // ',' star_target
+            (_tmp_192_var = _tmp_192_rule(p))  // ',' star_target
         )
         {
-            _res = _tmp_191_var;
+            _res = _tmp_192_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -29488,12 +29453,12 @@ _loop1_137_rule(Parser *p)
             return NULL;
         }
         D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
-        void *_tmp_192_var;
+        void *_tmp_193_var;
         while (
-            (_tmp_192_var = _tmp_192_rule(p))  // ',' star_target
+            (_tmp_193_var = _tmp_193_rule(p))  // ',' star_target
         )
         {
-            _res = _tmp_192_var;
+            _res = _tmp_193_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -29742,9 +29707,83 @@ _tmp_141_rule(Parser *p)
     return _res;
 }
 
-// _tmp_142: NAME '='
+// _tmp_142: 'True' | 'False' | 'None'
 static void *
 _tmp_142_rule(Parser *p)
+{
+    D(p->level++);
+    if (p->error_indicator) {
+        D(p->level--);
+        return NULL;
+    }
+    void * _res = NULL;
+    int _mark = p->mark;
+    { // 'True'
+        if (p->error_indicator) {
+            D(p->level--);
+            return NULL;
+        }
+        D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
+        Token * _keyword;
+        if (
+            (_keyword = _PyPegen_expect_token(p, 524))  // token='True'
+        )
+        {
+            D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
+            _res = _keyword;
+            goto done;
+        }
+        p->mark = _mark;
+        D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
+    }
+    { // 'False'
+        if (p->error_indicator) {
+            D(p->level--);
+            return NULL;
+        }
+        D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
+        Token * _keyword;
+        if (
+            (_keyword = _PyPegen_expect_token(p, 525))  // token='False'
+        )
+        {
+            D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
+            _res = _keyword;
+            goto done;
+        }
+        p->mark = _mark;
+        D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
+    }
+    { // 'None'
+        if (p->error_indicator) {
+            D(p->level--);
+            return NULL;
+        }
+        D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
+        Token * _keyword;
+        if (
+            (_keyword = _PyPegen_expect_token(p, 523))  // token='None'
+        )
+        {
+            D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
+            _res = _keyword;
+            goto done;
+        }
+        p->mark = _mark;
+        D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
+    }
+    _res = NULL;
+  done:
+    D(p->level--);
+    return _res;
+}
+
+// _tmp_143: NAME '='
+static void *
+_tmp_143_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -29758,7 +29797,7 @@ _tmp_142_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
+        D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
         Token * _literal;
         expr_ty name_var;
         if (
@@ -29767,12 +29806,12 @@ _tmp_142_rule(Parser *p)
             (_literal = _PyPegen_expect_token(p, 22))  // token='='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
+            D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
             _res = _PyPegen_dummy_name(p, name_var, _literal);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
     }
     _res = NULL;
@@ -29781,9 +29820,9 @@ _tmp_142_rule(Parser *p)
     return _res;
 }
 
-// _tmp_143: NAME STRING | SOFT_KEYWORD
+// _tmp_144: NAME STRING | SOFT_KEYWORD
 static void *
-_tmp_143_rule(Parser *p)
+_tmp_144_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -29797,7 +29836,7 @@ _tmp_143_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
+        D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
         expr_ty name_var;
         expr_ty string_var;
         if (
@@ -29806,12 +29845,12 @@ _tmp_143_rule(Parser *p)
             (string_var = _PyPegen_string_token(p))  // STRING
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
+            D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
             _res = _PyPegen_dummy_name(p, name_var, string_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
     }
     { // SOFT_KEYWORD
@@ -29819,18 +29858,18 @@ _tmp_143_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
+        D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
         expr_ty soft_keyword_var;
         if (
             (soft_keyword_var = _PyPegen_soft_keyword_token(p))  // SOFT_KEYWORD
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
+            D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
             _res = soft_keyword_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
     }
     _res = NULL;
@@ -29839,9 +29878,9 @@ _tmp_143_rule(Parser *p)
     return _res;
 }
 
-// _tmp_144: 'else' | ':'
+// _tmp_145: 'else' | ':'
 static void *
-_tmp_144_rule(Parser *p)
+_tmp_145_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -29855,18 +29894,18 @@ _tmp_144_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
+        D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
         Token * _keyword;
         if (
             (_keyword = _PyPegen_expect_token(p, 516))  // token='else'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
+            D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
             _res = _keyword;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
     }
     { // ':'
@@ -29874,18 +29913,18 @@ _tmp_144_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+        D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+            D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
     }
     _res = NULL;
@@ -29894,9 +29933,9 @@ _tmp_144_rule(Parser *p)
     return _res;
 }
 
-// _tmp_145: '=' | ':='
+// _tmp_146: '=' | ':='
 static void *
-_tmp_145_rule(Parser *p)
+_tmp_146_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -29910,18 +29949,18 @@ _tmp_145_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
+        D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 22))  // token='='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
+            D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
     }
     { // ':='
@@ -29929,18 +29968,18 @@ _tmp_145_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
+        D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 53))  // token=':='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
+            D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
     }
     _res = NULL;
@@ -29949,9 +29988,9 @@ _tmp_145_rule(Parser *p)
     return _res;
 }
 
-// _tmp_146: list | tuple | genexp | 'True' | 'None' | 'False'
+// _tmp_147: list | tuple | genexp | 'True' | 'None' | 'False'
 static void *
-_tmp_146_rule(Parser *p)
+_tmp_147_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -29965,18 +30004,18 @@ _tmp_146_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
+        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
         expr_ty list_var;
         if (
             (list_var = list_rule(p))  // list
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
+            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
             _res = list_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
     }
     { // tuple
@@ -29984,18 +30023,18 @@ _tmp_146_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
+        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
         expr_ty tuple_var;
         if (
             (tuple_var = tuple_rule(p))  // tuple
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
+            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
             _res = tuple_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
     }
     { // genexp
@@ -30003,18 +30042,18 @@ _tmp_146_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
+        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
         expr_ty genexp_var;
         if (
             (genexp_var = genexp_rule(p))  // genexp
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
+            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
             _res = genexp_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
     }
     { // 'True'
@@ -30022,18 +30061,18 @@ _tmp_146_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
+        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
         Token * _keyword;
         if (
             (_keyword = _PyPegen_expect_token(p, 524))  // token='True'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
+            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
             _res = _keyword;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
     }
     { // 'None'
@@ -30041,18 +30080,18 @@ _tmp_146_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
+        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
         Token * _keyword;
         if (
             (_keyword = _PyPegen_expect_token(p, 523))  // token='None'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
+            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
             _res = _keyword;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
     }
     { // 'False'
@@ -30060,18 +30099,18 @@ _tmp_146_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
+        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
         Token * _keyword;
         if (
             (_keyword = _PyPegen_expect_token(p, 525))  // token='False'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
+            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
             _res = _keyword;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
     }
     _res = NULL;
@@ -30080,9 +30119,9 @@ _tmp_146_rule(Parser *p)
     return _res;
 }
 
-// _tmp_147: '=' | ':='
+// _tmp_148: '=' | ':='
 static void *
-_tmp_147_rule(Parser *p)
+_tmp_148_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30096,18 +30135,18 @@ _tmp_147_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
+        D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 22))  // token='='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
+            D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
     }
     { // ':='
@@ -30115,18 +30154,18 @@ _tmp_147_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
+        D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 53))  // token=':='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
+            D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
     }
     _res = NULL;
@@ -30135,9 +30174,9 @@ _tmp_147_rule(Parser *p)
     return _res;
 }
 
-// _loop0_148: star_named_expressions
+// _loop0_149: star_named_expressions
 static asdl_seq *
-_loop0_148_rule(Parser *p)
+_loop0_149_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30161,7 +30200,7 @@ _loop0_148_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
+        D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
         asdl_expr_seq* star_named_expressions_var;
         while (
             (star_named_expressions_var = star_named_expressions_rule(p))  // star_named_expressions
@@ -30183,7 +30222,7 @@ _loop0_148_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30196,14 +30235,14 @@ _loop0_148_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _loop0_149: (star_targets '=')
+// _loop0_150: (star_targets '=')
 static asdl_seq *
-_loop0_149_rule(Parser *p)
+_loop0_150_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30227,13 +30266,13 @@ _loop0_149_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
-        void *_tmp_193_var;
+        D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
+        void *_tmp_194_var;
         while (
-            (_tmp_193_var = _tmp_193_rule(p))  // star_targets '='
+            (_tmp_194_var = _tmp_194_rule(p))  // star_targets '='
         )
         {
-            _res = _tmp_193_var;
+            _res = _tmp_194_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -30249,7 +30288,7 @@ _loop0_149_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30262,14 +30301,14 @@ _loop0_149_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _loop0_150: (star_targets '=')
+// _loop0_151: (star_targets '=')
 static asdl_seq *
-_loop0_150_rule(Parser *p)
+_loop0_151_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30293,13 +30332,13 @@ _loop0_150_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
-        void *_tmp_194_var;
+        D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
+        void *_tmp_195_var;
         while (
-            (_tmp_194_var = _tmp_194_rule(p))  // star_targets '='
+            (_tmp_195_var = _tmp_195_rule(p))  // star_targets '='
         )
         {
-            _res = _tmp_194_var;
+            _res = _tmp_195_var;
             if (_n == _children_capacity) {
                 _children_capacity *= 2;
                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
@@ -30315,7 +30354,7 @@ _loop0_150_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30328,14 +30367,14 @@ _loop0_150_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _tmp_151: yield_expr | star_expressions
+// _tmp_152: yield_expr | star_expressions
 static void *
-_tmp_151_rule(Parser *p)
+_tmp_152_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30349,18 +30388,18 @@ _tmp_151_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+        D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
         expr_ty yield_expr_var;
         if (
             (yield_expr_var = yield_expr_rule(p))  // yield_expr
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+            D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
             _res = yield_expr_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
     }
     { // star_expressions
@@ -30368,18 +30407,18 @@ _tmp_151_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+        D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
         expr_ty star_expressions_var;
         if (
             (star_expressions_var = star_expressions_rule(p))  // star_expressions
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+            D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
             _res = star_expressions_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
     }
     _res = NULL;
@@ -30388,9 +30427,9 @@ _tmp_151_rule(Parser *p)
     return _res;
 }
 
-// _tmp_152: '[' | '(' | '{'
+// _tmp_153: '[' | '(' | '{'
 static void *
-_tmp_152_rule(Parser *p)
+_tmp_153_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30404,18 +30443,18 @@ _tmp_152_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
+        D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 9))  // token='['
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
+            D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
     }
     { // '('
@@ -30423,18 +30462,18 @@ _tmp_152_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
+        D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
+            D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
     }
     { // '{'
@@ -30442,18 +30481,18 @@ _tmp_152_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
+        D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
+            D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
     }
     _res = NULL;
@@ -30462,9 +30501,9 @@ _tmp_152_rule(Parser *p)
     return _res;
 }
 
-// _tmp_153: '[' | '{'
+// _tmp_154: '[' | '{'
 static void *
-_tmp_153_rule(Parser *p)
+_tmp_154_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30478,18 +30517,18 @@ _tmp_153_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
+        D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 9))  // token='['
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
+            D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
     }
     { // '{'
@@ -30497,18 +30536,18 @@ _tmp_153_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
+        D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
+            D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
     }
     _res = NULL;
@@ -30517,9 +30556,9 @@ _tmp_153_rule(Parser *p)
     return _res;
 }
 
-// _tmp_154: '[' | '{'
+// _tmp_155: '[' | '{'
 static void *
-_tmp_154_rule(Parser *p)
+_tmp_155_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30533,18 +30572,18 @@ _tmp_154_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
+        D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 9))  // token='['
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
+            D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
     }
     { // '{'
@@ -30552,18 +30591,18 @@ _tmp_154_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
+        D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
+            D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
     }
     _res = NULL;
@@ -30572,9 +30611,9 @@ _tmp_154_rule(Parser *p)
     return _res;
 }
 
-// _loop0_155: param_no_default
+// _loop0_156: param_no_default
 static asdl_seq *
-_loop0_155_rule(Parser *p)
+_loop0_156_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30598,7 +30637,7 @@ _loop0_155_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+        D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
         arg_ty param_no_default_var;
         while (
             (param_no_default_var = param_no_default_rule(p))  // param_no_default
@@ -30620,7 +30659,7 @@ _loop0_155_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_155[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30633,14 +30672,14 @@ _loop0_155_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_155_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _loop1_156: param_with_default
+// _loop1_157: param_with_default
 static asdl_seq *
-_loop1_156_rule(Parser *p)
+_loop1_157_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30664,7 +30703,7 @@ _loop1_156_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop1_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+        D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
         NameDefaultPair* param_with_default_var;
         while (
             (param_with_default_var = param_with_default_rule(p))  // param_with_default
@@ -30686,7 +30725,7 @@ _loop1_156_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop1_156[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
     }
     if (_n == 0 || p->error_indicator) {
@@ -30704,14 +30743,14 @@ _loop1_156_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop1_156_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _loop0_157: lambda_param_no_default
+// _loop0_158: lambda_param_no_default
 static asdl_seq *
-_loop0_157_rule(Parser *p)
+_loop0_158_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30735,7 +30774,7 @@ _loop0_157_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+        D(fprintf(stderr, "%*c> _loop0_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
         arg_ty lambda_param_no_default_var;
         while (
             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
@@ -30757,7 +30796,7 @@ _loop0_157_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_158[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -30770,14 +30809,14 @@ _loop0_157_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_158_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _loop1_158: lambda_param_with_default
+// _loop1_159: lambda_param_with_default
 static asdl_seq *
-_loop1_158_rule(Parser *p)
+_loop1_159_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30801,7 +30840,7 @@ _loop1_158_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop1_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+        D(fprintf(stderr, "%*c> _loop1_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
         NameDefaultPair* lambda_param_with_default_var;
         while (
             (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
@@ -30823,7 +30862,7 @@ _loop1_158_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop1_158[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop1_159[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
     }
     if (_n == 0 || p->error_indicator) {
@@ -30841,14 +30880,14 @@ _loop1_158_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop1_158_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop1_159_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _tmp_159: ')' | ',' (')' | '**')
+// _tmp_160: ')' | ',' (')' | '**')
 static void *
-_tmp_159_rule(Parser *p)
+_tmp_160_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30862,18 +30901,18 @@ _tmp_159_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+        D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+            D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
     }
     { // ',' (')' | '**')
@@ -30881,21 +30920,21 @@ _tmp_159_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
+        D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
         Token * _literal;
-        void *_tmp_195_var;
+        void *_tmp_196_var;
         if (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (_tmp_195_var = _tmp_195_rule(p))  // ')' | '**'
+            (_tmp_196_var = _tmp_196_rule(p))  // ')' | '**'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
-            _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var);
+            D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
+            _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
     }
     _res = NULL;
@@ -30904,9 +30943,9 @@ _tmp_159_rule(Parser *p)
     return _res;
 }
 
-// _tmp_160: ':' | ',' (':' | '**')
+// _tmp_161: ':' | ',' (':' | '**')
 static void *
-_tmp_160_rule(Parser *p)
+_tmp_161_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30920,18 +30959,18 @@ _tmp_160_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+        D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+            D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
     }
     { // ',' (':' | '**')
@@ -30939,21 +30978,21 @@ _tmp_160_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
+        D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
         Token * _literal;
-        void *_tmp_196_var;
+        void *_tmp_197_var;
         if (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (_tmp_196_var = _tmp_196_rule(p))  // ':' | '**'
+            (_tmp_197_var = _tmp_197_rule(p))  // ':' | '**'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
-            _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var);
+            D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
+            _res = _PyPegen_dummy_name(p, _literal, _tmp_197_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
     }
     _res = NULL;
@@ -30962,9 +31001,9 @@ _tmp_160_rule(Parser *p)
     return _res;
 }
 
-// _tmp_161: ',' | ')' | ':'
+// _tmp_162: ',' | ')' | ':'
 static void *
-_tmp_161_rule(Parser *p)
+_tmp_162_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -30978,18 +31017,18 @@ _tmp_161_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
+        D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
+            D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
     }
     { // ')'
@@ -30997,18 +31036,18 @@ _tmp_161_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+        D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+            D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
     }
     { // ':'
@@ -31016,18 +31055,18 @@ _tmp_161_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+        D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+            D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
     }
     _res = NULL;
@@ -31036,9 +31075,9 @@ _tmp_161_rule(Parser *p)
     return _res;
 }
 
-// _loop0_163: ',' (expression ['as' star_target])
+// _loop0_164: ',' (expression ['as' star_target])
 static asdl_seq *
-_loop0_163_rule(Parser *p)
+_loop0_164_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31062,13 +31101,13 @@ _loop0_163_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
+        D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
         Token * _literal;
         void *elem;
         while (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (elem = _tmp_197_rule(p))  // expression ['as' star_target]
+            (elem = _tmp_198_rule(p))  // expression ['as' star_target]
         )
         {
             _res = elem;
@@ -31093,7 +31132,7 @@ _loop0_163_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31106,14 +31145,14 @@ _loop0_163_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _gather_162: (expression ['as' star_target]) _loop0_163
+// _gather_163: (expression ['as' star_target]) _loop0_164
 static asdl_seq *
-_gather_162_rule(Parser *p)
+_gather_163_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31122,27 +31161,27 @@ _gather_162_rule(Parser *p)
     }
     asdl_seq * _res = NULL;
     int _mark = p->mark;
-    { // (expression ['as' star_target]) _loop0_163
+    { // (expression ['as' star_target]) _loop0_164
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _gather_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
+        D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
         void *elem;
         asdl_seq * seq;
         if (
-            (elem = _tmp_197_rule(p))  // expression ['as' star_target]
+            (elem = _tmp_198_rule(p))  // expression ['as' star_target]
             &&
-            (seq = _loop0_163_rule(p))  // _loop0_163
+            (seq = _loop0_164_rule(p))  // _loop0_164
         )
         {
-            D(fprintf(stderr, "%*c+ _gather_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
+            D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _gather_162[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
+        D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
     }
     _res = NULL;
   done:
@@ -31150,9 +31189,9 @@ _gather_162_rule(Parser *p)
     return _res;
 }
 
-// _loop0_165: ',' (expressions ['as' star_target])
+// _loop0_166: ',' (expressions ['as' star_target])
 static asdl_seq *
-_loop0_165_rule(Parser *p)
+_loop0_166_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31176,13 +31215,13 @@ _loop0_165_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
+        D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
         Token * _literal;
         void *elem;
         while (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (elem = _tmp_198_rule(p))  // expressions ['as' star_target]
+            (elem = _tmp_199_rule(p))  // expressions ['as' star_target]
         )
         {
             _res = elem;
@@ -31207,7 +31246,7 @@ _loop0_165_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31220,14 +31259,14 @@ _loop0_165_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_165_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _gather_164: (expressions ['as' star_target]) _loop0_165
+// _gather_165: (expressions ['as' star_target]) _loop0_166
 static asdl_seq *
-_gather_164_rule(Parser *p)
+_gather_165_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31236,27 +31275,27 @@ _gather_164_rule(Parser *p)
     }
     asdl_seq * _res = NULL;
     int _mark = p->mark;
-    { // (expressions ['as' star_target]) _loop0_165
+    { // (expressions ['as' star_target]) _loop0_166
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _gather_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
+        D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
         void *elem;
         asdl_seq * seq;
         if (
-            (elem = _tmp_198_rule(p))  // expressions ['as' star_target]
+            (elem = _tmp_199_rule(p))  // expressions ['as' star_target]
             &&
-            (seq = _loop0_165_rule(p))  // _loop0_165
+            (seq = _loop0_166_rule(p))  // _loop0_166
         )
         {
-            D(fprintf(stderr, "%*c+ _gather_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
+            D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _gather_164[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
+        D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
     }
     _res = NULL;
   done:
@@ -31264,9 +31303,9 @@ _gather_164_rule(Parser *p)
     return _res;
 }
 
-// _loop0_167: ',' (expression ['as' star_target])
+// _loop0_168: ',' (expression ['as' star_target])
 static asdl_seq *
-_loop0_167_rule(Parser *p)
+_loop0_168_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31290,13 +31329,13 @@ _loop0_167_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
+        D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
         Token * _literal;
         void *elem;
         while (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (elem = _tmp_199_rule(p))  // expression ['as' star_target]
+            (elem = _tmp_200_rule(p))  // expression ['as' star_target]
         )
         {
             _res = elem;
@@ -31321,7 +31360,7 @@ _loop0_167_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31334,14 +31373,14 @@ _loop0_167_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_167_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _gather_166: (expression ['as' star_target]) _loop0_167
+// _gather_167: (expression ['as' star_target]) _loop0_168
 static asdl_seq *
-_gather_166_rule(Parser *p)
+_gather_167_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31350,27 +31389,27 @@ _gather_166_rule(Parser *p)
     }
     asdl_seq * _res = NULL;
     int _mark = p->mark;
-    { // (expression ['as' star_target]) _loop0_167
+    { // (expression ['as' star_target]) _loop0_168
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _gather_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
+        D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
         void *elem;
         asdl_seq * seq;
         if (
-            (elem = _tmp_199_rule(p))  // expression ['as' star_target]
+            (elem = _tmp_200_rule(p))  // expression ['as' star_target]
             &&
-            (seq = _loop0_167_rule(p))  // _loop0_167
+            (seq = _loop0_168_rule(p))  // _loop0_168
         )
         {
-            D(fprintf(stderr, "%*c+ _gather_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
+            D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _gather_166[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
+        D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
     }
     _res = NULL;
   done:
@@ -31378,9 +31417,9 @@ _gather_166_rule(Parser *p)
     return _res;
 }
 
-// _loop0_169: ',' (expressions ['as' star_target])
+// _loop0_170: ',' (expressions ['as' star_target])
 static asdl_seq *
-_loop0_169_rule(Parser *p)
+_loop0_170_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31404,13 +31443,13 @@ _loop0_169_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
+        D(fprintf(stderr, "%*c> _loop0_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
         Token * _literal;
         void *elem;
         while (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (elem = _tmp_200_rule(p))  // expressions ['as' star_target]
+            (elem = _tmp_201_rule(p))  // expressions ['as' star_target]
         )
         {
             _res = elem;
@@ -31435,7 +31474,7 @@ _loop0_169_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_170[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31448,14 +31487,14 @@ _loop0_169_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_169_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_170_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _gather_168: (expressions ['as' star_target]) _loop0_169
+// _gather_169: (expressions ['as' star_target]) _loop0_170
 static asdl_seq *
-_gather_168_rule(Parser *p)
+_gather_169_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31464,27 +31503,27 @@ _gather_168_rule(Parser *p)
     }
     asdl_seq * _res = NULL;
     int _mark = p->mark;
-    { // (expressions ['as' star_target]) _loop0_169
+    { // (expressions ['as' star_target]) _loop0_170
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _gather_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
+        D(fprintf(stderr, "%*c> _gather_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
         void *elem;
         asdl_seq * seq;
         if (
-            (elem = _tmp_200_rule(p))  // expressions ['as' star_target]
+            (elem = _tmp_201_rule(p))  // expressions ['as' star_target]
             &&
-            (seq = _loop0_169_rule(p))  // _loop0_169
+            (seq = _loop0_170_rule(p))  // _loop0_170
         )
         {
-            D(fprintf(stderr, "%*c+ _gather_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
+            D(fprintf(stderr, "%*c+ _gather_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _gather_168[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
+        D(fprintf(stderr, "%*c%s _gather_169[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
     }
     _res = NULL;
   done:
@@ -31492,9 +31531,9 @@ _gather_168_rule(Parser *p)
     return _res;
 }
 
-// _tmp_170: 'except' | 'finally'
+// _tmp_171: 'except' | 'finally'
 static void *
-_tmp_170_rule(Parser *p)
+_tmp_171_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31508,18 +31547,18 @@ _tmp_170_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
+        D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
         Token * _keyword;
         if (
             (_keyword = _PyPegen_expect_token(p, 521))  // token='except'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
+            D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
             _res = _keyword;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
     }
     { // 'finally'
@@ -31527,18 +31566,18 @@ _tmp_170_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
+        D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
         Token * _keyword;
         if (
             (_keyword = _PyPegen_expect_token(p, 522))  // token='finally'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
+            D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
             _res = _keyword;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
     }
     _res = NULL;
@@ -31547,9 +31586,9 @@ _tmp_170_rule(Parser *p)
     return _res;
 }
 
-// _tmp_171: 'as' NAME
+// _tmp_172: 'as' NAME
 static void *
-_tmp_171_rule(Parser *p)
+_tmp_172_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31563,7 +31602,7 @@ _tmp_171_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+        D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
         Token * _keyword;
         expr_ty name_var;
         if (
@@ -31572,12 +31611,12 @@ _tmp_171_rule(Parser *p)
             (name_var = _PyPegen_name_token(p))  // NAME
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+            D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
             _res = _PyPegen_dummy_name(p, _keyword, name_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
     }
     _res = NULL;
@@ -31586,9 +31625,9 @@ _tmp_171_rule(Parser *p)
     return _res;
 }
 
-// _tmp_172: 'as' NAME
+// _tmp_173: 'as' NAME
 static void *
-_tmp_172_rule(Parser *p)
+_tmp_173_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31602,7 +31641,7 @@ _tmp_172_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+        D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
         Token * _keyword;
         expr_ty name_var;
         if (
@@ -31611,12 +31650,12 @@ _tmp_172_rule(Parser *p)
             (name_var = _PyPegen_name_token(p))  // NAME
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+            D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
             _res = _PyPegen_dummy_name(p, _keyword, name_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
     }
     _res = NULL;
@@ -31625,9 +31664,9 @@ _tmp_172_rule(Parser *p)
     return _res;
 }
 
-// _tmp_173: 'as' NAME
+// _tmp_174: 'as' NAME
 static void *
-_tmp_173_rule(Parser *p)
+_tmp_174_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31641,7 +31680,7 @@ _tmp_173_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+        D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
         Token * _keyword;
         expr_ty name_var;
         if (
@@ -31650,12 +31689,12 @@ _tmp_173_rule(Parser *p)
             (name_var = _PyPegen_name_token(p))  // NAME
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+            D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
             _res = _PyPegen_dummy_name(p, _keyword, name_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
     }
     _res = NULL;
@@ -31664,9 +31703,9 @@ _tmp_173_rule(Parser *p)
     return _res;
 }
 
-// _tmp_174: positional_patterns ','
+// _tmp_175: positional_patterns ','
 static void *
-_tmp_174_rule(Parser *p)
+_tmp_175_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31680,7 +31719,7 @@ _tmp_174_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
+        D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
         Token * _literal;
         asdl_pattern_seq* positional_patterns_var;
         if (
@@ -31689,12 +31728,12 @@ _tmp_174_rule(Parser *p)
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
+            D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
             _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
     }
     _res = NULL;
@@ -31703,9 +31742,9 @@ _tmp_174_rule(Parser *p)
     return _res;
 }
 
-// _tmp_175: '->' expression
+// _tmp_176: '->' expression
 static void *
-_tmp_175_rule(Parser *p)
+_tmp_176_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31719,7 +31758,7 @@ _tmp_175_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
+        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
         Token * _literal;
         expr_ty expression_var;
         if (
@@ -31728,12 +31767,12 @@ _tmp_175_rule(Parser *p)
             (expression_var = expression_rule(p))  // expression
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
+            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
             _res = _PyPegen_dummy_name(p, _literal, expression_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
     }
     _res = NULL;
@@ -31742,9 +31781,9 @@ _tmp_175_rule(Parser *p)
     return _res;
 }
 
-// _tmp_176: '(' arguments? ')'
+// _tmp_177: '(' arguments? ')'
 static void *
-_tmp_176_rule(Parser *p)
+_tmp_177_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31758,7 +31797,7 @@ _tmp_176_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
+        D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
         Token * _literal;
         Token * _literal_1;
         void *_opt_var;
@@ -31766,17 +31805,17 @@ _tmp_176_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (_opt_var = arguments_rule(p), 1)  // arguments?
+            (_opt_var = arguments_rule(p), !p->error_indicator)  // arguments?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
+            D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
             _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
     }
     _res = NULL;
@@ -31785,9 +31824,9 @@ _tmp_176_rule(Parser *p)
     return _res;
 }
 
-// _loop0_178: ',' double_starred_kvpair
+// _loop0_179: ',' double_starred_kvpair
 static asdl_seq *
-_loop0_178_rule(Parser *p)
+_loop0_179_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31811,7 +31850,7 @@ _loop0_178_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
+        D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
         Token * _literal;
         KeyValuePair* elem;
         while (
@@ -31842,7 +31881,7 @@ _loop0_178_rule(Parser *p)
             _mark = p->mark;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _loop0_178[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
@@ -31855,14 +31894,14 @@ _loop0_178_rule(Parser *p)
     }
     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
     PyMem_Free(_children);
-    _PyPegen_insert_memo(p, _start_mark, _loop0_178_type, _seq);
+    _PyPegen_insert_memo(p, _start_mark, _loop0_179_type, _seq);
     D(p->level--);
     return _seq;
 }
 
-// _gather_177: double_starred_kvpair _loop0_178
+// _gather_178: double_starred_kvpair _loop0_179
 static asdl_seq *
-_gather_177_rule(Parser *p)
+_gather_178_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31871,27 +31910,27 @@ _gather_177_rule(Parser *p)
     }
     asdl_seq * _res = NULL;
     int _mark = p->mark;
-    { // double_starred_kvpair _loop0_178
+    { // double_starred_kvpair _loop0_179
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _gather_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178"));
+        D(fprintf(stderr, "%*c> _gather_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_179"));
         KeyValuePair* elem;
         asdl_seq * seq;
         if (
             (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
             &&
-            (seq = _loop0_178_rule(p))  // _loop0_178
+            (seq = _loop0_179_rule(p))  // _loop0_179
         )
         {
-            D(fprintf(stderr, "%*c+ _gather_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178"));
+            D(fprintf(stderr, "%*c+ _gather_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_179"));
             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _gather_177[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_178"));
+        D(fprintf(stderr, "%*c%s _gather_178[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_179"));
     }
     _res = NULL;
   done:
@@ -31899,9 +31938,9 @@ _gather_177_rule(Parser *p)
     return _res;
 }
 
-// _tmp_179: '}' | ','
+// _tmp_180: '}' | ','
 static void *
-_tmp_179_rule(Parser *p)
+_tmp_180_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31915,18 +31954,18 @@ _tmp_179_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
+        D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 26))  // token='}'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
+            D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
     }
     { // ','
@@ -31934,18 +31973,18 @@ _tmp_179_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
+        D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
+            D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
     }
     _res = NULL;
@@ -31954,9 +31993,9 @@ _tmp_179_rule(Parser *p)
     return _res;
 }
 
-// _tmp_180: star_targets '='
+// _tmp_181: star_targets '='
 static void *
-_tmp_180_rule(Parser *p)
+_tmp_181_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -31970,7 +32009,7 @@ _tmp_180_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+        D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
         Token * _literal;
         expr_ty z;
         if (
@@ -31979,7 +32018,7 @@ _tmp_180_rule(Parser *p)
             (_literal = _PyPegen_expect_token(p, 22))  // token='='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+            D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
             _res = z;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -31989,7 +32028,7 @@ _tmp_180_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
     }
     _res = NULL;
@@ -31998,9 +32037,9 @@ _tmp_180_rule(Parser *p)
     return _res;
 }
 
-// _tmp_181: '.' | '...'
+// _tmp_182: '.' | '...'
 static void *
-_tmp_181_rule(Parser *p)
+_tmp_182_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32014,18 +32053,18 @@ _tmp_181_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+        D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+            D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
     }
     { // '...'
@@ -32033,18 +32072,18 @@ _tmp_181_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
+        D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 52))  // token='...'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
+            D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
     }
     _res = NULL;
@@ -32053,9 +32092,9 @@ _tmp_181_rule(Parser *p)
     return _res;
 }
 
-// _tmp_182: '.' | '...'
+// _tmp_183: '.' | '...'
 static void *
-_tmp_182_rule(Parser *p)
+_tmp_183_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32069,18 +32108,18 @@ _tmp_182_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+        D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+            D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
     }
     { // '...'
@@ -32088,18 +32127,18 @@ _tmp_182_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
+        D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 52))  // token='...'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
+            D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
     }
     _res = NULL;
@@ -32108,9 +32147,9 @@ _tmp_182_rule(Parser *p)
     return _res;
 }
 
-// _tmp_183: '@' named_expression NEWLINE
+// _tmp_184: '@' named_expression NEWLINE
 static void *
-_tmp_183_rule(Parser *p)
+_tmp_184_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32124,7 +32163,7 @@ _tmp_183_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
+        D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
         Token * _literal;
         expr_ty f;
         Token * newline_var;
@@ -32136,7 +32175,7 @@ _tmp_183_rule(Parser *p)
             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
+            D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
             _res = f;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32146,7 +32185,7 @@ _tmp_183_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
     }
     _res = NULL;
@@ -32155,9 +32194,9 @@ _tmp_183_rule(Parser *p)
     return _res;
 }
 
-// _tmp_184: ',' star_expression
+// _tmp_185: ',' star_expression
 static void *
-_tmp_184_rule(Parser *p)
+_tmp_185_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32171,7 +32210,7 @@ _tmp_184_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
+        D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
         Token * _literal;
         expr_ty c;
         if (
@@ -32180,7 +32219,7 @@ _tmp_184_rule(Parser *p)
             (c = star_expression_rule(p))  // star_expression
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
+            D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
             _res = c;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32190,7 +32229,7 @@ _tmp_184_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
     }
     _res = NULL;
@@ -32199,9 +32238,9 @@ _tmp_184_rule(Parser *p)
     return _res;
 }
 
-// _tmp_185: ',' expression
+// _tmp_186: ',' expression
 static void *
-_tmp_185_rule(Parser *p)
+_tmp_186_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32215,7 +32254,7 @@ _tmp_185_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+        D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
         Token * _literal;
         expr_ty c;
         if (
@@ -32224,7 +32263,7 @@ _tmp_185_rule(Parser *p)
             (c = expression_rule(p))  // expression
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
+            D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
             _res = c;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32234,7 +32273,7 @@ _tmp_185_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
     }
     _res = NULL;
@@ -32243,9 +32282,9 @@ _tmp_185_rule(Parser *p)
     return _res;
 }
 
-// _tmp_186: 'or' conjunction
+// _tmp_187: 'or' conjunction
 static void *
-_tmp_186_rule(Parser *p)
+_tmp_187_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32259,7 +32298,7 @@ _tmp_186_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
+        D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
         Token * _keyword;
         expr_ty c;
         if (
@@ -32268,7 +32307,7 @@ _tmp_186_rule(Parser *p)
             (c = conjunction_rule(p))  // conjunction
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
+            D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
             _res = c;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32278,7 +32317,7 @@ _tmp_186_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
     }
     _res = NULL;
@@ -32287,9 +32326,9 @@ _tmp_186_rule(Parser *p)
     return _res;
 }
 
-// _tmp_187: 'and' inversion
+// _tmp_188: 'and' inversion
 static void *
-_tmp_187_rule(Parser *p)
+_tmp_188_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32303,7 +32342,7 @@ _tmp_187_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
+        D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
         Token * _keyword;
         expr_ty c;
         if (
@@ -32312,7 +32351,7 @@ _tmp_187_rule(Parser *p)
             (c = inversion_rule(p))  // inversion
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
+            D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
             _res = c;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32322,7 +32361,7 @@ _tmp_187_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
     }
     _res = NULL;
@@ -32331,9 +32370,9 @@ _tmp_187_rule(Parser *p)
     return _res;
 }
 
-// _tmp_188: 'if' disjunction
+// _tmp_189: 'if' disjunction
 static void *
-_tmp_188_rule(Parser *p)
+_tmp_189_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32347,7 +32386,7 @@ _tmp_188_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+        D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
         Token * _keyword;
         expr_ty z;
         if (
@@ -32356,7 +32395,7 @@ _tmp_188_rule(Parser *p)
             (z = disjunction_rule(p))  // disjunction
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+            D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
             _res = z;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32366,7 +32405,7 @@ _tmp_188_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
     }
     _res = NULL;
@@ -32375,9 +32414,9 @@ _tmp_188_rule(Parser *p)
     return _res;
 }
 
-// _tmp_189: 'if' disjunction
+// _tmp_190: 'if' disjunction
 static void *
-_tmp_189_rule(Parser *p)
+_tmp_190_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32391,7 +32430,7 @@ _tmp_189_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+        D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
         Token * _keyword;
         expr_ty z;
         if (
@@ -32400,7 +32439,7 @@ _tmp_189_rule(Parser *p)
             (z = disjunction_rule(p))  // disjunction
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+            D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
             _res = z;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32410,7 +32449,7 @@ _tmp_189_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
     }
     _res = NULL;
@@ -32419,9 +32458,9 @@ _tmp_189_rule(Parser *p)
     return _res;
 }
 
-// _tmp_190: starred_expression | (assigment_expression | expression !':=') !'='
+// _tmp_191: starred_expression | (assignment_expression | expression !':=') !'='
 static void *
-_tmp_190_rule(Parser *p)
+_tmp_191_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32435,40 +32474,40 @@ _tmp_190_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
+        D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
         expr_ty starred_expression_var;
         if (
             (starred_expression_var = starred_expression_rule(p))  // starred_expression
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
+            D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
             _res = starred_expression_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
     }
-    { // (assigment_expression | expression !':=') !'='
+    { // (assignment_expression | expression !':=') !'='
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
-        void *_tmp_201_var;
+        D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
+        void *_tmp_202_var;
         if (
-            (_tmp_201_var = _tmp_201_rule(p))  // assigment_expression | expression !':='
+            (_tmp_202_var = _tmp_202_rule(p))  // assignment_expression | expression !':='
             &&
             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
-            _res = _tmp_201_var;
+            D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
+            _res = _tmp_202_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
+        D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
     }
     _res = NULL;
   done:
@@ -32476,9 +32515,9 @@ _tmp_190_rule(Parser *p)
     return _res;
 }
 
-// _tmp_191: ',' star_target
+// _tmp_192: ',' star_target
 static void *
-_tmp_191_rule(Parser *p)
+_tmp_192_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32492,7 +32531,7 @@ _tmp_191_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+        D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
         Token * _literal;
         expr_ty c;
         if (
@@ -32501,7 +32540,7 @@ _tmp_191_rule(Parser *p)
             (c = star_target_rule(p))  // star_target
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+            D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
             _res = c;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32511,7 +32550,7 @@ _tmp_191_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
     }
     _res = NULL;
@@ -32520,9 +32559,9 @@ _tmp_191_rule(Parser *p)
     return _res;
 }
 
-// _tmp_192: ',' star_target
+// _tmp_193: ',' star_target
 static void *
-_tmp_192_rule(Parser *p)
+_tmp_193_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32536,7 +32575,7 @@ _tmp_192_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+        D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
         Token * _literal;
         expr_ty c;
         if (
@@ -32545,7 +32584,7 @@ _tmp_192_rule(Parser *p)
             (c = star_target_rule(p))  // star_target
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+            D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
             _res = c;
             if (_res == NULL && PyErr_Occurred()) {
                 p->error_indicator = 1;
@@ -32555,7 +32594,7 @@ _tmp_192_rule(Parser *p)
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
     }
     _res = NULL;
@@ -32564,9 +32603,9 @@ _tmp_192_rule(Parser *p)
     return _res;
 }
 
-// _tmp_193: star_targets '='
+// _tmp_194: star_targets '='
 static void *
-_tmp_193_rule(Parser *p)
+_tmp_194_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32580,7 +32619,7 @@ _tmp_193_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+        D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
         Token * _literal;
         expr_ty star_targets_var;
         if (
@@ -32589,12 +32628,12 @@ _tmp_193_rule(Parser *p)
             (_literal = _PyPegen_expect_token(p, 22))  // token='='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+            D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
             _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
     }
     _res = NULL;
@@ -32603,9 +32642,9 @@ _tmp_193_rule(Parser *p)
     return _res;
 }
 
-// _tmp_194: star_targets '='
+// _tmp_195: star_targets '='
 static void *
-_tmp_194_rule(Parser *p)
+_tmp_195_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32619,7 +32658,7 @@ _tmp_194_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+        D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
         Token * _literal;
         expr_ty star_targets_var;
         if (
@@ -32628,12 +32667,12 @@ _tmp_194_rule(Parser *p)
             (_literal = _PyPegen_expect_token(p, 22))  // token='='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+            D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
             _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
     }
     _res = NULL;
@@ -32642,9 +32681,9 @@ _tmp_194_rule(Parser *p)
     return _res;
 }
 
-// _tmp_195: ')' | '**'
+// _tmp_196: ')' | '**'
 static void *
-_tmp_195_rule(Parser *p)
+_tmp_196_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32658,18 +32697,18 @@ _tmp_195_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+        D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+            D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
     }
     { // '**'
@@ -32677,18 +32716,18 @@ _tmp_195_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
+        D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
+            D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
     }
     _res = NULL;
@@ -32697,9 +32736,9 @@ _tmp_195_rule(Parser *p)
     return _res;
 }
 
-// _tmp_196: ':' | '**'
+// _tmp_197: ':' | '**'
 static void *
-_tmp_196_rule(Parser *p)
+_tmp_197_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32713,18 +32752,18 @@ _tmp_196_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+        D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+            D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
     }
     { // '**'
@@ -32732,18 +32771,18 @@ _tmp_196_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
+        D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
         Token * _literal;
         if (
             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
+            D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
             _res = _literal;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
     }
     _res = NULL;
@@ -32752,9 +32791,9 @@ _tmp_196_rule(Parser *p)
     return _res;
 }
 
-// _tmp_197: expression ['as' star_target]
+// _tmp_198: expression ['as' star_target]
 static void *
-_tmp_197_rule(Parser *p)
+_tmp_198_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32768,22 +32807,22 @@ _tmp_197_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
+        D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
         void *_opt_var;
         UNUSED(_opt_var); // Silence compiler warnings
         expr_ty expression_var;
         if (
             (expression_var = expression_rule(p))  // expression
             &&
-            (_opt_var = _tmp_202_rule(p), 1)  // ['as' star_target]
+            (_opt_var = _tmp_203_rule(p), !p->error_indicator)  // ['as' star_target]
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
+            D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
             _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
     }
     _res = NULL;
@@ -32792,9 +32831,9 @@ _tmp_197_rule(Parser *p)
     return _res;
 }
 
-// _tmp_198: expressions ['as' star_target]
+// _tmp_199: expressions ['as' star_target]
 static void *
-_tmp_198_rule(Parser *p)
+_tmp_199_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32808,22 +32847,22 @@ _tmp_198_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
+        D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
         void *_opt_var;
         UNUSED(_opt_var); // Silence compiler warnings
         expr_ty expressions_var;
         if (
             (expressions_var = expressions_rule(p))  // expressions
             &&
-            (_opt_var = _tmp_203_rule(p), 1)  // ['as' star_target]
+            (_opt_var = _tmp_204_rule(p), !p->error_indicator)  // ['as' star_target]
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
+            D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
             _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
     }
     _res = NULL;
@@ -32832,9 +32871,9 @@ _tmp_198_rule(Parser *p)
     return _res;
 }
 
-// _tmp_199: expression ['as' star_target]
+// _tmp_200: expression ['as' star_target]
 static void *
-_tmp_199_rule(Parser *p)
+_tmp_200_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32848,22 +32887,22 @@ _tmp_199_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
+        D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
         void *_opt_var;
         UNUSED(_opt_var); // Silence compiler warnings
         expr_ty expression_var;
         if (
             (expression_var = expression_rule(p))  // expression
             &&
-            (_opt_var = _tmp_204_rule(p), 1)  // ['as' star_target]
+            (_opt_var = _tmp_205_rule(p), !p->error_indicator)  // ['as' star_target]
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
+            D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
             _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
     }
     _res = NULL;
@@ -32872,9 +32911,9 @@ _tmp_199_rule(Parser *p)
     return _res;
 }
 
-// _tmp_200: expressions ['as' star_target]
+// _tmp_201: expressions ['as' star_target]
 static void *
-_tmp_200_rule(Parser *p)
+_tmp_201_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32888,22 +32927,22 @@ _tmp_200_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
+        D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
         void *_opt_var;
         UNUSED(_opt_var); // Silence compiler warnings
         expr_ty expressions_var;
         if (
             (expressions_var = expressions_rule(p))  // expressions
             &&
-            (_opt_var = _tmp_205_rule(p), 1)  // ['as' star_target]
+            (_opt_var = _tmp_206_rule(p), !p->error_indicator)  // ['as' star_target]
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
+            D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
             _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
     }
     _res = NULL;
@@ -32912,9 +32951,9 @@ _tmp_200_rule(Parser *p)
     return _res;
 }
 
-// _tmp_201: assigment_expression | expression !':='
+// _tmp_202: assignment_expression | expression !':='
 static void *
-_tmp_201_rule(Parser *p)
+_tmp_202_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32923,31 +32962,31 @@ _tmp_201_rule(Parser *p)
     }
     void * _res = NULL;
     int _mark = p->mark;
-    { // assigment_expression
+    { // assignment_expression
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
-        expr_ty assigment_expression_var;
+        D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+        expr_ty assignment_expression_var;
         if (
-            (assigment_expression_var = assigment_expression_rule(p))  // assigment_expression
+            (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
-            _res = assigment_expression_var;
+            D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
+            _res = assignment_expression_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
+        D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
     }
     { // expression !':='
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+        D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
         expr_ty expression_var;
         if (
             (expression_var = expression_rule(p))  // expression
@@ -32955,12 +32994,12 @@ _tmp_201_rule(Parser *p)
             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+            D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
             _res = expression_var;
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
     }
     _res = NULL;
@@ -32969,9 +33008,9 @@ _tmp_201_rule(Parser *p)
     return _res;
 }
 
-// _tmp_202: 'as' star_target
+// _tmp_203: 'as' star_target
 static void *
-_tmp_202_rule(Parser *p)
+_tmp_203_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -32985,7 +33024,7 @@ _tmp_202_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+        D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
         Token * _keyword;
         expr_ty star_target_var;
         if (
@@ -32994,12 +33033,12 @@ _tmp_202_rule(Parser *p)
             (star_target_var = star_target_rule(p))  // star_target
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+            D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
             _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
     }
     _res = NULL;
@@ -33008,9 +33047,9 @@ _tmp_202_rule(Parser *p)
     return _res;
 }
 
-// _tmp_203: 'as' star_target
+// _tmp_204: 'as' star_target
 static void *
-_tmp_203_rule(Parser *p)
+_tmp_204_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -33024,7 +33063,7 @@ _tmp_203_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+        D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
         Token * _keyword;
         expr_ty star_target_var;
         if (
@@ -33033,12 +33072,12 @@ _tmp_203_rule(Parser *p)
             (star_target_var = star_target_rule(p))  // star_target
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+            D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
             _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
     }
     _res = NULL;
@@ -33047,9 +33086,9 @@ _tmp_203_rule(Parser *p)
     return _res;
 }
 
-// _tmp_204: 'as' star_target
+// _tmp_205: 'as' star_target
 static void *
-_tmp_204_rule(Parser *p)
+_tmp_205_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -33063,7 +33102,7 @@ _tmp_204_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+        D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
         Token * _keyword;
         expr_ty star_target_var;
         if (
@@ -33072,12 +33111,12 @@ _tmp_204_rule(Parser *p)
             (star_target_var = star_target_rule(p))  // star_target
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+            D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
             _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
     }
     _res = NULL;
@@ -33086,9 +33125,9 @@ _tmp_204_rule(Parser *p)
     return _res;
 }
 
-// _tmp_205: 'as' star_target
+// _tmp_206: 'as' star_target
 static void *
-_tmp_205_rule(Parser *p)
+_tmp_206_rule(Parser *p)
 {
     D(p->level++);
     if (p->error_indicator) {
@@ -33102,7 +33141,7 @@ _tmp_205_rule(Parser *p)
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+        D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
         Token * _keyword;
         expr_ty star_target_var;
         if (
@@ -33111,12 +33150,12 @@ _tmp_205_rule(Parser *p)
             (star_target_var = star_target_rule(p))  // star_target
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
+            D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
             _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
             goto done;
         }
         p->mark = _mark;
-        D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
+        D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
     }
     _res = NULL;
index e20e9261368280f6fea8726aac1652c9720dc0c5..e37aaf7975bdd690f4d8a6aaf9df4b35e9b529c4 100644 (file)
@@ -79,7 +79,9 @@ _PyPegen_check_barry_as_flufl(Parser *p, Token* t) {
 
 int
 _PyPegen_check_legacy_stmt(Parser *p, expr_ty name) {
-    assert(name->kind == Name_kind);
+    if (name->kind != Name_kind) {
+        return 0;
+    }
     const char* candidates[2] = {"print", "exec"};
     for (int i=0; i<2; i++) {
         if (PyUnicode_CompareWithASCIIString(name->v.Name.id, candidates[i]) == 0) {
@@ -371,27 +373,42 @@ 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: {
+            col_offset = p->tok->cur - p->tok->buf - 1;
             msg = "unexpected character after line continuation character";
             break;
+        }
         default:
             msg = "unknown parsing error";
     }
 
-    RAISE_ERROR_KNOWN_LOCATION(p, errtype, p->tok->lineno, col_offset, p->tok->lineno, -1, msg);
+    RAISE_ERROR_KNOWN_LOCATION(p, errtype, p->tok->lineno,
+                               col_offset >= 0 ? col_offset : 0,
+                               p->tok->lineno, -1, msg);
     return -1;
 }
 
 void *
 _PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...)
 {
+    if (p->fill == 0) {
+        va_list va;
+        va_start(va, errmsg);
+        _PyPegen_raise_error_known_location(p, errtype, 0, 0, 0, -1, errmsg, va);
+        va_end(va);
+        return NULL;
+    }
+
     Token *t = p->known_err_token != NULL ? p->known_err_token : p->tokens[p->fill - 1];
     Py_ssize_t col_offset;
     Py_ssize_t end_col_offset = -1;
     if (t->col_offset == -1) {
-        col_offset = Py_SAFE_DOWNCAST(p->tok->cur - p->tok->buf,
-                                      intptr_t, int);
+        if (p->tok->cur == p->tok->buf) {
+            col_offset = 0;
+        } else {
+            const char* start = p->tok->buf  ? p->tok->line_start : p->tok->buf;
+            col_offset = Py_SAFE_DOWNCAST(p->tok->cur - start, intptr_t, int);
+        }
     } else {
         col_offset = t->col_offset + 1;
     }
@@ -415,9 +432,10 @@ get_error_line(Parser *p, Py_ssize_t lineno)
      * (multi-line) statement are stored in p->tok->interactive_src_start.
      * If not, we're parsing from a string, which means that the whole source
      * is stored in p->tok->str. */
-    assert(p->tok->fp == NULL || p->tok->fp == stdin);
+    assert((p->tok->fp == NULL && p->tok->str != NULL) || p->tok->fp == stdin);
 
     char *cur_line = p->tok->fp_interactive ? p->tok->interactive_src_start : p->tok->str;
+    assert(cur_line != NULL);
 
     for (int i = 0; i < lineno - 1; i++) {
         cur_line = strchr(cur_line, '\n') + 1;
@@ -469,14 +487,12 @@ _PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,
         goto error;
     }
 
-    // PyErr_ProgramTextObject assumes that the text is utf-8 so we cannot call it with a file
-    // with an arbitrary encoding or otherwise we could get some badly decoded text.
-    int uses_utf8_codec = (!p->tok->encoding || strcmp(p->tok->encoding, "utf-8") == 0);
     if (p->tok->fp_interactive) {
         error_line = get_error_line(p, lineno);
     }
-    else if (uses_utf8_codec && p->start_rule == Py_file_input) {
-        error_line = PyErr_ProgramTextObject(p->tok->filename, (int) lineno);
+    else if (p->start_rule == Py_file_input) {
+        error_line = _PyErr_ProgramDecodedTextObject(p->tok->filename,
+                                                     (int) lineno, p->tok->encoding);
     }
 
     if (!error_line) {
@@ -487,15 +503,18 @@ _PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,
            we're actually parsing from a file, which has an E_EOF SyntaxError and in that case
            `PyErr_ProgramTextObject` fails because lineno points to last_file_line + 1, which
            does not physically exist */
-        assert(p->tok->fp == NULL || p->tok->fp == stdin || p->tok->done == E_EOF || !uses_utf8_codec);
+        assert(p->tok->fp == NULL || p->tok->fp == stdin || p->tok->done == E_EOF);
 
-        if (p->tok->lineno <= lineno) {
+        if (p->tok->lineno <= lineno && p->tok->inp > p->tok->buf) {
             Py_ssize_t size = p->tok->inp - p->tok->buf;
             error_line = PyUnicode_DecodeUTF8(p->tok->buf, size, "replace");
         }
-        else {
+        else if (p->tok->fp == NULL || p->tok->fp == stdin) {
             error_line = get_error_line(p, lineno);
         }
+        else {
+            error_line = PyUnicode_FromStringAndSize("", 0);
+        }
         if (!error_line) {
             goto error;
         }
@@ -673,6 +692,8 @@ initialize_token(Parser *p, Token *token, const char *start, const char *end, in
         return -1;
     }
 
+    token->level = p->tok->level;
+
     const char *line_start = token_type == STRING ? p->tok->multi_line_start : p->tok->line_start;
     int lineno = token_type == STRING ? p->tok->first_lineno : p->tok->lineno;
     int end_lineno = p->tok->lineno;
@@ -1321,13 +1342,16 @@ _PyPegen_run_parser(Parser *p)
 {
     void *res = _PyPegen_parse(p);
     if (res == NULL) {
+        if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_SyntaxError)) {
+            return NULL;
+        }
         Token *last_token = p->tokens[p->fill - 1];
         reset_parser_state(p);
         _PyPegen_parse(p);
         if (PyErr_Occurred()) {
             // Prioritize tokenizer errors to custom syntax errors raised
             // on the second phase only if the errors come from the parser.
-            if (p->tok->done != E_ERROR && PyErr_ExceptionMatches(PyExc_SyntaxError)) {
+            if (p->tok->done == E_DONE && PyErr_ExceptionMatches(PyExc_SyntaxError)) {
                 _PyPegen_check_tokenizer_errors(p);
             }
             return NULL;
@@ -1335,7 +1359,7 @@ _PyPegen_run_parser(Parser *p)
         if (p->fill == 0) {
             RAISE_SYNTAX_ERROR("error at start before reading any input");
         }
-        else if (p->tok->done == E_EOF) {
+        else if (last_token->type == ERRORTOKEN && p->tok->done == E_EOF) {
             if (p->tok->level) {
                 raise_unclosed_parentheses_error(p);
             } else {
@@ -1428,7 +1452,7 @@ _PyPegen_run_parser_from_string(const char *str, int start_rule, PyObject *filen
     int exec_input = start_rule == Py_file_input;
 
     struct tok_state *tok;
-    if (flags == NULL || flags->cf_flags & PyCF_IGNORE_COOKIE) {
+    if (flags != NULL && flags->cf_flags & PyCF_IGNORE_COOKIE) {
         tok = PyTokenizer_FromUTF8(str, exec_input);
     } else {
         tok = PyTokenizer_FromString(str, exec_input);
index 40222d64499a9d6e1ffacb2cca65b367effe0a45..04c7b9d19bb8a0c0d3beb595ecb4345bae5ad24b 100644 (file)
@@ -33,6 +33,7 @@ typedef struct _memo {
 typedef struct {
     int type;
     PyObject *bytes;
+    int level;
     int lineno, col_offset, end_lineno, end_col_offset;
     Memo *memo;
 } Token;
diff --git a/Parser/pegen_errors.c b/Parser/pegen_errors.c
new file mode 100644 (file)
index 0000000..93057d1
--- /dev/null
@@ -0,0 +1,425 @@
+#include <Python.h>
+#include <errcode.h>
+
+#include "tokenizer.h"
+#include "pegen.h"
+
+// TOKENIZER ERRORS
+
+void
+_PyPegen_raise_tokenizer_init_error(PyObject *filename)
+{
+    if (!(PyErr_ExceptionMatches(PyExc_LookupError)
+          || PyErr_ExceptionMatches(PyExc_SyntaxError)
+          || PyErr_ExceptionMatches(PyExc_ValueError)
+          || PyErr_ExceptionMatches(PyExc_UnicodeDecodeError))) {
+        return;
+    }
+    PyObject *errstr = NULL;
+    PyObject *tuple = NULL;
+    PyObject *type;
+    PyObject *value;
+    PyObject *tback;
+    PyErr_Fetch(&type, &value, &tback);
+    errstr = PyObject_Str(value);
+    if (!errstr) {
+        goto error;
+    }
+
+    PyObject *tmp = Py_BuildValue("(OiiO)", filename, 0, -1, Py_None);
+    if (!tmp) {
+        goto error;
+    }
+
+    tuple = PyTuple_Pack(2, errstr, tmp);
+    Py_DECREF(tmp);
+    if (!value) {
+        goto error;
+    }
+    PyErr_SetObject(PyExc_SyntaxError, tuple);
+
+error:
+    Py_XDECREF(type);
+    Py_XDECREF(value);
+    Py_XDECREF(tback);
+    Py_XDECREF(errstr);
+    Py_XDECREF(tuple);
+}
+
+static inline void
+raise_unclosed_parentheses_error(Parser *p) {
+       int error_lineno = p->tok->parenlinenostack[p->tok->level-1];
+       int error_col = p->tok->parencolstack[p->tok->level-1];
+       RAISE_ERROR_KNOWN_LOCATION(p, PyExc_SyntaxError,
+                                  error_lineno, error_col, error_lineno, -1,
+                                  "'%c' was never closed",
+                                  p->tok->parenstack[p->tok->level-1]);
+}
+
+int
+_Pypegen_tokenizer_error(Parser *p)
+{
+    if (PyErr_Occurred()) {
+        return -1;
+    }
+
+    const char *msg = NULL;
+    PyObject* errtype = PyExc_SyntaxError;
+    Py_ssize_t col_offset = -1;
+    switch (p->tok->done) {
+        case E_TOKEN:
+            msg = "invalid token";
+            break;
+        case E_EOF:
+            if (p->tok->level) {
+                raise_unclosed_parentheses_error(p);
+            } else {
+                RAISE_SYNTAX_ERROR("unexpected EOF while parsing");
+            }
+            return -1;
+        case E_DEDENT:
+            RAISE_INDENTATION_ERROR("unindent does not match any outer indentation level");
+            return -1;
+        case E_INTR:
+            if (!PyErr_Occurred()) {
+                PyErr_SetNone(PyExc_KeyboardInterrupt);
+            }
+            return -1;
+        case E_NOMEM:
+            PyErr_NoMemory();
+            return -1;
+        case E_TABSPACE:
+            errtype = PyExc_TabError;
+            msg = "inconsistent use of tabs and spaces in indentation";
+            break;
+        case E_TOODEEP:
+            errtype = PyExc_IndentationError;
+            msg = "too many levels of indentation";
+            break;
+        case E_LINECONT: {
+            col_offset = p->tok->cur - p->tok->buf - 1;
+            msg = "unexpected character after line continuation character";
+            break;
+        }
+        default:
+            msg = "unknown parsing error";
+    }
+
+    RAISE_ERROR_KNOWN_LOCATION(p, errtype, p->tok->lineno,
+                               col_offset >= 0 ? col_offset : 0,
+                               p->tok->lineno, -1, msg);
+    return -1;
+}
+
+int
+_Pypegen_raise_decode_error(Parser *p)
+{
+    assert(PyErr_Occurred());
+    const char *errtype = NULL;
+    if (PyErr_ExceptionMatches(PyExc_UnicodeError)) {
+        errtype = "unicode error";
+    }
+    else if (PyErr_ExceptionMatches(PyExc_ValueError)) {
+        errtype = "value error";
+    }
+    if (errtype) {
+        PyObject *type;
+        PyObject *value;
+        PyObject *tback;
+        PyObject *errstr;
+        PyErr_Fetch(&type, &value, &tback);
+        errstr = PyObject_Str(value);
+        if (errstr) {
+            RAISE_SYNTAX_ERROR("(%s) %U", errtype, errstr);
+            Py_DECREF(errstr);
+        }
+        else {
+            PyErr_Clear();
+            RAISE_SYNTAX_ERROR("(%s) unknown error", errtype);
+        }
+        Py_XDECREF(type);
+        Py_XDECREF(value);
+        Py_XDECREF(tback);
+    }
+
+    return -1;
+}
+
+static int
+_PyPegen_tokenize_full_source_to_check_for_errors(Parser *p) {
+    // Tokenize the whole input to see if there are any tokenization
+    // errors such as mistmatching parentheses. These will get priority
+    // over generic syntax errors only if the line number of the error is
+    // before the one that we had for the generic error.
+
+    // We don't want to tokenize to the end for interactive input
+    if (p->tok->prompt != NULL) {
+        return 0;
+    }
+
+    PyObject *type, *value, *traceback;
+    PyErr_Fetch(&type, &value, &traceback);
+
+    Token *current_token = p->known_err_token != NULL ? p->known_err_token : p->tokens[p->fill - 1];
+    Py_ssize_t current_err_line = current_token->lineno;
+
+    int ret = 0;
+
+    for (;;) {
+        const char *start;
+        const char *end;
+        switch (_PyTokenizer_Get(p->tok, &start, &end)) {
+            case ERRORTOKEN:
+                if (p->tok->level != 0) {
+                    int error_lineno = p->tok->parenlinenostack[p->tok->level-1];
+                    if (current_err_line > error_lineno) {
+                        raise_unclosed_parentheses_error(p);
+                        ret = -1;
+                        goto exit;
+                    }
+                }
+                break;
+            case ENDMARKER:
+                break;
+            default:
+                continue;
+        }
+        break;
+    }
+
+
+exit:
+    if (PyErr_Occurred()) {
+        Py_XDECREF(value);
+        Py_XDECREF(type);
+        Py_XDECREF(traceback);
+    } else {
+        PyErr_Restore(type, value, traceback);
+    }
+    return ret;
+}
+
+// PARSER ERRORS
+
+void *
+_PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...)
+{
+    if (p->fill == 0) {
+        va_list va;
+        va_start(va, errmsg);
+        _PyPegen_raise_error_known_location(p, errtype, 0, 0, 0, -1, errmsg, va);
+        va_end(va);
+        return NULL;
+    }
+
+    Token *t = p->known_err_token != NULL ? p->known_err_token : p->tokens[p->fill - 1];
+    Py_ssize_t col_offset;
+    Py_ssize_t end_col_offset = -1;
+    if (t->col_offset == -1) {
+        if (p->tok->cur == p->tok->buf) {
+            col_offset = 0;
+        } else {
+            const char* start = p->tok->buf  ? p->tok->line_start : p->tok->buf;
+            col_offset = Py_SAFE_DOWNCAST(p->tok->cur - start, intptr_t, int);
+        }
+    } else {
+        col_offset = t->col_offset + 1;
+    }
+
+    if (t->end_col_offset != -1) {
+        end_col_offset = t->end_col_offset + 1;
+    }
+
+    va_list va;
+    va_start(va, errmsg);
+    _PyPegen_raise_error_known_location(p, errtype, t->lineno, col_offset, t->end_lineno, end_col_offset, errmsg, va);
+    va_end(va);
+
+    return NULL;
+}
+
+static PyObject *
+get_error_line_from_tokenizer_buffers(Parser *p, Py_ssize_t lineno)
+{
+    /* If the file descriptor is interactive, the source lines of the current
+     * (multi-line) statement are stored in p->tok->interactive_src_start.
+     * If not, we're parsing from a string, which means that the whole source
+     * is stored in p->tok->str. */
+    assert((p->tok->fp == NULL && p->tok->str != NULL) || p->tok->fp == stdin);
+
+    char *cur_line = p->tok->fp_interactive ? p->tok->interactive_src_start : p->tok->str;
+    assert(cur_line != NULL);
+
+    for (int i = 0; i < lineno - 1; i++) {
+        cur_line = strchr(cur_line, '\n') + 1;
+    }
+
+    char *next_newline;
+    if ((next_newline = strchr(cur_line, '\n')) == NULL) { // This is the last line
+        next_newline = cur_line + strlen(cur_line);
+    }
+    return PyUnicode_DecodeUTF8(cur_line, next_newline - cur_line, "replace");
+}
+
+void *
+_PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,
+                                    Py_ssize_t lineno, Py_ssize_t col_offset,
+                                    Py_ssize_t end_lineno, Py_ssize_t end_col_offset,
+                                    const char *errmsg, va_list va)
+{
+    PyObject *value = NULL;
+    PyObject *errstr = NULL;
+    PyObject *error_line = NULL;
+    PyObject *tmp = NULL;
+    p->error_indicator = 1;
+
+    if (end_lineno == CURRENT_POS) {
+        end_lineno = p->tok->lineno;
+    }
+    if (end_col_offset == CURRENT_POS) {
+        end_col_offset = p->tok->cur - p->tok->line_start;
+    }
+
+    if (p->start_rule == Py_fstring_input) {
+        const char *fstring_msg = "f-string: ";
+        Py_ssize_t len = strlen(fstring_msg) + strlen(errmsg);
+
+        char *new_errmsg = PyMem_Malloc(len + 1); // Lengths of both strings plus NULL character
+        if (!new_errmsg) {
+            return (void *) PyErr_NoMemory();
+        }
+
+        // Copy both strings into new buffer
+        memcpy(new_errmsg, fstring_msg, strlen(fstring_msg));
+        memcpy(new_errmsg + strlen(fstring_msg), errmsg, strlen(errmsg));
+        new_errmsg[len] = 0;
+        errmsg = new_errmsg;
+    }
+    errstr = PyUnicode_FromFormatV(errmsg, va);
+    if (!errstr) {
+        goto error;
+    }
+
+    if (p->tok->fp_interactive) {
+        error_line = get_error_line_from_tokenizer_buffers(p, lineno);
+    }
+    else if (p->start_rule == Py_file_input) {
+        error_line = _PyErr_ProgramDecodedTextObject(p->tok->filename,
+                                                     (int) lineno, p->tok->encoding);
+    }
+
+    if (!error_line) {
+        /* PyErr_ProgramTextObject was not called or returned NULL. If it was not called,
+           then we need to find the error line from some other source, because
+           p->start_rule != Py_file_input. If it returned NULL, then it either unexpectedly
+           failed or we're parsing from a string or the REPL. There's a third edge case where
+           we're actually parsing from a file, which has an E_EOF SyntaxError and in that case
+           `PyErr_ProgramTextObject` fails because lineno points to last_file_line + 1, which
+           does not physically exist */
+        assert(p->tok->fp == NULL || p->tok->fp == stdin || p->tok->done == E_EOF);
+
+        if (p->tok->lineno <= lineno && p->tok->inp > p->tok->buf) {
+            Py_ssize_t size = p->tok->inp - p->tok->buf;
+            error_line = PyUnicode_DecodeUTF8(p->tok->buf, size, "replace");
+        }
+        else if (p->tok->fp == NULL || p->tok->fp == stdin) {
+            error_line = get_error_line_from_tokenizer_buffers(p, lineno);
+        }
+        else {
+            error_line = PyUnicode_FromStringAndSize("", 0);
+        }
+        if (!error_line) {
+            goto error;
+        }
+    }
+
+    if (p->start_rule == Py_fstring_input) {
+        col_offset -= p->starting_col_offset;
+        end_col_offset -= p->starting_col_offset;
+    }
+
+    Py_ssize_t col_number = col_offset;
+    Py_ssize_t end_col_number = end_col_offset;
+
+    if (p->tok->encoding != NULL) {
+        col_number = _PyPegen_byte_offset_to_character_offset(error_line, col_offset);
+        if (col_number < 0) {
+            goto error;
+        }
+        if (end_col_number > 0) {
+            Py_ssize_t end_col_offset = _PyPegen_byte_offset_to_character_offset(error_line, end_col_number);
+            if (end_col_offset < 0) {
+                goto error;
+            } else {
+                end_col_number = end_col_offset;
+            }
+        }
+    }
+    tmp = Py_BuildValue("(OiiNii)", p->tok->filename, lineno, col_number, error_line, end_lineno, end_col_number);
+    if (!tmp) {
+        goto error;
+    }
+    value = PyTuple_Pack(2, errstr, tmp);
+    Py_DECREF(tmp);
+    if (!value) {
+        goto error;
+    }
+    PyErr_SetObject(errtype, value);
+
+    Py_DECREF(errstr);
+    Py_DECREF(value);
+    if (p->start_rule == Py_fstring_input) {
+        PyMem_Free((void *)errmsg);
+    }
+    return NULL;
+
+error:
+    Py_XDECREF(errstr);
+    Py_XDECREF(error_line);
+    if (p->start_rule == Py_fstring_input) {
+        PyMem_Free((void *)errmsg);
+    }
+    return NULL;
+}
+
+void
+_Pypegen_set_syntax_error(Parser* p, Token* last_token) {
+    // Existing sintax error
+    if (PyErr_Occurred()) {
+        // Prioritize tokenizer errors to custom syntax errors raised
+        // on the second phase only if the errors come from the parser.
+        if (p->tok->done == E_DONE && PyErr_ExceptionMatches(PyExc_SyntaxError)) {
+            _PyPegen_tokenize_full_source_to_check_for_errors(p);
+        }
+        // Propagate the existing syntax error.
+        return;
+    }
+    // Initialization error
+    if (p->fill == 0) {
+        RAISE_SYNTAX_ERROR("error at start before reading any input");
+    }
+    // Parser encountered EOF (End of File) unexpectedtly
+    if (last_token->type == ERRORTOKEN && p->tok->done == E_EOF) {
+        if (p->tok->level) {
+            raise_unclosed_parentheses_error(p);
+        } else {
+            RAISE_SYNTAX_ERROR("unexpected EOF while parsing");
+        }
+        return;
+    }
+    // Indentation error in the tokenizer
+    if (last_token->type == INDENT || last_token->type == DEDENT) {
+        RAISE_INDENTATION_ERROR(last_token->type == INDENT ? "unexpected indent" : "unexpected unindent");
+        return;
+    }
+    // Unknown error (generic case)
+
+    // Use the last token we found on the first pass to avoid reporting
+    // incorrect locations for generic syntax errors just because we reached
+    // further away when trying to find specific syntax errors in the second
+    // pass.
+    RAISE_SYNTAX_ERROR_KNOWN_LOCATION(last_token, "invalid syntax");
+    // _PyPegen_tokenize_full_source_to_check_for_errors will override the existing
+    // generic SyntaxError we just raised if errors are found.
+    _PyPegen_tokenize_full_source_to_check_for_errors(p);
+}
index fb37d37553a552d30db3f58e94ba3e8fd45393b1..dcd298cb358ee7a85c1094034af06e2edde92cfd 100644 (file)
@@ -115,7 +115,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 a076d625bbf515413cc7025232b1e53892d8a190..672fdb92ec86f8adec8078f632858da12a214352 100644 (file)
@@ -86,7 +86,7 @@ tok_new(void)
     tok->async_def_indent = 0;
     tok->async_def_nl = 0;
     tok->interactive_underflow = IUNDERFLOW_NORMAL;
-
+    tok->str = NULL;
     return tok;
 }
 
@@ -994,6 +994,7 @@ tok_underflow_file(struct tok_state *tok) {
     return tok->done == E_OK;
 }
 
+#if defined(Py_DEBUG)
 static void
 print_escape(FILE *f, const char *s, Py_ssize_t size)
 {
@@ -1020,6 +1021,7 @@ print_escape(FILE *f, const char *s, Py_ssize_t size)
     }
     putc('"', f);
 }
+#endif
 
 /* Get next char, updating state; error code goes into tok->done */
 
@@ -1042,11 +1044,13 @@ tok_nextc(struct tok_state *tok)
         else {
             rc = tok_underflow_file(tok);
         }
+#if defined(Py_DEBUG)
         if (Py_DebugFlag) {
-            printf("line[%d] = ", tok->lineno);
-            print_escape(stdout, tok->cur, tok->inp - tok->cur);
-            printf("  tok->done = %d\n", tok->done);
+            fprintf(stderr, "line[%d] = ", tok->lineno);
+            print_escape(stderr, tok->cur, tok->inp - tok->cur);
+            fprintf(stderr, "  tok->done = %d\n", tok->done);
         }
+#endif
         if (!rc) {
             tok->cur = tok->inp;
             return EOF;
@@ -1965,7 +1969,6 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
         c = tok_nextc(tok);
         if (c != '\n') {
             tok->done = E_LINECONT;
-            tok->cur = tok->inp;
             return ERRORTOKEN;
         }
         c = tok_nextc(tok);
@@ -2128,9 +2131,9 @@ PyTokenizer_FindEncoding(int fd)
 void
 tok_dump(int type, char *start, char *end)
 {
-    printf("%s", _PyParser_TokenNames[type]);
+    fprintf(stderr, "%s", _PyParser_TokenNames[type]);
     if (type == NAME || type == NUMBER || type == STRING || type == OP)
-        printf("(%.*s)", (int)(end - start), start);
+        fprintf(stderr, "(%.*s)", (int)(end - start), start);
 }
 
 #endif
index a40f7d9687b44078065b3c1d751010bd3592b086..61f0a6138f676bed1b8f87af2e97288e384e288c 100644 (file)
@@ -23,7 +23,7 @@ enum interactive_underflow_t {
     /* Normal mode of operation: return a new token when asked in interactie mode */
     IUNDERFLOW_NORMAL,
     /* Forcefully return ENDMARKER when asked for a new token in interactive mode. This
-     * can be used to prevent the tokenizer to promt the user for new tokens */
+     * can be used to prevent the tokenizer to prompt the user for new tokens */
     IUNDERFLOW_STOP,
 };
 
@@ -71,7 +71,7 @@ struct tok_state {
     PyObject *decoding_readline; /* open(...).readline */
     PyObject *decoding_buffer;
     const char* enc;        /* Encoding for the current str. */
-    char* str;
+    char* str;          /* Source string being tokenized (if tokenizing from a string)*/
     char* input;       /* Tokenizer's newline translated copy of the string. */
 
     int type_comments;      /* Whether to look for type comments */
index f8de6bc07934bce46339b28ad72cc031b2e56921..b7d4675a955a5064a588d689274baae57f2bd047 100644 (file)
@@ -1662,15 +1662,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");
 
@@ -1844,6 +1855,7 @@ static struct TestCase TestCases[] = {
     {"test_init_warnoptions", test_init_warnoptions},
     {"test_init_set_config", test_init_set_config},
     {"test_run_main", test_run_main},
+    {"test_run_main_loop", test_run_main_loop},
     {"test_get_argc_argv", test_get_argc_argv},
 
     // Audit
index 429ddb82bd66d48771f1f42c8d114711343600d2..624baf537518facda1bc22ec901f3309ee6d4c58 100644 (file)
@@ -1297,12 +1297,6 @@ eval_frame_handle_pending(PyThreadState *tstate)
 
 #if USE_COMPUTED_GOTOS
 #define TARGET(op) op: TARGET_##op
-#define DISPATCH_GOTO() goto *opcode_targets[opcode]
-#else
-#define TARGET(op) op
-#define DISPATCH_GOTO() goto dispatch_opcode
-#endif
-
 #define DISPATCH() \
     { \
         if (trace_info.cframe.use_tracing OR_DTRACE_LINE OR_LLTRACE) { \
@@ -1310,8 +1304,13 @@ eval_frame_handle_pending(PyThreadState *tstate)
         } \
         f->f_lasti = INSTR_OFFSET(); \
         NEXTOPARG(); \
-        DISPATCH_GOTO(); \
+        goto *opcode_targets[opcode]; \
     }
+#else
+#define TARGET(op) op
+#define DISPATCH() goto predispatch;
+#endif
+
 
 #define CHECK_EVAL_BREAKER() \
     if (_Py_atomic_load_relaxed(eval_breaker)) { \
@@ -1827,7 +1826,16 @@ main_loop:
             }
         }
 #endif
+#if USE_COMPUTED_GOTOS == 0
+    goto dispatch_opcode;
 
+    predispatch:
+        if (trace_info.cframe.use_tracing OR_DTRACE_LINE OR_LLTRACE) {
+            goto tracing_dispatch;
+        }
+        f->f_lasti = INSTR_OFFSET();
+        NEXTOPARG();
+#endif
     dispatch_opcode:
 #ifdef DYNAMIC_EXECUTION_PROFILE
 #ifdef DXPAIRS
@@ -5482,7 +5490,7 @@ call_trace(Py_tracefunc func, PyObject *obj,
     }
     else {
         initialize_trace_info(trace_info, frame);
-        frame->f_lineno = _PyCode_CheckLineNumber(frame->f_lasti*2, &trace_info->bounds);
+        frame->f_lineno = _PyCode_CheckLineNumber(frame->f_lasti*sizeof(_Py_CODEUNIT), &trace_info->bounds);
     }
     result = func(obj, frame, what, arg);
     frame->f_lineno = 0;
@@ -5522,8 +5530,8 @@ maybe_call_line_trace(Py_tracefunc func, PyObject *obj,
        then call the trace function if we're tracing source lines.
     */
     initialize_trace_info(trace_info, frame);
-    int lastline = _PyCode_CheckLineNumber(instr_prev*2, &trace_info->bounds);
-    int line = _PyCode_CheckLineNumber(frame->f_lasti*2, &trace_info->bounds);
+    int lastline = _PyCode_CheckLineNumber(instr_prev*sizeof(_Py_CODEUNIT), &trace_info->bounds);
+    int line = _PyCode_CheckLineNumber(frame->f_lasti*sizeof(_Py_CODEUNIT), &trace_info->bounds);
     if (line != -1 && frame->f_trace_lines) {
         /* Trace backward edges or if line number has changed */
         if (frame->f_lasti < instr_prev || line != lastline) {
@@ -6486,7 +6494,7 @@ maybe_dtrace_line(PyFrameObject *frame,
        instruction window, reset the window.
     */
     initialize_trace_info(trace_info, frame);
-    int line = _PyCode_CheckLineNumber(frame->f_lasti*2, &trace_info->bounds);
+    int line = _PyCode_CheckLineNumber(frame->f_lasti*sizeof(_Py_CODEUNIT), &trace_info->bounds);
     /* If the last instruction falls at the start of a line or if
        it represents a jump backwards, update the frame's line
        number and call the trace function. */
index baea4940d37249eff4be7527f4797fb725306fac..3eb34d89cc55febcfe8b47a4f5b5fda474f91fd2 100644 (file)
@@ -21,6 +21,8 @@
  * objects.
  */
 
+#include <stdbool.h>
+
 #include "Python.h"
 #include "pycore_ast.h"           // _PyAST_GetDocString()
 #include "pycore_compile.h"       // _PyFuture_FromAST()
@@ -6157,7 +6159,7 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc)
                     // cases, though.
                     assert(istores < icontrol);
                     Py_ssize_t rotations = istores + 1;
-                    // Perfom the same rotation on pc->stores:
+                    // Perform the same rotation on pc->stores:
                     PyObject *rotated = PyList_GetSlice(pc->stores, 0,
                                                         rotations);
                     if (rotated == NULL ||
@@ -6619,7 +6621,7 @@ static int
 assemble_line_range(struct assembler *a)
 {
     int ldelta, bdelta;
-    bdelta =  (a->a_offset - a->a_lineno_start) * 2;
+    bdelta =  (a->a_offset - a->a_lineno_start) * sizeof(_Py_CODEUNIT);
     if (bdelta == 0) {
         return 1;
     }
@@ -6785,7 +6787,7 @@ consts_dict_keys_inorder(PyObject *dict)
         return NULL;
     while (PyDict_Next(dict, &pos, &k, &v)) {
         i = PyLong_AS_LONG(v);
-        /* The keys of the dictionary can be tuples wrapping a contant.
+        /* The keys of the dictionary can be tuples wrapping a constant.
          * (see compiler_add_o and _PyCode_ConstantKey). In that case
          * the object we want is always second. */
         if (PyTuple_CheckExact(k)) {
@@ -6986,6 +6988,9 @@ normalize_basic_block(basicblock *bb);
 static int
 optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts);
 
+static int
+trim_unused_consts(struct compiler *c, struct assembler *a, PyObject *consts);
+
 /* Duplicates exit BBs, so that line numbers can be propagated to them */
 static int
 duplicate_exits_without_lineno(struct compiler *c);
@@ -7127,6 +7132,9 @@ assemble(struct compiler *c, int addNone)
     if (duplicate_exits_without_lineno(c)) {
         return NULL;
     }
+    if (trim_unused_consts(c, &a, consts)) {
+        goto error;
+    }
     propagate_line_numbers(&a);
     guarantee_lineno_for_exits(&a, c->u->u_firstlineno);
     /* Can't modify the bytecode after computing jump offsets. */
@@ -7258,25 +7266,24 @@ fold_rotations(struct instr *inst, int n)
     }
 }
 
-
-static int
-eliminate_jump_to_jump(basicblock *bb, int opcode) {
-    assert (bb->b_iused > 0);
-    struct instr *inst = &bb->b_instr[bb->b_iused-1];
-    assert (is_jump(inst));
-    assert (inst->i_target->b_iused > 0);
-    struct instr *target = &inst->i_target->b_instr[0];
-    if (inst->i_target == target->i_target) {
-        /* Nothing to do */
-        return 0;
-    }
-    int lineno = target->i_lineno;
-    if (add_jump_to_block(bb, opcode, lineno, target->i_target) == 0) {
-        return -1;
+// Attempt to eliminate jumps to jumps by updating inst to jump to
+// target->i_target using the provided opcode. Return whether or not the
+// optimization was successful.
+static bool
+jump_thread(struct instr *inst, struct instr *target, int opcode)
+{
+    assert(is_jump(inst));
+    assert(is_jump(target));
+    // bpo-45773: If inst->i_target == target->i_target, then nothing actually
+    // changes (and we fall into an infinite loop):
+    if (inst->i_lineno == target->i_lineno &&
+        inst->i_target != target->i_target)
+    {
+        inst->i_target = target->i_target;
+        inst->i_opcode = opcode;
+        return true;
     }
-    assert (bb->b_iused >= 2);
-    bb->b_instr[bb->b_iused-2].i_opcode = NOP;
-    return 0;
+    return false;
 }
 
 /* Maximum size of basic block that should be copied in optimizer */
@@ -7393,25 +7400,21 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts)
                    where y+1 is the instruction following the second test.
                 */
             case JUMP_IF_FALSE_OR_POP:
-                switch(target->i_opcode) {
+                switch (target->i_opcode) {
                     case POP_JUMP_IF_FALSE:
-                        if (inst->i_lineno == target->i_lineno) {
-                            *inst = *target;
-                            i--;
-                        }
+                        i -= jump_thread(inst, target, POP_JUMP_IF_FALSE);
                         break;
                     case JUMP_ABSOLUTE:
                     case JUMP_FORWARD:
                     case JUMP_IF_FALSE_OR_POP:
-                        if (inst->i_lineno == target->i_lineno &&
-                            inst->i_target != target->i_target) {
-                            inst->i_target = target->i_target;
-                            i--;
-                        }
+                        i -= jump_thread(inst, target, JUMP_IF_FALSE_OR_POP);
                         break;
                     case JUMP_IF_TRUE_OR_POP:
-                        assert (inst->i_target->b_iused == 1);
+                    case POP_JUMP_IF_TRUE:
                         if (inst->i_lineno == target->i_lineno) {
+                            // We don't need to bother checking for loops here,
+                            // since a block's b_next cannot point to itself:
+                            assert(inst->i_target != inst->i_target->b_next);
                             inst->i_opcode = POP_JUMP_IF_FALSE;
                             inst->i_target = inst->i_target->b_next;
                             --i;
@@ -7419,27 +7422,22 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts)
                         break;
                 }
                 break;
-
             case JUMP_IF_TRUE_OR_POP:
-                switch(target->i_opcode) {
+                switch (target->i_opcode) {
                     case POP_JUMP_IF_TRUE:
-                        if (inst->i_lineno == target->i_lineno) {
-                            *inst = *target;
-                            i--;
-                        }
+                        i -= jump_thread(inst, target, POP_JUMP_IF_TRUE);
                         break;
                     case JUMP_ABSOLUTE:
                     case JUMP_FORWARD:
                     case JUMP_IF_TRUE_OR_POP:
-                        if (inst->i_lineno == target->i_lineno &&
-                            inst->i_target != target->i_target) {
-                            inst->i_target = target->i_target;
-                            i--;
-                        }
+                        i -= jump_thread(inst, target, JUMP_IF_TRUE_OR_POP);
                         break;
                     case JUMP_IF_FALSE_OR_POP:
-                        assert (inst->i_target->b_iused == 1);
+                    case POP_JUMP_IF_FALSE:
                         if (inst->i_lineno == target->i_lineno) {
+                            // We don't need to bother checking for loops here,
+                            // since a block's b_next cannot point to itself:
+                            assert(inst->i_target != inst->i_target->b_next);
                             inst->i_opcode = POP_JUMP_IF_TRUE;
                             inst->i_target = inst->i_target->b_next;
                             --i;
@@ -7447,54 +7445,33 @@ optimize_basic_block(struct compiler *c, basicblock *bb, PyObject *consts)
                         break;
                 }
                 break;
-
             case POP_JUMP_IF_FALSE:
-                switch(target->i_opcode) {
+                switch (target->i_opcode) {
                     case JUMP_ABSOLUTE:
                     case JUMP_FORWARD:
-                        if (inst->i_lineno == target->i_lineno) {
-                            inst->i_target = target->i_target;
-                            i--;
-                        }
-                        break;
+                    case JUMP_IF_FALSE_OR_POP:
+                        i -= jump_thread(inst, target, POP_JUMP_IF_FALSE);
                 }
                 break;
-
             case POP_JUMP_IF_TRUE:
-                switch(target->i_opcode) {
+                switch (target->i_opcode) {
                     case JUMP_ABSOLUTE:
                     case JUMP_FORWARD:
-                        if (inst->i_lineno == target->i_lineno) {
-                            inst->i_target = target->i_target;
-                            i--;
-                        }
-                        break;
+                    case JUMP_IF_TRUE_OR_POP:
+                        i -= jump_thread(inst, target, POP_JUMP_IF_TRUE);
                 }
                 break;
-
             case JUMP_ABSOLUTE:
             case JUMP_FORWARD:
-                assert (i == bb->b_iused-1);
-                switch(target->i_opcode) {
-                    case JUMP_FORWARD:
-                        if (eliminate_jump_to_jump(bb, inst->i_opcode)) {
-                            goto error;
-                        }
-                        break;
-
+                switch (target->i_opcode) {
                     case JUMP_ABSOLUTE:
-                        if (eliminate_jump_to_jump(bb, JUMP_ABSOLUTE)) {
-                            goto error;
-                        }
-                        break;
+                    case JUMP_FORWARD:
+                        i -= jump_thread(inst, target, JUMP_ABSOLUTE);
                 }
                 break;
             case FOR_ITER:
-                assert (i == bb->b_iused-1);
                 if (target->i_opcode == JUMP_FORWARD) {
-                    if (eliminate_jump_to_jump(bb, inst->i_opcode)) {
-                        goto error;
-                    }
+                    i -= jump_thread(inst, target, FOR_ITER);
                 }
                 break;
             case ROT_N:
@@ -7809,6 +7786,33 @@ optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts)
     return 0;
 }
 
+// Remove trailing unused constants.
+static int
+trim_unused_consts(struct compiler *c, struct assembler *a, PyObject *consts)
+{
+    assert(PyList_CheckExact(consts));
+
+    // The first constant may be docstring; keep it always.
+    int max_const_index = 0;
+    for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) {
+        for (int i = 0; i < b->b_iused; i++) {
+            if (b->b_instr[i].i_opcode == LOAD_CONST &&
+                    b->b_instr[i].i_oparg > max_const_index) {
+                max_const_index = b->b_instr[i].i_oparg;
+            }
+        }
+    }
+    if (max_const_index+1 < PyList_GET_SIZE(consts)) {
+        //fprintf(stderr, "removing trailing consts: max=%d, size=%d\n",
+        //        max_const_index, (int)PyList_GET_SIZE(consts));
+        if (PyList_SetSlice(consts, max_const_index+1,
+                            PyList_GET_SIZE(consts), NULL) < 0) {
+            return 1;
+        }
+    }
+    return 0;
+}
+
 static inline int
 is_exit_without_lineno(basicblock *b) {
     return b->b_exit && b->b_instr[0].i_lineno < 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 9944c3a6007c6d7df587fd94aa9de6886d410092..bc1b55e440e8a0de2e5433b94a0818e8c29969d6 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"
@@ -1323,46 +1324,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) {
@@ -1724,7 +1724,7 @@ PyErr_SyntaxLocationEx(const char *filename, int lineno, int col_offset)
    functionality in tb_displayline() in traceback.c. */
 
 static PyObject *
-err_programtext(PyThreadState *tstate, FILE *fp, int lineno)
+err_programtext(PyThreadState *tstate, FILE *fp, int lineno, const char* encoding)
 {
     int i;
     char linebuf[1000];
@@ -1752,7 +1752,11 @@ after_loop:
     fclose(fp);
     if (i == lineno) {
         PyObject *res;
-        res = PyUnicode_FromString(linebuf);
+        if (encoding != NULL) {
+            res = PyUnicode_Decode(linebuf, strlen(linebuf), encoding, "replace");
+        } else {
+            res = PyUnicode_FromString(linebuf);
+        }
         if (res == NULL)
             _PyErr_Clear(tstate);
         return res;
@@ -1778,7 +1782,7 @@ PyErr_ProgramText(const char *filename, int lineno)
 }
 
 PyObject *
-PyErr_ProgramTextObject(PyObject *filename, int lineno)
+_PyErr_ProgramDecodedTextObject(PyObject *filename, int lineno, const char* encoding)
 {
     if (filename == NULL || lineno <= 0) {
         return NULL;
@@ -1790,7 +1794,13 @@ PyErr_ProgramTextObject(PyObject *filename, int lineno)
         _PyErr_Clear(tstate);
         return NULL;
     }
-    return err_programtext(tstate, fp, lineno);
+    return err_programtext(tstate, fp, lineno, encoding);
+}
+
+PyObject *
+PyErr_ProgramTextObject(PyObject *filename, int lineno)
+{
+    return _PyErr_ProgramDecodedTextObject(filename, lineno, NULL);
 }
 
 #ifdef __cplusplus
index e8a7eda505c7ec07c805becea63333ae09ded0cd..c3144ee40782e8a56b2e895b07a73b83b8af85f5 100644 (file)
@@ -67,9 +67,11 @@ PyObject *
 _Py_device_encoding(int fd)
 {
     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;
 
@@ -218,7 +220,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.
 
@@ -1776,12 +1778,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 f2b30afe3f2284d55839e47d3f05b50a3d72a453..acfe96963ca34e0f97a3497cdec1b4b51c70ac1c 100644 (file)
@@ -441,7 +441,9 @@ _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
         return -1;
     }
 
-    if (_Py_IsMainInterpreter(tstate->interp)) {
+    // 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->interp) || def->m_size == -1) {
         if (def->m_size == -1) {
             if (def->m_base.m_copy) {
                 /* Somebody already imported the module,
@@ -2193,7 +2195,7 @@ _PyImport_BootstrapImp(PyThreadState *tstate)
     // Mock a ModuleSpec object just good enough for PyModule_FromDefAndSpec():
     // an object with just a name attribute.
     //
-    // _imp.__spec__ is overriden by importlib._bootstrap._instal() anyway.
+    // _imp.__spec__ is overridden by importlib._bootstrap._instal() anyway.
     PyObject *attrs = Py_BuildValue("{sO}", "name", name);
     if (attrs == NULL) {
         goto error;
index 1847eba74aef45ce241bd13b2b262e45898fc9c3..6d2554741f98220120c86db74a615d8b96e6936d 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 ef2870596e793a5529fb461c23a7c040f5381365..ab3e69b22b662526be6a7bec4aee72681628bb1f 100644 (file)
@@ -389,7 +389,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     114,72,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
     0,0,3,0,0,0,4,0,0,0,79,0,0,0,115,14,
     0,0,0,124,0,124,1,105,0,124,2,164,1,142,1,83,
-    0,41,2,97,46,1,0,0,114,101,109,111,118,101,95,105,
+    0,41,1,97,46,1,0,0,114,101,109,111,118,101,95,105,
     109,112,111,114,116,108,105,98,95,102,114,97,109,101,115,32,
     105,110,32,105,109,112,111,114,116,46,99,32,119,105,108,108,
     32,97,108,119,97,121,115,32,114,101,109,111,118,101,32,115,
@@ -408,1479 +408,1478 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     101,32,116,114,97,99,101,98,97,99,107,32,40,101,46,103,
     46,32,119,104,101,110,32,101,120,101,99,117,116,105,110,103,
     10,32,32,32,32,109,111,100,117,108,101,32,99,111,100,101,
-    41,10,32,32,32,32,78,114,5,0,0,0,41,3,218,1,
-    102,114,62,0,0,0,90,4,107,119,100,115,114,5,0,0,
-    0,114,5,0,0,0,114,6,0,0,0,218,25,95,99,97,
-    108,108,95,119,105,116,104,95,102,114,97,109,101,115,95,114,
-    101,109,111,118,101,100,233,0,0,0,115,2,0,0,0,14,
-    8,114,74,0,0,0,114,42,0,0,0,41,1,218,9,118,
-    101,114,98,111,115,105,116,121,99,1,0,0,0,0,0,0,
-    0,1,0,0,0,3,0,0,0,4,0,0,0,71,0,0,
-    0,115,58,0,0,0,116,0,106,1,106,2,124,1,107,5,
-    114,27,124,0,160,3,100,1,161,1,115,15,100,2,124,0,
-    23,0,125,0,116,4,124,0,106,5,124,2,142,0,116,0,
-    106,6,100,3,141,2,1,0,100,4,83,0,100,4,83,0,
-    41,5,122,61,80,114,105,110,116,32,116,104,101,32,109,101,
-    115,115,97,103,101,32,116,111,32,115,116,100,101,114,114,32,
-    105,102,32,45,118,47,80,89,84,72,79,78,86,69,82,66,
-    79,83,69,32,105,115,32,116,117,114,110,101,100,32,111,110,
-    46,41,2,250,1,35,122,7,105,109,112,111,114,116,32,122,
-    2,35,32,41,1,90,4,102,105,108,101,78,41,7,114,18,
-    0,0,0,218,5,102,108,97,103,115,218,7,118,101,114,98,
-    111,115,101,218,10,115,116,97,114,116,115,119,105,116,104,218,
-    5,112,114,105,110,116,114,50,0,0,0,218,6,115,116,100,
-    101,114,114,41,3,218,7,109,101,115,115,97,103,101,114,75,
-    0,0,0,114,62,0,0,0,114,5,0,0,0,114,5,0,
-    0,0,114,6,0,0,0,218,16,95,118,101,114,98,111,115,
-    101,95,109,101,115,115,97,103,101,244,0,0,0,115,10,0,
-    0,0,12,2,10,1,8,1,24,1,4,253,114,83,0,0,
-    0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
-    0,0,3,0,0,0,3,0,0,0,243,26,0,0,0,135,
-    0,102,1,100,1,100,2,132,8,125,1,116,0,124,1,136,
-    0,131,2,1,0,124,1,83,0,41,4,122,49,68,101,99,
-    111,114,97,116,111,114,32,116,111,32,118,101,114,105,102,121,
-    32,116,104,101,32,110,97,109,101,100,32,109,111,100,117,108,
-    101,32,105,115,32,98,117,105,108,116,45,105,110,46,99,2,
-    0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
-    0,0,0,19,0,0,0,115,38,0,0,0,124,1,116,0,
-    106,1,118,1,114,14,116,2,100,1,160,3,124,1,161,1,
-    124,1,100,2,141,2,130,1,136,0,124,0,124,1,131,2,
-    83,0,41,3,78,250,29,123,33,114,125,32,105,115,32,110,
-    111,116,32,97,32,98,117,105,108,116,45,105,110,32,109,111,
-    100,117,108,101,114,19,0,0,0,41,4,114,18,0,0,0,
-    218,20,98,117,105,108,116,105,110,95,109,111,100,117,108,101,
-    95,110,97,109,101,115,218,11,73,109,112,111,114,116,69,114,
-    114,111,114,114,50,0,0,0,169,2,114,33,0,0,0,218,
-    8,102,117,108,108,110,97,109,101,169,1,218,3,102,120,110,
-    114,5,0,0,0,114,6,0,0,0,218,25,95,114,101,113,
-    117,105,114,101,115,95,98,117,105,108,116,105,110,95,119,114,
-    97,112,112,101,114,254,0,0,0,243,10,0,0,0,10,1,
-    10,1,2,1,6,255,10,2,122,52,95,114,101,113,117,105,
-    114,101,115,95,98,117,105,108,116,105,110,46,60,108,111,99,
-    97,108,115,62,46,95,114,101,113,117,105,114,101,115,95,98,
-    117,105,108,116,105,110,95,119,114,97,112,112,101,114,78,169,
-    1,114,17,0,0,0,41,2,114,91,0,0,0,114,92,0,
-    0,0,114,5,0,0,0,114,90,0,0,0,114,6,0,0,
-    0,218,17,95,114,101,113,117,105,114,101,115,95,98,117,105,
-    108,116,105,110,252,0,0,0,243,6,0,0,0,12,2,10,
-    5,4,1,114,95,0,0,0,99,1,0,0,0,0,0,0,
-    0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,
-    0,114,84,0,0,0,41,4,122,47,68,101,99,111,114,97,
-    116,111,114,32,116,111,32,118,101,114,105,102,121,32,116,104,
-    101,32,110,97,109,101,100,32,109,111,100,117,108,101,32,105,
-    115,32,102,114,111,122,101,110,46,99,2,0,0,0,0,0,
-    0,0,0,0,0,0,2,0,0,0,4,0,0,0,19,0,
-    0,0,115,38,0,0,0,116,0,160,1,124,1,161,1,115,
-    14,116,2,100,1,160,3,124,1,161,1,124,1,100,2,141,
-    2,130,1,136,0,124,0,124,1,131,2,83,0,169,3,78,
-    122,27,123,33,114,125,32,105,115,32,110,111,116,32,97,32,
-    102,114,111,122,101,110,32,109,111,100,117,108,101,114,19,0,
-    0,0,41,4,114,64,0,0,0,218,9,105,115,95,102,114,
-    111,122,101,110,114,87,0,0,0,114,50,0,0,0,114,88,
-    0,0,0,114,90,0,0,0,114,5,0,0,0,114,6,0,
-    0,0,218,24,95,114,101,113,117,105,114,101,115,95,102,114,
-    111,122,101,110,95,119,114,97,112,112,101,114,9,1,0,0,
-    114,93,0,0,0,122,50,95,114,101,113,117,105,114,101,115,
-    95,102,114,111,122,101,110,46,60,108,111,99,97,108,115,62,
-    46,95,114,101,113,117,105,114,101,115,95,102,114,111,122,101,
-    110,95,119,114,97,112,112,101,114,78,114,94,0,0,0,41,
-    2,114,91,0,0,0,114,99,0,0,0,114,5,0,0,0,
-    114,90,0,0,0,114,6,0,0,0,218,16,95,114,101,113,
-    117,105,114,101,115,95,102,114,111,122,101,110,7,1,0,0,
-    114,96,0,0,0,114,100,0,0,0,99,2,0,0,0,0,
-    0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,67,
-    0,0,0,115,74,0,0,0,100,1,125,2,116,0,160,1,
-    124,2,116,2,161,2,1,0,116,3,124,1,124,0,131,2,
-    125,3,124,1,116,4,106,5,118,0,114,33,116,4,106,5,
-    124,1,25,0,125,4,116,6,124,3,124,4,131,2,1,0,
-    116,4,106,5,124,1,25,0,83,0,116,7,124,3,131,1,
-    83,0,41,3,122,130,76,111,97,100,32,116,104,101,32,115,
-    112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,32,
-    105,110,116,111,32,115,121,115,46,109,111,100,117,108,101,115,
-    32,97,110,100,32,114,101,116,117,114,110,32,105,116,46,10,
-    10,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,
-    32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,
-    32,85,115,101,32,108,111,97,100,101,114,46,101,120,101,99,
-    95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,
-    100,46,10,10,32,32,32,32,122,103,116,104,101,32,108,111,
-    97,100,95,109,111,100,117,108,101,40,41,32,109,101,116,104,
-    111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
-    32,97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,
-    114,101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,
-    110,32,51,46,49,50,59,32,117,115,101,32,101,120,101,99,
-    95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,
-    100,78,41,8,218,9,95,119,97,114,110,105,110,103,115,218,
-    4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,105,
-    111,110,87,97,114,110,105,110,103,218,16,115,112,101,99,95,
-    102,114,111,109,95,108,111,97,100,101,114,114,18,0,0,0,
-    218,7,109,111,100,117,108,101,115,218,5,95,101,120,101,99,
-    218,5,95,108,111,97,100,41,5,114,33,0,0,0,114,89,
-    0,0,0,218,3,109,115,103,218,4,115,112,101,99,218,6,
-    109,111,100,117,108,101,114,5,0,0,0,114,5,0,0,0,
-    114,6,0,0,0,218,17,95,108,111,97,100,95,109,111,100,
-    117,108,101,95,115,104,105,109,19,1,0,0,115,16,0,0,
-    0,4,6,12,2,10,1,10,1,10,1,10,1,10,1,8,
-    2,114,111,0,0,0,99,1,0,0,0,0,0,0,0,0,
-    0,0,0,5,0,0,0,8,0,0,0,67,0,0,0,115,
-    188,0,0,0,116,0,124,0,100,1,100,2,131,3,125,1,
-    116,0,124,0,100,3,100,2,131,3,4,0,125,2,114,18,
-    116,1,124,2,131,1,83,0,116,2,124,1,100,4,131,2,
-    114,39,122,6,124,1,160,3,124,0,161,1,87,0,83,0,
-    4,0,116,4,121,38,1,0,1,0,1,0,89,0,110,1,
-    119,0,122,5,124,0,106,5,125,3,87,0,110,11,4,0,
-    116,6,121,55,1,0,1,0,1,0,100,5,125,3,89,0,
-    110,1,119,0,122,5,124,0,106,7,125,4,87,0,110,26,
-    4,0,116,6,121,87,1,0,1,0,1,0,124,1,100,2,
-    117,0,114,79,100,6,160,8,124,3,161,1,6,0,89,0,
-    83,0,100,7,160,8,124,3,124,1,161,2,6,0,89,0,
-    83,0,119,0,100,8,160,8,124,3,124,4,161,2,83,0,
-    41,9,122,44,84,104,101,32,105,109,112,108,101,109,101,110,
-    116,97,116,105,111,110,32,111,102,32,77,111,100,117,108,101,
-    84,121,112,101,46,95,95,114,101,112,114,95,95,40,41,46,
-    218,10,95,95,108,111,97,100,101,114,95,95,78,218,8,95,
-    95,115,112,101,99,95,95,218,11,109,111,100,117,108,101,95,
-    114,101,112,114,250,1,63,250,13,60,109,111,100,117,108,101,
-    32,123,33,114,125,62,250,20,60,109,111,100,117,108,101,32,
-    123,33,114,125,32,40,123,33,114,125,41,62,250,23,60,109,
-    111,100,117,108,101,32,123,33,114,125,32,102,114,111,109,32,
-    123,33,114,125,62,41,9,114,13,0,0,0,218,22,95,109,
-    111,100,117,108,101,95,114,101,112,114,95,102,114,111,109,95,
-    115,112,101,99,114,11,0,0,0,114,114,0,0,0,218,9,
-    69,120,99,101,112,116,105,111,110,114,9,0,0,0,114,2,
-    0,0,0,218,8,95,95,102,105,108,101,95,95,114,50,0,
-    0,0,41,5,114,110,0,0,0,218,6,108,111,97,100,101,
-    114,114,109,0,0,0,114,20,0,0,0,218,8,102,105,108,
-    101,110,97,109,101,114,5,0,0,0,114,5,0,0,0,114,
-    6,0,0,0,218,12,95,109,111,100,117,108,101,95,114,101,
-    112,114,38,1,0,0,115,44,0,0,0,12,2,16,1,8,
-    1,10,1,2,1,12,1,12,1,4,1,2,255,2,3,10,
-    1,12,1,8,1,2,255,2,2,10,1,12,1,8,1,14,
-    1,16,2,2,252,12,6,114,124,0,0,0,99,0,0,0,
-    0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
-    0,64,0,0,0,115,114,0,0,0,101,0,90,1,100,0,
-    90,2,100,1,90,3,100,2,100,2,100,2,100,3,156,3,
-    100,4,100,5,132,2,90,4,100,6,100,7,132,0,90,5,
-    100,8,100,9,132,0,90,6,101,7,100,10,100,11,132,0,
-    131,1,90,8,101,8,106,9,100,12,100,11,132,0,131,1,
-    90,8,101,7,100,13,100,14,132,0,131,1,90,10,101,7,
-    100,15,100,16,132,0,131,1,90,11,101,11,106,9,100,17,
-    100,16,132,0,131,1,90,11,100,2,83,0,41,18,218,10,
-    77,111,100,117,108,101,83,112,101,99,97,208,5,0,0,84,
-    104,101,32,115,112,101,99,105,102,105,99,97,116,105,111,110,
-    32,102,111,114,32,97,32,109,111,100,117,108,101,44,32,117,
-    115,101,100,32,102,111,114,32,108,111,97,100,105,110,103,46,
-    10,10,32,32,32,32,65,32,109,111,100,117,108,101,39,115,
-    32,115,112,101,99,32,105,115,32,116,104,101,32,115,111,117,
-    114,99,101,32,102,111,114,32,105,110,102,111,114,109,97,116,
-    105,111,110,32,97,98,111,117,116,32,116,104,101,32,109,111,
-    100,117,108,101,46,32,32,70,111,114,10,32,32,32,32,100,
-    97,116,97,32,97,115,115,111,99,105,97,116,101,100,32,119,
-    105,116,104,32,116,104,101,32,109,111,100,117,108,101,44,32,
-    105,110,99,108,117,100,105,110,103,32,115,111,117,114,99,101,
-    44,32,117,115,101,32,116,104,101,32,115,112,101,99,39,115,
-    10,32,32,32,32,108,111,97,100,101,114,46,10,10,32,32,
-    32,32,96,110,97,109,101,96,32,105,115,32,116,104,101,32,
-    97,98,115,111,108,117,116,101,32,110,97,109,101,32,111,102,
-    32,116,104,101,32,109,111,100,117,108,101,46,32,32,96,108,
-    111,97,100,101,114,96,32,105,115,32,116,104,101,32,108,111,
-    97,100,101,114,10,32,32,32,32,116,111,32,117,115,101,32,
-    119,104,101,110,32,108,111,97,100,105,110,103,32,116,104,101,
-    32,109,111,100,117,108,101,46,32,32,96,112,97,114,101,110,
-    116,96,32,105,115,32,116,104,101,32,110,97,109,101,32,111,
-    102,32,116,104,101,10,32,32,32,32,112,97,99,107,97,103,
-    101,32,116,104,101,32,109,111,100,117,108,101,32,105,115,32,
-    105,110,46,32,32,84,104,101,32,112,97,114,101,110,116,32,
-    105,115,32,100,101,114,105,118,101,100,32,102,114,111,109,32,
-    116,104,101,32,110,97,109,101,46,10,10,32,32,32,32,96,
-    105,115,95,112,97,99,107,97,103,101,96,32,100,101,116,101,
-    114,109,105,110,101,115,32,105,102,32,116,104,101,32,109,111,
-    100,117,108,101,32,105,115,32,99,111,110,115,105,100,101,114,
-    101,100,32,97,32,112,97,99,107,97,103,101,32,111,114,10,
-    32,32,32,32,110,111,116,46,32,32,79,110,32,109,111,100,
-    117,108,101,115,32,116,104,105,115,32,105,115,32,114,101,102,
-    108,101,99,116,101,100,32,98,121,32,116,104,101,32,96,95,
-    95,112,97,116,104,95,95,96,32,97,116,116,114,105,98,117,
-    116,101,46,10,10,32,32,32,32,96,111,114,105,103,105,110,
-    96,32,105,115,32,116,104,101,32,115,112,101,99,105,102,105,
-    99,32,108,111,99,97,116,105,111,110,32,117,115,101,100,32,
-    98,121,32,116,104,101,32,108,111,97,100,101,114,32,102,114,
-    111,109,32,119,104,105,99,104,32,116,111,10,32,32,32,32,
-    108,111,97,100,32,116,104,101,32,109,111,100,117,108,101,44,
-    32,105,102,32,116,104,97,116,32,105,110,102,111,114,109,97,
-    116,105,111,110,32,105,115,32,97,118,97,105,108,97,98,108,
-    101,46,32,32,87,104,101,110,32,102,105,108,101,110,97,109,
-    101,32,105,115,10,32,32,32,32,115,101,116,44,32,111,114,
-    105,103,105,110,32,119,105,108,108,32,109,97,116,99,104,46,
-    10,10,32,32,32,32,96,104,97,115,95,108,111,99,97,116,
-    105,111,110,96,32,105,110,100,105,99,97,116,101,115,32,116,
-    104,97,116,32,97,32,115,112,101,99,39,115,32,34,111,114,
-    105,103,105,110,34,32,114,101,102,108,101,99,116,115,32,97,
-    32,108,111,99,97,116,105,111,110,46,10,32,32,32,32,87,
-    104,101,110,32,116,104,105,115,32,105,115,32,84,114,117,101,
-    44,32,96,95,95,102,105,108,101,95,95,96,32,97,116,116,
-    114,105,98,117,116,101,32,111,102,32,116,104,101,32,109,111,
-    100,117,108,101,32,105,115,32,115,101,116,46,10,10,32,32,
-    32,32,96,99,97,99,104,101,100,96,32,105,115,32,116,104,
-    101,32,108,111,99,97,116,105,111,110,32,111,102,32,116,104,
-    101,32,99,97,99,104,101,100,32,98,121,116,101,99,111,100,
-    101,32,102,105,108,101,44,32,105,102,32,97,110,121,46,32,
-    32,73,116,10,32,32,32,32,99,111,114,114,101,115,112,111,
-    110,100,115,32,116,111,32,116,104,101,32,96,95,95,99,97,
-    99,104,101,100,95,95,96,32,97,116,116,114,105,98,117,116,
-    101,46,10,10,32,32,32,32,96,115,117,98,109,111,100,117,
-    108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,105,
-    111,110,115,96,32,105,115,32,116,104,101,32,115,101,113,117,
-    101,110,99,101,32,111,102,32,112,97,116,104,32,101,110,116,
-    114,105,101,115,32,116,111,10,32,32,32,32,115,101,97,114,
-    99,104,32,119,104,101,110,32,105,109,112,111,114,116,105,110,
-    103,32,115,117,98,109,111,100,117,108,101,115,46,32,32,73,
-    102,32,115,101,116,44,32,105,115,95,112,97,99,107,97,103,
-    101,32,115,104,111,117,108,100,32,98,101,10,32,32,32,32,
-    84,114,117,101,45,45,97,110,100,32,70,97,108,115,101,32,
-    111,116,104,101,114,119,105,115,101,46,10,10,32,32,32,32,
-    80,97,99,107,97,103,101,115,32,97,114,101,32,115,105,109,
-    112,108,121,32,109,111,100,117,108,101,115,32,116,104,97,116,
-    32,40,109,97,121,41,32,104,97,118,101,32,115,117,98,109,
-    111,100,117,108,101,115,46,32,32,73,102,32,97,32,115,112,
-    101,99,10,32,32,32,32,104,97,115,32,97,32,110,111,110,
-    45,78,111,110,101,32,118,97,108,117,101,32,105,110,32,96,
+    41,10,32,32,32,32,114,5,0,0,0,41,3,218,1,102,
+    114,62,0,0,0,90,4,107,119,100,115,114,5,0,0,0,
+    114,5,0,0,0,114,6,0,0,0,218,25,95,99,97,108,
+    108,95,119,105,116,104,95,102,114,97,109,101,115,95,114,101,
+    109,111,118,101,100,233,0,0,0,115,2,0,0,0,14,8,
+    114,74,0,0,0,114,42,0,0,0,41,1,218,9,118,101,
+    114,98,111,115,105,116,121,99,1,0,0,0,0,0,0,0,
+    1,0,0,0,3,0,0,0,4,0,0,0,71,0,0,0,
+    115,58,0,0,0,116,0,106,1,106,2,124,1,107,5,114,
+    27,124,0,160,3,100,1,161,1,115,15,100,2,124,0,23,
+    0,125,0,116,4,124,0,106,5,124,2,142,0,116,0,106,
+    6,100,3,141,2,1,0,100,4,83,0,100,4,83,0,41,
+    5,122,61,80,114,105,110,116,32,116,104,101,32,109,101,115,
+    115,97,103,101,32,116,111,32,115,116,100,101,114,114,32,105,
+    102,32,45,118,47,80,89,84,72,79,78,86,69,82,66,79,
+    83,69,32,105,115,32,116,117,114,110,101,100,32,111,110,46,
+    41,2,250,1,35,122,7,105,109,112,111,114,116,32,122,2,
+    35,32,41,1,90,4,102,105,108,101,78,41,7,114,18,0,
+    0,0,218,5,102,108,97,103,115,218,7,118,101,114,98,111,
+    115,101,218,10,115,116,97,114,116,115,119,105,116,104,218,5,
+    112,114,105,110,116,114,50,0,0,0,218,6,115,116,100,101,
+    114,114,41,3,218,7,109,101,115,115,97,103,101,114,75,0,
+    0,0,114,62,0,0,0,114,5,0,0,0,114,5,0,0,
+    0,114,6,0,0,0,218,16,95,118,101,114,98,111,115,101,
+    95,109,101,115,115,97,103,101,244,0,0,0,115,10,0,0,
+    0,12,2,10,1,8,1,24,1,4,253,114,83,0,0,0,
+    99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+    0,3,0,0,0,3,0,0,0,243,26,0,0,0,135,0,
+    102,1,100,1,100,2,132,8,125,1,116,0,124,1,136,0,
+    131,2,1,0,124,1,83,0,41,3,122,49,68,101,99,111,
+    114,97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,
+    116,104,101,32,110,97,109,101,100,32,109,111,100,117,108,101,
+    32,105,115,32,98,117,105,108,116,45,105,110,46,99,2,0,
+    0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,
+    0,0,19,0,0,0,115,38,0,0,0,124,1,116,0,106,
+    1,118,1,114,14,116,2,100,1,160,3,124,1,161,1,124,
+    1,100,2,141,2,130,1,136,0,124,0,124,1,131,2,83,
+    0,41,3,78,250,29,123,33,114,125,32,105,115,32,110,111,
+    116,32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,
+    117,108,101,114,19,0,0,0,41,4,114,18,0,0,0,218,
+    20,98,117,105,108,116,105,110,95,109,111,100,117,108,101,95,
+    110,97,109,101,115,218,11,73,109,112,111,114,116,69,114,114,
+    111,114,114,50,0,0,0,169,2,114,33,0,0,0,218,8,
+    102,117,108,108,110,97,109,101,169,1,218,3,102,120,110,114,
+    5,0,0,0,114,6,0,0,0,218,25,95,114,101,113,117,
+    105,114,101,115,95,98,117,105,108,116,105,110,95,119,114,97,
+    112,112,101,114,254,0,0,0,243,10,0,0,0,10,1,10,
+    1,2,1,6,255,10,2,122,52,95,114,101,113,117,105,114,
+    101,115,95,98,117,105,108,116,105,110,46,60,108,111,99,97,
+    108,115,62,46,95,114,101,113,117,105,114,101,115,95,98,117,
+    105,108,116,105,110,95,119,114,97,112,112,101,114,169,1,114,
+    17,0,0,0,41,2,114,91,0,0,0,114,92,0,0,0,
+    114,5,0,0,0,114,90,0,0,0,114,6,0,0,0,218,
+    17,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,
+    105,110,252,0,0,0,243,6,0,0,0,12,2,10,5,4,
+    1,114,95,0,0,0,99,1,0,0,0,0,0,0,0,0,
+    0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,114,
+    84,0,0,0,41,3,122,47,68,101,99,111,114,97,116,111,
+    114,32,116,111,32,118,101,114,105,102,121,32,116,104,101,32,
+    110,97,109,101,100,32,109,111,100,117,108,101,32,105,115,32,
+    102,114,111,122,101,110,46,99,2,0,0,0,0,0,0,0,
+    0,0,0,0,2,0,0,0,4,0,0,0,19,0,0,0,
+    115,38,0,0,0,116,0,160,1,124,1,161,1,115,14,116,
+    2,100,1,160,3,124,1,161,1,124,1,100,2,141,2,130,
+    1,136,0,124,0,124,1,131,2,83,0,169,3,78,122,27,
+    123,33,114,125,32,105,115,32,110,111,116,32,97,32,102,114,
+    111,122,101,110,32,109,111,100,117,108,101,114,19,0,0,0,
+    41,4,114,64,0,0,0,218,9,105,115,95,102,114,111,122,
+    101,110,114,87,0,0,0,114,50,0,0,0,114,88,0,0,
+    0,114,90,0,0,0,114,5,0,0,0,114,6,0,0,0,
+    218,24,95,114,101,113,117,105,114,101,115,95,102,114,111,122,
+    101,110,95,119,114,97,112,112,101,114,9,1,0,0,114,93,
+    0,0,0,122,50,95,114,101,113,117,105,114,101,115,95,102,
+    114,111,122,101,110,46,60,108,111,99,97,108,115,62,46,95,
+    114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,95,
+    119,114,97,112,112,101,114,114,94,0,0,0,41,2,114,91,
+    0,0,0,114,99,0,0,0,114,5,0,0,0,114,90,0,
+    0,0,114,6,0,0,0,218,16,95,114,101,113,117,105,114,
+    101,115,95,102,114,111,122,101,110,7,1,0,0,114,96,0,
+    0,0,114,100,0,0,0,99,2,0,0,0,0,0,0,0,
+    0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,0,
+    115,74,0,0,0,100,1,125,2,116,0,160,1,124,2,116,
+    2,161,2,1,0,116,3,124,1,124,0,131,2,125,3,124,
+    1,116,4,106,5,118,0,114,33,116,4,106,5,124,1,25,
+    0,125,4,116,6,124,3,124,4,131,2,1,0,116,4,106,
+    5,124,1,25,0,83,0,116,7,124,3,131,1,83,0,41,
+    2,122,130,76,111,97,100,32,116,104,101,32,115,112,101,99,
+    105,102,105,101,100,32,109,111,100,117,108,101,32,105,110,116,
+    111,32,115,121,115,46,109,111,100,117,108,101,115,32,97,110,
+    100,32,114,101,116,117,114,110,32,105,116,46,10,10,32,32,
+    32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
+    32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
+    101,32,108,111,97,100,101,114,46,101,120,101,99,95,109,111,
+    100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,10,
+    10,32,32,32,32,122,103,116,104,101,32,108,111,97,100,95,
+    109,111,100,117,108,101,40,41,32,109,101,116,104,111,100,32,
+    105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,
+    100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,
+    111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,
+    46,49,50,59,32,117,115,101,32,101,120,101,99,95,109,111,
+    100,117,108,101,40,41,32,105,110,115,116,101,97,100,41,8,
+    218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,114,
+    110,218,18,68,101,112,114,101,99,97,116,105,111,110,87,97,
+    114,110,105,110,103,218,16,115,112,101,99,95,102,114,111,109,
+    95,108,111,97,100,101,114,114,18,0,0,0,218,7,109,111,
+    100,117,108,101,115,218,5,95,101,120,101,99,218,5,95,108,
+    111,97,100,41,5,114,33,0,0,0,114,89,0,0,0,218,
+    3,109,115,103,218,4,115,112,101,99,218,6,109,111,100,117,
+    108,101,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+    0,218,17,95,108,111,97,100,95,109,111,100,117,108,101,95,
+    115,104,105,109,19,1,0,0,115,16,0,0,0,4,6,12,
+    2,10,1,10,1,10,1,10,1,10,1,8,2,114,111,0,
+    0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,5,
+    0,0,0,8,0,0,0,67,0,0,0,115,188,0,0,0,
+    116,0,124,0,100,1,100,2,131,3,125,1,116,0,124,0,
+    100,3,100,2,131,3,4,0,125,2,114,18,116,1,124,2,
+    131,1,83,0,116,2,124,1,100,4,131,2,114,39,122,6,
+    124,1,160,3,124,0,161,1,87,0,83,0,4,0,116,4,
+    121,38,1,0,1,0,1,0,89,0,110,1,119,0,122,5,
+    124,0,106,5,125,3,87,0,110,11,4,0,116,6,121,55,
+    1,0,1,0,1,0,100,5,125,3,89,0,110,1,119,0,
+    122,5,124,0,106,7,125,4,87,0,110,26,4,0,116,6,
+    121,87,1,0,1,0,1,0,124,1,100,2,117,0,114,79,
+    100,6,160,8,124,3,161,1,6,0,89,0,83,0,100,7,
+    160,8,124,3,124,1,161,2,6,0,89,0,83,0,119,0,
+    100,8,160,8,124,3,124,4,161,2,83,0,41,9,122,44,
+    84,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,
+    111,110,32,111,102,32,77,111,100,117,108,101,84,121,112,101,
+    46,95,95,114,101,112,114,95,95,40,41,46,218,10,95,95,
+    108,111,97,100,101,114,95,95,78,218,8,95,95,115,112,101,
+    99,95,95,218,11,109,111,100,117,108,101,95,114,101,112,114,
+    250,1,63,250,13,60,109,111,100,117,108,101,32,123,33,114,
+    125,62,250,20,60,109,111,100,117,108,101,32,123,33,114,125,
+    32,40,123,33,114,125,41,62,250,23,60,109,111,100,117,108,
+    101,32,123,33,114,125,32,102,114,111,109,32,123,33,114,125,
+    62,41,9,114,13,0,0,0,218,22,95,109,111,100,117,108,
+    101,95,114,101,112,114,95,102,114,111,109,95,115,112,101,99,
+    114,11,0,0,0,114,114,0,0,0,218,9,69,120,99,101,
+    112,116,105,111,110,114,9,0,0,0,114,2,0,0,0,218,
+    8,95,95,102,105,108,101,95,95,114,50,0,0,0,41,5,
+    114,110,0,0,0,218,6,108,111,97,100,101,114,114,109,0,
+    0,0,114,20,0,0,0,218,8,102,105,108,101,110,97,109,
+    101,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
+    218,12,95,109,111,100,117,108,101,95,114,101,112,114,38,1,
+    0,0,115,44,0,0,0,12,2,16,1,8,1,10,1,2,
+    1,12,1,12,1,4,1,2,255,2,3,10,1,12,1,8,
+    1,2,255,2,2,10,1,12,1,8,1,14,1,16,2,2,
+    252,12,6,114,124,0,0,0,99,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,0,
+    0,115,114,0,0,0,101,0,90,1,100,0,90,2,100,1,
+    90,3,100,2,100,2,100,2,100,3,156,3,100,4,100,5,
+    132,2,90,4,100,6,100,7,132,0,90,5,100,8,100,9,
+    132,0,90,6,101,7,100,10,100,11,132,0,131,1,90,8,
+    101,8,106,9,100,12,100,11,132,0,131,1,90,8,101,7,
+    100,13,100,14,132,0,131,1,90,10,101,7,100,15,100,16,
+    132,0,131,1,90,11,101,11,106,9,100,17,100,16,132,0,
+    131,1,90,11,100,2,83,0,41,18,218,10,77,111,100,117,
+    108,101,83,112,101,99,97,208,5,0,0,84,104,101,32,115,
+    112,101,99,105,102,105,99,97,116,105,111,110,32,102,111,114,
+    32,97,32,109,111,100,117,108,101,44,32,117,115,101,100,32,
+    102,111,114,32,108,111,97,100,105,110,103,46,10,10,32,32,
+    32,32,65,32,109,111,100,117,108,101,39,115,32,115,112,101,
+    99,32,105,115,32,116,104,101,32,115,111,117,114,99,101,32,
+    102,111,114,32,105,110,102,111,114,109,97,116,105,111,110,32,
+    97,98,111,117,116,32,116,104,101,32,109,111,100,117,108,101,
+    46,32,32,70,111,114,10,32,32,32,32,100,97,116,97,32,
+    97,115,115,111,99,105,97,116,101,100,32,119,105,116,104,32,
+    116,104,101,32,109,111,100,117,108,101,44,32,105,110,99,108,
+    117,100,105,110,103,32,115,111,117,114,99,101,44,32,117,115,
+    101,32,116,104,101,32,115,112,101,99,39,115,10,32,32,32,
+    32,108,111,97,100,101,114,46,10,10,32,32,32,32,96,110,
+    97,109,101,96,32,105,115,32,116,104,101,32,97,98,115,111,
+    108,117,116,101,32,110,97,109,101,32,111,102,32,116,104,101,
+    32,109,111,100,117,108,101,46,32,32,96,108,111,97,100,101,
+    114,96,32,105,115,32,116,104,101,32,108,111,97,100,101,114,
+    10,32,32,32,32,116,111,32,117,115,101,32,119,104,101,110,
+    32,108,111,97,100,105,110,103,32,116,104,101,32,109,111,100,
+    117,108,101,46,32,32,96,112,97,114,101,110,116,96,32,105,
+    115,32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,
+    101,10,32,32,32,32,112,97,99,107,97,103,101,32,116,104,
+    101,32,109,111,100,117,108,101,32,105,115,32,105,110,46,32,
+    32,84,104,101,32,112,97,114,101,110,116,32,105,115,32,100,
+    101,114,105,118,101,100,32,102,114,111,109,32,116,104,101,32,
+    110,97,109,101,46,10,10,32,32,32,32,96,105,115,95,112,
+    97,99,107,97,103,101,96,32,100,101,116,101,114,109,105,110,
+    101,115,32,105,102,32,116,104,101,32,109,111,100,117,108,101,
+    32,105,115,32,99,111,110,115,105,100,101,114,101,100,32,97,
+    32,112,97,99,107,97,103,101,32,111,114,10,32,32,32,32,
+    110,111,116,46,32,32,79,110,32,109,111,100,117,108,101,115,
+    32,116,104,105,115,32,105,115,32,114,101,102,108,101,99,116,
+    101,100,32,98,121,32,116,104,101,32,96,95,95,112,97,116,
+    104,95,95,96,32,97,116,116,114,105,98,117,116,101,46,10,
+    10,32,32,32,32,96,111,114,105,103,105,110,96,32,105,115,
+    32,116,104,101,32,115,112,101,99,105,102,105,99,32,108,111,
+    99,97,116,105,111,110,32,117,115,101,100,32,98,121,32,116,
+    104,101,32,108,111,97,100,101,114,32,102,114,111,109,32,119,
+    104,105,99,104,32,116,111,10,32,32,32,32,108,111,97,100,
+    32,116,104,101,32,109,111,100,117,108,101,44,32,105,102,32,
+    116,104,97,116,32,105,110,102,111,114,109,97,116,105,111,110,
+    32,105,115,32,97,118,97,105,108,97,98,108,101,46,32,32,
+    87,104,101,110,32,102,105,108,101,110,97,109,101,32,105,115,
+    10,32,32,32,32,115,101,116,44,32,111,114,105,103,105,110,
+    32,119,105,108,108,32,109,97,116,99,104,46,10,10,32,32,
+    32,32,96,104,97,115,95,108,111,99,97,116,105,111,110,96,
+    32,105,110,100,105,99,97,116,101,115,32,116,104,97,116,32,
+    97,32,115,112,101,99,39,115,32,34,111,114,105,103,105,110,
+    34,32,114,101,102,108,101,99,116,115,32,97,32,108,111,99,
+    97,116,105,111,110,46,10,32,32,32,32,87,104,101,110,32,
+    116,104,105,115,32,105,115,32,84,114,117,101,44,32,96,95,
+    95,102,105,108,101,95,95,96,32,97,116,116,114,105,98,117,
+    116,101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,
+    32,105,115,32,115,101,116,46,10,10,32,32,32,32,96,99,
+    97,99,104,101,100,96,32,105,115,32,116,104,101,32,108,111,
+    99,97,116,105,111,110,32,111,102,32,116,104,101,32,99,97,
+    99,104,101,100,32,98,121,116,101,99,111,100,101,32,102,105,
+    108,101,44,32,105,102,32,97,110,121,46,32,32,73,116,10,
+    32,32,32,32,99,111,114,114,101,115,112,111,110,100,115,32,
+    116,111,32,116,104,101,32,96,95,95,99,97,99,104,101,100,
+    95,95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,
+    32,32,32,32,96,115,117,98,109,111,100,117,108,101,95,115,
+    101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,96,
+    32,105,115,32,116,104,101,32,115,101,113,117,101,110,99,101,
+    32,111,102,32,112,97,116,104,32,101,110,116,114,105,101,115,
+    32,116,111,10,32,32,32,32,115,101,97,114,99,104,32,119,
+    104,101,110,32,105,109,112,111,114,116,105,110,103,32,115,117,
+    98,109,111,100,117,108,101,115,46,32,32,73,102,32,115,101,
+    116,44,32,105,115,95,112,97,99,107,97,103,101,32,115,104,
+    111,117,108,100,32,98,101,10,32,32,32,32,84,114,117,101,
+    45,45,97,110,100,32,70,97,108,115,101,32,111,116,104,101,
+    114,119,105,115,101,46,10,10,32,32,32,32,80,97,99,107,
+    97,103,101,115,32,97,114,101,32,115,105,109,112,108,121,32,
+    109,111,100,117,108,101,115,32,116,104,97,116,32,40,109,97,
+    121,41,32,104,97,118,101,32,115,117,98,109,111,100,117,108,
+    101,115,46,32,32,73,102,32,97,32,115,112,101,99,10,32,
+    32,32,32,104,97,115,32,97,32,110,111,110,45,78,111,110,
+    101,32,118,97,108,117,101,32,105,110,32,96,115,117,98,109,
+    111,100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,
+    97,116,105,111,110,115,96,44,32,116,104,101,32,105,109,112,
+    111,114,116,10,32,32,32,32,115,121,115,116,101,109,32,119,
+    105,108,108,32,99,111,110,115,105,100,101,114,32,109,111,100,
+    117,108,101,115,32,108,111,97,100,101,100,32,102,114,111,109,
+    32,116,104,101,32,115,112,101,99,32,97,115,32,112,97,99,
+    107,97,103,101,115,46,10,10,32,32,32,32,79,110,108,121,
+    32,102,105,110,100,101,114,115,32,40,115,101,101,32,105,109,
+    112,111,114,116,108,105,98,46,97,98,99,46,77,101,116,97,
+    80,97,116,104,70,105,110,100,101,114,32,97,110,100,10,32,
+    32,32,32,105,109,112,111,114,116,108,105,98,46,97,98,99,
+    46,80,97,116,104,69,110,116,114,121,70,105,110,100,101,114,
+    41,32,115,104,111,117,108,100,32,109,111,100,105,102,121,32,
+    77,111,100,117,108,101,83,112,101,99,32,105,110,115,116,97,
+    110,99,101,115,46,10,10,32,32,32,32,78,41,3,218,6,
+    111,114,105,103,105,110,218,12,108,111,97,100,101,114,95,115,
+    116,97,116,101,218,10,105,115,95,112,97,99,107,97,103,101,
+    99,3,0,0,0,0,0,0,0,3,0,0,0,6,0,0,
+    0,2,0,0,0,67,0,0,0,115,54,0,0,0,124,1,
+    124,0,95,0,124,2,124,0,95,1,124,3,124,0,95,2,
+    124,4,124,0,95,3,124,5,114,16,103,0,110,1,100,0,
+    124,0,95,4,100,1,124,0,95,5,100,0,124,0,95,6,
+    100,0,83,0,41,2,78,70,41,7,114,20,0,0,0,114,
+    122,0,0,0,114,126,0,0,0,114,127,0,0,0,218,26,
     115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,
-    95,108,111,99,97,116,105,111,110,115,96,44,32,116,104,101,
-    32,105,109,112,111,114,116,10,32,32,32,32,115,121,115,116,
-    101,109,32,119,105,108,108,32,99,111,110,115,105,100,101,114,
-    32,109,111,100,117,108,101,115,32,108,111,97,100,101,100,32,
-    102,114,111,109,32,116,104,101,32,115,112,101,99,32,97,115,
-    32,112,97,99,107,97,103,101,115,46,10,10,32,32,32,32,
-    79,110,108,121,32,102,105,110,100,101,114,115,32,40,115,101,
-    101,32,105,109,112,111,114,116,108,105,98,46,97,98,99,46,
-    77,101,116,97,80,97,116,104,70,105,110,100,101,114,32,97,
-    110,100,10,32,32,32,32,105,109,112,111,114,116,108,105,98,
-    46,97,98,99,46,80,97,116,104,69,110,116,114,121,70,105,
-    110,100,101,114,41,32,115,104,111,117,108,100,32,109,111,100,
-    105,102,121,32,77,111,100,117,108,101,83,112,101,99,32,105,
-    110,115,116,97,110,99,101,115,46,10,10,32,32,32,32,78,
-    41,3,218,6,111,114,105,103,105,110,218,12,108,111,97,100,
-    101,114,95,115,116,97,116,101,218,10,105,115,95,112,97,99,
-    107,97,103,101,99,3,0,0,0,0,0,0,0,3,0,0,
-    0,6,0,0,0,2,0,0,0,67,0,0,0,115,54,0,
-    0,0,124,1,124,0,95,0,124,2,124,0,95,1,124,3,
-    124,0,95,2,124,4,124,0,95,3,124,5,114,16,103,0,
-    110,1,100,0,124,0,95,4,100,1,124,0,95,5,100,0,
-    124,0,95,6,100,0,83,0,41,2,78,70,41,7,114,20,
-    0,0,0,114,122,0,0,0,114,126,0,0,0,114,127,0,
-    0,0,218,26,115,117,98,109,111,100,117,108,101,95,115,101,
-    97,114,99,104,95,108,111,99,97,116,105,111,110,115,218,13,
-    95,115,101,116,95,102,105,108,101,97,116,116,114,218,7,95,
-    99,97,99,104,101,100,41,6,114,33,0,0,0,114,20,0,
-    0,0,114,122,0,0,0,114,126,0,0,0,114,127,0,0,
-    0,114,128,0,0,0,114,5,0,0,0,114,5,0,0,0,
-    114,6,0,0,0,114,34,0,0,0,101,1,0,0,115,14,
-    0,0,0,6,2,6,1,6,1,6,1,14,1,6,3,10,
-    1,122,19,77,111,100,117,108,101,83,112,101,99,46,95,95,
-    105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,0,
-    0,0,0,2,0,0,0,6,0,0,0,67,0,0,0,115,
-    102,0,0,0,100,1,160,0,124,0,106,1,161,1,100,2,
-    160,0,124,0,106,2,161,1,103,2,125,1,124,0,106,3,
-    100,0,117,1,114,26,124,1,160,4,100,3,160,0,124,0,
-    106,3,161,1,161,1,1,0,124,0,106,5,100,0,117,1,
-    114,40,124,1,160,4,100,4,160,0,124,0,106,5,161,1,
-    161,1,1,0,100,5,160,0,124,0,106,6,106,7,100,6,
-    160,8,124,1,161,1,161,2,83,0,41,7,78,122,9,110,
-    97,109,101,61,123,33,114,125,122,11,108,111,97,100,101,114,
-    61,123,33,114,125,122,11,111,114,105,103,105,110,61,123,33,
-    114,125,122,29,115,117,98,109,111,100,117,108,101,95,115,101,
-    97,114,99,104,95,108,111,99,97,116,105,111,110,115,61,123,
-    125,122,6,123,125,40,123,125,41,122,2,44,32,41,9,114,
-    50,0,0,0,114,20,0,0,0,114,122,0,0,0,114,126,
-    0,0,0,218,6,97,112,112,101,110,100,114,129,0,0,0,
-    218,9,95,95,99,108,97,115,115,95,95,114,9,0,0,0,
-    218,4,106,111,105,110,41,2,114,33,0,0,0,114,62,0,
+    95,108,111,99,97,116,105,111,110,115,218,13,95,115,101,116,
+    95,102,105,108,101,97,116,116,114,218,7,95,99,97,99,104,
+    101,100,41,6,114,33,0,0,0,114,20,0,0,0,114,122,
+    0,0,0,114,126,0,0,0,114,127,0,0,0,114,128,0,
     0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
-    0,114,53,0,0,0,113,1,0,0,115,20,0,0,0,10,
-    1,10,1,4,255,10,2,18,1,10,1,6,1,8,1,4,
-    255,22,2,122,19,77,111,100,117,108,101,83,112,101,99,46,
-    95,95,114,101,112,114,95,95,99,2,0,0,0,0,0,0,
-    0,0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,
-    0,115,102,0,0,0,124,0,106,0,125,2,122,36,124,0,
-    106,1,124,1,106,1,107,2,111,38,124,0,106,2,124,1,
-    106,2,107,2,111,38,124,0,106,3,124,1,106,3,107,2,
-    111,38,124,2,124,1,106,0,107,2,111,38,124,0,106,4,
-    124,1,106,4,107,2,111,38,124,0,106,5,124,1,106,5,
-    107,2,87,0,83,0,4,0,116,6,121,50,1,0,1,0,
-    1,0,116,7,6,0,89,0,83,0,119,0,114,0,0,0,
-    0,41,8,114,129,0,0,0,114,20,0,0,0,114,122,0,
-    0,0,114,126,0,0,0,218,6,99,97,99,104,101,100,218,
-    12,104,97,115,95,108,111,99,97,116,105,111,110,114,2,0,
-    0,0,218,14,78,111,116,73,109,112,108,101,109,101,110,116,
-    101,100,41,3,114,33,0,0,0,90,5,111,116,104,101,114,
-    90,4,115,109,115,108,114,5,0,0,0,114,5,0,0,0,
-    114,6,0,0,0,218,6,95,95,101,113,95,95,123,1,0,
-    0,115,32,0,0,0,6,1,2,1,12,1,10,1,2,255,
-    10,2,2,254,8,3,2,253,10,4,2,252,10,5,4,251,
-    12,6,8,1,2,255,122,17,77,111,100,117,108,101,83,112,
-    101,99,46,95,95,101,113,95,95,99,1,0,0,0,0,0,
-    0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
-    0,0,115,58,0,0,0,124,0,106,0,100,0,117,0,114,
-    26,124,0,106,1,100,0,117,1,114,26,124,0,106,2,114,
-    26,116,3,100,0,117,0,114,19,116,4,130,1,116,3,160,
-    5,124,0,106,1,161,1,124,0,95,0,124,0,106,0,83,
-    0,114,0,0,0,0,41,6,114,131,0,0,0,114,126,0,
-    0,0,114,130,0,0,0,218,19,95,98,111,111,116,115,116,
-    114,97,112,95,101,120,116,101,114,110,97,108,218,19,78,111,
-    116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,
-    114,90,11,95,103,101,116,95,99,97,99,104,101,100,114,52,
-    0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
-    0,0,114,135,0,0,0,135,1,0,0,115,12,0,0,0,
-    10,2,16,1,8,1,4,1,14,1,6,1,122,17,77,111,
-    100,117,108,101,83,112,101,99,46,99,97,99,104,101,100,99,
-    2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
-    2,0,0,0,67,0,0,0,115,10,0,0,0,124,1,124,
-    0,95,0,100,0,83,0,114,0,0,0,0,41,1,114,131,
-    0,0,0,41,2,114,33,0,0,0,114,135,0,0,0,114,
+    0,114,34,0,0,0,101,1,0,0,115,14,0,0,0,6,
+    2,6,1,6,1,6,1,14,1,6,3,10,1,122,19,77,
+    111,100,117,108,101,83,112,101,99,46,95,95,105,110,105,116,
+    95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
+    0,0,0,6,0,0,0,67,0,0,0,115,102,0,0,0,
+    100,1,160,0,124,0,106,1,161,1,100,2,160,0,124,0,
+    106,2,161,1,103,2,125,1,124,0,106,3,100,0,117,1,
+    114,26,124,1,160,4,100,3,160,0,124,0,106,3,161,1,
+    161,1,1,0,124,0,106,5,100,0,117,1,114,40,124,1,
+    160,4,100,4,160,0,124,0,106,5,161,1,161,1,1,0,
+    100,5,160,0,124,0,106,6,106,7,100,6,160,8,124,1,
+    161,1,161,2,83,0,41,7,78,122,9,110,97,109,101,61,
+    123,33,114,125,122,11,108,111,97,100,101,114,61,123,33,114,
+    125,122,11,111,114,105,103,105,110,61,123,33,114,125,122,29,
+    115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,
+    95,108,111,99,97,116,105,111,110,115,61,123,125,122,6,123,
+    125,40,123,125,41,122,2,44,32,41,9,114,50,0,0,0,
+    114,20,0,0,0,114,122,0,0,0,114,126,0,0,0,218,
+    6,97,112,112,101,110,100,114,129,0,0,0,218,9,95,95,
+    99,108,97,115,115,95,95,114,9,0,0,0,218,4,106,111,
+    105,110,41,2,114,33,0,0,0,114,62,0,0,0,114,5,
+    0,0,0,114,5,0,0,0,114,6,0,0,0,114,53,0,
+    0,0,113,1,0,0,115,20,0,0,0,10,1,10,1,4,
+    255,10,2,18,1,10,1,6,1,8,1,4,255,22,2,122,
+    19,77,111,100,117,108,101,83,112,101,99,46,95,95,114,101,
+    112,114,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
+    0,3,0,0,0,8,0,0,0,67,0,0,0,115,102,0,
+    0,0,124,0,106,0,125,2,122,36,124,0,106,1,124,1,
+    106,1,107,2,111,38,124,0,106,2,124,1,106,2,107,2,
+    111,38,124,0,106,3,124,1,106,3,107,2,111,38,124,2,
+    124,1,106,0,107,2,111,38,124,0,106,4,124,1,106,4,
+    107,2,111,38,124,0,106,5,124,1,106,5,107,2,87,0,
+    83,0,4,0,116,6,121,50,1,0,1,0,1,0,116,7,
+    6,0,89,0,83,0,119,0,114,0,0,0,0,41,8,114,
+    129,0,0,0,114,20,0,0,0,114,122,0,0,0,114,126,
+    0,0,0,218,6,99,97,99,104,101,100,218,12,104,97,115,
+    95,108,111,99,97,116,105,111,110,114,2,0,0,0,218,14,
+    78,111,116,73,109,112,108,101,109,101,110,116,101,100,41,3,
+    114,33,0,0,0,90,5,111,116,104,101,114,90,4,115,109,
+    115,108,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+    0,218,6,95,95,101,113,95,95,123,1,0,0,115,32,0,
+    0,0,6,1,2,1,12,1,10,1,2,255,10,2,2,254,
+    8,3,2,253,10,4,2,252,10,5,4,251,12,6,8,1,
+    2,255,122,17,77,111,100,117,108,101,83,112,101,99,46,95,
+    95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,0,
+    0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,58,
+    0,0,0,124,0,106,0,100,0,117,0,114,26,124,0,106,
+    1,100,0,117,1,114,26,124,0,106,2,114,26,116,3,100,
+    0,117,0,114,19,116,4,130,1,116,3,160,5,124,0,106,
+    1,161,1,124,0,95,0,124,0,106,0,83,0,114,0,0,
+    0,0,41,6,114,131,0,0,0,114,126,0,0,0,114,130,
+    0,0,0,218,19,95,98,111,111,116,115,116,114,97,112,95,
+    101,120,116,101,114,110,97,108,218,19,78,111,116,73,109,112,
+    108,101,109,101,110,116,101,100,69,114,114,111,114,90,11,95,
+    103,101,116,95,99,97,99,104,101,100,114,52,0,0,0,114,
     5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,135,
-    0,0,0,144,1,0,0,115,2,0,0,0,10,2,99,1,
-    0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
-    0,0,0,67,0,0,0,115,32,0,0,0,124,0,106,0,
-    100,1,117,0,114,13,124,0,106,1,160,2,100,2,161,1,
-    100,3,25,0,83,0,124,0,106,1,83,0,41,4,122,32,
-    84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,
-    109,111,100,117,108,101,39,115,32,112,97,114,101,110,116,46,
-    78,218,1,46,114,25,0,0,0,41,3,114,129,0,0,0,
-    114,20,0,0,0,218,10,114,112,97,114,116,105,116,105,111,
-    110,114,52,0,0,0,114,5,0,0,0,114,5,0,0,0,
-    114,6,0,0,0,218,6,112,97,114,101,110,116,148,1,0,
-    0,115,6,0,0,0,10,3,16,1,6,2,122,17,77,111,
-    100,117,108,101,83,112,101,99,46,112,97,114,101,110,116,99,
-    1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
-    1,0,0,0,67,0,0,0,115,6,0,0,0,124,0,106,
-    0,83,0,114,0,0,0,0,41,1,114,130,0,0,0,114,
-    52,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,
-    0,0,0,114,136,0,0,0,156,1,0,0,115,2,0,0,
-    0,6,2,122,23,77,111,100,117,108,101,83,112,101,99,46,
-    104,97,115,95,108,111,99,97,116,105,111,110,99,2,0,0,
-    0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
-    0,67,0,0,0,115,14,0,0,0,116,0,124,1,131,1,
-    124,0,95,1,100,0,83,0,114,0,0,0,0,41,2,218,
-    4,98,111,111,108,114,130,0,0,0,41,2,114,33,0,0,
-    0,218,5,118,97,108,117,101,114,5,0,0,0,114,5,0,
-    0,0,114,6,0,0,0,114,136,0,0,0,160,1,0,0,
-    115,2,0,0,0,14,2,41,12,114,9,0,0,0,114,8,
-    0,0,0,114,1,0,0,0,114,10,0,0,0,114,34,0,
-    0,0,114,53,0,0,0,114,138,0,0,0,218,8,112,114,
-    111,112,101,114,116,121,114,135,0,0,0,218,6,115,101,116,
-    116,101,114,114,143,0,0,0,114,136,0,0,0,114,5,0,
+    0,0,0,135,1,0,0,115,12,0,0,0,10,2,16,1,
+    8,1,4,1,14,1,6,1,122,17,77,111,100,117,108,101,
+    83,112,101,99,46,99,97,99,104,101,100,99,2,0,0,0,
+    0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,
+    67,0,0,0,115,10,0,0,0,124,1,124,0,95,0,100,
+    0,83,0,114,0,0,0,0,41,1,114,131,0,0,0,41,
+    2,114,33,0,0,0,114,135,0,0,0,114,5,0,0,0,
+    114,5,0,0,0,114,6,0,0,0,114,135,0,0,0,144,
+    1,0,0,115,2,0,0,0,10,2,99,1,0,0,0,0,
+    0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,
+    0,0,0,115,32,0,0,0,124,0,106,0,100,1,117,0,
+    114,13,124,0,106,1,160,2,100,2,161,1,100,3,25,0,
+    83,0,124,0,106,1,83,0,41,4,122,32,84,104,101,32,
+    110,97,109,101,32,111,102,32,116,104,101,32,109,111,100,117,
+    108,101,39,115,32,112,97,114,101,110,116,46,78,218,1,46,
+    114,25,0,0,0,41,3,114,129,0,0,0,114,20,0,0,
+    0,218,10,114,112,97,114,116,105,116,105,111,110,114,52,0,
     0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
-    0,114,125,0,0,0,64,1,0,0,115,34,0,0,0,8,
-    0,4,1,4,36,2,1,12,255,8,12,8,10,2,12,10,
-    1,4,8,10,1,2,3,10,1,2,7,10,1,4,3,14,
-    1,114,125,0,0,0,169,2,114,126,0,0,0,114,128,0,
-    0,0,99,2,0,0,0,0,0,0,0,2,0,0,0,6,
-    0,0,0,8,0,0,0,67,0,0,0,115,150,0,0,0,
-    116,0,124,1,100,1,131,2,114,37,116,1,100,2,117,0,
-    114,11,116,2,130,1,116,1,106,3,125,4,124,3,100,2,
-    117,0,114,24,124,4,124,0,124,1,100,3,141,2,83,0,
-    124,3,114,28,103,0,110,1,100,2,125,5,124,4,124,0,
-    124,1,124,5,100,4,141,3,83,0,124,3,100,2,117,0,
-    114,67,116,0,124,1,100,5,131,2,114,65,122,7,124,1,
-    160,4,124,0,161,1,125,3,87,0,110,13,4,0,116,5,
-    121,64,1,0,1,0,1,0,100,2,125,3,89,0,110,3,
-    119,0,100,6,125,3,116,6,124,0,124,1,124,2,124,3,
-    100,7,141,4,83,0,41,8,122,53,82,101,116,117,114,110,
-    32,97,32,109,111,100,117,108,101,32,115,112,101,99,32,98,
-    97,115,101,100,32,111,110,32,118,97,114,105,111,117,115,32,
-    108,111,97,100,101,114,32,109,101,116,104,111,100,115,46,90,
-    12,103,101,116,95,102,105,108,101,110,97,109,101,78,41,1,
-    114,122,0,0,0,41,2,114,122,0,0,0,114,129,0,0,
-    0,114,128,0,0,0,70,114,148,0,0,0,41,7,114,11,
-    0,0,0,114,139,0,0,0,114,140,0,0,0,218,23,115,
-    112,101,99,95,102,114,111,109,95,102,105,108,101,95,108,111,
-    99,97,116,105,111,110,114,128,0,0,0,114,87,0,0,0,
-    114,125,0,0,0,41,6,114,20,0,0,0,114,122,0,0,
-    0,114,126,0,0,0,114,128,0,0,0,114,149,0,0,0,
-    90,6,115,101,97,114,99,104,114,5,0,0,0,114,5,0,
-    0,0,114,6,0,0,0,114,104,0,0,0,165,1,0,0,
-    115,38,0,0,0,10,2,8,1,4,1,6,1,8,2,12,
-    1,12,1,6,1,2,1,6,255,8,3,10,1,2,1,14,
-    1,12,1,8,1,2,255,4,4,16,2,114,104,0,0,0,
-    99,3,0,0,0,0,0,0,0,0,0,0,0,8,0,0,
-    0,8,0,0,0,67,0,0,0,115,38,1,0,0,122,5,
-    124,0,106,0,125,3,87,0,110,9,4,0,116,1,121,14,
-    1,0,1,0,1,0,89,0,110,7,119,0,124,3,100,0,
-    117,1,114,21,124,3,83,0,124,0,106,2,125,4,124,1,
-    100,0,117,0,114,43,122,5,124,0,106,3,125,1,87,0,
-    110,9,4,0,116,1,121,42,1,0,1,0,1,0,89,0,
-    110,1,119,0,122,5,124,0,106,4,125,5,87,0,110,11,
-    4,0,116,1,121,59,1,0,1,0,1,0,100,0,125,5,
-    89,0,110,1,119,0,124,2,100,0,117,0,114,87,124,5,
-    100,0,117,0,114,85,122,5,124,1,106,5,125,2,87,0,
-    110,13,4,0,116,1,121,84,1,0,1,0,1,0,100,0,
-    125,2,89,0,110,3,119,0,124,5,125,2,122,5,124,0,
-    106,6,125,6,87,0,110,11,4,0,116,1,121,103,1,0,
-    1,0,1,0,100,0,125,6,89,0,110,1,119,0,122,7,
-    116,7,124,0,106,8,131,1,125,7,87,0,110,11,4,0,
-    116,1,121,122,1,0,1,0,1,0,100,0,125,7,89,0,
-    110,1,119,0,116,9,124,4,124,1,124,2,100,1,141,3,
-    125,3,124,5,100,0,117,0,114,136,100,2,110,1,100,3,
-    124,3,95,10,124,6,124,3,95,11,124,7,124,3,95,12,
-    124,3,83,0,41,4,78,169,1,114,126,0,0,0,70,84,
-    41,13,114,113,0,0,0,114,2,0,0,0,114,9,0,0,
-    0,114,112,0,0,0,114,121,0,0,0,218,7,95,79,82,
-    73,71,73,78,218,10,95,95,99,97,99,104,101,100,95,95,
-    218,4,108,105,115,116,218,8,95,95,112,97,116,104,95,95,
-    114,125,0,0,0,114,130,0,0,0,114,135,0,0,0,114,
-    129,0,0,0,41,8,114,110,0,0,0,114,122,0,0,0,
-    114,126,0,0,0,114,109,0,0,0,114,20,0,0,0,90,
-    8,108,111,99,97,116,105,111,110,114,135,0,0,0,114,129,
-    0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
-    0,0,218,17,95,115,112,101,99,95,102,114,111,109,95,109,
-    111,100,117,108,101,191,1,0,0,115,84,0,0,0,2,2,
-    10,1,12,1,4,1,2,255,8,3,4,1,6,2,8,1,
-    2,1,10,1,12,1,4,2,2,254,2,3,10,1,12,1,
-    8,1,2,255,8,2,8,1,2,1,10,1,12,1,8,1,
-    2,255,4,3,2,1,10,1,12,1,8,1,2,255,2,2,
-    14,1,12,1,8,1,2,255,14,3,18,1,6,1,6,1,
-    4,1,114,155,0,0,0,70,169,1,218,8,111,118,101,114,
-    114,105,100,101,99,2,0,0,0,0,0,0,0,1,0,0,
-    0,5,0,0,0,8,0,0,0,67,0,0,0,115,190,1,
-    0,0,124,2,115,10,116,0,124,1,100,1,100,0,131,3,
-    100,0,117,0,114,26,122,6,124,0,106,1,124,1,95,2,
-    87,0,110,9,4,0,116,3,121,25,1,0,1,0,1,0,
-    89,0,110,1,119,0,124,2,115,36,116,0,124,1,100,2,
-    100,0,131,3,100,0,117,0,114,87,124,0,106,4,125,3,
-    124,3,100,0,117,0,114,72,124,0,106,5,100,0,117,1,
-    114,72,116,6,100,0,117,0,114,54,116,7,130,1,116,6,
-    106,8,125,4,124,4,160,9,124,4,161,1,125,3,124,0,
-    106,5,124,3,95,10,124,3,124,0,95,4,100,0,124,1,
-    95,11,122,5,124,3,124,1,95,12,87,0,110,9,4,0,
-    116,3,121,86,1,0,1,0,1,0,89,0,110,1,119,0,
-    124,2,115,97,116,0,124,1,100,3,100,0,131,3,100,0,
-    117,0,114,113,122,6,124,0,106,13,124,1,95,14,87,0,
-    110,9,4,0,116,3,121,112,1,0,1,0,1,0,89,0,
-    110,1,119,0,122,5,124,0,124,1,95,15,87,0,110,9,
-    4,0,116,3,121,127,1,0,1,0,1,0,89,0,110,1,
-    119,0,124,2,115,138,116,0,124,1,100,4,100,0,131,3,
-    100,0,117,0,114,159,124,0,106,5,100,0,117,1,114,159,
-    122,6,124,0,106,5,124,1,95,16,87,0,110,9,4,0,
-    116,3,121,158,1,0,1,0,1,0,89,0,110,1,119,0,
-    124,0,106,17,114,221,124,2,115,172,116,0,124,1,100,5,
-    100,0,131,3,100,0,117,0,114,188,122,6,124,0,106,18,
-    124,1,95,11,87,0,110,9,4,0,116,3,121,187,1,0,
-    1,0,1,0,89,0,110,1,119,0,124,2,115,198,116,0,
-    124,1,100,6,100,0,131,3,100,0,117,0,114,221,124,0,
-    106,19,100,0,117,1,114,221,122,7,124,0,106,19,124,1,
-    95,20,87,0,124,1,83,0,4,0,116,3,121,220,1,0,
-    1,0,1,0,89,0,124,1,83,0,119,0,124,1,83,0,
-    41,7,78,114,9,0,0,0,114,112,0,0,0,218,11,95,
-    95,112,97,99,107,97,103,101,95,95,114,154,0,0,0,114,
-    121,0,0,0,114,152,0,0,0,41,21,114,13,0,0,0,
-    114,20,0,0,0,114,9,0,0,0,114,2,0,0,0,114,
-    122,0,0,0,114,129,0,0,0,114,139,0,0,0,114,140,
-    0,0,0,218,16,95,78,97,109,101,115,112,97,99,101,76,
-    111,97,100,101,114,218,7,95,95,110,101,119,95,95,90,5,
-    95,112,97,116,104,114,121,0,0,0,114,112,0,0,0,114,
-    143,0,0,0,114,158,0,0,0,114,113,0,0,0,114,154,
-    0,0,0,114,136,0,0,0,114,126,0,0,0,114,135,0,
-    0,0,114,152,0,0,0,41,5,114,109,0,0,0,114,110,
-    0,0,0,114,157,0,0,0,114,122,0,0,0,114,159,0,
+    0,218,6,112,97,114,101,110,116,148,1,0,0,115,6,0,
+    0,0,10,3,16,1,6,2,122,17,77,111,100,117,108,101,
+    83,112,101,99,46,112,97,114,101,110,116,99,1,0,0,0,
+    0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,
+    67,0,0,0,115,6,0,0,0,124,0,106,0,83,0,114,
+    0,0,0,0,41,1,114,130,0,0,0,114,52,0,0,0,
+    114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,
+    136,0,0,0,156,1,0,0,115,2,0,0,0,6,2,122,
+    23,77,111,100,117,108,101,83,112,101,99,46,104,97,115,95,
+    108,111,99,97,116,105,111,110,99,2,0,0,0,0,0,0,
+    0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,
+    0,115,14,0,0,0,116,0,124,1,131,1,124,0,95,1,
+    100,0,83,0,114,0,0,0,0,41,2,218,4,98,111,111,
+    108,114,130,0,0,0,41,2,114,33,0,0,0,218,5,118,
+    97,108,117,101,114,5,0,0,0,114,5,0,0,0,114,6,
+    0,0,0,114,136,0,0,0,160,1,0,0,115,2,0,0,
+    0,14,2,41,12,114,9,0,0,0,114,8,0,0,0,114,
+    1,0,0,0,114,10,0,0,0,114,34,0,0,0,114,53,
+    0,0,0,114,138,0,0,0,218,8,112,114,111,112,101,114,
+    116,121,114,135,0,0,0,218,6,115,101,116,116,101,114,114,
+    143,0,0,0,114,136,0,0,0,114,5,0,0,0,114,5,
+    0,0,0,114,5,0,0,0,114,6,0,0,0,114,125,0,
+    0,0,64,1,0,0,115,34,0,0,0,8,0,4,1,4,
+    36,2,1,12,255,8,12,8,10,2,12,10,1,4,8,10,
+    1,2,3,10,1,2,7,10,1,4,3,14,1,114,125,0,
+    0,0,169,2,114,126,0,0,0,114,128,0,0,0,99,2,
+    0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,8,
+    0,0,0,67,0,0,0,115,150,0,0,0,116,0,124,1,
+    100,1,131,2,114,37,116,1,100,2,117,0,114,11,116,2,
+    130,1,116,1,106,3,125,4,124,3,100,2,117,0,114,24,
+    124,4,124,0,124,1,100,3,141,2,83,0,124,3,114,28,
+    103,0,110,1,100,2,125,5,124,4,124,0,124,1,124,5,
+    100,4,141,3,83,0,124,3,100,2,117,0,114,67,116,0,
+    124,1,100,5,131,2,114,65,122,7,124,1,160,4,124,0,
+    161,1,125,3,87,0,113,67,4,0,116,5,121,64,1,0,
+    1,0,1,0,100,2,125,3,89,0,113,67,119,0,100,6,
+    125,3,116,6,124,0,124,1,124,2,124,3,100,7,141,4,
+    83,0,41,8,122,53,82,101,116,117,114,110,32,97,32,109,
+    111,100,117,108,101,32,115,112,101,99,32,98,97,115,101,100,
+    32,111,110,32,118,97,114,105,111,117,115,32,108,111,97,100,
+    101,114,32,109,101,116,104,111,100,115,46,90,12,103,101,116,
+    95,102,105,108,101,110,97,109,101,78,41,1,114,122,0,0,
+    0,41,2,114,122,0,0,0,114,129,0,0,0,114,128,0,
+    0,0,70,114,148,0,0,0,41,7,114,11,0,0,0,114,
+    139,0,0,0,114,140,0,0,0,218,23,115,112,101,99,95,
+    102,114,111,109,95,102,105,108,101,95,108,111,99,97,116,105,
+    111,110,114,128,0,0,0,114,87,0,0,0,114,125,0,0,
+    0,41,6,114,20,0,0,0,114,122,0,0,0,114,126,0,
+    0,0,114,128,0,0,0,114,149,0,0,0,90,6,115,101,
+    97,114,99,104,114,5,0,0,0,114,5,0,0,0,114,6,
+    0,0,0,114,104,0,0,0,165,1,0,0,115,38,0,0,
+    0,10,2,8,1,4,1,6,1,8,2,12,1,12,1,6,
+    1,2,1,6,255,8,3,10,1,2,1,14,1,12,1,8,
+    1,2,255,4,4,16,2,114,104,0,0,0,99,3,0,0,
+    0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,
+    0,67,0,0,0,115,38,1,0,0,122,5,124,0,106,0,
+    125,3,87,0,110,9,4,0,116,1,121,14,1,0,1,0,
+    1,0,89,0,110,7,119,0,124,3,100,0,117,1,114,21,
+    124,3,83,0,124,0,106,2,125,4,124,1,100,0,117,0,
+    114,43,122,5,124,0,106,3,125,1,87,0,110,9,4,0,
+    116,1,121,42,1,0,1,0,1,0,89,0,110,1,119,0,
+    122,5,124,0,106,4,125,5,87,0,110,11,4,0,116,1,
+    121,59,1,0,1,0,1,0,100,0,125,5,89,0,110,1,
+    119,0,124,2,100,0,117,0,114,87,124,5,100,0,117,0,
+    114,85,122,5,124,1,106,5,125,2,87,0,113,87,4,0,
+    116,1,121,84,1,0,1,0,1,0,100,0,125,2,89,0,
+    113,87,119,0,124,5,125,2,122,5,124,0,106,6,125,6,
+    87,0,110,11,4,0,116,1,121,103,1,0,1,0,1,0,
+    100,0,125,6,89,0,110,1,119,0,122,7,116,7,124,0,
+    106,8,131,1,125,7,87,0,110,11,4,0,116,1,121,122,
+    1,0,1,0,1,0,100,0,125,7,89,0,110,1,119,0,
+    116,9,124,4,124,1,124,2,100,1,141,3,125,3,124,5,
+    100,0,117,0,114,136,100,2,110,1,100,3,124,3,95,10,
+    124,6,124,3,95,11,124,7,124,3,95,12,124,3,83,0,
+    41,4,78,169,1,114,126,0,0,0,70,84,41,13,114,113,
+    0,0,0,114,2,0,0,0,114,9,0,0,0,114,112,0,
+    0,0,114,121,0,0,0,218,7,95,79,82,73,71,73,78,
+    218,10,95,95,99,97,99,104,101,100,95,95,218,4,108,105,
+    115,116,218,8,95,95,112,97,116,104,95,95,114,125,0,0,
+    0,114,130,0,0,0,114,135,0,0,0,114,129,0,0,0,
+    41,8,114,110,0,0,0,114,122,0,0,0,114,126,0,0,
+    0,114,109,0,0,0,114,20,0,0,0,90,8,108,111,99,
+    97,116,105,111,110,114,135,0,0,0,114,129,0,0,0,114,
+    5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,17,
+    95,115,112,101,99,95,102,114,111,109,95,109,111,100,117,108,
+    101,191,1,0,0,115,84,0,0,0,2,2,10,1,12,1,
+    4,1,2,255,8,3,4,1,6,2,8,1,2,1,10,1,
+    12,1,4,2,2,254,2,3,10,1,12,1,8,1,2,255,
+    8,2,8,1,2,1,10,1,12,1,8,1,2,255,4,3,
+    2,1,10,1,12,1,8,1,2,255,2,2,14,1,12,1,
+    8,1,2,255,14,3,18,1,6,1,6,1,4,1,114,155,
+    0,0,0,70,169,1,218,8,111,118,101,114,114,105,100,101,
+    99,2,0,0,0,0,0,0,0,1,0,0,0,5,0,0,
+    0,8,0,0,0,67,0,0,0,115,190,1,0,0,124,2,
+    115,10,116,0,124,1,100,1,100,0,131,3,100,0,117,0,
+    114,26,122,6,124,0,106,1,124,1,95,2,87,0,110,9,
+    4,0,116,3,121,25,1,0,1,0,1,0,89,0,110,1,
+    119,0,124,2,115,36,116,0,124,1,100,2,100,0,131,3,
+    100,0,117,0,114,87,124,0,106,4,125,3,124,3,100,0,
+    117,0,114,72,124,0,106,5,100,0,117,1,114,72,116,6,
+    100,0,117,0,114,54,116,7,130,1,116,6,106,8,125,4,
+    124,4,160,9,124,4,161,1,125,3,124,0,106,5,124,3,
+    95,10,124,3,124,0,95,4,100,0,124,1,95,11,122,5,
+    124,3,124,1,95,12,87,0,110,9,4,0,116,3,121,86,
+    1,0,1,0,1,0,89,0,110,1,119,0,124,2,115,97,
+    116,0,124,1,100,3,100,0,131,3,100,0,117,0,114,113,
+    122,6,124,0,106,13,124,1,95,14,87,0,110,9,4,0,
+    116,3,121,112,1,0,1,0,1,0,89,0,110,1,119,0,
+    122,5,124,0,124,1,95,15,87,0,110,9,4,0,116,3,
+    121,127,1,0,1,0,1,0,89,0,110,1,119,0,124,2,
+    115,138,116,0,124,1,100,4,100,0,131,3,100,0,117,0,
+    114,159,124,0,106,5,100,0,117,1,114,159,122,6,124,0,
+    106,5,124,1,95,16,87,0,110,9,4,0,116,3,121,158,
+    1,0,1,0,1,0,89,0,110,1,119,0,124,0,106,17,
+    114,221,124,2,115,172,116,0,124,1,100,5,100,0,131,3,
+    100,0,117,0,114,188,122,6,124,0,106,18,124,1,95,11,
+    87,0,110,9,4,0,116,3,121,187,1,0,1,0,1,0,
+    89,0,110,1,119,0,124,2,115,198,116,0,124,1,100,6,
+    100,0,131,3,100,0,117,0,114,221,124,0,106,19,100,0,
+    117,1,114,221,122,7,124,0,106,19,124,1,95,20,87,0,
+    124,1,83,0,4,0,116,3,121,220,1,0,1,0,1,0,
+    89,0,124,1,83,0,119,0,124,1,83,0,41,7,78,114,
+    9,0,0,0,114,112,0,0,0,218,11,95,95,112,97,99,
+    107,97,103,101,95,95,114,154,0,0,0,114,121,0,0,0,
+    114,152,0,0,0,41,21,114,13,0,0,0,114,20,0,0,
+    0,114,9,0,0,0,114,2,0,0,0,114,122,0,0,0,
+    114,129,0,0,0,114,139,0,0,0,114,140,0,0,0,218,
+    16,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
+    114,218,7,95,95,110,101,119,95,95,90,5,95,112,97,116,
+    104,114,121,0,0,0,114,112,0,0,0,114,143,0,0,0,
+    114,158,0,0,0,114,113,0,0,0,114,154,0,0,0,114,
+    136,0,0,0,114,126,0,0,0,114,135,0,0,0,114,152,
+    0,0,0,41,5,114,109,0,0,0,114,110,0,0,0,114,
+    157,0,0,0,114,122,0,0,0,114,159,0,0,0,114,5,
+    0,0,0,114,5,0,0,0,114,6,0,0,0,218,18,95,
+    105,110,105,116,95,109,111,100,117,108,101,95,97,116,116,114,
+    115,236,1,0,0,115,114,0,0,0,20,4,2,1,12,1,
+    12,1,4,1,2,255,20,3,6,1,8,1,10,2,8,1,
+    4,1,6,1,10,2,8,1,6,1,6,11,2,1,10,1,
+    12,1,4,1,2,255,20,3,2,1,12,1,12,1,4,1,
+    2,255,2,3,10,1,12,1,4,1,2,255,20,3,10,1,
+    2,1,12,1,12,1,4,1,2,255,6,3,20,1,2,1,
+    12,1,12,1,4,1,2,255,20,3,10,1,2,1,10,1,
+    4,3,12,254,2,1,4,1,2,254,4,2,114,161,0,0,
+    0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
+    0,0,3,0,0,0,67,0,0,0,115,82,0,0,0,100,
+    1,125,1,116,0,124,0,106,1,100,2,131,2,114,15,124,
+    0,106,1,160,2,124,0,161,1,125,1,110,10,116,0,124,
+    0,106,1,100,3,131,2,114,25,116,3,100,4,131,1,130,
+    1,124,1,100,1,117,0,114,34,116,4,124,0,106,5,131,
+    1,125,1,116,6,124,0,124,1,131,2,1,0,124,1,83,
+    0,41,5,122,43,67,114,101,97,116,101,32,97,32,109,111,
+    100,117,108,101,32,98,97,115,101,100,32,111,110,32,116,104,
+    101,32,112,114,111,118,105,100,101,100,32,115,112,101,99,46,
+    78,218,13,99,114,101,97,116,101,95,109,111,100,117,108,101,
+    218,11,101,120,101,99,95,109,111,100,117,108,101,122,66,108,
+    111,97,100,101,114,115,32,116,104,97,116,32,100,101,102,105,
+    110,101,32,101,120,101,99,95,109,111,100,117,108,101,40,41,
+    32,109,117,115,116,32,97,108,115,111,32,100,101,102,105,110,
+    101,32,99,114,101,97,116,101,95,109,111,100,117,108,101,40,
+    41,41,7,114,11,0,0,0,114,122,0,0,0,114,162,0,
+    0,0,114,87,0,0,0,114,21,0,0,0,114,20,0,0,
+    0,114,161,0,0,0,169,2,114,109,0,0,0,114,110,0,
     0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
-    0,218,18,95,105,110,105,116,95,109,111,100,117,108,101,95,
-    97,116,116,114,115,236,1,0,0,115,114,0,0,0,20,4,
-    2,1,12,1,12,1,4,1,2,255,20,3,6,1,8,1,
-    10,2,8,1,4,1,6,1,10,2,8,1,6,1,6,11,
-    2,1,10,1,12,1,4,1,2,255,20,3,2,1,12,1,
-    12,1,4,1,2,255,2,3,10,1,12,1,4,1,2,255,
-    20,3,10,1,2,1,12,1,12,1,4,1,2,255,6,3,
-    20,1,2,1,12,1,12,1,4,1,2,255,20,3,10,1,
-    2,1,10,1,4,3,12,254,2,1,4,1,2,254,4,2,
-    114,161,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,82,
-    0,0,0,100,1,125,1,116,0,124,0,106,1,100,2,131,
-    2,114,15,124,0,106,1,160,2,124,0,161,1,125,1,110,
-    10,116,0,124,0,106,1,100,3,131,2,114,25,116,3,100,
-    4,131,1,130,1,124,1,100,1,117,0,114,34,116,4,124,
-    0,106,5,131,1,125,1,116,6,124,0,124,1,131,2,1,
-    0,124,1,83,0,41,5,122,43,67,114,101,97,116,101,32,
-    97,32,109,111,100,117,108,101,32,98,97,115,101,100,32,111,
-    110,32,116,104,101,32,112,114,111,118,105,100,101,100,32,115,
-    112,101,99,46,78,218,13,99,114,101,97,116,101,95,109,111,
-    100,117,108,101,218,11,101,120,101,99,95,109,111,100,117,108,
-    101,122,66,108,111,97,100,101,114,115,32,116,104,97,116,32,
-    100,101,102,105,110,101,32,101,120,101,99,95,109,111,100,117,
-    108,101,40,41,32,109,117,115,116,32,97,108,115,111,32,100,
-    101,102,105,110,101,32,99,114,101,97,116,101,95,109,111,100,
-    117,108,101,40,41,41,7,114,11,0,0,0,114,122,0,0,
-    0,114,162,0,0,0,114,87,0,0,0,114,21,0,0,0,
-    114,20,0,0,0,114,161,0,0,0,169,2,114,109,0,0,
-    0,114,110,0,0,0,114,5,0,0,0,114,5,0,0,0,
-    114,6,0,0,0,218,16,109,111,100,117,108,101,95,102,114,
-    111,109,95,115,112,101,99,52,2,0,0,115,18,0,0,0,
-    4,3,12,1,14,3,12,1,8,1,8,2,10,1,10,1,
-    4,1,114,165,0,0,0,99,1,0,0,0,0,0,0,0,
-    0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,
-    115,100,0,0,0,124,0,106,0,100,1,117,0,114,7,100,
-    2,110,2,124,0,106,0,125,1,124,0,106,1,100,1,117,
-    0,114,32,124,0,106,2,100,1,117,0,114,25,100,3,160,
-    3,124,1,161,1,83,0,100,4,160,3,124,1,124,0,106,
-    2,161,2,83,0,124,0,106,4,114,42,100,5,160,3,124,
-    1,124,0,106,1,161,2,83,0,100,6,160,3,124,0,106,
-    0,124,0,106,1,161,2,83,0,41,7,122,38,82,101,116,
-    117,114,110,32,116,104,101,32,114,101,112,114,32,116,111,32,
-    117,115,101,32,102,111,114,32,116,104,101,32,109,111,100,117,
-    108,101,46,78,114,115,0,0,0,114,116,0,0,0,114,117,
-    0,0,0,114,118,0,0,0,250,18,60,109,111,100,117,108,
-    101,32,123,33,114,125,32,40,123,125,41,62,41,5,114,20,
-    0,0,0,114,126,0,0,0,114,122,0,0,0,114,50,0,
-    0,0,114,136,0,0,0,41,2,114,109,0,0,0,114,20,
-    0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
-    0,0,114,119,0,0,0,69,2,0,0,115,16,0,0,0,
-    20,3,10,1,10,1,10,1,14,2,6,2,14,1,16,2,
-    114,119,0,0,0,99,2,0,0,0,0,0,0,0,0,0,
-    0,0,4,0,0,0,10,0,0,0,67,0,0,0,115,24,
-    1,0,0,124,0,106,0,125,2,116,1,124,2,131,1,143,
-    123,1,0,116,2,106,3,160,4,124,2,161,1,124,1,117,
-    1,114,27,100,1,160,5,124,2,161,1,125,3,116,6,124,
-    3,124,2,100,2,141,2,130,1,122,80,124,0,106,7,100,
-    3,117,0,114,53,124,0,106,8,100,3,117,0,114,45,116,
-    6,100,4,124,0,106,0,100,2,141,2,130,1,116,9,124,
-    0,124,1,100,5,100,6,141,3,1,0,110,40,116,9,124,
-    0,124,1,100,5,100,6,141,3,1,0,116,10,124,0,106,
-    7,100,7,131,2,115,87,116,11,124,0,106,7,131,1,155,
-    0,100,8,157,2,125,3,116,12,160,13,124,3,116,14,161,
-    2,1,0,124,0,106,7,160,15,124,2,161,1,1,0,110,
-    6,124,0,106,7,160,16,124,1,161,1,1,0,87,0,116,
-    2,106,3,160,17,124,0,106,0,161,1,125,1,124,1,116,
-    2,106,3,124,0,106,0,60,0,110,14,116,2,106,3,160,
+    0,218,16,109,111,100,117,108,101,95,102,114,111,109,95,115,
+    112,101,99,52,2,0,0,115,18,0,0,0,4,3,12,1,
+    14,3,12,1,8,1,8,2,10,1,10,1,4,1,114,165,
+    0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+    2,0,0,0,4,0,0,0,67,0,0,0,115,100,0,0,
+    0,124,0,106,0,100,1,117,0,114,7,100,2,110,2,124,
+    0,106,0,125,1,124,0,106,1,100,1,117,0,114,32,124,
+    0,106,2,100,1,117,0,114,25,100,3,160,3,124,1,161,
+    1,83,0,100,4,160,3,124,1,124,0,106,2,161,2,83,
+    0,124,0,106,4,114,42,100,5,160,3,124,1,124,0,106,
+    1,161,2,83,0,100,6,160,3,124,0,106,0,124,0,106,
+    1,161,2,83,0,41,7,122,38,82,101,116,117,114,110,32,
+    116,104,101,32,114,101,112,114,32,116,111,32,117,115,101,32,
+    102,111,114,32,116,104,101,32,109,111,100,117,108,101,46,78,
+    114,115,0,0,0,114,116,0,0,0,114,117,0,0,0,114,
+    118,0,0,0,250,18,60,109,111,100,117,108,101,32,123,33,
+    114,125,32,40,123,125,41,62,41,5,114,20,0,0,0,114,
+    126,0,0,0,114,122,0,0,0,114,50,0,0,0,114,136,
+    0,0,0,41,2,114,109,0,0,0,114,20,0,0,0,114,
+    5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,119,
+    0,0,0,69,2,0,0,115,16,0,0,0,20,3,10,1,
+    10,1,10,1,14,2,6,2,14,1,16,2,114,119,0,0,
+    0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,
+    0,0,10,0,0,0,67,0,0,0,115,24,1,0,0,124,
+    0,106,0,125,2,116,1,124,2,131,1,143,123,1,0,116,
+    2,106,3,160,4,124,2,161,1,124,1,117,1,114,27,100,
+    1,160,5,124,2,161,1,125,3,116,6,124,3,124,2,100,
+    2,141,2,130,1,122,80,124,0,106,7,100,3,117,0,114,
+    53,124,0,106,8,100,3,117,0,114,45,116,6,100,4,124,
+    0,106,0,100,2,141,2,130,1,116,9,124,0,124,1,100,
+    5,100,6,141,3,1,0,110,40,116,9,124,0,124,1,100,
+    5,100,6,141,3,1,0,116,10,124,0,106,7,100,7,131,
+    2,115,87,116,11,124,0,106,7,131,1,155,0,100,8,157,
+    2,125,3,116,12,160,13,124,3,116,14,161,2,1,0,124,
+    0,106,7,160,15,124,2,161,1,1,0,110,6,124,0,106,
+    7,160,16,124,1,161,1,1,0,87,0,116,2,106,3,160,
     17,124,0,106,0,161,1,125,1,124,1,116,2,106,3,124,
-    0,106,0,60,0,119,0,87,0,100,3,4,0,4,0,131,
-    3,1,0,124,1,83,0,49,0,115,133,119,1,1,0,1,
-    0,1,0,89,0,1,0,124,1,83,0,41,9,122,70,69,
-    120,101,99,117,116,101,32,116,104,101,32,115,112,101,99,39,
-    115,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,
-    108,101,32,105,110,32,97,110,32,101,120,105,115,116,105,110,
-    103,32,109,111,100,117,108,101,39,115,32,110,97,109,101,115,
-    112,97,99,101,46,122,30,109,111,100,117,108,101,32,123,33,
-    114,125,32,110,111,116,32,105,110,32,115,121,115,46,109,111,
-    100,117,108,101,115,114,19,0,0,0,78,250,14,109,105,115,
-    115,105,110,103,32,108,111,97,100,101,114,84,114,156,0,0,
-    0,114,163,0,0,0,250,55,46,101,120,101,99,95,109,111,
-    100,117,108,101,40,41,32,110,111,116,32,102,111,117,110,100,
-    59,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,
-    111,32,108,111,97,100,95,109,111,100,117,108,101,40,41,41,
-    18,114,20,0,0,0,114,57,0,0,0,114,18,0,0,0,
-    114,105,0,0,0,114,38,0,0,0,114,50,0,0,0,114,
-    87,0,0,0,114,122,0,0,0,114,129,0,0,0,114,161,
-    0,0,0,114,11,0,0,0,114,7,0,0,0,114,101,0,
-    0,0,114,102,0,0,0,218,13,73,109,112,111,114,116,87,
-    97,114,110,105,110,103,218,11,108,111,97,100,95,109,111,100,
-    117,108,101,114,163,0,0,0,218,3,112,111,112,41,4,114,
-    109,0,0,0,114,110,0,0,0,114,20,0,0,0,114,108,
-    0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
-    0,0,114,106,0,0,0,86,2,0,0,115,50,0,0,0,
-    6,2,10,1,16,1,10,1,12,1,2,1,10,1,10,1,
-    14,1,16,2,14,2,12,1,16,1,12,2,14,1,12,2,
-    2,128,14,4,14,1,14,255,16,1,10,233,4,24,16,232,
-    4,24,114,106,0,0,0,99,1,0,0,0,0,0,0,0,
-    0,0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,
-    115,14,1,0,0,122,9,124,0,106,0,160,1,124,0,106,
-    2,161,1,1,0,87,0,110,23,1,0,1,0,1,0,124,
-    0,106,2,116,3,106,4,118,0,114,32,116,3,106,4,160,
-    5,124,0,106,2,161,1,125,1,124,1,116,3,106,4,124,
-    0,106,2,60,0,130,0,116,3,106,4,160,5,124,0,106,
-    2,161,1,125,1,124,1,116,3,106,4,124,0,106,2,60,
-    0,116,6,124,1,100,1,100,0,131,3,100,0,117,0,114,
-    70,122,6,124,0,106,0,124,1,95,7,87,0,110,9,4,
-    0,116,8,121,69,1,0,1,0,1,0,89,0,110,1,119,
-    0,116,6,124,1,100,2,100,0,131,3,100,0,117,0,114,
-    108,122,20,124,1,106,9,124,1,95,10,116,11,124,1,100,
-    3,131,2,115,97,124,0,106,2,160,12,100,4,161,1,100,
-    5,25,0,124,1,95,10,87,0,110,9,4,0,116,8,121,
-    107,1,0,1,0,1,0,89,0,110,1,119,0,116,6,124,
-    1,100,6,100,0,131,3,100,0,117,0,114,133,122,6,124,
-    0,124,1,95,13,87,0,124,1,83,0,4,0,116,8,121,
-    132,1,0,1,0,1,0,89,0,124,1,83,0,119,0,124,
-    1,83,0,41,7,78,114,112,0,0,0,114,158,0,0,0,
-    114,154,0,0,0,114,141,0,0,0,114,25,0,0,0,114,
-    113,0,0,0,41,14,114,122,0,0,0,114,170,0,0,0,
-    114,20,0,0,0,114,18,0,0,0,114,105,0,0,0,114,
-    171,0,0,0,114,13,0,0,0,114,112,0,0,0,114,2,
-    0,0,0,114,9,0,0,0,114,158,0,0,0,114,11,0,
-    0,0,114,142,0,0,0,114,113,0,0,0,114,164,0,0,
-    0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
-    218,25,95,108,111,97,100,95,98,97,99,107,119,97,114,100,
-    95,99,111,109,112,97,116,105,98,108,101,116,2,0,0,115,
-    66,0,0,0,2,3,18,1,6,1,12,1,14,1,12,1,
-    2,1,14,3,12,1,16,1,2,1,12,1,12,1,4,1,
-    2,255,16,2,2,1,8,4,10,1,18,1,4,128,12,1,
-    4,1,2,255,16,2,2,1,8,1,4,3,12,254,2,1,
-    4,1,2,254,4,2,114,172,0,0,0,99,1,0,0,0,
-    0,0,0,0,0,0,0,0,3,0,0,0,11,0,0,0,
-    67,0,0,0,115,242,0,0,0,124,0,106,0,100,0,117,
-    1,114,29,116,1,124,0,106,0,100,1,131,2,115,29,116,
-    2,124,0,106,0,131,1,155,0,100,2,157,2,125,1,116,
-    3,160,4,124,1,116,5,161,2,1,0,116,6,124,0,131,
-    1,83,0,116,7,124,0,131,1,125,2,100,3,124,0,95,
-    8,122,80,124,2,116,9,106,10,124,0,106,11,60,0,122,
-    26,124,0,106,0,100,0,117,0,114,62,124,0,106,12,100,
-    0,117,0,114,61,116,13,100,4,124,0,106,11,100,5,141,
-    2,130,1,110,6,124,0,106,0,160,14,124,2,161,1,1,
-    0,87,0,110,20,1,0,1,0,1,0,122,7,116,9,106,
-    10,124,0,106,11,61,0,87,0,130,0,4,0,116,15,121,
-    89,1,0,1,0,1,0,89,0,130,0,119,0,116,9,106,
-    10,160,16,124,0,106,11,161,1,125,2,124,2,116,9,106,
-    10,124,0,106,11,60,0,116,17,100,6,124,0,106,11,124,
-    0,106,0,131,3,1,0,87,0,100,7,124,0,95,8,124,
-    2,83,0,100,7,124,0,95,8,119,0,41,8,78,114,163,
-    0,0,0,114,168,0,0,0,84,114,167,0,0,0,114,19,
-    0,0,0,122,18,105,109,112,111,114,116,32,123,33,114,125,
-    32,35,32,123,33,114,125,70,41,18,114,122,0,0,0,114,
+    0,106,0,60,0,110,14,116,2,106,3,160,17,124,0,106,
+    0,161,1,125,1,124,1,116,2,106,3,124,0,106,0,60,
+    0,119,0,87,0,100,3,4,0,4,0,131,3,1,0,124,
+    1,83,0,49,0,115,133,119,1,1,0,1,0,1,0,89,
+    0,1,0,124,1,83,0,41,9,122,70,69,120,101,99,117,
+    116,101,32,116,104,101,32,115,112,101,99,39,115,32,115,112,
+    101,99,105,102,105,101,100,32,109,111,100,117,108,101,32,105,
+    110,32,97,110,32,101,120,105,115,116,105,110,103,32,109,111,
+    100,117,108,101,39,115,32,110,97,109,101,115,112,97,99,101,
+    46,122,30,109,111,100,117,108,101,32,123,33,114,125,32,110,
+    111,116,32,105,110,32,115,121,115,46,109,111,100,117,108,101,
+    115,114,19,0,0,0,78,250,14,109,105,115,115,105,110,103,
+    32,108,111,97,100,101,114,84,114,156,0,0,0,114,163,0,
+    0,0,250,55,46,101,120,101,99,95,109,111,100,117,108,101,
+    40,41,32,110,111,116,32,102,111,117,110,100,59,32,102,97,
+    108,108,105,110,103,32,98,97,99,107,32,116,111,32,108,111,
+    97,100,95,109,111,100,117,108,101,40,41,41,18,114,20,0,
+    0,0,114,57,0,0,0,114,18,0,0,0,114,105,0,0,
+    0,114,38,0,0,0,114,50,0,0,0,114,87,0,0,0,
+    114,122,0,0,0,114,129,0,0,0,114,161,0,0,0,114,
     11,0,0,0,114,7,0,0,0,114,101,0,0,0,114,102,
-    0,0,0,114,169,0,0,0,114,172,0,0,0,114,165,0,
-    0,0,90,13,95,105,110,105,116,105,97,108,105,122,105,110,
-    103,114,18,0,0,0,114,105,0,0,0,114,20,0,0,0,
-    114,129,0,0,0,114,87,0,0,0,114,163,0,0,0,114,
-    70,0,0,0,114,171,0,0,0,114,83,0,0,0,41,3,
-    114,109,0,0,0,114,108,0,0,0,114,110,0,0,0,114,
-    5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,14,
-    95,108,111,97,100,95,117,110,108,111,99,107,101,100,152,2,
-    0,0,115,60,0,0,0,10,2,12,2,16,1,12,2,8,
-    1,8,2,6,5,2,1,12,1,2,1,10,1,10,1,14,
-    1,2,255,12,4,4,128,6,1,2,1,12,1,2,3,12,
-    254,2,1,2,1,2,254,14,7,12,1,18,1,6,2,4,
-    2,8,254,114,173,0,0,0,99,1,0,0,0,0,0,0,
-    0,0,0,0,0,1,0,0,0,8,0,0,0,67,0,0,
-    0,115,54,0,0,0,116,0,124,0,106,1,131,1,143,12,
-    1,0,116,2,124,0,131,1,87,0,2,0,100,1,4,0,
-    4,0,131,3,1,0,83,0,49,0,115,20,119,1,1,0,
-    1,0,1,0,89,0,1,0,100,1,83,0,41,2,122,191,
-    82,101,116,117,114,110,32,97,32,110,101,119,32,109,111,100,
-    117,108,101,32,111,98,106,101,99,116,44,32,108,111,97,100,
-    101,100,32,98,121,32,116,104,101,32,115,112,101,99,39,115,
-    32,108,111,97,100,101,114,46,10,10,32,32,32,32,84,104,
-    101,32,109,111,100,117,108,101,32,105,115,32,110,111,116,32,
-    97,100,100,101,100,32,116,111,32,105,116,115,32,112,97,114,
-    101,110,116,46,10,10,32,32,32,32,73,102,32,97,32,109,
-    111,100,117,108,101,32,105,115,32,97,108,114,101,97,100,121,
-    32,105,110,32,115,121,115,46,109,111,100,117,108,101,115,44,
-    32,116,104,97,116,32,101,120,105,115,116,105,110,103,32,109,
-    111,100,117,108,101,32,103,101,116,115,10,32,32,32,32,99,
-    108,111,98,98,101,114,101,100,46,10,10,32,32,32,32,78,
-    41,3,114,57,0,0,0,114,20,0,0,0,114,173,0,0,
-    0,169,1,114,109,0,0,0,114,5,0,0,0,114,5,0,
-    0,0,114,6,0,0,0,114,107,0,0,0,197,2,0,0,
-    115,6,0,0,0,12,9,6,1,36,255,114,107,0,0,0,
-    99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-    0,4,0,0,0,64,0,0,0,115,140,0,0,0,101,0,
-    90,1,100,0,90,2,100,1,90,3,100,2,90,4,101,5,
-    100,3,100,4,132,0,131,1,90,6,101,7,100,20,100,6,
-    100,7,132,1,131,1,90,8,101,7,100,21,100,8,100,9,
-    132,1,131,1,90,9,101,5,100,10,100,11,132,0,131,1,
-    90,10,101,5,100,12,100,13,132,0,131,1,90,11,101,7,
-    101,12,100,14,100,15,132,0,131,1,131,1,90,13,101,7,
-    101,12,100,16,100,17,132,0,131,1,131,1,90,14,101,7,
-    101,12,100,18,100,19,132,0,131,1,131,1,90,15,101,7,
-    101,16,131,1,90,17,100,5,83,0,41,22,218,15,66,117,
-    105,108,116,105,110,73,109,112,111,114,116,101,114,122,144,77,
-    101,116,97,32,112,97,116,104,32,105,109,112,111,114,116,32,
-    102,111,114,32,98,117,105,108,116,45,105,110,32,109,111,100,
-    117,108,101,115,46,10,10,32,32,32,32,65,108,108,32,109,
-    101,116,104,111,100,115,32,97,114,101,32,101,105,116,104,101,
-    114,32,99,108,97,115,115,32,111,114,32,115,116,97,116,105,
-    99,32,109,101,116,104,111,100,115,32,116,111,32,97,118,111,
-    105,100,32,116,104,101,32,110,101,101,100,32,116,111,10,32,
-    32,32,32,105,110,115,116,97,110,116,105,97,116,101,32,116,
-    104,101,32,99,108,97,115,115,46,10,10,32,32,32,32,122,
-    8,98,117,105,108,116,45,105,110,99,1,0,0,0,0,0,
-    0,0,0,0,0,0,1,0,0,0,5,0,0,0,67,0,
-    0,0,115,34,0,0,0,116,0,160,1,100,1,116,2,161,
-    2,1,0,100,2,124,0,106,3,155,2,100,3,116,4,106,
-    5,155,0,100,4,157,5,83,0,41,6,250,115,82,101,116,
-    117,114,110,32,114,101,112,114,32,102,111,114,32,116,104,101,
-    32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,
-    32,32,84,104,101,32,109,101,116,104,111,100,32,105,115,32,
-    100,101,112,114,101,99,97,116,101,100,46,32,32,84,104,101,
-    32,105,109,112,111,114,116,32,109,97,99,104,105,110,101,114,
-    121,32,100,111,101,115,32,116,104,101,32,106,111,98,32,105,
-    116,115,101,108,102,46,10,10,32,32,32,32,32,32,32,32,
-    122,81,66,117,105,108,116,105,110,73,109,112,111,114,116,101,
-    114,46,109,111,100,117,108,101,95,114,101,112,114,40,41,32,
-    105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,
-    100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,
-    111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,
-    46,49,50,122,8,60,109,111,100,117,108,101,32,122,2,32,
-    40,122,2,41,62,78,41,6,114,101,0,0,0,114,102,0,
-    0,0,114,103,0,0,0,114,9,0,0,0,114,175,0,0,
-    0,114,151,0,0,0,169,1,114,110,0,0,0,114,5,0,
-    0,0,114,5,0,0,0,114,6,0,0,0,114,114,0,0,
-    0,223,2,0,0,115,8,0,0,0,6,7,2,1,4,255,
-    22,2,122,27,66,117,105,108,116,105,110,73,109,112,111,114,
-    116,101,114,46,109,111,100,117,108,101,95,114,101,112,114,78,
-    99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
-    0,5,0,0,0,67,0,0,0,115,42,0,0,0,124,2,
-    100,0,117,1,114,6,100,0,83,0,116,0,160,1,124,1,
-    161,1,114,19,116,2,124,1,124,0,124,0,106,3,100,1,
-    141,3,83,0,100,0,83,0,169,2,78,114,150,0,0,0,
-    41,4,114,64,0,0,0,90,10,105,115,95,98,117,105,108,
-    116,105,110,114,104,0,0,0,114,151,0,0,0,169,4,218,
-    3,99,108,115,114,89,0,0,0,218,4,112,97,116,104,218,
-    6,116,97,114,103,101,116,114,5,0,0,0,114,5,0,0,
-    0,114,6,0,0,0,218,9,102,105,110,100,95,115,112,101,
-    99,234,2,0,0,115,10,0,0,0,8,2,4,1,10,1,
-    16,1,4,2,122,25,66,117,105,108,116,105,110,73,109,112,
-    111,114,116,101,114,46,102,105,110,100,95,115,112,101,99,99,
-    3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
-    4,0,0,0,67,0,0,0,115,42,0,0,0,116,0,160,
-    1,100,1,116,2,161,2,1,0,124,0,160,3,124,1,124,
-    2,161,2,125,3,124,3,100,2,117,1,114,19,124,3,106,
-    4,83,0,100,2,83,0,41,3,122,175,70,105,110,100,32,
-    116,104,101,32,98,117,105,108,116,45,105,110,32,109,111,100,
-    117,108,101,46,10,10,32,32,32,32,32,32,32,32,73,102,
-    32,39,112,97,116,104,39,32,105,115,32,101,118,101,114,32,
-    115,112,101,99,105,102,105,101,100,32,116,104,101,110,32,116,
-    104,101,32,115,101,97,114,99,104,32,105,115,32,99,111,110,
-    115,105,100,101,114,101,100,32,97,32,102,97,105,108,117,114,
-    101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,
-    32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,
-    99,97,116,101,100,46,32,32,85,115,101,32,102,105,110,100,
-    95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,46,
-    10,10,32,32,32,32,32,32,32,32,122,106,66,117,105,108,
-    116,105,110,73,109,112,111,114,116,101,114,46,102,105,110,100,
-    95,109,111,100,117,108,101,40,41,32,105,115,32,100,101,112,
-    114,101,99,97,116,101,100,32,97,110,100,32,115,108,97,116,
-    101,100,32,102,111,114,32,114,101,109,111,118,97,108,32,105,
-    110,32,80,121,116,104,111,110,32,51,46,49,50,59,32,117,
-    115,101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,
-    110,115,116,101,97,100,78,41,5,114,101,0,0,0,114,102,
-    0,0,0,114,103,0,0,0,114,183,0,0,0,114,122,0,
-    0,0,41,4,114,180,0,0,0,114,89,0,0,0,114,181,
-    0,0,0,114,109,0,0,0,114,5,0,0,0,114,5,0,
-    0,0,114,6,0,0,0,218,11,102,105,110,100,95,109,111,
-    100,117,108,101,243,2,0,0,115,10,0,0,0,6,9,2,
-    2,4,254,12,3,18,1,122,27,66,117,105,108,116,105,110,
-    73,109,112,111,114,116,101,114,46,102,105,110,100,95,109,111,
-    100,117,108,101,99,1,0,0,0,0,0,0,0,0,0,0,
-    0,1,0,0,0,4,0,0,0,67,0,0,0,115,46,0,
-    0,0,124,0,106,0,116,1,106,2,118,1,114,17,116,3,
-    100,1,160,4,124,0,106,0,161,1,124,0,106,0,100,2,
-    141,2,130,1,116,5,116,6,106,7,124,0,131,2,83,0,
-    41,4,122,24,67,114,101,97,116,101,32,97,32,98,117,105,
-    108,116,45,105,110,32,109,111,100,117,108,101,114,85,0,0,
-    0,114,19,0,0,0,78,41,8,114,20,0,0,0,114,18,
-    0,0,0,114,86,0,0,0,114,87,0,0,0,114,50,0,
-    0,0,114,74,0,0,0,114,64,0,0,0,90,14,99,114,
-    101,97,116,101,95,98,117,105,108,116,105,110,114,174,0,0,
-    0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
-    114,162,0,0,0,2,3,0,0,115,10,0,0,0,12,3,
-    12,1,4,1,6,255,12,2,122,29,66,117,105,108,116,105,
-    110,73,109,112,111,114,116,101,114,46,99,114,101,97,116,101,
-    95,109,111,100,117,108,101,99,1,0,0,0,0,0,0,0,
-    0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
-    115,16,0,0,0,116,0,116,1,106,2,124,0,131,2,1,
-    0,100,1,83,0,41,2,122,22,69,120,101,99,32,97,32,
-    98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,78,
-    41,3,114,74,0,0,0,114,64,0,0,0,90,12,101,120,
-    101,99,95,98,117,105,108,116,105,110,114,177,0,0,0,114,
-    5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,163,
-    0,0,0,10,3,0,0,115,2,0,0,0,16,3,122,27,
-    66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,
-    101,120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,
-    0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
-    67,0,0,0,243,4,0,0,0,100,1,83,0,41,2,122,
-    57,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,
+    0,0,0,218,13,73,109,112,111,114,116,87,97,114,110,105,
+    110,103,218,11,108,111,97,100,95,109,111,100,117,108,101,114,
+    163,0,0,0,218,3,112,111,112,41,4,114,109,0,0,0,
+    114,110,0,0,0,114,20,0,0,0,114,108,0,0,0,114,
+    5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,106,
+    0,0,0,86,2,0,0,115,50,0,0,0,6,2,10,1,
+    16,1,10,1,12,1,2,1,10,1,10,1,14,1,16,2,
+    14,2,12,1,16,1,12,2,14,1,12,2,2,128,14,4,
+    14,1,14,255,16,1,10,233,4,24,16,232,4,24,114,106,
+    0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+    2,0,0,0,8,0,0,0,67,0,0,0,115,14,1,0,
+    0,122,9,124,0,106,0,160,1,124,0,106,2,161,1,1,
+    0,87,0,110,23,1,0,1,0,1,0,124,0,106,2,116,
+    3,106,4,118,0,114,32,116,3,106,4,160,5,124,0,106,
+    2,161,1,125,1,124,1,116,3,106,4,124,0,106,2,60,
+    0,130,0,116,3,106,4,160,5,124,0,106,2,161,1,125,
+    1,124,1,116,3,106,4,124,0,106,2,60,0,116,6,124,
+    1,100,1,100,0,131,3,100,0,117,0,114,70,122,6,124,
+    0,106,0,124,1,95,7,87,0,110,9,4,0,116,8,121,
+    69,1,0,1,0,1,0,89,0,110,1,119,0,116,6,124,
+    1,100,2,100,0,131,3,100,0,117,0,114,108,122,20,124,
+    1,106,9,124,1,95,10,116,11,124,1,100,3,131,2,115,
+    97,124,0,106,2,160,12,100,4,161,1,100,5,25,0,124,
+    1,95,10,87,0,110,9,4,0,116,8,121,107,1,0,1,
+    0,1,0,89,0,110,1,119,0,116,6,124,1,100,6,100,
+    0,131,3,100,0,117,0,114,133,122,6,124,0,124,1,95,
+    13,87,0,124,1,83,0,4,0,116,8,121,132,1,0,1,
+    0,1,0,89,0,124,1,83,0,119,0,124,1,83,0,41,
+    7,78,114,112,0,0,0,114,158,0,0,0,114,154,0,0,
+    0,114,141,0,0,0,114,25,0,0,0,114,113,0,0,0,
+    41,14,114,122,0,0,0,114,170,0,0,0,114,20,0,0,
+    0,114,18,0,0,0,114,105,0,0,0,114,171,0,0,0,
+    114,13,0,0,0,114,112,0,0,0,114,2,0,0,0,114,
+    9,0,0,0,114,158,0,0,0,114,11,0,0,0,114,142,
+    0,0,0,114,113,0,0,0,114,164,0,0,0,114,5,0,
+    0,0,114,5,0,0,0,114,6,0,0,0,218,25,95,108,
+    111,97,100,95,98,97,99,107,119,97,114,100,95,99,111,109,
+    112,97,116,105,98,108,101,116,2,0,0,115,66,0,0,0,
+    2,3,18,1,6,1,12,1,14,1,12,1,2,1,14,3,
+    12,1,16,1,2,1,12,1,12,1,4,1,2,255,16,2,
+    2,1,8,4,10,1,18,1,4,128,12,1,4,1,2,255,
+    16,2,2,1,8,1,4,3,12,254,2,1,4,1,2,254,
+    4,2,114,172,0,0,0,99,1,0,0,0,0,0,0,0,
+    0,0,0,0,3,0,0,0,11,0,0,0,67,0,0,0,
+    115,242,0,0,0,124,0,106,0,100,0,117,1,114,29,116,
+    1,124,0,106,0,100,1,131,2,115,29,116,2,124,0,106,
+    0,131,1,155,0,100,2,157,2,125,1,116,3,160,4,124,
+    1,116,5,161,2,1,0,116,6,124,0,131,1,83,0,116,
+    7,124,0,131,1,125,2,100,3,124,0,95,8,122,80,124,
+    2,116,9,106,10,124,0,106,11,60,0,122,26,124,0,106,
+    0,100,0,117,0,114,62,124,0,106,12,100,0,117,0,114,
+    61,116,13,100,4,124,0,106,11,100,5,141,2,130,1,110,
+    6,124,0,106,0,160,14,124,2,161,1,1,0,87,0,110,
+    20,1,0,1,0,1,0,122,7,116,9,106,10,124,0,106,
+    11,61,0,87,0,130,0,4,0,116,15,121,89,1,0,1,
+    0,1,0,89,0,130,0,119,0,116,9,106,10,160,16,124,
+    0,106,11,161,1,125,2,124,2,116,9,106,10,124,0,106,
+    11,60,0,116,17,100,6,124,0,106,11,124,0,106,0,131,
+    3,1,0,87,0,100,7,124,0,95,8,124,2,83,0,100,
+    7,124,0,95,8,119,0,41,8,78,114,163,0,0,0,114,
+    168,0,0,0,84,114,167,0,0,0,114,19,0,0,0,122,
+    18,105,109,112,111,114,116,32,123,33,114,125,32,35,32,123,
+    33,114,125,70,41,18,114,122,0,0,0,114,11,0,0,0,
+    114,7,0,0,0,114,101,0,0,0,114,102,0,0,0,114,
+    169,0,0,0,114,172,0,0,0,114,165,0,0,0,90,13,
+    95,105,110,105,116,105,97,108,105,122,105,110,103,114,18,0,
+    0,0,114,105,0,0,0,114,20,0,0,0,114,129,0,0,
+    0,114,87,0,0,0,114,163,0,0,0,114,70,0,0,0,
+    114,171,0,0,0,114,83,0,0,0,41,3,114,109,0,0,
+    0,114,108,0,0,0,114,110,0,0,0,114,5,0,0,0,
+    114,5,0,0,0,114,6,0,0,0,218,14,95,108,111,97,
+    100,95,117,110,108,111,99,107,101,100,152,2,0,0,115,60,
+    0,0,0,10,2,12,2,16,1,12,2,8,1,8,2,6,
+    5,2,1,12,1,2,1,10,1,10,1,14,1,2,255,12,
+    4,4,128,6,1,2,1,12,1,2,3,12,254,2,1,2,
+    1,2,254,14,7,12,1,18,1,6,2,4,2,8,254,114,
+    173,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+    0,1,0,0,0,8,0,0,0,67,0,0,0,115,54,0,
+    0,0,116,0,124,0,106,1,131,1,143,12,1,0,116,2,
+    124,0,131,1,87,0,2,0,100,1,4,0,4,0,131,3,
+    1,0,83,0,49,0,115,20,119,1,1,0,1,0,1,0,
+    89,0,1,0,100,1,83,0,41,2,122,191,82,101,116,117,
+    114,110,32,97,32,110,101,119,32,109,111,100,117,108,101,32,
+    111,98,106,101,99,116,44,32,108,111,97,100,101,100,32,98,
+    121,32,116,104,101,32,115,112,101,99,39,115,32,108,111,97,
+    100,101,114,46,10,10,32,32,32,32,84,104,101,32,109,111,
+    100,117,108,101,32,105,115,32,110,111,116,32,97,100,100,101,
+    100,32,116,111,32,105,116,115,32,112,97,114,101,110,116,46,
+    10,10,32,32,32,32,73,102,32,97,32,109,111,100,117,108,
+    101,32,105,115,32,97,108,114,101,97,100,121,32,105,110,32,
+    115,121,115,46,109,111,100,117,108,101,115,44,32,116,104,97,
+    116,32,101,120,105,115,116,105,110,103,32,109,111,100,117,108,
+    101,32,103,101,116,115,10,32,32,32,32,99,108,111,98,98,
+    101,114,101,100,46,10,10,32,32,32,32,78,41,3,114,57,
+    0,0,0,114,20,0,0,0,114,173,0,0,0,169,1,114,
+    109,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,
+    0,0,0,114,107,0,0,0,197,2,0,0,115,6,0,0,
+    0,12,9,6,1,36,255,114,107,0,0,0,99,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+    0,64,0,0,0,115,140,0,0,0,101,0,90,1,100,0,
+    90,2,100,1,90,3,100,2,90,4,101,5,100,3,100,4,
+    132,0,131,1,90,6,101,7,100,20,100,6,100,7,132,1,
+    131,1,90,8,101,7,100,21,100,8,100,9,132,1,131,1,
+    90,9,101,5,100,10,100,11,132,0,131,1,90,10,101,5,
+    100,12,100,13,132,0,131,1,90,11,101,7,101,12,100,14,
+    100,15,132,0,131,1,131,1,90,13,101,7,101,12,100,16,
+    100,17,132,0,131,1,131,1,90,14,101,7,101,12,100,18,
+    100,19,132,0,131,1,131,1,90,15,101,7,101,16,131,1,
+    90,17,100,5,83,0,41,22,218,15,66,117,105,108,116,105,
+    110,73,109,112,111,114,116,101,114,122,144,77,101,116,97,32,
+    112,97,116,104,32,105,109,112,111,114,116,32,102,111,114,32,
     98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,
-    32,100,111,32,110,111,116,32,104,97,118,101,32,99,111,100,
-    101,32,111,98,106,101,99,116,115,46,78,114,5,0,0,0,
-    169,2,114,180,0,0,0,114,89,0,0,0,114,5,0,0,
-    0,114,5,0,0,0,114,6,0,0,0,218,8,103,101,116,
-    95,99,111,100,101,15,3,0,0,243,2,0,0,0,4,4,
-    122,24,66,117,105,108,116,105,110,73,109,112,111,114,116,101,
-    114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
-    0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
-    0,0,0,114,185,0,0,0,41,2,122,56,82,101,116,117,
-    114,110,32,78,111,110,101,32,97,115,32,98,117,105,108,116,
-    45,105,110,32,109,111,100,117,108,101,115,32,100,111,32,110,
-    111,116,32,104,97,118,101,32,115,111,117,114,99,101,32,99,
-    111,100,101,46,78,114,5,0,0,0,114,186,0,0,0,114,
-    5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,10,
-    103,101,116,95,115,111,117,114,99,101,21,3,0,0,114,188,
-    0,0,0,122,26,66,117,105,108,116,105,110,73,109,112,111,
-    114,116,101,114,46,103,101,116,95,115,111,117,114,99,101,99,
-    2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
-    1,0,0,0,67,0,0,0,114,185,0,0,0,41,3,122,
-    52,82,101,116,117,114,110,32,70,97,108,115,101,32,97,115,
-    32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
-    115,32,97,114,101,32,110,101,118,101,114,32,112,97,99,107,
-    97,103,101,115,46,70,78,114,5,0,0,0,114,186,0,0,
-    0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
-    114,128,0,0,0,27,3,0,0,114,188,0,0,0,122,26,
-    66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,
-    105,115,95,112,97,99,107,97,103,101,169,2,78,78,114,0,
-    0,0,0,41,18,114,9,0,0,0,114,8,0,0,0,114,
-    1,0,0,0,114,10,0,0,0,114,151,0,0,0,218,12,
-    115,116,97,116,105,99,109,101,116,104,111,100,114,114,0,0,
-    0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,183,
-    0,0,0,114,184,0,0,0,114,162,0,0,0,114,163,0,
-    0,0,114,95,0,0,0,114,187,0,0,0,114,189,0,0,
-    0,114,128,0,0,0,114,111,0,0,0,114,170,0,0,0,
-    114,5,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
-    6,0,0,0,114,175,0,0,0,212,2,0,0,115,46,0,
-    0,0,8,0,4,2,4,7,2,2,10,1,2,10,12,1,
-    2,8,12,1,2,14,10,1,2,7,10,1,2,4,2,1,
-    12,1,2,4,2,1,12,1,2,4,2,1,12,1,12,4,
-    114,175,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
-    0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,144,
-    0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,
-    2,90,4,101,5,100,3,100,4,132,0,131,1,90,6,101,
-    7,100,22,100,6,100,7,132,1,131,1,90,8,101,7,100,
-    23,100,8,100,9,132,1,131,1,90,9,101,5,100,10,100,
-    11,132,0,131,1,90,10,101,5,100,12,100,13,132,0,131,
-    1,90,11,101,7,100,14,100,15,132,0,131,1,90,12,101,
-    7,101,13,100,16,100,17,132,0,131,1,131,1,90,14,101,
-    7,101,13,100,18,100,19,132,0,131,1,131,1,90,15,101,
-    7,101,13,100,20,100,21,132,0,131,1,131,1,90,16,100,
-    5,83,0,41,24,218,14,70,114,111,122,101,110,73,109,112,
-    111,114,116,101,114,122,142,77,101,116,97,32,112,97,116,104,
-    32,105,109,112,111,114,116,32,102,111,114,32,102,114,111,122,
-    101,110,32,109,111,100,117,108,101,115,46,10,10,32,32,32,
-    32,65,108,108,32,109,101,116,104,111,100,115,32,97,114,101,
-    32,101,105,116,104,101,114,32,99,108,97,115,115,32,111,114,
-    32,115,116,97,116,105,99,32,109,101,116,104,111,100,115,32,
-    116,111,32,97,118,111,105,100,32,116,104,101,32,110,101,101,
-    100,32,116,111,10,32,32,32,32,105,110,115,116,97,110,116,
-    105,97,116,101,32,116,104,101,32,99,108,97,115,115,46,10,
-    10,32,32,32,32,90,6,102,114,111,122,101,110,99,1,0,
-    0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,
-    0,0,67,0,0,0,115,28,0,0,0,116,0,160,1,100,
-    1,116,2,161,2,1,0,100,2,160,3,124,0,106,4,116,
-    5,106,6,161,2,83,0,41,4,114,176,0,0,0,122,80,
-    70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,109,
-    111,100,117,108,101,95,114,101,112,114,40,41,32,105,115,32,
-    100,101,112,114,101,99,97,116,101,100,32,97,110,100,32,115,
-    108,97,116,101,100,32,102,111,114,32,114,101,109,111,118,97,
-    108,32,105,110,32,80,121,116,104,111,110,32,51,46,49,50,
-    114,166,0,0,0,78,41,7,114,101,0,0,0,114,102,0,
-    0,0,114,103,0,0,0,114,50,0,0,0,114,9,0,0,
-    0,114,193,0,0,0,114,151,0,0,0,41,1,218,1,109,
-    114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,
-    114,0,0,0,47,3,0,0,115,8,0,0,0,6,7,2,
-    1,4,255,16,2,122,26,70,114,111,122,101,110,73,109,112,
-    111,114,116,101,114,46,109,111,100,117,108,101,95,114,101,112,
-    114,78,99,4,0,0,0,0,0,0,0,0,0,0,0,4,
-    0,0,0,5,0,0,0,67,0,0,0,115,30,0,0,0,
-    116,0,160,1,124,1,161,1,114,13,116,2,124,1,124,0,
-    124,0,106,3,100,1,141,3,83,0,100,0,83,0,114,178,
-    0,0,0,41,4,114,64,0,0,0,114,98,0,0,0,114,
-    104,0,0,0,114,151,0,0,0,114,179,0,0,0,114,5,
-    0,0,0,114,5,0,0,0,114,6,0,0,0,114,183,0,
-    0,0,58,3,0,0,115,6,0,0,0,10,2,16,1,4,
-    2,122,24,70,114,111,122,101,110,73,109,112,111,114,116,101,
-    114,46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,
-    0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,
-    67,0,0,0,115,30,0,0,0,116,0,160,1,100,1,116,
-    2,161,2,1,0,116,3,160,4,124,1,161,1,114,13,124,
-    0,83,0,100,2,83,0,41,3,122,93,70,105,110,100,32,
-    97,32,102,114,111,122,101,110,32,109,111,100,117,108,101,46,
-    10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
-    101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
-    116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,115,
-    112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,10,
-    32,32,32,32,32,32,32,32,122,105,70,114,111,122,101,110,
-    73,109,112,111,114,116,101,114,46,102,105,110,100,95,109,111,
-    100,117,108,101,40,41,32,105,115,32,100,101,112,114,101,99,
-    97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,
-    102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,
-    121,116,104,111,110,32,51,46,49,50,59,32,117,115,101,32,
-    102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,
-    101,97,100,78,41,5,114,101,0,0,0,114,102,0,0,0,
-    114,103,0,0,0,114,64,0,0,0,114,98,0,0,0,41,
-    3,114,180,0,0,0,114,89,0,0,0,114,181,0,0,0,
-    114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,
-    184,0,0,0,65,3,0,0,115,8,0,0,0,6,7,2,
-    2,4,254,18,3,122,26,70,114,111,122,101,110,73,109,112,
-    111,114,116,101,114,46,102,105,110,100,95,109,111,100,117,108,
-    101,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
-    0,0,1,0,0,0,67,0,0,0,114,185,0,0,0,41,
-    2,122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,
-    101,109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,
-    117,108,101,32,99,114,101,97,116,105,111,110,46,78,114,5,
-    0,0,0,114,174,0,0,0,114,5,0,0,0,114,5,0,
-    0,0,114,6,0,0,0,114,162,0,0,0,77,3,0,0,
-    115,2,0,0,0,4,0,122,28,70,114,111,122,101,110,73,
-    109,112,111,114,116,101,114,46,99,114,101,97,116,101,95,109,
-    111,100,117,108,101,99,1,0,0,0,0,0,0,0,0,0,
-    0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,64,
-    0,0,0,124,0,106,0,106,1,125,1,116,2,160,3,124,
-    1,161,1,115,18,116,4,100,1,160,5,124,1,161,1,124,
-    1,100,2,141,2,130,1,116,6,116,2,106,7,124,1,131,
-    2,125,2,116,8,124,2,124,0,106,9,131,2,1,0,100,
-    0,83,0,114,97,0,0,0,41,10,114,113,0,0,0,114,
-    20,0,0,0,114,64,0,0,0,114,98,0,0,0,114,87,
-    0,0,0,114,50,0,0,0,114,74,0,0,0,218,17,103,
-    101,116,95,102,114,111,122,101,110,95,111,98,106,101,99,116,
-    218,4,101,120,101,99,114,14,0,0,0,41,3,114,110,0,
-    0,0,114,20,0,0,0,218,4,99,111,100,101,114,5,0,
-    0,0,114,5,0,0,0,114,6,0,0,0,114,163,0,0,
-    0,81,3,0,0,115,14,0,0,0,8,2,10,1,10,1,
-    2,1,6,255,12,2,16,1,122,26,70,114,111,122,101,110,
-    73,109,112,111,114,116,101,114,46,101,120,101,99,95,109,111,
-    100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,
-    0,2,0,0,0,3,0,0,0,67,0,0,0,115,10,0,
-    0,0,116,0,124,0,124,1,131,2,83,0,41,2,122,95,
-    76,111,97,100,32,97,32,102,114,111,122,101,110,32,109,111,
-    100,117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,
-    104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,
-    112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,101,
-    120,101,99,95,109,111,100,117,108,101,40,41,32,105,110,115,
-    116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,78,
-    41,1,114,111,0,0,0,114,186,0,0,0,114,5,0,0,
-    0,114,5,0,0,0,114,6,0,0,0,114,170,0,0,0,
-    90,3,0,0,115,2,0,0,0,10,8,122,26,70,114,111,
-    122,101,110,73,109,112,111,114,116,101,114,46,108,111,97,100,
-    95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
-    0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,
-    243,10,0,0,0,116,0,160,1,124,1,161,1,83,0,41,
-    2,122,45,82,101,116,117,114,110,32,116,104,101,32,99,111,
-    100,101,32,111,98,106,101,99,116,32,102,111,114,32,116,104,
-    101,32,102,114,111,122,101,110,32,109,111,100,117,108,101,46,
-    78,41,2,114,64,0,0,0,114,195,0,0,0,114,186,0,
-    0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
-    0,114,187,0,0,0,100,3,0,0,243,2,0,0,0,10,
-    4,122,23,70,114,111,122,101,110,73,109,112,111,114,116,101,
-    114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
-    0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
-    0,0,0,114,185,0,0,0,41,2,122,54,82,101,116,117,
-    114,110,32,78,111,110,101,32,97,115,32,102,114,111,122,101,
-    110,32,109,111,100,117,108,101,115,32,100,111,32,110,111,116,
-    32,104,97,118,101,32,115,111,117,114,99,101,32,99,111,100,
-    101,46,78,114,5,0,0,0,114,186,0,0,0,114,5,0,
-    0,0,114,5,0,0,0,114,6,0,0,0,114,189,0,0,
-    0,106,3,0,0,114,188,0,0,0,122,25,70,114,111,122,
-    101,110,73,109,112,111,114,116,101,114,46,103,101,116,95,115,
-    111,117,114,99,101,99,2,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,3,0,0,0,67,0,0,0,114,198,
-    0,0,0,41,2,122,46,82,101,116,117,114,110,32,84,114,
-    117,101,32,105,102,32,116,104,101,32,102,114,111,122,101,110,
-    32,109,111,100,117,108,101,32,105,115,32,97,32,112,97,99,
-    107,97,103,101,46,78,41,2,114,64,0,0,0,90,17,105,
-    115,95,102,114,111,122,101,110,95,112,97,99,107,97,103,101,
-    114,186,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
-    6,0,0,0,114,128,0,0,0,112,3,0,0,114,199,0,
-    0,0,122,25,70,114,111,122,101,110,73,109,112,111,114,116,
-    101,114,46,105,115,95,112,97,99,107,97,103,101,114,190,0,
-    0,0,114,0,0,0,0,41,17,114,9,0,0,0,114,8,
-    0,0,0,114,1,0,0,0,114,10,0,0,0,114,151,0,
-    0,0,114,191,0,0,0,114,114,0,0,0,114,192,0,0,
-    0,114,183,0,0,0,114,184,0,0,0,114,162,0,0,0,
-    114,163,0,0,0,114,170,0,0,0,114,100,0,0,0,114,
-    187,0,0,0,114,189,0,0,0,114,128,0,0,0,114,5,
+    46,10,10,32,32,32,32,65,108,108,32,109,101,116,104,111,
+    100,115,32,97,114,101,32,101,105,116,104,101,114,32,99,108,
+    97,115,115,32,111,114,32,115,116,97,116,105,99,32,109,101,
+    116,104,111,100,115,32,116,111,32,97,118,111,105,100,32,116,
+    104,101,32,110,101,101,100,32,116,111,10,32,32,32,32,105,
+    110,115,116,97,110,116,105,97,116,101,32,116,104,101,32,99,
+    108,97,115,115,46,10,10,32,32,32,32,122,8,98,117,105,
+    108,116,45,105,110,99,1,0,0,0,0,0,0,0,0,0,
+    0,0,1,0,0,0,5,0,0,0,67,0,0,0,115,34,
+    0,0,0,116,0,160,1,100,1,116,2,161,2,1,0,100,
+    2,124,0,106,3,155,2,100,3,116,4,106,5,155,0,100,
+    4,157,5,83,0,41,5,250,115,82,101,116,117,114,110,32,
+    114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100,
+    117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,
+    101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
+    101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112,
+    111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111,
+    101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108,
+    102,46,10,10,32,32,32,32,32,32,32,32,122,81,66,117,
+    105,108,116,105,110,73,109,112,111,114,116,101,114,46,109,111,
+    100,117,108,101,95,114,101,112,114,40,41,32,105,115,32,100,
+    101,112,114,101,99,97,116,101,100,32,97,110,100,32,115,108,
+    97,116,101,100,32,102,111,114,32,114,101,109,111,118,97,108,
+    32,105,110,32,80,121,116,104,111,110,32,51,46,49,50,122,
+    8,60,109,111,100,117,108,101,32,122,2,32,40,122,2,41,
+    62,41,6,114,101,0,0,0,114,102,0,0,0,114,103,0,
+    0,0,114,9,0,0,0,114,175,0,0,0,114,151,0,0,
+    0,169,1,114,110,0,0,0,114,5,0,0,0,114,5,0,
+    0,0,114,6,0,0,0,114,114,0,0,0,223,2,0,0,
+    115,8,0,0,0,6,7,2,1,4,255,22,2,122,27,66,
+    117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,109,
+    111,100,117,108,101,95,114,101,112,114,78,99,4,0,0,0,
+    0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,
+    67,0,0,0,115,42,0,0,0,124,2,100,0,117,1,114,
+    6,100,0,83,0,116,0,160,1,124,1,161,1,114,19,116,
+    2,124,1,124,0,124,0,106,3,100,1,141,3,83,0,100,
+    0,83,0,169,2,78,114,150,0,0,0,41,4,114,64,0,
+    0,0,90,10,105,115,95,98,117,105,108,116,105,110,114,104,
+    0,0,0,114,151,0,0,0,169,4,218,3,99,108,115,114,
+    89,0,0,0,218,4,112,97,116,104,218,6,116,97,114,103,
+    101,116,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+    0,218,9,102,105,110,100,95,115,112,101,99,234,2,0,0,
+    115,10,0,0,0,8,2,4,1,10,1,16,1,4,2,122,
+    25,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,
+    46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,0,
+    0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,
+    0,0,0,115,42,0,0,0,116,0,160,1,100,1,116,2,
+    161,2,1,0,124,0,160,3,124,1,124,2,161,2,125,3,
+    124,3,100,2,117,1,114,19,124,3,106,4,83,0,100,2,
+    83,0,41,3,122,175,70,105,110,100,32,116,104,101,32,98,
+    117,105,108,116,45,105,110,32,109,111,100,117,108,101,46,10,
+    10,32,32,32,32,32,32,32,32,73,102,32,39,112,97,116,
+    104,39,32,105,115,32,101,118,101,114,32,115,112,101,99,105,
+    102,105,101,100,32,116,104,101,110,32,116,104,101,32,115,101,
+    97,114,99,104,32,105,115,32,99,111,110,115,105,100,101,114,
+    101,100,32,97,32,102,97,105,108,117,114,101,46,10,10,32,
+    32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,
+    111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
+    46,32,32,85,115,101,32,102,105,110,100,95,115,112,101,99,
+    40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,32,
+    32,32,32,32,32,122,106,66,117,105,108,116,105,110,73,109,
+    112,111,114,116,101,114,46,102,105,110,100,95,109,111,100,117,
+    108,101,40,41,32,105,115,32,100,101,112,114,101,99,97,116,
+    101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,111,
+    114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,116,
+    104,111,110,32,51,46,49,50,59,32,117,115,101,32,102,105,
+    110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,
+    100,78,41,5,114,101,0,0,0,114,102,0,0,0,114,103,
+    0,0,0,114,183,0,0,0,114,122,0,0,0,41,4,114,
+    180,0,0,0,114,89,0,0,0,114,181,0,0,0,114,109,
     0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
-    0,0,114,193,0,0,0,36,3,0,0,115,48,0,0,0,
-    8,0,4,2,4,7,2,2,10,1,2,10,12,1,2,6,
-    12,1,2,11,10,1,2,3,10,1,2,8,10,1,2,9,
-    2,1,12,1,2,4,2,1,12,1,2,4,2,1,16,1,
-    114,193,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
-    0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,32,
-    0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,
-    2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,100,
-    6,83,0,41,7,218,18,95,73,109,112,111,114,116,76,111,
-    99,107,67,111,110,116,101,120,116,122,36,67,111,110,116,101,
-    120,116,32,109,97,110,97,103,101,114,32,102,111,114,32,116,
-    104,101,32,105,109,112,111,114,116,32,108,111,99,107,46,99,
+    0,0,218,11,102,105,110,100,95,109,111,100,117,108,101,243,
+    2,0,0,115,10,0,0,0,6,9,2,2,4,254,12,3,
+    18,1,122,27,66,117,105,108,116,105,110,73,109,112,111,114,
+    116,101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,
     1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
-    2,0,0,0,67,0,0,0,243,12,0,0,0,116,0,160,
-    1,161,0,1,0,100,1,83,0,41,2,122,24,65,99,113,
-    117,105,114,101,32,116,104,101,32,105,109,112,111,114,116,32,
-    108,111,99,107,46,78,41,2,114,64,0,0,0,114,65,0,
-    0,0,114,52,0,0,0,114,5,0,0,0,114,5,0,0,
-    0,114,6,0,0,0,114,61,0,0,0,125,3,0,0,243,
-    2,0,0,0,12,2,122,28,95,73,109,112,111,114,116,76,
-    111,99,107,67,111,110,116,101,120,116,46,95,95,101,110,116,
-    101,114,95,95,99,4,0,0,0,0,0,0,0,0,0,0,
-    0,4,0,0,0,2,0,0,0,67,0,0,0,114,201,0,
-    0,0,41,2,122,60,82,101,108,101,97,115,101,32,116,104,
-    101,32,105,109,112,111,114,116,32,108,111,99,107,32,114,101,
-    103,97,114,100,108,101,115,115,32,111,102,32,97,110,121,32,
-    114,97,105,115,101,100,32,101,120,99,101,112,116,105,111,110,
-    115,46,78,41,2,114,64,0,0,0,114,67,0,0,0,41,
-    4,114,33,0,0,0,218,8,101,120,99,95,116,121,112,101,
-    218,9,101,120,99,95,118,97,108,117,101,218,13,101,120,99,
-    95,116,114,97,99,101,98,97,99,107,114,5,0,0,0,114,
-    5,0,0,0,114,6,0,0,0,114,63,0,0,0,129,3,
-    0,0,114,202,0,0,0,122,27,95,73,109,112,111,114,116,
-    76,111,99,107,67,111,110,116,101,120,116,46,95,95,101,120,
-    105,116,95,95,78,41,6,114,9,0,0,0,114,8,0,0,
-    0,114,1,0,0,0,114,10,0,0,0,114,61,0,0,0,
-    114,63,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
-    5,0,0,0,114,6,0,0,0,114,200,0,0,0,121,3,
-    0,0,115,8,0,0,0,8,0,4,2,8,2,12,4,114,
-    200,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,
-    0,5,0,0,0,5,0,0,0,67,0,0,0,115,64,0,
-    0,0,124,1,160,0,100,1,124,2,100,2,24,0,161,2,
-    125,3,116,1,124,3,131,1,124,2,107,0,114,18,116,2,
-    100,3,131,1,130,1,124,3,100,4,25,0,125,4,124,0,
-    114,30,100,5,160,3,124,4,124,0,161,2,83,0,124,4,
-    83,0,41,7,122,50,82,101,115,111,108,118,101,32,97,32,
-    114,101,108,97,116,105,118,101,32,109,111,100,117,108,101,32,
-    110,97,109,101,32,116,111,32,97,110,32,97,98,115,111,108,
-    117,116,101,32,111,110,101,46,114,141,0,0,0,114,42,0,
-    0,0,122,50,97,116,116,101,109,112,116,101,100,32,114,101,
-    108,97,116,105,118,101,32,105,109,112,111,114,116,32,98,101,
-    121,111,110,100,32,116,111,112,45,108,101,118,101,108,32,112,
-    97,99,107,97,103,101,114,25,0,0,0,250,5,123,125,46,
-    123,125,78,41,4,218,6,114,115,112,108,105,116,218,3,108,
-    101,110,114,87,0,0,0,114,50,0,0,0,41,5,114,20,
-    0,0,0,218,7,112,97,99,107,97,103,101,218,5,108,101,
-    118,101,108,90,4,98,105,116,115,90,4,98,97,115,101,114,
-    5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,13,
-    95,114,101,115,111,108,118,101,95,110,97,109,101,134,3,0,
-    0,115,10,0,0,0,16,2,12,1,8,1,8,1,20,1,
-    114,211,0,0,0,99,3,0,0,0,0,0,0,0,0,0,
-    0,0,5,0,0,0,4,0,0,0,67,0,0,0,115,60,
-    0,0,0,116,0,124,0,131,1,155,0,100,1,157,2,125,
-    3,116,1,160,2,124,3,116,3,161,2,1,0,124,0,160,
-    4,124,1,124,2,161,2,125,4,124,4,100,0,117,0,114,
-    25,100,0,83,0,116,5,124,1,124,4,131,2,83,0,41,
-    2,78,122,53,46,102,105,110,100,95,115,112,101,99,40,41,
-    32,110,111,116,32,102,111,117,110,100,59,32,102,97,108,108,
-    105,110,103,32,98,97,99,107,32,116,111,32,102,105,110,100,
-    95,109,111,100,117,108,101,40,41,41,6,114,7,0,0,0,
-    114,101,0,0,0,114,102,0,0,0,114,169,0,0,0,114,
-    184,0,0,0,114,104,0,0,0,41,5,218,6,102,105,110,
-    100,101,114,114,20,0,0,0,114,181,0,0,0,114,108,0,
-    0,0,114,122,0,0,0,114,5,0,0,0,114,5,0,0,
-    0,114,6,0,0,0,218,17,95,102,105,110,100,95,115,112,
-    101,99,95,108,101,103,97,99,121,143,3,0,0,115,12,0,
-    0,0,14,1,12,2,12,1,8,1,4,1,10,1,114,213,
-    0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
-    10,0,0,0,10,0,0,0,67,0,0,0,115,24,1,0,
-    0,116,0,106,1,125,3,124,3,100,1,117,0,114,11,116,
-    2,100,2,131,1,130,1,124,3,115,19,116,3,160,4,100,
-    3,116,5,161,2,1,0,124,0,116,0,106,6,118,0,125,
-    4,124,3,68,0,93,111,125,5,116,7,131,0,143,47,1,
-    0,122,5,124,5,106,8,125,6,87,0,110,27,4,0,116,
-    9,121,64,1,0,1,0,1,0,116,10,124,5,124,0,124,
-    1,131,3,125,7,124,7,100,1,117,0,114,62,89,0,87,
-    0,100,1,4,0,4,0,131,3,1,0,113,26,89,0,110,
-    7,119,0,124,6,124,0,124,1,124,2,131,3,125,7,87,
-    0,100,1,4,0,4,0,131,3,1,0,110,8,49,0,115,
-    81,119,1,1,0,1,0,1,0,89,0,1,0,124,7,100,
-    1,117,1,114,137,124,4,115,133,124,0,116,0,106,6,118,
-    0,114,133,116,0,106,6,124,0,25,0,125,8,122,5,124,
-    8,106,11,125,9,87,0,110,13,4,0,116,9,121,120,1,
-    0,1,0,1,0,124,7,6,0,89,0,2,0,1,0,83,
-    0,119,0,124,9,100,1,117,0,114,129,124,7,2,0,1,
-    0,83,0,124,9,2,0,1,0,83,0,124,7,2,0,1,
-    0,83,0,113,26,100,1,83,0,41,4,122,21,70,105,110,
-    100,32,97,32,109,111,100,117,108,101,39,115,32,115,112,101,
-    99,46,78,122,53,115,121,115,46,109,101,116,97,95,112,97,
-    116,104,32,105,115,32,78,111,110,101,44,32,80,121,116,104,
-    111,110,32,105,115,32,108,105,107,101,108,121,32,115,104,117,
-    116,116,105,110,103,32,100,111,119,110,122,22,115,121,115,46,
-    109,101,116,97,95,112,97,116,104,32,105,115,32,101,109,112,
-    116,121,41,12,114,18,0,0,0,218,9,109,101,116,97,95,
-    112,97,116,104,114,87,0,0,0,114,101,0,0,0,114,102,
-    0,0,0,114,169,0,0,0,114,105,0,0,0,114,200,0,
-    0,0,114,183,0,0,0,114,2,0,0,0,114,213,0,0,
-    0,114,113,0,0,0,41,10,114,20,0,0,0,114,181,0,
-    0,0,114,182,0,0,0,114,214,0,0,0,90,9,105,115,
-    95,114,101,108,111,97,100,114,212,0,0,0,114,183,0,0,
-    0,114,109,0,0,0,114,110,0,0,0,114,113,0,0,0,
-    114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,
-    10,95,102,105,110,100,95,115,112,101,99,153,3,0,0,115,
-    68,0,0,0,6,2,8,1,8,2,4,3,12,1,10,5,
-    8,1,8,1,2,1,10,1,12,1,12,1,8,1,2,1,
-    14,250,4,5,2,254,12,5,2,128,28,248,8,9,14,2,
-    10,1,2,1,10,1,12,1,12,4,2,252,8,6,8,1,
-    8,2,8,2,2,239,4,19,114,215,0,0,0,99,3,0,
-    0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,0,
-    0,0,67,0,0,0,115,110,0,0,0,116,0,124,0,116,
-    1,131,2,115,14,116,2,100,1,160,3,116,4,124,0,131,
-    1,161,1,131,1,130,1,124,2,100,2,107,0,114,22,116,
-    5,100,3,131,1,130,1,124,2,100,2,107,4,114,41,116,
-    0,124,1,116,1,131,2,115,35,116,2,100,4,131,1,130,
-    1,124,1,115,41,116,6,100,5,131,1,130,1,124,0,115,
-    51,124,2,100,2,107,2,114,53,116,5,100,6,131,1,130,
-    1,100,7,83,0,100,7,83,0,41,8,122,28,86,101,114,
-    105,102,121,32,97,114,103,117,109,101,110,116,115,32,97,114,
-    101,32,34,115,97,110,101,34,46,122,31,109,111,100,117,108,
-    101,32,110,97,109,101,32,109,117,115,116,32,98,101,32,115,
-    116,114,44,32,110,111,116,32,123,125,114,25,0,0,0,122,
-    18,108,101,118,101,108,32,109,117,115,116,32,98,101,32,62,
-    61,32,48,122,31,95,95,112,97,99,107,97,103,101,95,95,
-    32,110,111,116,32,115,101,116,32,116,111,32,97,32,115,116,
-    114,105,110,103,122,54,97,116,116,101,109,112,116,101,100,32,
-    114,101,108,97,116,105,118,101,32,105,109,112,111,114,116,32,
-    119,105,116,104,32,110,111,32,107,110,111,119,110,32,112,97,
-    114,101,110,116,32,112,97,99,107,97,103,101,122,17,69,109,
-    112,116,121,32,109,111,100,117,108,101,32,110,97,109,101,78,
-    41,7,218,10,105,115,105,110,115,116,97,110,99,101,218,3,
-    115,116,114,218,9,84,121,112,101,69,114,114,111,114,114,50,
-    0,0,0,114,3,0,0,0,218,10,86,97,108,117,101,69,
-    114,114,111,114,114,87,0,0,0,169,3,114,20,0,0,0,
-    114,209,0,0,0,114,210,0,0,0,114,5,0,0,0,114,
-    5,0,0,0,114,6,0,0,0,218,13,95,115,97,110,105,
-    116,121,95,99,104,101,99,107,200,3,0,0,115,24,0,0,
-    0,10,2,18,1,8,1,8,1,8,1,10,1,8,1,4,
-    1,8,1,12,2,8,1,8,255,114,221,0,0,0,122,16,
-    78,111,32,109,111,100,117,108,101,32,110,97,109,101,100,32,
-    122,4,123,33,114,125,99,2,0,0,0,0,0,0,0,0,
-    0,0,0,9,0,0,0,8,0,0,0,67,0,0,0,115,
-    16,1,0,0,100,0,125,2,124,0,160,0,100,1,161,1,
-    100,2,25,0,125,3,124,3,114,64,124,3,116,1,106,2,
-    118,1,114,21,116,3,124,1,124,3,131,2,1,0,124,0,
-    116,1,106,2,118,0,114,31,116,1,106,2,124,0,25,0,
-    83,0,116,1,106,2,124,3,25,0,125,4,122,5,124,4,
-    106,4,125,2,87,0,110,22,4,0,116,5,121,63,1,0,
-    1,0,1,0,116,6,100,3,23,0,160,7,124,0,124,3,
-    161,2,125,5,116,8,124,5,124,0,100,4,141,2,100,0,
-    130,2,119,0,116,9,124,0,124,2,131,2,125,6,124,6,
-    100,0,117,0,114,82,116,8,116,6,160,7,124,0,161,1,
-    124,0,100,4,141,2,130,1,116,10,124,6,131,1,125,7,
-    124,3,114,134,116,1,106,2,124,3,25,0,125,4,124,0,
-    160,0,100,1,161,1,100,5,25,0,125,8,122,9,116,11,
-    124,4,124,8,124,7,131,3,1,0,87,0,124,7,83,0,
-    4,0,116,5,121,133,1,0,1,0,1,0,100,6,124,3,
-    155,2,100,7,124,8,155,2,157,4,125,5,116,12,160,13,
-    124,5,116,14,161,2,1,0,89,0,124,7,83,0,119,0,
-    124,7,83,0,41,8,78,114,141,0,0,0,114,25,0,0,
-    0,122,23,59,32,123,33,114,125,32,105,115,32,110,111,116,
-    32,97,32,112,97,99,107,97,103,101,114,19,0,0,0,233,
-    2,0,0,0,122,27,67,97,110,110,111,116,32,115,101,116,
-    32,97,110,32,97,116,116,114,105,98,117,116,101,32,111,110,
-    32,122,18,32,102,111,114,32,99,104,105,108,100,32,109,111,
-    100,117,108,101,32,41,15,114,142,0,0,0,114,18,0,0,
-    0,114,105,0,0,0,114,74,0,0,0,114,154,0,0,0,
-    114,2,0,0,0,218,8,95,69,82,82,95,77,83,71,114,
-    50,0,0,0,218,19,77,111,100,117,108,101,78,111,116,70,
-    111,117,110,100,69,114,114,111,114,114,215,0,0,0,114,173,
-    0,0,0,114,12,0,0,0,114,101,0,0,0,114,102,0,
-    0,0,114,169,0,0,0,41,9,114,20,0,0,0,218,7,
-    105,109,112,111,114,116,95,114,181,0,0,0,114,143,0,0,
-    0,90,13,112,97,114,101,110,116,95,109,111,100,117,108,101,
-    114,108,0,0,0,114,109,0,0,0,114,110,0,0,0,90,
-    5,99,104,105,108,100,114,5,0,0,0,114,5,0,0,0,
-    114,6,0,0,0,218,23,95,102,105,110,100,95,97,110,100,
-    95,108,111,97,100,95,117,110,108,111,99,107,101,100,219,3,
-    0,0,115,60,0,0,0,4,1,14,1,4,1,10,1,10,
-    1,10,2,10,1,10,1,2,1,10,1,12,1,16,1,14,
-    1,2,254,10,3,8,1,18,1,8,2,4,1,10,2,14,
-    1,2,1,14,1,4,4,12,253,16,1,14,1,4,1,2,
-    253,4,3,114,226,0,0,0,99,2,0,0,0,0,0,0,
-    0,0,0,0,0,4,0,0,0,8,0,0,0,67,0,0,
-    0,115,128,0,0,0,116,0,124,0,131,1,143,31,1,0,
-    116,1,106,2,160,3,124,0,116,4,161,2,125,2,124,2,
-    116,4,117,0,114,28,116,5,124,0,124,1,131,2,87,0,
-    2,0,100,1,4,0,4,0,131,3,1,0,83,0,87,0,
-    100,1,4,0,4,0,131,3,1,0,110,8,49,0,115,38,
-    119,1,1,0,1,0,1,0,89,0,1,0,124,2,100,1,
-    117,0,114,58,100,2,160,6,124,0,161,1,125,3,116,7,
-    124,3,124,0,100,3,141,2,130,1,116,8,124,0,131,1,
-    1,0,124,2,83,0,41,4,122,25,70,105,110,100,32,97,
-    110,100,32,108,111,97,100,32,116,104,101,32,109,111,100,117,
-    108,101,46,78,122,40,105,109,112,111,114,116,32,111,102,32,
-    123,125,32,104,97,108,116,101,100,59,32,78,111,110,101,32,
-    105,110,32,115,121,115,46,109,111,100,117,108,101,115,114,19,
-    0,0,0,41,9,114,57,0,0,0,114,18,0,0,0,114,
-    105,0,0,0,114,38,0,0,0,218,14,95,78,69,69,68,
-    83,95,76,79,65,68,73,78,71,114,226,0,0,0,114,50,
-    0,0,0,114,224,0,0,0,114,72,0,0,0,41,4,114,
-    20,0,0,0,114,225,0,0,0,114,110,0,0,0,114,82,
+    4,0,0,0,67,0,0,0,115,46,0,0,0,124,0,106,
+    0,116,1,106,2,118,1,114,17,116,3,100,1,160,4,124,
+    0,106,0,161,1,124,0,106,0,100,2,141,2,130,1,116,
+    5,116,6,106,7,124,0,131,2,83,0,41,3,122,24,67,
+    114,101,97,116,101,32,97,32,98,117,105,108,116,45,105,110,
+    32,109,111,100,117,108,101,114,85,0,0,0,114,19,0,0,
+    0,41,8,114,20,0,0,0,114,18,0,0,0,114,86,0,
+    0,0,114,87,0,0,0,114,50,0,0,0,114,74,0,0,
+    0,114,64,0,0,0,90,14,99,114,101,97,116,101,95,98,
+    117,105,108,116,105,110,114,174,0,0,0,114,5,0,0,0,
+    114,5,0,0,0,114,6,0,0,0,114,162,0,0,0,2,
+    3,0,0,115,10,0,0,0,12,3,12,1,4,1,6,255,
+    12,2,122,29,66,117,105,108,116,105,110,73,109,112,111,114,
+    116,101,114,46,99,114,101,97,116,101,95,109,111,100,117,108,
+    101,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
+    0,0,3,0,0,0,67,0,0,0,115,16,0,0,0,116,
+    0,116,1,106,2,124,0,131,2,1,0,100,1,83,0,41,
+    2,122,22,69,120,101,99,32,97,32,98,117,105,108,116,45,
+    105,110,32,109,111,100,117,108,101,78,41,3,114,74,0,0,
+    0,114,64,0,0,0,90,12,101,120,101,99,95,98,117,105,
+    108,116,105,110,114,177,0,0,0,114,5,0,0,0,114,5,
+    0,0,0,114,6,0,0,0,114,163,0,0,0,10,3,0,
+    0,115,2,0,0,0,16,3,122,27,66,117,105,108,116,105,
+    110,73,109,112,111,114,116,101,114,46,101,120,101,99,95,109,
+    111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
+    0,0,2,0,0,0,1,0,0,0,67,0,0,0,243,4,
+    0,0,0,100,1,83,0,41,2,122,57,82,101,116,117,114,
+    110,32,78,111,110,101,32,97,115,32,98,117,105,108,116,45,
+    105,110,32,109,111,100,117,108,101,115,32,100,111,32,110,111,
+    116,32,104,97,118,101,32,99,111,100,101,32,111,98,106,101,
+    99,116,115,46,78,114,5,0,0,0,169,2,114,180,0,0,
+    0,114,89,0,0,0,114,5,0,0,0,114,5,0,0,0,
+    114,6,0,0,0,218,8,103,101,116,95,99,111,100,101,15,
+    3,0,0,243,2,0,0,0,4,4,122,24,66,117,105,108,
+    116,105,110,73,109,112,111,114,116,101,114,46,103,101,116,95,
+    99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,
+    0,2,0,0,0,1,0,0,0,67,0,0,0,114,185,0,
+    0,0,41,2,122,56,82,101,116,117,114,110,32,78,111,110,
+    101,32,97,115,32,98,117,105,108,116,45,105,110,32,109,111,
+    100,117,108,101,115,32,100,111,32,110,111,116,32,104,97,118,
+    101,32,115,111,117,114,99,101,32,99,111,100,101,46,78,114,
+    5,0,0,0,114,186,0,0,0,114,5,0,0,0,114,5,
+    0,0,0,114,6,0,0,0,218,10,103,101,116,95,115,111,
+    117,114,99,101,21,3,0,0,114,188,0,0,0,122,26,66,
+    117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,103,
+    101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,0,
+    0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
+    0,0,114,185,0,0,0,41,2,122,52,82,101,116,117,114,
+    110,32,70,97,108,115,101,32,97,115,32,98,117,105,108,116,
+    45,105,110,32,109,111,100,117,108,101,115,32,97,114,101,32,
+    110,101,118,101,114,32,112,97,99,107,97,103,101,115,46,70,
+    114,5,0,0,0,114,186,0,0,0,114,5,0,0,0,114,
+    5,0,0,0,114,6,0,0,0,114,128,0,0,0,27,3,
+    0,0,114,188,0,0,0,122,26,66,117,105,108,116,105,110,
+    73,109,112,111,114,116,101,114,46,105,115,95,112,97,99,107,
+    97,103,101,169,2,78,78,114,0,0,0,0,41,18,114,9,
+    0,0,0,114,8,0,0,0,114,1,0,0,0,114,10,0,
+    0,0,114,151,0,0,0,218,12,115,116,97,116,105,99,109,
+    101,116,104,111,100,114,114,0,0,0,218,11,99,108,97,115,
+    115,109,101,116,104,111,100,114,183,0,0,0,114,184,0,0,
+    0,114,162,0,0,0,114,163,0,0,0,114,95,0,0,0,
+    114,187,0,0,0,114,189,0,0,0,114,128,0,0,0,114,
+    111,0,0,0,114,170,0,0,0,114,5,0,0,0,114,5,
+    0,0,0,114,5,0,0,0,114,6,0,0,0,114,175,0,
+    0,0,212,2,0,0,115,46,0,0,0,8,0,4,2,4,
+    7,2,2,10,1,2,10,12,1,2,8,12,1,2,14,10,
+    1,2,7,10,1,2,4,2,1,12,1,2,4,2,1,12,
+    1,2,4,2,1,12,1,12,4,114,175,0,0,0,99,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
+    0,0,0,64,0,0,0,115,144,0,0,0,101,0,90,1,
+    100,0,90,2,100,1,90,3,100,2,90,4,101,5,100,3,
+    100,4,132,0,131,1,90,6,101,7,100,22,100,6,100,7,
+    132,1,131,1,90,8,101,7,100,23,100,8,100,9,132,1,
+    131,1,90,9,101,5,100,10,100,11,132,0,131,1,90,10,
+    101,5,100,12,100,13,132,0,131,1,90,11,101,7,100,14,
+    100,15,132,0,131,1,90,12,101,7,101,13,100,16,100,17,
+    132,0,131,1,131,1,90,14,101,7,101,13,100,18,100,19,
+    132,0,131,1,131,1,90,15,101,7,101,13,100,20,100,21,
+    132,0,131,1,131,1,90,16,100,5,83,0,41,24,218,14,
+    70,114,111,122,101,110,73,109,112,111,114,116,101,114,122,142,
+    77,101,116,97,32,112,97,116,104,32,105,109,112,111,114,116,
+    32,102,111,114,32,102,114,111,122,101,110,32,109,111,100,117,
+    108,101,115,46,10,10,32,32,32,32,65,108,108,32,109,101,
+    116,104,111,100,115,32,97,114,101,32,101,105,116,104,101,114,
+    32,99,108,97,115,115,32,111,114,32,115,116,97,116,105,99,
+    32,109,101,116,104,111,100,115,32,116,111,32,97,118,111,105,
+    100,32,116,104,101,32,110,101,101,100,32,116,111,10,32,32,
+    32,32,105,110,115,116,97,110,116,105,97,116,101,32,116,104,
+    101,32,99,108,97,115,115,46,10,10,32,32,32,32,90,6,
+    102,114,111,122,101,110,99,1,0,0,0,0,0,0,0,0,
+    0,0,0,1,0,0,0,4,0,0,0,67,0,0,0,115,
+    28,0,0,0,116,0,160,1,100,1,116,2,161,2,1,0,
+    100,2,160,3,124,0,106,4,116,5,106,6,161,2,83,0,
+    41,3,114,176,0,0,0,122,80,70,114,111,122,101,110,73,
+    109,112,111,114,116,101,114,46,109,111,100,117,108,101,95,114,
+    101,112,114,40,41,32,105,115,32,100,101,112,114,101,99,97,
+    116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,
+    111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,
+    116,104,111,110,32,51,46,49,50,114,166,0,0,0,41,7,
+    114,101,0,0,0,114,102,0,0,0,114,103,0,0,0,114,
+    50,0,0,0,114,9,0,0,0,114,193,0,0,0,114,151,
+    0,0,0,41,1,218,1,109,114,5,0,0,0,114,5,0,
+    0,0,114,6,0,0,0,114,114,0,0,0,47,3,0,0,
+    115,8,0,0,0,6,7,2,1,4,255,16,2,122,26,70,
+    114,111,122,101,110,73,109,112,111,114,116,101,114,46,109,111,
+    100,117,108,101,95,114,101,112,114,78,99,4,0,0,0,0,
+    0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,
+    0,0,0,115,30,0,0,0,116,0,160,1,124,1,161,1,
+    114,13,116,2,124,1,124,0,124,0,106,3,100,1,141,3,
+    83,0,100,0,83,0,114,178,0,0,0,41,4,114,64,0,
+    0,0,114,98,0,0,0,114,104,0,0,0,114,151,0,0,
+    0,114,179,0,0,0,114,5,0,0,0,114,5,0,0,0,
+    114,6,0,0,0,114,183,0,0,0,58,3,0,0,115,6,
+    0,0,0,10,2,16,1,4,2,122,24,70,114,111,122,101,
+    110,73,109,112,111,114,116,101,114,46,102,105,110,100,95,115,
+    112,101,99,99,3,0,0,0,0,0,0,0,0,0,0,0,
+    3,0,0,0,4,0,0,0,67,0,0,0,115,30,0,0,
+    0,116,0,160,1,100,1,116,2,161,2,1,0,116,3,160,
+    4,124,1,161,1,114,13,124,0,83,0,100,2,83,0,41,
+    3,122,93,70,105,110,100,32,97,32,102,114,111,122,101,110,
+    32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,
+    32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
+    32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
+    101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,
+    115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
+    122,105,70,114,111,122,101,110,73,109,112,111,114,116,101,114,
+    46,102,105,110,100,95,109,111,100,117,108,101,40,41,32,105,
+    115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100,
+    32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111,
+    118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46,
+    49,50,59,32,117,115,101,32,102,105,110,100,95,115,112,101,
+    99,40,41,32,105,110,115,116,101,97,100,78,41,5,114,101,
+    0,0,0,114,102,0,0,0,114,103,0,0,0,114,64,0,
+    0,0,114,98,0,0,0,41,3,114,180,0,0,0,114,89,
+    0,0,0,114,181,0,0,0,114,5,0,0,0,114,5,0,
+    0,0,114,6,0,0,0,114,184,0,0,0,65,3,0,0,
+    115,8,0,0,0,6,7,2,2,4,254,18,3,122,26,70,
+    114,111,122,101,110,73,109,112,111,114,116,101,114,46,102,105,
+    110,100,95,109,111,100,117,108,101,99,1,0,0,0,0,0,
+    0,0,0,0,0,0,1,0,0,0,1,0,0,0,67,0,
+    0,0,114,185,0,0,0,41,2,122,42,85,115,101,32,100,
+    101,102,97,117,108,116,32,115,101,109,97,110,116,105,99,115,
+    32,102,111,114,32,109,111,100,117,108,101,32,99,114,101,97,
+    116,105,111,110,46,78,114,5,0,0,0,114,174,0,0,0,
+    114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,
+    162,0,0,0,77,3,0,0,115,2,0,0,0,4,0,122,
+    28,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,
+    99,114,101,97,116,101,95,109,111,100,117,108,101,99,1,0,
+    0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,
+    0,0,67,0,0,0,115,64,0,0,0,124,0,106,0,106,
+    1,125,1,116,2,160,3,124,1,161,1,115,18,116,4,100,
+    1,160,5,124,1,161,1,124,1,100,2,141,2,130,1,116,
+    6,116,2,106,7,124,1,131,2,125,2,116,8,124,2,124,
+    0,106,9,131,2,1,0,100,0,83,0,114,97,0,0,0,
+    41,10,114,113,0,0,0,114,20,0,0,0,114,64,0,0,
+    0,114,98,0,0,0,114,87,0,0,0,114,50,0,0,0,
+    114,74,0,0,0,218,17,103,101,116,95,102,114,111,122,101,
+    110,95,111,98,106,101,99,116,218,4,101,120,101,99,114,14,
+    0,0,0,41,3,114,110,0,0,0,114,20,0,0,0,218,
+    4,99,111,100,101,114,5,0,0,0,114,5,0,0,0,114,
+    6,0,0,0,114,163,0,0,0,81,3,0,0,115,14,0,
+    0,0,8,2,10,1,10,1,2,1,6,255,12,2,16,1,
+    122,26,70,114,111,122,101,110,73,109,112,111,114,116,101,114,
+    46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0,
+    0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,
+    0,67,0,0,0,115,10,0,0,0,116,0,124,0,124,1,
+    131,2,83,0,41,1,122,95,76,111,97,100,32,97,32,102,
+    114,111,122,101,110,32,109,111,100,117,108,101,46,10,10,32,
+    32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,
+    111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
+    46,32,32,85,115,101,32,101,120,101,99,95,109,111,100,117,
+    108,101,40,41,32,105,110,115,116,101,97,100,46,10,10,32,
+    32,32,32,32,32,32,32,41,1,114,111,0,0,0,114,186,
     0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
-    0,0,218,14,95,102,105,110,100,95,97,110,100,95,108,111,
-    97,100,254,3,0,0,115,28,0,0,0,10,2,14,1,8,
-    1,8,1,16,253,2,2,28,254,8,5,2,1,6,1,2,
-    255,12,2,8,2,4,1,114,228,0,0,0,114,25,0,0,
+    0,0,114,170,0,0,0,90,3,0,0,115,2,0,0,0,
+    10,8,122,26,70,114,111,122,101,110,73,109,112,111,114,116,
+    101,114,46,108,111,97,100,95,109,111,100,117,108,101,99,2,
+    0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,
+    0,0,0,67,0,0,0,243,10,0,0,0,116,0,160,1,
+    124,1,161,1,83,0,41,1,122,45,82,101,116,117,114,110,
+    32,116,104,101,32,99,111,100,101,32,111,98,106,101,99,116,
+    32,102,111,114,32,116,104,101,32,102,114,111,122,101,110,32,
+    109,111,100,117,108,101,46,41,2,114,64,0,0,0,114,195,
+    0,0,0,114,186,0,0,0,114,5,0,0,0,114,5,0,
+    0,0,114,6,0,0,0,114,187,0,0,0,100,3,0,0,
+    243,2,0,0,0,10,4,122,23,70,114,111,122,101,110,73,
+    109,112,111,114,116,101,114,46,103,101,116,95,99,111,100,101,
+    99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+    0,1,0,0,0,67,0,0,0,114,185,0,0,0,41,2,
+    122,54,82,101,116,117,114,110,32,78,111,110,101,32,97,115,
+    32,102,114,111,122,101,110,32,109,111,100,117,108,101,115,32,
+    100,111,32,110,111,116,32,104,97,118,101,32,115,111,117,114,
+    99,101,32,99,111,100,101,46,78,114,5,0,0,0,114,186,
+    0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
+    0,0,114,189,0,0,0,106,3,0,0,114,188,0,0,0,
+    122,25,70,114,111,122,101,110,73,109,112,111,114,116,101,114,
+    46,103,101,116,95,115,111,117,114,99,101,99,2,0,0,0,
+    0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
+    67,0,0,0,114,198,0,0,0,41,1,122,46,82,101,116,
+    117,114,110,32,84,114,117,101,32,105,102,32,116,104,101,32,
+    102,114,111,122,101,110,32,109,111,100,117,108,101,32,105,115,
+    32,97,32,112,97,99,107,97,103,101,46,41,2,114,64,0,
+    0,0,90,17,105,115,95,102,114,111,122,101,110,95,112,97,
+    99,107,97,103,101,114,186,0,0,0,114,5,0,0,0,114,
+    5,0,0,0,114,6,0,0,0,114,128,0,0,0,112,3,
+    0,0,114,199,0,0,0,122,25,70,114,111,122,101,110,73,
+    109,112,111,114,116,101,114,46,105,115,95,112,97,99,107,97,
+    103,101,114,190,0,0,0,114,0,0,0,0,41,17,114,9,
+    0,0,0,114,8,0,0,0,114,1,0,0,0,114,10,0,
+    0,0,114,151,0,0,0,114,191,0,0,0,114,114,0,0,
+    0,114,192,0,0,0,114,183,0,0,0,114,184,0,0,0,
+    114,162,0,0,0,114,163,0,0,0,114,170,0,0,0,114,
+    100,0,0,0,114,187,0,0,0,114,189,0,0,0,114,128,
+    0,0,0,114,5,0,0,0,114,5,0,0,0,114,5,0,
+    0,0,114,6,0,0,0,114,193,0,0,0,36,3,0,0,
+    115,48,0,0,0,8,0,4,2,4,7,2,2,10,1,2,
+    10,12,1,2,6,12,1,2,11,10,1,2,3,10,1,2,
+    8,10,1,2,9,2,1,12,1,2,4,2,1,12,1,2,
+    4,2,1,16,1,114,193,0,0,0,99,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
+    0,0,0,115,32,0,0,0,101,0,90,1,100,0,90,2,
+    100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,
+    132,0,90,5,100,6,83,0,41,7,218,18,95,73,109,112,
+    111,114,116,76,111,99,107,67,111,110,116,101,120,116,122,36,
+    67,111,110,116,101,120,116,32,109,97,110,97,103,101,114,32,
+    102,111,114,32,116,104,101,32,105,109,112,111,114,116,32,108,
+    111,99,107,46,99,1,0,0,0,0,0,0,0,0,0,0,
+    0,1,0,0,0,2,0,0,0,67,0,0,0,243,12,0,
+    0,0,116,0,160,1,161,0,1,0,100,1,83,0,41,2,
+    122,24,65,99,113,117,105,114,101,32,116,104,101,32,105,109,
+    112,111,114,116,32,108,111,99,107,46,78,41,2,114,64,0,
+    0,0,114,65,0,0,0,114,52,0,0,0,114,5,0,0,
+    0,114,5,0,0,0,114,6,0,0,0,114,61,0,0,0,
+    125,3,0,0,243,2,0,0,0,12,2,122,28,95,73,109,
+    112,111,114,116,76,111,99,107,67,111,110,116,101,120,116,46,
+    95,95,101,110,116,101,114,95,95,99,4,0,0,0,0,0,
+    0,0,0,0,0,0,4,0,0,0,2,0,0,0,67,0,
+    0,0,114,201,0,0,0,41,2,122,60,82,101,108,101,97,
+    115,101,32,116,104,101,32,105,109,112,111,114,116,32,108,111,
+    99,107,32,114,101,103,97,114,100,108,101,115,115,32,111,102,
+    32,97,110,121,32,114,97,105,115,101,100,32,101,120,99,101,
+    112,116,105,111,110,115,46,78,41,2,114,64,0,0,0,114,
+    67,0,0,0,41,4,114,33,0,0,0,218,8,101,120,99,
+    95,116,121,112,101,218,9,101,120,99,95,118,97,108,117,101,
+    218,13,101,120,99,95,116,114,97,99,101,98,97,99,107,114,
+    5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,63,
+    0,0,0,129,3,0,0,114,202,0,0,0,122,27,95,73,
+    109,112,111,114,116,76,111,99,107,67,111,110,116,101,120,116,
+    46,95,95,101,120,105,116,95,95,78,41,6,114,9,0,0,
+    0,114,8,0,0,0,114,1,0,0,0,114,10,0,0,0,
+    114,61,0,0,0,114,63,0,0,0,114,5,0,0,0,114,
+    5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,200,
+    0,0,0,121,3,0,0,115,8,0,0,0,8,0,4,2,
+    8,2,12,4,114,200,0,0,0,99,3,0,0,0,0,0,
+    0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,0,
+    0,0,115,64,0,0,0,124,1,160,0,100,1,124,2,100,
+    2,24,0,161,2,125,3,116,1,124,3,131,1,124,2,107,
+    0,114,18,116,2,100,3,131,1,130,1,124,3,100,4,25,
+    0,125,4,124,0,114,30,100,5,160,3,124,4,124,0,161,
+    2,83,0,124,4,83,0,41,6,122,50,82,101,115,111,108,
+    118,101,32,97,32,114,101,108,97,116,105,118,101,32,109,111,
+    100,117,108,101,32,110,97,109,101,32,116,111,32,97,110,32,
+    97,98,115,111,108,117,116,101,32,111,110,101,46,114,141,0,
+    0,0,114,42,0,0,0,122,50,97,116,116,101,109,112,116,
+    101,100,32,114,101,108,97,116,105,118,101,32,105,109,112,111,
+    114,116,32,98,101,121,111,110,100,32,116,111,112,45,108,101,
+    118,101,108,32,112,97,99,107,97,103,101,114,25,0,0,0,
+    250,5,123,125,46,123,125,41,4,218,6,114,115,112,108,105,
+    116,218,3,108,101,110,114,87,0,0,0,114,50,0,0,0,
+    41,5,114,20,0,0,0,218,7,112,97,99,107,97,103,101,
+    218,5,108,101,118,101,108,90,4,98,105,116,115,90,4,98,
+    97,115,101,114,5,0,0,0,114,5,0,0,0,114,6,0,
+    0,0,218,13,95,114,101,115,111,108,118,101,95,110,97,109,
+    101,134,3,0,0,115,10,0,0,0,16,2,12,1,8,1,
+    8,1,20,1,114,211,0,0,0,99,3,0,0,0,0,0,
+    0,0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,
+    0,0,115,60,0,0,0,116,0,124,0,131,1,155,0,100,
+    1,157,2,125,3,116,1,160,2,124,3,116,3,161,2,1,
+    0,124,0,160,4,124,1,124,2,161,2,125,4,124,4,100,
+    0,117,0,114,25,100,0,83,0,116,5,124,1,124,4,131,
+    2,83,0,41,2,78,122,53,46,102,105,110,100,95,115,112,
+    101,99,40,41,32,110,111,116,32,102,111,117,110,100,59,32,
+    102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,
+    102,105,110,100,95,109,111,100,117,108,101,40,41,41,6,114,
+    7,0,0,0,114,101,0,0,0,114,102,0,0,0,114,169,
+    0,0,0,114,184,0,0,0,114,104,0,0,0,41,5,218,
+    6,102,105,110,100,101,114,114,20,0,0,0,114,181,0,0,
+    0,114,108,0,0,0,114,122,0,0,0,114,5,0,0,0,
+    114,5,0,0,0,114,6,0,0,0,218,17,95,102,105,110,
+    100,95,115,112,101,99,95,108,101,103,97,99,121,143,3,0,
+    0,115,12,0,0,0,14,1,12,2,12,1,8,1,4,1,
+    10,1,114,213,0,0,0,99,3,0,0,0,0,0,0,0,
+    0,0,0,0,10,0,0,0,10,0,0,0,67,0,0,0,
+    115,24,1,0,0,116,0,106,1,125,3,124,3,100,1,117,
+    0,114,11,116,2,100,2,131,1,130,1,124,3,115,19,116,
+    3,160,4,100,3,116,5,161,2,1,0,124,0,116,0,106,
+    6,118,0,125,4,124,3,68,0,93,111,125,5,116,7,131,
+    0,143,47,1,0,122,5,124,5,106,8,125,6,87,0,110,
+    27,4,0,116,9,121,64,1,0,1,0,1,0,116,10,124,
+    5,124,0,124,1,131,3,125,7,124,7,100,1,117,0,114,
+    62,89,0,87,0,100,1,4,0,4,0,131,3,1,0,113,
+    26,89,0,110,7,119,0,124,6,124,0,124,1,124,2,131,
+    3,125,7,87,0,100,1,4,0,4,0,131,3,1,0,110,
+    8,49,0,115,81,119,1,1,0,1,0,1,0,89,0,1,
+    0,124,7,100,1,117,1,114,137,124,4,115,133,124,0,116,
+    0,106,6,118,0,114,133,116,0,106,6,124,0,25,0,125,
+    8,122,5,124,8,106,11,125,9,87,0,110,13,4,0,116,
+    9,121,120,1,0,1,0,1,0,124,7,6,0,89,0,2,
+    0,1,0,83,0,119,0,124,9,100,1,117,0,114,129,124,
+    7,2,0,1,0,83,0,124,9,2,0,1,0,83,0,124,
+    7,2,0,1,0,83,0,113,26,100,1,83,0,41,4,122,
+    21,70,105,110,100,32,97,32,109,111,100,117,108,101,39,115,
+    32,115,112,101,99,46,78,122,53,115,121,115,46,109,101,116,
+    97,95,112,97,116,104,32,105,115,32,78,111,110,101,44,32,
+    80,121,116,104,111,110,32,105,115,32,108,105,107,101,108,121,
+    32,115,104,117,116,116,105,110,103,32,100,111,119,110,122,22,
+    115,121,115,46,109,101,116,97,95,112,97,116,104,32,105,115,
+    32,101,109,112,116,121,41,12,114,18,0,0,0,218,9,109,
+    101,116,97,95,112,97,116,104,114,87,0,0,0,114,101,0,
+    0,0,114,102,0,0,0,114,169,0,0,0,114,105,0,0,
+    0,114,200,0,0,0,114,183,0,0,0,114,2,0,0,0,
+    114,213,0,0,0,114,113,0,0,0,41,10,114,20,0,0,
+    0,114,181,0,0,0,114,182,0,0,0,114,214,0,0,0,
+    90,9,105,115,95,114,101,108,111,97,100,114,212,0,0,0,
+    114,183,0,0,0,114,109,0,0,0,114,110,0,0,0,114,
+    113,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,
+    0,0,0,218,10,95,102,105,110,100,95,115,112,101,99,153,
+    3,0,0,115,68,0,0,0,6,2,8,1,8,2,4,3,
+    12,1,10,5,8,1,8,1,2,1,10,1,12,1,12,1,
+    8,1,2,1,14,250,4,5,2,254,12,5,2,128,28,248,
+    8,9,14,2,10,1,2,1,10,1,12,1,12,4,2,252,
+    8,6,8,1,8,2,8,2,2,239,4,19,114,215,0,0,
     0,99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,
-    0,0,4,0,0,0,67,0,0,0,115,42,0,0,0,116,
-    0,124,0,124,1,124,2,131,3,1,0,124,2,100,1,107,
-    4,114,16,116,1,124,0,124,1,124,2,131,3,125,0,116,
-    2,124,0,116,3,131,2,83,0,41,3,97,50,1,0,0,
-    73,109,112,111,114,116,32,97,110,100,32,114,101,116,117,114,
-    110,32,116,104,101,32,109,111,100,117,108,101,32,98,97,115,
-    101,100,32,111,110,32,105,116,115,32,110,97,109,101,44,32,
-    116,104,101,32,112,97,99,107,97,103,101,32,116,104,101,32,
-    99,97,108,108,32,105,115,10,32,32,32,32,98,101,105,110,
-    103,32,109,97,100,101,32,102,114,111,109,44,32,97,110,100,
-    32,116,104,101,32,108,101,118,101,108,32,97,100,106,117,115,
-    116,109,101,110,116,46,10,10,32,32,32,32,84,104,105,115,
-    32,102,117,110,99,116,105,111,110,32,114,101,112,114,101,115,
-    101,110,116,115,32,116,104,101,32,103,114,101,97,116,101,115,
-    116,32,99,111,109,109,111,110,32,100,101,110,111,109,105,110,
-    97,116,111,114,32,111,102,32,102,117,110,99,116,105,111,110,
-    97,108,105,116,121,10,32,32,32,32,98,101,116,119,101,101,
-    110,32,105,109,112,111,114,116,95,109,111,100,117,108,101,32,
-    97,110,100,32,95,95,105,109,112,111,114,116,95,95,46,32,
-    84,104,105,115,32,105,110,99,108,117,100,101,115,32,115,101,
-    116,116,105,110,103,32,95,95,112,97,99,107,97,103,101,95,
-    95,32,105,102,10,32,32,32,32,116,104,101,32,108,111,97,
-    100,101,114,32,100,105,100,32,110,111,116,46,10,10,32,32,
-    32,32,114,25,0,0,0,78,41,4,114,221,0,0,0,114,
-    211,0,0,0,114,228,0,0,0,218,11,95,103,99,100,95,
-    105,109,112,111,114,116,114,220,0,0,0,114,5,0,0,0,
-    114,5,0,0,0,114,6,0,0,0,114,229,0,0,0,14,
-    4,0,0,115,8,0,0,0,12,9,8,1,12,1,10,1,
-    114,229,0,0,0,169,1,218,9,114,101,99,117,114,115,105,
-    118,101,99,3,0,0,0,0,0,0,0,1,0,0,0,8,
-    0,0,0,11,0,0,0,67,0,0,0,115,218,0,0,0,
-    124,1,68,0,93,104,125,4,116,0,124,4,116,1,131,2,
-    115,32,124,3,114,17,124,0,106,2,100,1,23,0,125,5,
-    110,2,100,2,125,5,116,3,100,3,124,5,155,0,100,4,
-    116,4,124,4,131,1,106,2,155,0,157,4,131,1,130,1,
-    124,4,100,5,107,2,114,53,124,3,115,52,116,5,124,0,
-    100,6,131,2,114,52,116,6,124,0,124,0,106,7,124,2,
-    100,7,100,8,141,4,1,0,113,2,116,5,124,0,124,4,
-    131,2,115,106,100,9,160,8,124,0,106,2,124,4,161,2,
-    125,6,122,7,116,9,124,2,124,6,131,2,1,0,87,0,
-    113,2,4,0,116,10,121,105,1,0,125,7,1,0,122,21,
-    124,7,106,11,124,6,107,2,114,100,116,12,106,13,160,14,
-    124,6,116,15,161,2,100,10,117,1,114,100,87,0,89,0,
-    100,10,125,7,126,7,113,2,130,0,100,10,125,7,126,7,
-    119,1,119,0,113,2,124,0,83,0,41,11,122,238,70,105,
-    103,117,114,101,32,111,117,116,32,119,104,97,116,32,95,95,
-    105,109,112,111,114,116,95,95,32,115,104,111,117,108,100,32,
-    114,101,116,117,114,110,46,10,10,32,32,32,32,84,104,101,
-    32,105,109,112,111,114,116,95,32,112,97,114,97,109,101,116,
-    101,114,32,105,115,32,97,32,99,97,108,108,97,98,108,101,
-    32,119,104,105,99,104,32,116,97,107,101,115,32,116,104,101,
-    32,110,97,109,101,32,111,102,32,109,111,100,117,108,101,32,
-    116,111,10,32,32,32,32,105,109,112,111,114,116,46,32,73,
-    116,32,105,115,32,114,101,113,117,105,114,101,100,32,116,111,
-    32,100,101,99,111,117,112,108,101,32,116,104,101,32,102,117,
-    110,99,116,105,111,110,32,102,114,111,109,32,97,115,115,117,
-    109,105,110,103,32,105,109,112,111,114,116,108,105,98,39,115,
-    10,32,32,32,32,105,109,112,111,114,116,32,105,109,112,108,
-    101,109,101,110,116,97,116,105,111,110,32,105,115,32,100,101,
-    115,105,114,101,100,46,10,10,32,32,32,32,122,8,46,95,
-    95,97,108,108,95,95,122,13,96,96,102,114,111,109,32,108,
-    105,115,116,39,39,122,8,73,116,101,109,32,105,110,32,122,
-    18,32,109,117,115,116,32,98,101,32,115,116,114,44,32,110,
-    111,116,32,250,1,42,218,7,95,95,97,108,108,95,95,84,
-    114,230,0,0,0,114,206,0,0,0,78,41,16,114,216,0,
-    0,0,114,217,0,0,0,114,9,0,0,0,114,218,0,0,
-    0,114,3,0,0,0,114,11,0,0,0,218,16,95,104,97,
-    110,100,108,101,95,102,114,111,109,108,105,115,116,114,233,0,
-    0,0,114,50,0,0,0,114,74,0,0,0,114,224,0,0,
-    0,114,20,0,0,0,114,18,0,0,0,114,105,0,0,0,
-    114,38,0,0,0,114,227,0,0,0,41,8,114,110,0,0,
-    0,218,8,102,114,111,109,108,105,115,116,114,225,0,0,0,
-    114,231,0,0,0,218,1,120,90,5,119,104,101,114,101,90,
-    9,102,114,111,109,95,110,97,109,101,90,3,101,120,99,114,
-    5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,234,
-    0,0,0,29,4,0,0,115,56,0,0,0,8,10,10,1,
-    4,1,12,1,4,2,10,1,8,1,8,255,8,2,14,1,
-    10,1,2,1,6,255,2,128,10,2,14,1,2,1,14,1,
-    14,1,10,4,16,1,2,255,12,2,2,1,8,128,2,249,
-    2,252,4,12,114,234,0,0,0,99,1,0,0,0,0,0,
-    0,0,0,0,0,0,3,0,0,0,6,0,0,0,67,0,
-    0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,125,
-    1,124,0,160,0,100,2,161,1,125,2,124,1,100,3,117,
-    1,114,41,124,2,100,3,117,1,114,39,124,1,124,2,106,
-    1,107,3,114,39,116,2,106,3,100,4,124,1,155,2,100,
-    5,124,2,106,1,155,2,100,6,157,5,116,4,100,7,100,
-    8,141,3,1,0,124,1,83,0,124,2,100,3,117,1,114,
-    48,124,2,106,1,83,0,116,2,106,3,100,9,116,4,100,
-    7,100,8,141,3,1,0,124,0,100,10,25,0,125,1,100,
-    11,124,0,118,1,114,71,124,1,160,5,100,12,161,1,100,
-    13,25,0,125,1,124,1,83,0,41,14,122,167,67,97,108,
-    99,117,108,97,116,101,32,119,104,97,116,32,95,95,112,97,
-    99,107,97,103,101,95,95,32,115,104,111,117,108,100,32,98,
-    101,46,10,10,32,32,32,32,95,95,112,97,99,107,97,103,
-    101,95,95,32,105,115,32,110,111,116,32,103,117,97,114,97,
-    110,116,101,101,100,32,116,111,32,98,101,32,100,101,102,105,
-    110,101,100,32,111,114,32,99,111,117,108,100,32,98,101,32,
-    115,101,116,32,116,111,32,78,111,110,101,10,32,32,32,32,
-    116,111,32,114,101,112,114,101,115,101,110,116,32,116,104,97,
-    116,32,105,116,115,32,112,114,111,112,101,114,32,118,97,108,
-    117,101,32,105,115,32,117,110,107,110,111,119,110,46,10,10,
-    32,32,32,32,114,158,0,0,0,114,113,0,0,0,78,122,
-    32,95,95,112,97,99,107,97,103,101,95,95,32,33,61,32,
-    95,95,115,112,101,99,95,95,46,112,97,114,101,110,116,32,
-    40,122,4,32,33,61,32,250,1,41,233,3,0,0,0,41,
-    1,90,10,115,116,97,99,107,108,101,118,101,108,122,89,99,
-    97,110,39,116,32,114,101,115,111,108,118,101,32,112,97,99,
-    107,97,103,101,32,102,114,111,109,32,95,95,115,112,101,99,
-    95,95,32,111,114,32,95,95,112,97,99,107,97,103,101,95,
-    95,44,32,102,97,108,108,105,110,103,32,98,97,99,107,32,
-    111,110,32,95,95,110,97,109,101,95,95,32,97,110,100,32,
-    95,95,112,97,116,104,95,95,114,9,0,0,0,114,154,0,
-    0,0,114,141,0,0,0,114,25,0,0,0,41,6,114,38,
-    0,0,0,114,143,0,0,0,114,101,0,0,0,114,102,0,
-    0,0,114,169,0,0,0,114,142,0,0,0,41,3,218,7,
-    103,108,111,98,97,108,115,114,209,0,0,0,114,109,0,0,
-    0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
-    218,17,95,99,97,108,99,95,95,95,112,97,99,107,97,103,
-    101,95,95,66,4,0,0,115,42,0,0,0,10,7,10,1,
-    8,1,18,1,6,1,2,1,4,255,4,1,6,255,4,2,
-    6,254,4,3,8,1,6,1,6,2,4,2,6,254,8,3,
-    8,1,14,1,4,1,114,240,0,0,0,114,5,0,0,0,
-    99,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,
-    0,5,0,0,0,67,0,0,0,115,174,0,0,0,124,4,
-    100,1,107,2,114,9,116,0,124,0,131,1,125,5,110,18,
-    124,1,100,2,117,1,114,15,124,1,110,1,105,0,125,6,
-    116,1,124,6,131,1,125,7,116,0,124,0,124,7,124,4,
-    131,3,125,5,124,3,115,74,124,4,100,1,107,2,114,42,
-    116,0,124,0,160,2,100,3,161,1,100,1,25,0,131,1,
-    83,0,124,0,115,46,124,5,83,0,116,3,124,0,131,1,
-    116,3,124,0,160,2,100,3,161,1,100,1,25,0,131,1,
-    24,0,125,8,116,4,106,5,124,5,106,6,100,2,116,3,
-    124,5,106,6,131,1,124,8,24,0,133,2,25,0,25,0,
-    83,0,116,7,124,5,100,4,131,2,114,85,116,8,124,5,
-    124,3,116,0,131,3,83,0,124,5,83,0,41,5,97,215,
-    1,0,0,73,109,112,111,114,116,32,97,32,109,111,100,117,
-    108,101,46,10,10,32,32,32,32,84,104,101,32,39,103,108,
-    111,98,97,108,115,39,32,97,114,103,117,109,101,110,116,32,
-    105,115,32,117,115,101,100,32,116,111,32,105,110,102,101,114,
-    32,119,104,101,114,101,32,116,104,101,32,105,109,112,111,114,
-    116,32,105,115,32,111,99,99,117,114,114,105,110,103,32,102,
-    114,111,109,10,32,32,32,32,116,111,32,104,97,110,100,108,
-    101,32,114,101,108,97,116,105,118,101,32,105,109,112,111,114,
-    116,115,46,32,84,104,101,32,39,108,111,99,97,108,115,39,
-    32,97,114,103,117,109,101,110,116,32,105,115,32,105,103,110,
-    111,114,101,100,46,32,84,104,101,10,32,32,32,32,39,102,
-    114,111,109,108,105,115,116,39,32,97,114,103,117,109,101,110,
-    116,32,115,112,101,99,105,102,105,101,115,32,119,104,97,116,
-    32,115,104,111,117,108,100,32,101,120,105,115,116,32,97,115,
-    32,97,116,116,114,105,98,117,116,101,115,32,111,110,32,116,
-    104,101,32,109,111,100,117,108,101,10,32,32,32,32,98,101,
-    105,110,103,32,105,109,112,111,114,116,101,100,32,40,101,46,
-    103,46,32,96,96,102,114,111,109,32,109,111,100,117,108,101,
-    32,105,109,112,111,114,116,32,60,102,114,111,109,108,105,115,
-    116,62,96,96,41,46,32,32,84,104,101,32,39,108,101,118,
-    101,108,39,10,32,32,32,32,97,114,103,117,109,101,110,116,
-    32,114,101,112,114,101,115,101,110,116,115,32,116,104,101,32,
-    112,97,99,107,97,103,101,32,108,111,99,97,116,105,111,110,
-    32,116,111,32,105,109,112,111,114,116,32,102,114,111,109,32,
-    105,110,32,97,32,114,101,108,97,116,105,118,101,10,32,32,
-    32,32,105,109,112,111,114,116,32,40,101,46,103,46,32,96,
-    96,102,114,111,109,32,46,46,112,107,103,32,105,109,112,111,
-    114,116,32,109,111,100,96,96,32,119,111,117,108,100,32,104,
-    97,118,101,32,97,32,39,108,101,118,101,108,39,32,111,102,
-    32,50,41,46,10,10,32,32,32,32,114,25,0,0,0,78,
-    114,141,0,0,0,114,154,0,0,0,41,9,114,229,0,0,
-    0,114,240,0,0,0,218,9,112,97,114,116,105,116,105,111,
-    110,114,208,0,0,0,114,18,0,0,0,114,105,0,0,0,
-    114,9,0,0,0,114,11,0,0,0,114,234,0,0,0,41,
-    9,114,20,0,0,0,114,239,0,0,0,218,6,108,111,99,
-    97,108,115,114,235,0,0,0,114,210,0,0,0,114,110,0,
-    0,0,90,8,103,108,111,98,97,108,115,95,114,209,0,0,
-    0,90,7,99,117,116,95,111,102,102,114,5,0,0,0,114,
-    5,0,0,0,114,6,0,0,0,218,10,95,95,105,109,112,
-    111,114,116,95,95,93,4,0,0,115,30,0,0,0,8,11,
-    10,1,16,2,8,1,12,1,4,1,8,3,18,1,4,1,
-    4,1,26,4,30,3,10,1,12,1,4,2,114,243,0,0,
-    0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
-    0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,116,
-    0,160,1,124,0,161,1,125,1,124,1,100,0,117,0,114,
-    15,116,2,100,1,124,0,23,0,131,1,130,1,116,3,124,
-    1,131,1,83,0,41,2,78,122,25,110,111,32,98,117,105,
-    108,116,45,105,110,32,109,111,100,117,108,101,32,110,97,109,
-    101,100,32,41,4,114,175,0,0,0,114,183,0,0,0,114,
-    87,0,0,0,114,173,0,0,0,41,2,114,20,0,0,0,
-    114,109,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
-    6,0,0,0,218,18,95,98,117,105,108,116,105,110,95,102,
-    114,111,109,95,110,97,109,101,130,4,0,0,115,8,0,0,
-    0,10,1,8,1,12,1,8,1,114,244,0,0,0,99,2,
-    0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,5,
-    0,0,0,67,0,0,0,115,166,0,0,0,124,1,97,0,
-    124,0,97,1,116,2,116,1,131,1,125,2,116,1,106,3,
-    160,4,161,0,68,0,93,36,92,2,125,3,125,4,116,5,
-    124,4,124,2,131,2,114,49,124,3,116,1,106,6,118,0,
-    114,30,116,7,125,5,110,9,116,0,160,8,124,3,161,1,
-    114,38,116,9,125,5,110,1,113,13,116,10,124,4,124,5,
-    131,2,125,6,116,11,124,6,124,4,131,2,1,0,113,13,
-    116,1,106,3,116,12,25,0,125,7,100,1,68,0,93,23,
-    125,8,124,8,116,1,106,3,118,1,114,69,116,13,124,8,
-    131,1,125,9,110,5,116,1,106,3,124,8,25,0,125,9,
-    116,14,124,7,124,8,124,9,131,3,1,0,113,57,100,2,
-    83,0,41,3,122,250,83,101,116,117,112,32,105,109,112,111,
-    114,116,108,105,98,32,98,121,32,105,109,112,111,114,116,105,
-    110,103,32,110,101,101,100,101,100,32,98,117,105,108,116,45,
-    105,110,32,109,111,100,117,108,101,115,32,97,110,100,32,105,
-    110,106,101,99,116,105,110,103,32,116,104,101,109,10,32,32,
-    32,32,105,110,116,111,32,116,104,101,32,103,108,111,98,97,
-    108,32,110,97,109,101,115,112,97,99,101,46,10,10,32,32,
-    32,32,65,115,32,115,121,115,32,105,115,32,110,101,101,100,
-    101,100,32,102,111,114,32,115,121,115,46,109,111,100,117,108,
-    101,115,32,97,99,99,101,115,115,32,97,110,100,32,95,105,
-    109,112,32,105,115,32,110,101,101,100,101,100,32,116,111,32,
-    108,111,97,100,32,98,117,105,108,116,45,105,110,10,32,32,
-    32,32,109,111,100,117,108,101,115,44,32,116,104,111,115,101,
-    32,116,119,111,32,109,111,100,117,108,101,115,32,109,117,115,
-    116,32,98,101,32,101,120,112,108,105,99,105,116,108,121,32,
-    112,97,115,115,101,100,32,105,110,46,10,10,32,32,32,32,
-    41,3,114,26,0,0,0,114,101,0,0,0,114,71,0,0,
-    0,78,41,15,114,64,0,0,0,114,18,0,0,0,114,3,
-    0,0,0,114,105,0,0,0,218,5,105,116,101,109,115,114,
-    216,0,0,0,114,86,0,0,0,114,175,0,0,0,114,98,
-    0,0,0,114,193,0,0,0,114,155,0,0,0,114,161,0,
-    0,0,114,9,0,0,0,114,244,0,0,0,114,12,0,0,
-    0,41,10,218,10,115,121,115,95,109,111,100,117,108,101,218,
-    11,95,105,109,112,95,109,111,100,117,108,101,90,11,109,111,
-    100,117,108,101,95,116,121,112,101,114,20,0,0,0,114,110,
-    0,0,0,114,122,0,0,0,114,109,0,0,0,90,11,115,
-    101,108,102,95,109,111,100,117,108,101,90,12,98,117,105,108,
-    116,105,110,95,110,97,109,101,90,14,98,117,105,108,116,105,
-    110,95,109,111,100,117,108,101,114,5,0,0,0,114,5,0,
-    0,0,114,6,0,0,0,218,6,95,115,101,116,117,112,137,
-    4,0,0,115,40,0,0,0,4,9,4,1,8,3,18,1,
-    10,1,10,1,6,1,10,1,6,1,2,2,10,1,10,1,
-    2,128,10,3,8,1,10,1,10,1,10,2,14,1,4,251,
-    114,248,0,0,0,99,2,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,38,
-    0,0,0,116,0,124,0,124,1,131,2,1,0,116,1,106,
-    2,160,3,116,4,161,1,1,0,116,1,106,2,160,3,116,
-    5,161,1,1,0,100,1,83,0,41,2,122,48,73,110,115,
-    116,97,108,108,32,105,109,112,111,114,116,101,114,115,32,102,
-    111,114,32,98,117,105,108,116,105,110,32,97,110,100,32,102,
-    114,111,122,101,110,32,109,111,100,117,108,101,115,78,41,6,
-    114,248,0,0,0,114,18,0,0,0,114,214,0,0,0,114,
-    132,0,0,0,114,175,0,0,0,114,193,0,0,0,41,2,
-    114,246,0,0,0,114,247,0,0,0,114,5,0,0,0,114,
-    5,0,0,0,114,6,0,0,0,218,8,95,105,110,115,116,
-    97,108,108,172,4,0,0,115,6,0,0,0,10,2,12,2,
-    16,1,114,249,0,0,0,99,0,0,0,0,0,0,0,0,
-    0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,0,
-    115,32,0,0,0,100,1,100,2,108,0,125,0,124,0,97,
-    1,124,0,160,2,116,3,106,4,116,5,25,0,161,1,1,
-    0,100,2,83,0,41,3,122,57,73,110,115,116,97,108,108,
-    32,105,109,112,111,114,116,101,114,115,32,116,104,97,116,32,
-    114,101,113,117,105,114,101,32,101,120,116,101,114,110,97,108,
-    32,102,105,108,101,115,121,115,116,101,109,32,97,99,99,101,
-    115,115,114,25,0,0,0,78,41,6,218,26,95,102,114,111,
-    122,101,110,95,105,109,112,111,114,116,108,105,98,95,101,120,
-    116,101,114,110,97,108,114,139,0,0,0,114,249,0,0,0,
-    114,18,0,0,0,114,105,0,0,0,114,9,0,0,0,41,
-    1,114,250,0,0,0,114,5,0,0,0,114,5,0,0,0,
-    114,6,0,0,0,218,27,95,105,110,115,116,97,108,108,95,
-    101,120,116,101,114,110,97,108,95,105,109,112,111,114,116,101,
-    114,115,180,4,0,0,115,6,0,0,0,8,3,4,1,20,
-    1,114,251,0,0,0,114,190,0,0,0,114,0,0,0,0,
-    114,24,0,0,0,41,4,78,78,114,5,0,0,0,114,25,
-    0,0,0,41,54,114,10,0,0,0,114,7,0,0,0,114,
-    26,0,0,0,114,101,0,0,0,114,71,0,0,0,114,139,
-    0,0,0,114,17,0,0,0,114,21,0,0,0,114,66,0,
-    0,0,114,37,0,0,0,114,47,0,0,0,114,22,0,0,
-    0,114,23,0,0,0,114,55,0,0,0,114,57,0,0,0,
-    114,60,0,0,0,114,72,0,0,0,114,74,0,0,0,114,
-    83,0,0,0,114,95,0,0,0,114,100,0,0,0,114,111,
-    0,0,0,114,124,0,0,0,114,125,0,0,0,114,104,0,
-    0,0,114,155,0,0,0,114,161,0,0,0,114,165,0,0,
-    0,114,119,0,0,0,114,106,0,0,0,114,172,0,0,0,
-    114,173,0,0,0,114,107,0,0,0,114,175,0,0,0,114,
-    193,0,0,0,114,200,0,0,0,114,211,0,0,0,114,213,
-    0,0,0,114,215,0,0,0,114,221,0,0,0,90,15,95,
-    69,82,82,95,77,83,71,95,80,82,69,70,73,88,114,223,
-    0,0,0,114,226,0,0,0,218,6,111,98,106,101,99,116,
-    114,227,0,0,0,114,228,0,0,0,114,229,0,0,0,114,
-    234,0,0,0,114,240,0,0,0,114,243,0,0,0,114,244,
-    0,0,0,114,248,0,0,0,114,249,0,0,0,114,251,0,
-    0,0,114,5,0,0,0,114,5,0,0,0,114,5,0,0,
-    0,114,6,0,0,0,218,8,60,109,111,100,117,108,101,62,
-    1,0,0,0,115,104,0,0,0,4,0,8,22,4,9,4,
-    1,4,1,4,3,8,3,8,8,4,8,4,2,16,3,14,
-    4,14,77,14,21,8,16,8,37,8,17,14,11,8,8,8,
-    11,8,12,8,19,14,26,16,101,10,26,14,45,8,72,8,
-    17,8,17,8,30,8,36,8,45,14,15,14,80,14,85,8,
-    13,8,9,10,10,8,47,4,16,8,1,8,2,6,32,8,
-    3,10,16,14,15,8,37,10,27,8,37,8,7,8,35,12,
-    8,
+    0,0,5,0,0,0,67,0,0,0,115,110,0,0,0,116,
+    0,124,0,116,1,131,2,115,14,116,2,100,1,160,3,116,
+    4,124,0,131,1,161,1,131,1,130,1,124,2,100,2,107,
+    0,114,22,116,5,100,3,131,1,130,1,124,2,100,2,107,
+    4,114,41,116,0,124,1,116,1,131,2,115,35,116,2,100,
+    4,131,1,130,1,124,1,115,41,116,6,100,5,131,1,130,
+    1,124,0,115,51,124,2,100,2,107,2,114,53,116,5,100,
+    6,131,1,130,1,100,7,83,0,100,7,83,0,41,8,122,
+    28,86,101,114,105,102,121,32,97,114,103,117,109,101,110,116,
+    115,32,97,114,101,32,34,115,97,110,101,34,46,122,31,109,
+    111,100,117,108,101,32,110,97,109,101,32,109,117,115,116,32,
+    98,101,32,115,116,114,44,32,110,111,116,32,123,125,114,25,
+    0,0,0,122,18,108,101,118,101,108,32,109,117,115,116,32,
+    98,101,32,62,61,32,48,122,31,95,95,112,97,99,107,97,
+    103,101,95,95,32,110,111,116,32,115,101,116,32,116,111,32,
+    97,32,115,116,114,105,110,103,122,54,97,116,116,101,109,112,
+    116,101,100,32,114,101,108,97,116,105,118,101,32,105,109,112,
+    111,114,116,32,119,105,116,104,32,110,111,32,107,110,111,119,
+    110,32,112,97,114,101,110,116,32,112,97,99,107,97,103,101,
+    122,17,69,109,112,116,121,32,109,111,100,117,108,101,32,110,
+    97,109,101,78,41,7,218,10,105,115,105,110,115,116,97,110,
+    99,101,218,3,115,116,114,218,9,84,121,112,101,69,114,114,
+    111,114,114,50,0,0,0,114,3,0,0,0,218,10,86,97,
+    108,117,101,69,114,114,111,114,114,87,0,0,0,169,3,114,
+    20,0,0,0,114,209,0,0,0,114,210,0,0,0,114,5,
+    0,0,0,114,5,0,0,0,114,6,0,0,0,218,13,95,
+    115,97,110,105,116,121,95,99,104,101,99,107,200,3,0,0,
+    115,24,0,0,0,10,2,18,1,8,1,8,1,8,1,10,
+    1,8,1,4,1,8,1,12,2,8,1,8,255,114,221,0,
+    0,0,122,16,78,111,32,109,111,100,117,108,101,32,110,97,
+    109,101,100,32,122,4,123,33,114,125,99,2,0,0,0,0,
+    0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,67,
+    0,0,0,115,16,1,0,0,100,0,125,2,124,0,160,0,
+    100,1,161,1,100,2,25,0,125,3,124,3,114,64,124,3,
+    116,1,106,2,118,1,114,21,116,3,124,1,124,3,131,2,
+    1,0,124,0,116,1,106,2,118,0,114,31,116,1,106,2,
+    124,0,25,0,83,0,116,1,106,2,124,3,25,0,125,4,
+    122,5,124,4,106,4,125,2,87,0,110,22,4,0,116,5,
+    121,63,1,0,1,0,1,0,116,6,100,3,23,0,160,7,
+    124,0,124,3,161,2,125,5,116,8,124,5,124,0,100,4,
+    141,2,100,0,130,2,119,0,116,9,124,0,124,2,131,2,
+    125,6,124,6,100,0,117,0,114,82,116,8,116,6,160,7,
+    124,0,161,1,124,0,100,4,141,2,130,1,116,10,124,6,
+    131,1,125,7,124,3,114,134,116,1,106,2,124,3,25,0,
+    125,4,124,0,160,0,100,1,161,1,100,5,25,0,125,8,
+    122,9,116,11,124,4,124,8,124,7,131,3,1,0,87,0,
+    124,7,83,0,4,0,116,5,121,133,1,0,1,0,1,0,
+    100,6,124,3,155,2,100,7,124,8,155,2,157,4,125,5,
+    116,12,160,13,124,5,116,14,161,2,1,0,89,0,124,7,
+    83,0,119,0,124,7,83,0,41,8,78,114,141,0,0,0,
+    114,25,0,0,0,122,23,59,32,123,33,114,125,32,105,115,
+    32,110,111,116,32,97,32,112,97,99,107,97,103,101,114,19,
+    0,0,0,233,2,0,0,0,122,27,67,97,110,110,111,116,
+    32,115,101,116,32,97,110,32,97,116,116,114,105,98,117,116,
+    101,32,111,110,32,122,18,32,102,111,114,32,99,104,105,108,
+    100,32,109,111,100,117,108,101,32,41,15,114,142,0,0,0,
+    114,18,0,0,0,114,105,0,0,0,114,74,0,0,0,114,
+    154,0,0,0,114,2,0,0,0,218,8,95,69,82,82,95,
+    77,83,71,114,50,0,0,0,218,19,77,111,100,117,108,101,
+    78,111,116,70,111,117,110,100,69,114,114,111,114,114,215,0,
+    0,0,114,173,0,0,0,114,12,0,0,0,114,101,0,0,
+    0,114,102,0,0,0,114,169,0,0,0,41,9,114,20,0,
+    0,0,218,7,105,109,112,111,114,116,95,114,181,0,0,0,
+    114,143,0,0,0,90,13,112,97,114,101,110,116,95,109,111,
+    100,117,108,101,114,108,0,0,0,114,109,0,0,0,114,110,
+    0,0,0,90,5,99,104,105,108,100,114,5,0,0,0,114,
+    5,0,0,0,114,6,0,0,0,218,23,95,102,105,110,100,
+    95,97,110,100,95,108,111,97,100,95,117,110,108,111,99,107,
+    101,100,219,3,0,0,115,60,0,0,0,4,1,14,1,4,
+    1,10,1,10,1,10,2,10,1,10,1,2,1,10,1,12,
+    1,16,1,14,1,2,254,10,3,8,1,18,1,8,2,4,
+    1,10,2,14,1,2,1,14,1,4,4,12,253,16,1,14,
+    1,4,1,2,253,4,3,114,226,0,0,0,99,2,0,0,
+    0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,
+    0,67,0,0,0,115,128,0,0,0,116,0,124,0,131,1,
+    143,31,1,0,116,1,106,2,160,3,124,0,116,4,161,2,
+    125,2,124,2,116,4,117,0,114,28,116,5,124,0,124,1,
+    131,2,87,0,2,0,100,1,4,0,4,0,131,3,1,0,
+    83,0,87,0,100,1,4,0,4,0,131,3,1,0,110,8,
+    49,0,115,38,119,1,1,0,1,0,1,0,89,0,1,0,
+    124,2,100,1,117,0,114,58,100,2,160,6,124,0,161,1,
+    125,3,116,7,124,3,124,0,100,3,141,2,130,1,116,8,
+    124,0,131,1,1,0,124,2,83,0,41,4,122,25,70,105,
+    110,100,32,97,110,100,32,108,111,97,100,32,116,104,101,32,
+    109,111,100,117,108,101,46,78,122,40,105,109,112,111,114,116,
+    32,111,102,32,123,125,32,104,97,108,116,101,100,59,32,78,
+    111,110,101,32,105,110,32,115,121,115,46,109,111,100,117,108,
+    101,115,114,19,0,0,0,41,9,114,57,0,0,0,114,18,
+    0,0,0,114,105,0,0,0,114,38,0,0,0,218,14,95,
+    78,69,69,68,83,95,76,79,65,68,73,78,71,114,226,0,
+    0,0,114,50,0,0,0,114,224,0,0,0,114,72,0,0,
+    0,41,4,114,20,0,0,0,114,225,0,0,0,114,110,0,
+    0,0,114,82,0,0,0,114,5,0,0,0,114,5,0,0,
+    0,114,6,0,0,0,218,14,95,102,105,110,100,95,97,110,
+    100,95,108,111,97,100,254,3,0,0,115,28,0,0,0,10,
+    2,14,1,8,1,8,1,16,253,2,2,28,254,8,5,2,
+    1,6,1,2,255,12,2,8,2,4,1,114,228,0,0,0,
+    114,25,0,0,0,99,3,0,0,0,0,0,0,0,0,0,
+    0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,42,
+    0,0,0,116,0,124,0,124,1,124,2,131,3,1,0,124,
+    2,100,1,107,4,114,16,116,1,124,0,124,1,124,2,131,
+    3,125,0,116,2,124,0,116,3,131,2,83,0,41,2,97,
+    50,1,0,0,73,109,112,111,114,116,32,97,110,100,32,114,
+    101,116,117,114,110,32,116,104,101,32,109,111,100,117,108,101,
+    32,98,97,115,101,100,32,111,110,32,105,116,115,32,110,97,
+    109,101,44,32,116,104,101,32,112,97,99,107,97,103,101,32,
+    116,104,101,32,99,97,108,108,32,105,115,10,32,32,32,32,
+    98,101,105,110,103,32,109,97,100,101,32,102,114,111,109,44,
+    32,97,110,100,32,116,104,101,32,108,101,118,101,108,32,97,
+    100,106,117,115,116,109,101,110,116,46,10,10,32,32,32,32,
+    84,104,105,115,32,102,117,110,99,116,105,111,110,32,114,101,
+    112,114,101,115,101,110,116,115,32,116,104,101,32,103,114,101,
+    97,116,101,115,116,32,99,111,109,109,111,110,32,100,101,110,
+    111,109,105,110,97,116,111,114,32,111,102,32,102,117,110,99,
+    116,105,111,110,97,108,105,116,121,10,32,32,32,32,98,101,
+    116,119,101,101,110,32,105,109,112,111,114,116,95,109,111,100,
+    117,108,101,32,97,110,100,32,95,95,105,109,112,111,114,116,
+    95,95,46,32,84,104,105,115,32,105,110,99,108,117,100,101,
+    115,32,115,101,116,116,105,110,103,32,95,95,112,97,99,107,
+    97,103,101,95,95,32,105,102,10,32,32,32,32,116,104,101,
+    32,108,111,97,100,101,114,32,100,105,100,32,110,111,116,46,
+    10,10,32,32,32,32,114,25,0,0,0,41,4,114,221,0,
+    0,0,114,211,0,0,0,114,228,0,0,0,218,11,95,103,
+    99,100,95,105,109,112,111,114,116,114,220,0,0,0,114,5,
+    0,0,0,114,5,0,0,0,114,6,0,0,0,114,229,0,
+    0,0,14,4,0,0,115,8,0,0,0,12,9,8,1,12,
+    1,10,1,114,229,0,0,0,169,1,218,9,114,101,99,117,
+    114,115,105,118,101,99,3,0,0,0,0,0,0,0,1,0,
+    0,0,8,0,0,0,11,0,0,0,67,0,0,0,115,218,
+    0,0,0,124,1,68,0,93,104,125,4,116,0,124,4,116,
+    1,131,2,115,32,124,3,114,17,124,0,106,2,100,1,23,
+    0,125,5,110,2,100,2,125,5,116,3,100,3,124,5,155,
+    0,100,4,116,4,124,4,131,1,106,2,155,0,157,4,131,
+    1,130,1,124,4,100,5,107,2,114,53,124,3,115,52,116,
+    5,124,0,100,6,131,2,114,52,116,6,124,0,124,0,106,
+    7,124,2,100,7,100,8,141,4,1,0,113,2,116,5,124,
+    0,124,4,131,2,115,106,100,9,160,8,124,0,106,2,124,
+    4,161,2,125,6,122,7,116,9,124,2,124,6,131,2,1,
+    0,87,0,113,2,4,0,116,10,121,105,1,0,125,7,1,
+    0,122,21,124,7,106,11,124,6,107,2,114,100,116,12,106,
+    13,160,14,124,6,116,15,161,2,100,10,117,1,114,100,87,
+    0,89,0,100,10,125,7,126,7,113,2,130,0,100,10,125,
+    7,126,7,119,1,119,0,113,2,124,0,83,0,41,11,122,
+    238,70,105,103,117,114,101,32,111,117,116,32,119,104,97,116,
+    32,95,95,105,109,112,111,114,116,95,95,32,115,104,111,117,
+    108,100,32,114,101,116,117,114,110,46,10,10,32,32,32,32,
+    84,104,101,32,105,109,112,111,114,116,95,32,112,97,114,97,
+    109,101,116,101,114,32,105,115,32,97,32,99,97,108,108,97,
+    98,108,101,32,119,104,105,99,104,32,116,97,107,101,115,32,
+    116,104,101,32,110,97,109,101,32,111,102,32,109,111,100,117,
+    108,101,32,116,111,10,32,32,32,32,105,109,112,111,114,116,
+    46,32,73,116,32,105,115,32,114,101,113,117,105,114,101,100,
+    32,116,111,32,100,101,99,111,117,112,108,101,32,116,104,101,
+    32,102,117,110,99,116,105,111,110,32,102,114,111,109,32,97,
+    115,115,117,109,105,110,103,32,105,109,112,111,114,116,108,105,
+    98,39,115,10,32,32,32,32,105,109,112,111,114,116,32,105,
+    109,112,108,101,109,101,110,116,97,116,105,111,110,32,105,115,
+    32,100,101,115,105,114,101,100,46,10,10,32,32,32,32,122,
+    8,46,95,95,97,108,108,95,95,122,13,96,96,102,114,111,
+    109,32,108,105,115,116,39,39,122,8,73,116,101,109,32,105,
+    110,32,122,18,32,109,117,115,116,32,98,101,32,115,116,114,
+    44,32,110,111,116,32,250,1,42,218,7,95,95,97,108,108,
+    95,95,84,114,230,0,0,0,114,206,0,0,0,78,41,16,
+    114,216,0,0,0,114,217,0,0,0,114,9,0,0,0,114,
+    218,0,0,0,114,3,0,0,0,114,11,0,0,0,218,16,
+    95,104,97,110,100,108,101,95,102,114,111,109,108,105,115,116,
+    114,233,0,0,0,114,50,0,0,0,114,74,0,0,0,114,
+    224,0,0,0,114,20,0,0,0,114,18,0,0,0,114,105,
+    0,0,0,114,38,0,0,0,114,227,0,0,0,41,8,114,
+    110,0,0,0,218,8,102,114,111,109,108,105,115,116,114,225,
+    0,0,0,114,231,0,0,0,218,1,120,90,5,119,104,101,
+    114,101,90,9,102,114,111,109,95,110,97,109,101,90,3,101,
+    120,99,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+    0,114,234,0,0,0,29,4,0,0,115,56,0,0,0,8,
+    10,10,1,4,1,12,1,4,2,10,1,8,1,8,255,8,
+    2,14,1,10,1,2,1,6,255,2,128,10,2,14,1,2,
+    1,14,1,14,1,10,4,16,1,2,255,12,2,2,1,8,
+    128,2,249,2,252,4,12,114,234,0,0,0,99,1,0,0,
+    0,0,0,0,0,0,0,0,0,3,0,0,0,6,0,0,
+    0,67,0,0,0,115,146,0,0,0,124,0,160,0,100,1,
+    161,1,125,1,124,0,160,0,100,2,161,1,125,2,124,1,
+    100,3,117,1,114,41,124,2,100,3,117,1,114,39,124,1,
+    124,2,106,1,107,3,114,39,116,2,106,3,100,4,124,1,
+    155,2,100,5,124,2,106,1,155,2,100,6,157,5,116,4,
+    100,7,100,8,141,3,1,0,124,1,83,0,124,2,100,3,
+    117,1,114,48,124,2,106,1,83,0,116,2,106,3,100,9,
+    116,4,100,7,100,8,141,3,1,0,124,0,100,10,25,0,
+    125,1,100,11,124,0,118,1,114,71,124,1,160,5,100,12,
+    161,1,100,13,25,0,125,1,124,1,83,0,41,14,122,167,
+    67,97,108,99,117,108,97,116,101,32,119,104,97,116,32,95,
+    95,112,97,99,107,97,103,101,95,95,32,115,104,111,117,108,
+    100,32,98,101,46,10,10,32,32,32,32,95,95,112,97,99,
+    107,97,103,101,95,95,32,105,115,32,110,111,116,32,103,117,
+    97,114,97,110,116,101,101,100,32,116,111,32,98,101,32,100,
+    101,102,105,110,101,100,32,111,114,32,99,111,117,108,100,32,
+    98,101,32,115,101,116,32,116,111,32,78,111,110,101,10,32,
+    32,32,32,116,111,32,114,101,112,114,101,115,101,110,116,32,
+    116,104,97,116,32,105,116,115,32,112,114,111,112,101,114,32,
+    118,97,108,117,101,32,105,115,32,117,110,107,110,111,119,110,
+    46,10,10,32,32,32,32,114,158,0,0,0,114,113,0,0,
+    0,78,122,32,95,95,112,97,99,107,97,103,101,95,95,32,
+    33,61,32,95,95,115,112,101,99,95,95,46,112,97,114,101,
+    110,116,32,40,122,4,32,33,61,32,250,1,41,233,3,0,
+    0,0,41,1,90,10,115,116,97,99,107,108,101,118,101,108,
+    122,89,99,97,110,39,116,32,114,101,115,111,108,118,101,32,
+    112,97,99,107,97,103,101,32,102,114,111,109,32,95,95,115,
+    112,101,99,95,95,32,111,114,32,95,95,112,97,99,107,97,
+    103,101,95,95,44,32,102,97,108,108,105,110,103,32,98,97,
+    99,107,32,111,110,32,95,95,110,97,109,101,95,95,32,97,
+    110,100,32,95,95,112,97,116,104,95,95,114,9,0,0,0,
+    114,154,0,0,0,114,141,0,0,0,114,25,0,0,0,41,
+    6,114,38,0,0,0,114,143,0,0,0,114,101,0,0,0,
+    114,102,0,0,0,114,169,0,0,0,114,142,0,0,0,41,
+    3,218,7,103,108,111,98,97,108,115,114,209,0,0,0,114,
+    109,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,
+    0,0,0,218,17,95,99,97,108,99,95,95,95,112,97,99,
+    107,97,103,101,95,95,66,4,0,0,115,42,0,0,0,10,
+    7,10,1,8,1,18,1,6,1,2,1,4,255,4,1,6,
+    255,4,2,6,254,4,3,8,1,6,1,6,2,4,2,6,
+    254,8,3,8,1,14,1,4,1,114,240,0,0,0,114,5,
+    0,0,0,99,5,0,0,0,0,0,0,0,0,0,0,0,
+    9,0,0,0,5,0,0,0,67,0,0,0,115,174,0,0,
+    0,124,4,100,1,107,2,114,9,116,0,124,0,131,1,125,
+    5,110,18,124,1,100,2,117,1,114,15,124,1,110,1,105,
+    0,125,6,116,1,124,6,131,1,125,7,116,0,124,0,124,
+    7,124,4,131,3,125,5,124,3,115,74,124,4,100,1,107,
+    2,114,42,116,0,124,0,160,2,100,3,161,1,100,1,25,
+    0,131,1,83,0,124,0,115,46,124,5,83,0,116,3,124,
+    0,131,1,116,3,124,0,160,2,100,3,161,1,100,1,25,
+    0,131,1,24,0,125,8,116,4,106,5,124,5,106,6,100,
+    2,116,3,124,5,106,6,131,1,124,8,24,0,133,2,25,
+    0,25,0,83,0,116,7,124,5,100,4,131,2,114,85,116,
+    8,124,5,124,3,116,0,131,3,83,0,124,5,83,0,41,
+    5,97,215,1,0,0,73,109,112,111,114,116,32,97,32,109,
+    111,100,117,108,101,46,10,10,32,32,32,32,84,104,101,32,
+    39,103,108,111,98,97,108,115,39,32,97,114,103,117,109,101,
+    110,116,32,105,115,32,117,115,101,100,32,116,111,32,105,110,
+    102,101,114,32,119,104,101,114,101,32,116,104,101,32,105,109,
+    112,111,114,116,32,105,115,32,111,99,99,117,114,114,105,110,
+    103,32,102,114,111,109,10,32,32,32,32,116,111,32,104,97,
+    110,100,108,101,32,114,101,108,97,116,105,118,101,32,105,109,
+    112,111,114,116,115,46,32,84,104,101,32,39,108,111,99,97,
+    108,115,39,32,97,114,103,117,109,101,110,116,32,105,115,32,
+    105,103,110,111,114,101,100,46,32,84,104,101,10,32,32,32,
+    32,39,102,114,111,109,108,105,115,116,39,32,97,114,103,117,
+    109,101,110,116,32,115,112,101,99,105,102,105,101,115,32,119,
+    104,97,116,32,115,104,111,117,108,100,32,101,120,105,115,116,
+    32,97,115,32,97,116,116,114,105,98,117,116,101,115,32,111,
+    110,32,116,104,101,32,109,111,100,117,108,101,10,32,32,32,
+    32,98,101,105,110,103,32,105,109,112,111,114,116,101,100,32,
+    40,101,46,103,46,32,96,96,102,114,111,109,32,109,111,100,
+    117,108,101,32,105,109,112,111,114,116,32,60,102,114,111,109,
+    108,105,115,116,62,96,96,41,46,32,32,84,104,101,32,39,
+    108,101,118,101,108,39,10,32,32,32,32,97,114,103,117,109,
+    101,110,116,32,114,101,112,114,101,115,101,110,116,115,32,116,
+    104,101,32,112,97,99,107,97,103,101,32,108,111,99,97,116,
+    105,111,110,32,116,111,32,105,109,112,111,114,116,32,102,114,
+    111,109,32,105,110,32,97,32,114,101,108,97,116,105,118,101,
+    10,32,32,32,32,105,109,112,111,114,116,32,40,101,46,103,
+    46,32,96,96,102,114,111,109,32,46,46,112,107,103,32,105,
+    109,112,111,114,116,32,109,111,100,96,96,32,119,111,117,108,
+    100,32,104,97,118,101,32,97,32,39,108,101,118,101,108,39,
+    32,111,102,32,50,41,46,10,10,32,32,32,32,114,25,0,
+    0,0,78,114,141,0,0,0,114,154,0,0,0,41,9,114,
+    229,0,0,0,114,240,0,0,0,218,9,112,97,114,116,105,
+    116,105,111,110,114,208,0,0,0,114,18,0,0,0,114,105,
+    0,0,0,114,9,0,0,0,114,11,0,0,0,114,234,0,
+    0,0,41,9,114,20,0,0,0,114,239,0,0,0,218,6,
+    108,111,99,97,108,115,114,235,0,0,0,114,210,0,0,0,
+    114,110,0,0,0,90,8,103,108,111,98,97,108,115,95,114,
+    209,0,0,0,90,7,99,117,116,95,111,102,102,114,5,0,
+    0,0,114,5,0,0,0,114,6,0,0,0,218,10,95,95,
+    105,109,112,111,114,116,95,95,93,4,0,0,115,30,0,0,
+    0,8,11,10,1,16,2,8,1,12,1,4,1,8,3,18,
+    1,4,1,4,1,26,4,30,3,10,1,12,1,4,2,114,
+    243,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+    0,2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
+    0,0,116,0,160,1,124,0,161,1,125,1,124,1,100,0,
+    117,0,114,15,116,2,100,1,124,0,23,0,131,1,130,1,
+    116,3,124,1,131,1,83,0,41,2,78,122,25,110,111,32,
+    98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,32,
+    110,97,109,101,100,32,41,4,114,175,0,0,0,114,183,0,
+    0,0,114,87,0,0,0,114,173,0,0,0,41,2,114,20,
+    0,0,0,114,109,0,0,0,114,5,0,0,0,114,5,0,
+    0,0,114,6,0,0,0,218,18,95,98,117,105,108,116,105,
+    110,95,102,114,111,109,95,110,97,109,101,130,4,0,0,115,
+    8,0,0,0,10,1,8,1,12,1,8,1,114,244,0,0,
+    0,99,2,0,0,0,0,0,0,0,0,0,0,0,10,0,
+    0,0,5,0,0,0,67,0,0,0,115,166,0,0,0,124,
+    1,97,0,124,0,97,1,116,2,116,1,131,1,125,2,116,
+    1,106,3,160,4,161,0,68,0,93,36,92,2,125,3,125,
+    4,116,5,124,4,124,2,131,2,114,49,124,3,116,1,106,
+    6,118,0,114,30,116,7,125,5,110,9,116,0,160,8,124,
+    3,161,1,114,38,116,9,125,5,110,1,113,13,116,10,124,
+    4,124,5,131,2,125,6,116,11,124,6,124,4,131,2,1,
+    0,113,13,116,1,106,3,116,12,25,0,125,7,100,1,68,
+    0,93,23,125,8,124,8,116,1,106,3,118,1,114,69,116,
+    13,124,8,131,1,125,9,110,5,116,1,106,3,124,8,25,
+    0,125,9,116,14,124,7,124,8,124,9,131,3,1,0,113,
+    57,100,2,83,0,41,3,122,250,83,101,116,117,112,32,105,
+    109,112,111,114,116,108,105,98,32,98,121,32,105,109,112,111,
+    114,116,105,110,103,32,110,101,101,100,101,100,32,98,117,105,
+    108,116,45,105,110,32,109,111,100,117,108,101,115,32,97,110,
+    100,32,105,110,106,101,99,116,105,110,103,32,116,104,101,109,
+    10,32,32,32,32,105,110,116,111,32,116,104,101,32,103,108,
+    111,98,97,108,32,110,97,109,101,115,112,97,99,101,46,10,
+    10,32,32,32,32,65,115,32,115,121,115,32,105,115,32,110,
+    101,101,100,101,100,32,102,111,114,32,115,121,115,46,109,111,
+    100,117,108,101,115,32,97,99,99,101,115,115,32,97,110,100,
+    32,95,105,109,112,32,105,115,32,110,101,101,100,101,100,32,
+    116,111,32,108,111,97,100,32,98,117,105,108,116,45,105,110,
+    10,32,32,32,32,109,111,100,117,108,101,115,44,32,116,104,
+    111,115,101,32,116,119,111,32,109,111,100,117,108,101,115,32,
+    109,117,115,116,32,98,101,32,101,120,112,108,105,99,105,116,
+    108,121,32,112,97,115,115,101,100,32,105,110,46,10,10,32,
+    32,32,32,41,3,114,26,0,0,0,114,101,0,0,0,114,
+    71,0,0,0,78,41,15,114,64,0,0,0,114,18,0,0,
+    0,114,3,0,0,0,114,105,0,0,0,218,5,105,116,101,
+    109,115,114,216,0,0,0,114,86,0,0,0,114,175,0,0,
+    0,114,98,0,0,0,114,193,0,0,0,114,155,0,0,0,
+    114,161,0,0,0,114,9,0,0,0,114,244,0,0,0,114,
+    12,0,0,0,41,10,218,10,115,121,115,95,109,111,100,117,
+    108,101,218,11,95,105,109,112,95,109,111,100,117,108,101,90,
+    11,109,111,100,117,108,101,95,116,121,112,101,114,20,0,0,
+    0,114,110,0,0,0,114,122,0,0,0,114,109,0,0,0,
+    90,11,115,101,108,102,95,109,111,100,117,108,101,90,12,98,
+    117,105,108,116,105,110,95,110,97,109,101,90,14,98,117,105,
+    108,116,105,110,95,109,111,100,117,108,101,114,5,0,0,0,
+    114,5,0,0,0,114,6,0,0,0,218,6,95,115,101,116,
+    117,112,137,4,0,0,115,40,0,0,0,4,9,4,1,8,
+    3,18,1,10,1,10,1,6,1,10,1,6,1,2,2,10,
+    1,10,1,2,128,10,3,8,1,10,1,10,1,10,2,14,
+    1,4,251,114,248,0,0,0,99,2,0,0,0,0,0,0,
+    0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,
+    0,115,38,0,0,0,116,0,124,0,124,1,131,2,1,0,
+    116,1,106,2,160,3,116,4,161,1,1,0,116,1,106,2,
+    160,3,116,5,161,1,1,0,100,1,83,0,41,2,122,48,
+    73,110,115,116,97,108,108,32,105,109,112,111,114,116,101,114,
+    115,32,102,111,114,32,98,117,105,108,116,105,110,32,97,110,
+    100,32,102,114,111,122,101,110,32,109,111,100,117,108,101,115,
+    78,41,6,114,248,0,0,0,114,18,0,0,0,114,214,0,
+    0,0,114,132,0,0,0,114,175,0,0,0,114,193,0,0,
+    0,41,2,114,246,0,0,0,114,247,0,0,0,114,5,0,
+    0,0,114,5,0,0,0,114,6,0,0,0,218,8,95,105,
+    110,115,116,97,108,108,172,4,0,0,115,6,0,0,0,10,
+    2,12,2,16,1,114,249,0,0,0,99,0,0,0,0,0,
+    0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,
+    0,0,0,115,32,0,0,0,100,1,100,2,108,0,125,0,
+    124,0,97,1,124,0,160,2,116,3,106,4,116,5,25,0,
+    161,1,1,0,100,2,83,0,41,3,122,57,73,110,115,116,
+    97,108,108,32,105,109,112,111,114,116,101,114,115,32,116,104,
+    97,116,32,114,101,113,117,105,114,101,32,101,120,116,101,114,
+    110,97,108,32,102,105,108,101,115,121,115,116,101,109,32,97,
+    99,99,101,115,115,114,25,0,0,0,78,41,6,218,26,95,
+    102,114,111,122,101,110,95,105,109,112,111,114,116,108,105,98,
+    95,101,120,116,101,114,110,97,108,114,139,0,0,0,114,249,
+    0,0,0,114,18,0,0,0,114,105,0,0,0,114,9,0,
+    0,0,41,1,114,250,0,0,0,114,5,0,0,0,114,5,
+    0,0,0,114,6,0,0,0,218,27,95,105,110,115,116,97,
+    108,108,95,101,120,116,101,114,110,97,108,95,105,109,112,111,
+    114,116,101,114,115,180,4,0,0,115,6,0,0,0,8,3,
+    4,1,20,1,114,251,0,0,0,114,190,0,0,0,114,0,
+    0,0,0,114,24,0,0,0,41,4,78,78,114,5,0,0,
+    0,114,25,0,0,0,41,54,114,10,0,0,0,114,7,0,
+    0,0,114,26,0,0,0,114,101,0,0,0,114,71,0,0,
+    0,114,139,0,0,0,114,17,0,0,0,114,21,0,0,0,
+    114,66,0,0,0,114,37,0,0,0,114,47,0,0,0,114,
+    22,0,0,0,114,23,0,0,0,114,55,0,0,0,114,57,
+    0,0,0,114,60,0,0,0,114,72,0,0,0,114,74,0,
+    0,0,114,83,0,0,0,114,95,0,0,0,114,100,0,0,
+    0,114,111,0,0,0,114,124,0,0,0,114,125,0,0,0,
+    114,104,0,0,0,114,155,0,0,0,114,161,0,0,0,114,
+    165,0,0,0,114,119,0,0,0,114,106,0,0,0,114,172,
+    0,0,0,114,173,0,0,0,114,107,0,0,0,114,175,0,
+    0,0,114,193,0,0,0,114,200,0,0,0,114,211,0,0,
+    0,114,213,0,0,0,114,215,0,0,0,114,221,0,0,0,
+    90,15,95,69,82,82,95,77,83,71,95,80,82,69,70,73,
+    88,114,223,0,0,0,114,226,0,0,0,218,6,111,98,106,
+    101,99,116,114,227,0,0,0,114,228,0,0,0,114,229,0,
+    0,0,114,234,0,0,0,114,240,0,0,0,114,243,0,0,
+    0,114,244,0,0,0,114,248,0,0,0,114,249,0,0,0,
+    114,251,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
+    5,0,0,0,114,6,0,0,0,218,8,60,109,111,100,117,
+    108,101,62,1,0,0,0,115,104,0,0,0,4,0,8,22,
+    4,9,4,1,4,1,4,3,8,3,8,8,4,8,4,2,
+    16,3,14,4,14,77,14,21,8,16,8,37,8,17,14,11,
+    8,8,8,11,8,12,8,19,14,26,16,101,10,26,14,45,
+    8,72,8,17,8,17,8,30,8,36,8,45,14,15,14,80,
+    14,85,8,13,8,9,10,10,8,47,4,16,8,1,8,2,
+    6,32,8,3,10,16,14,15,8,37,10,27,8,37,8,7,
+    8,35,12,8,
 };
index 01fdef7cc895524273d18327d6857dbd2ce02211..bd4d95a61e00a21d828ff708ee9c23334e6f8b60 100644 (file)
@@ -102,841 +102,840 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     89,84,72,79,78,67,65,83,69,79,75,99,0,0,0,0,
     0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
     19,0,0,0,115,20,0,0,0,116,0,106,1,106,2,12,
-    0,111,9,136,0,116,3,106,4,118,0,83,0,41,2,122,
+    0,111,9,136,0,116,3,106,4,118,0,83,0,41,1,122,
     94,84,114,117,101,32,105,102,32,102,105,108,101,110,97,109,
     101,115,32,109,117,115,116,32,98,101,32,99,104,101,99,107,
     101,100,32,99,97,115,101,45,105,110,115,101,110,115,105,116,
     105,118,101,108,121,32,97,110,100,32,105,103,110,111,114,101,
     32,101,110,118,105,114,111,110,109,101,110,116,32,102,108,97,
-    103,115,32,97,114,101,32,110,111,116,32,115,101,116,46,78,
-    41,5,218,3,115,121,115,218,5,102,108,97,103,115,218,18,
-    105,103,110,111,114,101,95,101,110,118,105,114,111,110,109,101,
-    110,116,218,3,95,111,115,90,7,101,110,118,105,114,111,110,
-    114,7,0,0,0,169,1,218,3,107,101,121,114,7,0,0,
-    0,114,8,0,0,0,218,11,95,114,101,108,97,120,95,99,
-    97,115,101,67,0,0,0,243,2,0,0,0,20,2,122,37,
+    103,115,32,97,114,101,32,110,111,116,32,115,101,116,46,41,
+    5,218,3,115,121,115,218,5,102,108,97,103,115,218,18,105,
+    103,110,111,114,101,95,101,110,118,105,114,111,110,109,101,110,
+    116,218,3,95,111,115,90,7,101,110,118,105,114,111,110,114,
+    7,0,0,0,169,1,218,3,107,101,121,114,7,0,0,0,
+    114,8,0,0,0,218,11,95,114,101,108,97,120,95,99,97,
+    115,101,67,0,0,0,243,2,0,0,0,20,2,122,37,95,
+    109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,46,
+    60,108,111,99,97,108,115,62,46,95,114,101,108,97,120,95,
+    99,97,115,101,99,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,1,0,0,0,83,0,0,0,243,4,0,
+    0,0,100,1,83,0,41,2,122,53,84,114,117,101,32,105,
+    102,32,102,105,108,101,110,97,109,101,115,32,109,117,115,116,
+    32,98,101,32,99,104,101,99,107,101,100,32,99,97,115,101,
+    45,105,110,115,101,110,115,105,116,105,118,101,108,121,46,70,
+    114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+    7,0,0,0,114,8,0,0,0,114,21,0,0,0,71,0,
+    0,0,243,2,0,0,0,4,2,41,5,114,15,0,0,0,
+    218,8,112,108,97,116,102,111,114,109,218,10,115,116,97,114,
+    116,115,119,105,116,104,218,27,95,67,65,83,69,95,73,78,
+    83,69,78,83,73,84,73,86,69,95,80,76,65,84,70,79,
+    82,77,83,218,35,95,67,65,83,69,95,73,78,83,69,78,
+    83,73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,
+    95,83,84,82,95,75,69,89,41,1,114,21,0,0,0,114,
+    7,0,0,0,114,19,0,0,0,114,8,0,0,0,218,16,
     95,109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,
-    46,60,108,111,99,97,108,115,62,46,95,114,101,108,97,120,
-    95,99,97,115,101,99,0,0,0,0,0,0,0,0,0,0,
-    0,0,0,0,0,0,1,0,0,0,83,0,0,0,243,4,
-    0,0,0,100,1,83,0,41,3,122,53,84,114,117,101,32,
-    105,102,32,102,105,108,101,110,97,109,101,115,32,109,117,115,
-    116,32,98,101,32,99,104,101,99,107,101,100,32,99,97,115,
-    101,45,105,110,115,101,110,115,105,116,105,118,101,108,121,46,
-    70,78,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,114,21,0,0,0,
-    71,0,0,0,243,2,0,0,0,4,2,41,5,114,15,0,
-    0,0,218,8,112,108,97,116,102,111,114,109,218,10,115,116,
-    97,114,116,115,119,105,116,104,218,27,95,67,65,83,69,95,
-    73,78,83,69,78,83,73,84,73,86,69,95,80,76,65,84,
-    70,79,82,77,83,218,35,95,67,65,83,69,95,73,78,83,
-    69,78,83,73,84,73,86,69,95,80,76,65,84,70,79,82,
-    77,83,95,83,84,82,95,75,69,89,41,1,114,21,0,0,
-    0,114,7,0,0,0,114,19,0,0,0,114,8,0,0,0,
-    218,16,95,109,97,107,101,95,114,101,108,97,120,95,99,97,
-    115,101,60,0,0,0,115,16,0,0,0,12,1,12,1,6,
-    1,4,2,12,2,4,7,8,253,4,3,114,29,0,0,0,
-    99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
-    0,4,0,0,0,67,0,0,0,115,20,0,0,0,116,0,
-    124,0,131,1,100,1,64,0,160,1,100,2,100,3,161,2,
-    83,0,41,5,122,42,67,111,110,118,101,114,116,32,97,32,
-    51,50,45,98,105,116,32,105,110,116,101,103,101,114,32,116,
-    111,32,108,105,116,116,108,101,45,101,110,100,105,97,110,46,
-    236,3,0,0,0,255,127,255,127,3,0,233,4,0,0,0,
-    218,6,108,105,116,116,108,101,78,41,2,218,3,105,110,116,
-    218,8,116,111,95,98,121,116,101,115,41,1,218,1,120,114,
-    7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,12,
-    95,112,97,99,107,95,117,105,110,116,51,50,79,0,0,0,
-    114,22,0,0,0,114,36,0,0,0,99,1,0,0,0,0,
-    0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,
-    0,0,0,243,28,0,0,0,116,0,124,0,131,1,100,1,
-    107,2,115,8,74,0,130,1,116,1,160,2,124,0,100,2,
-    161,2,83,0,41,4,122,47,67,111,110,118,101,114,116,32,
-    52,32,98,121,116,101,115,32,105,110,32,108,105,116,116,108,
-    101,45,101,110,100,105,97,110,32,116,111,32,97,110,32,105,
-    110,116,101,103,101,114,46,114,31,0,0,0,114,32,0,0,
-    0,78,169,3,114,4,0,0,0,114,33,0,0,0,218,10,
-    102,114,111,109,95,98,121,116,101,115,169,1,218,4,100,97,
-    116,97,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,218,14,95,117,110,112,97,99,107,95,117,105,110,116,51,
-    50,84,0,0,0,243,4,0,0,0,16,2,12,1,114,42,
-    0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
-    1,0,0,0,4,0,0,0,67,0,0,0,114,37,0,0,
-    0,41,4,122,47,67,111,110,118,101,114,116,32,50,32,98,
+    60,0,0,0,115,16,0,0,0,12,1,12,1,6,1,4,
+    2,12,2,4,7,8,253,4,3,114,29,0,0,0,99,1,
+    0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,
+    0,0,0,67,0,0,0,115,20,0,0,0,116,0,124,0,
+    131,1,100,1,64,0,160,1,100,2,100,3,161,2,83,0,
+    41,4,122,42,67,111,110,118,101,114,116,32,97,32,51,50,
+    45,98,105,116,32,105,110,116,101,103,101,114,32,116,111,32,
+    108,105,116,116,108,101,45,101,110,100,105,97,110,46,236,3,
+    0,0,0,255,127,255,127,3,0,233,4,0,0,0,218,6,
+    108,105,116,116,108,101,41,2,218,3,105,110,116,218,8,116,
+    111,95,98,121,116,101,115,41,1,218,1,120,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,218,12,95,112,97,
+    99,107,95,117,105,110,116,51,50,79,0,0,0,114,22,0,
+    0,0,114,36,0,0,0,99,1,0,0,0,0,0,0,0,
+    0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,0,
+    243,28,0,0,0,116,0,124,0,131,1,100,1,107,2,115,
+    8,74,0,130,1,116,1,160,2,124,0,100,2,161,2,83,
+    0,41,3,122,47,67,111,110,118,101,114,116,32,52,32,98,
     121,116,101,115,32,105,110,32,108,105,116,116,108,101,45,101,
     110,100,105,97,110,32,116,111,32,97,110,32,105,110,116,101,
-    103,101,114,46,233,2,0,0,0,114,32,0,0,0,78,114,
-    38,0,0,0,114,40,0,0,0,114,7,0,0,0,114,7,
-    0,0,0,114,8,0,0,0,218,14,95,117,110,112,97,99,
-    107,95,117,105,110,116,49,54,89,0,0,0,114,43,0,0,
-    0,114,45,0,0,0,99,0,0,0,0,0,0,0,0,0,
-    0,0,0,5,0,0,0,4,0,0,0,71,0,0,0,115,
-    228,0,0,0,124,0,115,4,100,1,83,0,116,0,124,0,
-    131,1,100,2,107,2,114,14,124,0,100,3,25,0,83,0,
-    100,1,125,1,103,0,125,2,116,1,116,2,106,3,124,0,
-    131,2,68,0,93,61,92,2,125,3,125,4,124,3,160,4,
-    116,5,161,1,115,38,124,3,160,6,116,5,161,1,114,51,
-    124,3,160,7,116,8,161,1,112,44,124,1,125,1,116,9,
-    124,4,23,0,103,1,125,2,113,24,124,3,160,6,100,4,
-    161,1,114,76,124,1,160,10,161,0,124,3,160,10,161,0,
-    107,3,114,70,124,3,125,1,124,4,103,1,125,2,113,24,
-    124,2,160,11,124,4,161,1,1,0,113,24,124,3,112,79,
-    124,1,125,1,124,2,160,11,124,4,161,1,1,0,113,24,
-    100,5,100,6,132,0,124,2,68,0,131,1,125,2,116,0,
-    124,2,131,1,100,2,107,2,114,107,124,2,100,3,25,0,
-    115,107,124,1,116,9,23,0,83,0,124,1,116,9,160,12,
-    124,2,161,1,23,0,83,0,41,8,250,31,82,101,112,108,
+    103,101,114,46,114,31,0,0,0,114,32,0,0,0,169,3,
+    114,4,0,0,0,114,33,0,0,0,218,10,102,114,111,109,
+    95,98,121,116,101,115,169,1,218,4,100,97,116,97,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,218,14,95,
+    117,110,112,97,99,107,95,117,105,110,116,51,50,84,0,0,
+    0,243,4,0,0,0,16,2,12,1,114,42,0,0,0,99,
+    1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
+    4,0,0,0,67,0,0,0,114,37,0,0,0,41,3,122,
+    47,67,111,110,118,101,114,116,32,50,32,98,121,116,101,115,
+    32,105,110,32,108,105,116,116,108,101,45,101,110,100,105,97,
+    110,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46,
+    233,2,0,0,0,114,32,0,0,0,114,38,0,0,0,114,
+    40,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,218,14,95,117,110,112,97,99,107,95,117,105,110,
+    116,49,54,89,0,0,0,114,43,0,0,0,114,45,0,0,
+    0,99,0,0,0,0,0,0,0,0,0,0,0,0,5,0,
+    0,0,4,0,0,0,71,0,0,0,115,228,0,0,0,124,
+    0,115,4,100,1,83,0,116,0,124,0,131,1,100,2,107,
+    2,114,14,124,0,100,3,25,0,83,0,100,1,125,1,103,
+    0,125,2,116,1,116,2,106,3,124,0,131,2,68,0,93,
+    61,92,2,125,3,125,4,124,3,160,4,116,5,161,1,115,
+    38,124,3,160,6,116,5,161,1,114,51,124,3,160,7,116,
+    8,161,1,112,44,124,1,125,1,116,9,124,4,23,0,103,
+    1,125,2,113,24,124,3,160,6,100,4,161,1,114,76,124,
+    1,160,10,161,0,124,3,160,10,161,0,107,3,114,70,124,
+    3,125,1,124,4,103,1,125,2,113,24,124,2,160,11,124,
+    4,161,1,1,0,113,24,124,3,112,79,124,1,125,1,124,
+    2,160,11,124,4,161,1,1,0,113,24,100,5,100,6,132,
+    0,124,2,68,0,131,1,125,2,116,0,124,2,131,1,100,
+    2,107,2,114,107,124,2,100,3,25,0,115,107,124,1,116,
+    9,23,0,83,0,124,1,116,9,160,12,124,2,161,1,23,
+    0,83,0,41,7,250,31,82,101,112,108,97,99,101,109,101,
+    110,116,32,102,111,114,32,111,115,46,112,97,116,104,46,106,
+    111,105,110,40,41,46,114,10,0,0,0,114,3,0,0,0,
+    114,0,0,0,0,114,11,0,0,0,99,1,0,0,0,0,
+    0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,83,
+    0,0,0,243,26,0,0,0,103,0,124,0,93,9,125,1,
+    124,1,114,2,124,1,160,0,116,1,161,1,145,2,113,2,
+    83,0,114,7,0,0,0,169,2,218,6,114,115,116,114,105,
+    112,218,15,112,97,116,104,95,115,101,112,97,114,97,116,111,
+    114,115,169,2,114,5,0,0,0,218,1,112,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,218,10,60,108,105,
+    115,116,99,111,109,112,62,119,0,0,0,115,2,0,0,0,
+    26,0,250,30,95,112,97,116,104,95,106,111,105,110,46,60,
+    108,111,99,97,108,115,62,46,60,108,105,115,116,99,111,109,
+    112,62,41,13,114,4,0,0,0,218,3,109,97,112,114,18,
+    0,0,0,218,15,95,112,97,116,104,95,115,112,108,105,116,
+    114,111,111,116,114,26,0,0,0,218,14,112,97,116,104,95,
+    115,101,112,95,116,117,112,108,101,218,8,101,110,100,115,119,
+    105,116,104,114,49,0,0,0,114,50,0,0,0,218,8,112,
+    97,116,104,95,115,101,112,218,8,99,97,115,101,102,111,108,
+    100,218,6,97,112,112,101,110,100,218,4,106,111,105,110,41,
+    5,218,10,112,97,116,104,95,112,97,114,116,115,218,4,114,
+    111,111,116,218,4,112,97,116,104,90,8,110,101,119,95,114,
+    111,111,116,218,4,116,97,105,108,114,7,0,0,0,114,7,
+    0,0,0,114,8,0,0,0,218,10,95,112,97,116,104,95,
+    106,111,105,110,96,0,0,0,115,42,0,0,0,4,2,4,
+    1,12,1,8,1,4,1,4,1,20,1,20,1,14,1,12,
+    1,10,1,16,1,4,3,8,1,12,2,8,2,12,1,14,
+    1,20,1,8,2,14,1,114,67,0,0,0,99,0,0,0,
+    0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,
+    0,71,0,0,0,115,20,0,0,0,116,0,160,1,100,1,
+    100,2,132,0,124,0,68,0,131,1,161,1,83,0,41,3,
+    114,46,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+    0,0,2,0,0,0,5,0,0,0,83,0,0,0,114,47,
+    0,0,0,114,7,0,0,0,114,48,0,0,0,41,2,114,
+    5,0,0,0,218,4,112,97,114,116,114,7,0,0,0,114,
+    7,0,0,0,114,8,0,0,0,114,53,0,0,0,128,0,
+    0,0,115,6,0,0,0,6,0,4,1,16,255,114,54,0,
+    0,0,41,2,114,59,0,0,0,114,62,0,0,0,41,1,
+    114,63,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+    8,0,0,0,114,67,0,0,0,126,0,0,0,115,6,0,
+    0,0,10,2,2,1,8,255,99,1,0,0,0,0,0,0,
+    0,0,0,0,0,2,0,0,0,4,0,0,0,3,0,0,
+    0,115,66,0,0,0,116,0,135,0,102,1,100,1,100,2,
+    132,8,116,1,68,0,131,1,131,1,125,1,124,1,100,3,
+    107,0,114,19,100,4,136,0,102,2,83,0,136,0,100,5,
+    124,1,133,2,25,0,136,0,124,1,100,6,23,0,100,5,
+    133,2,25,0,102,2,83,0,41,7,122,32,82,101,112,108,
     97,99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,
-    97,116,104,46,106,111,105,110,40,41,46,114,10,0,0,0,
-    114,3,0,0,0,114,0,0,0,0,114,11,0,0,0,99,
-    1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
-    5,0,0,0,83,0,0,0,243,26,0,0,0,103,0,124,
-    0,93,9,125,1,124,1,114,2,124,1,160,0,116,1,161,
-    1,145,2,113,2,83,0,114,7,0,0,0,169,2,218,6,
-    114,115,116,114,105,112,218,15,112,97,116,104,95,115,101,112,
-    97,114,97,116,111,114,115,169,2,114,5,0,0,0,218,1,
-    112,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    218,10,60,108,105,115,116,99,111,109,112,62,119,0,0,0,
-    115,2,0,0,0,26,0,250,30,95,112,97,116,104,95,106,
-    111,105,110,46,60,108,111,99,97,108,115,62,46,60,108,105,
-    115,116,99,111,109,112,62,78,41,13,114,4,0,0,0,218,
-    3,109,97,112,114,18,0,0,0,218,15,95,112,97,116,104,
-    95,115,112,108,105,116,114,111,111,116,114,26,0,0,0,218,
-    14,112,97,116,104,95,115,101,112,95,116,117,112,108,101,218,
-    8,101,110,100,115,119,105,116,104,114,49,0,0,0,114,50,
-    0,0,0,218,8,112,97,116,104,95,115,101,112,218,8,99,
-    97,115,101,102,111,108,100,218,6,97,112,112,101,110,100,218,
-    4,106,111,105,110,41,5,218,10,112,97,116,104,95,112,97,
-    114,116,115,218,4,114,111,111,116,218,4,112,97,116,104,90,
-    8,110,101,119,95,114,111,111,116,218,4,116,97,105,108,114,
-    7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,10,
-    95,112,97,116,104,95,106,111,105,110,96,0,0,0,115,42,
-    0,0,0,4,2,4,1,12,1,8,1,4,1,4,1,20,
-    1,20,1,14,1,12,1,10,1,16,1,4,3,8,1,12,
-    2,8,2,12,1,14,1,20,1,8,2,14,1,114,67,0,
-    0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,1,
-    0,0,0,4,0,0,0,71,0,0,0,115,20,0,0,0,
-    116,0,160,1,100,1,100,2,132,0,124,0,68,0,131,1,
-    161,1,83,0,41,4,114,46,0,0,0,99,1,0,0,0,
-    0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,
-    83,0,0,0,114,47,0,0,0,114,7,0,0,0,114,48,
-    0,0,0,41,2,114,5,0,0,0,218,4,112,97,114,116,
-    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
-    53,0,0,0,128,0,0,0,115,6,0,0,0,6,0,4,
-    1,16,255,114,54,0,0,0,78,41,2,114,59,0,0,0,
-    114,62,0,0,0,41,1,114,63,0,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,114,67,0,0,0,
-    126,0,0,0,115,6,0,0,0,10,2,2,1,8,255,99,
-    1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
-    4,0,0,0,3,0,0,0,115,66,0,0,0,116,0,135,
-    0,102,1,100,1,100,2,132,8,116,1,68,0,131,1,131,
-    1,125,1,124,1,100,3,107,0,114,19,100,4,136,0,102,
-    2,83,0,136,0,100,5,124,1,133,2,25,0,136,0,124,
-    1,100,6,23,0,100,5,133,2,25,0,102,2,83,0,41,
-    7,122,32,82,101,112,108,97,99,101,109,101,110,116,32,102,
-    111,114,32,111,115,46,112,97,116,104,46,115,112,108,105,116,
-    40,41,46,99,1,0,0,0,0,0,0,0,0,0,0,0,
-    2,0,0,0,4,0,0,0,51,0,0,0,115,26,0,0,
-    0,129,0,124,0,93,8,125,1,136,0,160,0,124,1,161,
-    1,86,0,1,0,113,2,100,0,83,0,169,1,78,41,1,
-    218,5,114,102,105,110,100,114,51,0,0,0,169,1,114,65,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0,
-    0,0,134,0,0,0,115,4,0,0,0,2,128,24,0,122,
-    30,95,112,97,116,104,95,115,112,108,105,116,46,60,108,111,
-    99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,114,
-    0,0,0,0,114,10,0,0,0,78,114,3,0,0,0,41,
-    2,218,3,109,97,120,114,50,0,0,0,41,2,114,65,0,
-    0,0,218,1,105,114,7,0,0,0,114,71,0,0,0,114,
-    8,0,0,0,218,11,95,112,97,116,104,95,115,112,108,105,
-    116,132,0,0,0,115,8,0,0,0,22,2,8,1,8,1,
-    28,1,114,74,0,0,0,99,1,0,0,0,0,0,0,0,
-    0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
-    115,10,0,0,0,116,0,160,1,124,0,161,1,83,0,41,
-    2,122,126,83,116,97,116,32,116,104,101,32,112,97,116,104,
-    46,10,10,32,32,32,32,77,97,100,101,32,97,32,115,101,
-    112,97,114,97,116,101,32,102,117,110,99,116,105,111,110,32,
-    116,111,32,109,97,107,101,32,105,116,32,101,97,115,105,101,
-    114,32,116,111,32,111,118,101,114,114,105,100,101,32,105,110,
-    32,101,120,112,101,114,105,109,101,110,116,115,10,32,32,32,
-    32,40,101,46,103,46,32,99,97,99,104,101,32,115,116,97,
-    116,32,114,101,115,117,108,116,115,41,46,10,10,32,32,32,
-    32,78,41,2,114,18,0,0,0,90,4,115,116,97,116,114,
-    71,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,218,10,95,112,97,116,104,95,115,116,97,116,140,
-    0,0,0,115,2,0,0,0,10,7,114,75,0,0,0,99,
-    2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
-    8,0,0,0,67,0,0,0,115,48,0,0,0,122,6,116,
-    0,124,0,131,1,125,2,87,0,110,10,4,0,116,1,121,
-    16,1,0,1,0,1,0,89,0,100,1,83,0,119,0,124,
-    2,106,2,100,2,64,0,124,1,107,2,83,0,41,4,122,
-    49,84,101,115,116,32,119,104,101,116,104,101,114,32,116,104,
-    101,32,112,97,116,104,32,105,115,32,116,104,101,32,115,112,
-    101,99,105,102,105,101,100,32,109,111,100,101,32,116,121,112,
-    101,46,70,105,0,240,0,0,78,41,3,114,75,0,0,0,
-    218,7,79,83,69,114,114,111,114,218,7,115,116,95,109,111,
-    100,101,41,3,114,65,0,0,0,218,4,109,111,100,101,90,
-    9,115,116,97,116,95,105,110,102,111,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,218,18,95,112,97,116,104,
-    95,105,115,95,109,111,100,101,95,116,121,112,101,150,0,0,
-    0,115,12,0,0,0,2,2,12,1,12,1,6,1,2,255,
-    14,2,114,79,0,0,0,99,1,0,0,0,0,0,0,0,
+    97,116,104,46,115,112,108,105,116,40,41,46,99,1,0,0,
+    0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
+    0,51,0,0,0,115,26,0,0,0,129,0,124,0,93,8,
+    125,1,136,0,160,0,124,1,161,1,86,0,1,0,113,2,
+    100,0,83,0,169,1,78,41,1,218,5,114,102,105,110,100,
+    114,51,0,0,0,169,1,114,65,0,0,0,114,7,0,0,
+    0,114,8,0,0,0,114,9,0,0,0,134,0,0,0,115,
+    4,0,0,0,2,128,24,0,122,30,95,112,97,116,104,95,
+    115,112,108,105,116,46,60,108,111,99,97,108,115,62,46,60,
+    103,101,110,101,120,112,114,62,114,0,0,0,0,114,10,0,
+    0,0,78,114,3,0,0,0,41,2,218,3,109,97,120,114,
+    50,0,0,0,41,2,114,65,0,0,0,218,1,105,114,7,
+    0,0,0,114,71,0,0,0,114,8,0,0,0,218,11,95,
+    112,97,116,104,95,115,112,108,105,116,132,0,0,0,115,8,
+    0,0,0,22,2,8,1,8,1,28,1,114,74,0,0,0,
+    99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
+    0,3,0,0,0,67,0,0,0,115,10,0,0,0,116,0,
+    160,1,124,0,161,1,83,0,41,1,122,126,83,116,97,116,
+    32,116,104,101,32,112,97,116,104,46,10,10,32,32,32,32,
+    77,97,100,101,32,97,32,115,101,112,97,114,97,116,101,32,
+    102,117,110,99,116,105,111,110,32,116,111,32,109,97,107,101,
+    32,105,116,32,101,97,115,105,101,114,32,116,111,32,111,118,
+    101,114,114,105,100,101,32,105,110,32,101,120,112,101,114,105,
+    109,101,110,116,115,10,32,32,32,32,40,101,46,103,46,32,
+    99,97,99,104,101,32,115,116,97,116,32,114,101,115,117,108,
+    116,115,41,46,10,10,32,32,32,32,41,2,114,18,0,0,
+    0,90,4,115,116,97,116,114,71,0,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,218,10,95,112,97,
+    116,104,95,115,116,97,116,140,0,0,0,115,2,0,0,0,
+    10,7,114,75,0,0,0,99,2,0,0,0,0,0,0,0,
+    0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,
+    115,48,0,0,0,122,6,116,0,124,0,131,1,125,2,87,
+    0,110,10,4,0,116,1,121,16,1,0,1,0,1,0,89,
+    0,100,1,83,0,119,0,124,2,106,2,100,2,64,0,124,
+    1,107,2,83,0,41,3,122,49,84,101,115,116,32,119,104,
+    101,116,104,101,114,32,116,104,101,32,112,97,116,104,32,105,
+    115,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,
+    109,111,100,101,32,116,121,112,101,46,70,105,0,240,0,0,
+    41,3,114,75,0,0,0,218,7,79,83,69,114,114,111,114,
+    218,7,115,116,95,109,111,100,101,41,3,114,65,0,0,0,
+    218,4,109,111,100,101,90,9,115,116,97,116,95,105,110,102,
+    111,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+    218,18,95,112,97,116,104,95,105,115,95,109,111,100,101,95,
+    116,121,112,101,150,0,0,0,115,12,0,0,0,2,2,12,
+    1,12,1,6,1,2,255,14,2,114,79,0,0,0,99,1,
+    0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
+    0,0,0,67,0,0,0,115,10,0,0,0,116,0,124,0,
+    100,1,131,2,83,0,41,2,122,31,82,101,112,108,97,99,
+    101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,116,
+    104,46,105,115,102,105,108,101,46,105,0,128,0,0,41,1,
+    114,79,0,0,0,114,71,0,0,0,114,7,0,0,0,114,
+    7,0,0,0,114,8,0,0,0,218,12,95,112,97,116,104,
+    95,105,115,102,105,108,101,159,0,0,0,243,2,0,0,0,
+    10,2,114,80,0,0,0,99,1,0,0,0,0,0,0,0,
     0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
-    115,10,0,0,0,116,0,124,0,100,1,131,2,83,0,41,
-    3,122,31,82,101,112,108,97,99,101,109,101,110,116,32,102,
-    111,114,32,111,115,46,112,97,116,104,46,105,115,102,105,108,
-    101,46,105,0,128,0,0,78,41,1,114,79,0,0,0,114,
+    115,22,0,0,0,124,0,115,6,116,0,160,1,161,0,125,
+    0,116,2,124,0,100,1,131,2,83,0,41,2,122,30,82,
+    101,112,108,97,99,101,109,101,110,116,32,102,111,114,32,111,
+    115,46,112,97,116,104,46,105,115,100,105,114,46,105,0,64,
+    0,0,41,3,114,18,0,0,0,218,6,103,101,116,99,119,
+    100,114,79,0,0,0,114,71,0,0,0,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,218,11,95,112,97,116,
+    104,95,105,115,100,105,114,164,0,0,0,115,6,0,0,0,
+    4,2,8,1,10,1,114,83,0,0,0,99,1,0,0,0,
+    0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
+    67,0,0,0,115,62,0,0,0,124,0,115,4,100,1,83,
+    0,116,0,160,1,124,0,161,1,100,2,25,0,160,2,100,
+    3,100,4,161,2,125,1,116,3,124,1,131,1,100,5,107,
+    4,111,30,124,1,160,4,100,6,161,1,112,30,124,1,160,
+    5,100,4,161,1,83,0,41,7,250,30,82,101,112,108,97,
+    99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,
+    116,104,46,105,115,97,98,115,46,70,114,0,0,0,0,114,
+    2,0,0,0,114,1,0,0,0,114,3,0,0,0,122,2,
+    92,92,41,6,114,18,0,0,0,114,56,0,0,0,218,7,
+    114,101,112,108,97,99,101,114,4,0,0,0,114,26,0,0,
+    0,114,58,0,0,0,41,2,114,65,0,0,0,114,64,0,
+    0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+    0,218,11,95,112,97,116,104,95,105,115,97,98,115,172,0,
+    0,0,115,8,0,0,0,4,2,4,1,22,1,32,1,114,
+    86,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+    0,1,0,0,0,3,0,0,0,67,0,0,0,115,10,0,
+    0,0,124,0,160,0,116,1,161,1,83,0,41,1,114,84,
+    0,0,0,41,2,114,26,0,0,0,114,50,0,0,0,114,
     71,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,218,12,95,112,97,116,104,95,105,115,102,105,108,
-    101,159,0,0,0,243,2,0,0,0,10,2,114,80,0,0,
-    0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
-    0,0,3,0,0,0,67,0,0,0,115,22,0,0,0,124,
-    0,115,6,116,0,160,1,161,0,125,0,116,2,124,0,100,
-    1,131,2,83,0,41,3,122,30,82,101,112,108,97,99,101,
-    109,101,110,116,32,102,111,114,32,111,115,46,112,97,116,104,
-    46,105,115,100,105,114,46,105,0,64,0,0,78,41,3,114,
-    18,0,0,0,218,6,103,101,116,99,119,100,114,79,0,0,
-    0,114,71,0,0,0,114,7,0,0,0,114,7,0,0,0,
-    114,8,0,0,0,218,11,95,112,97,116,104,95,105,115,100,
-    105,114,164,0,0,0,115,6,0,0,0,4,2,8,1,10,
-    1,114,83,0,0,0,99,1,0,0,0,0,0,0,0,0,
-    0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,
-    62,0,0,0,124,0,115,4,100,1,83,0,116,0,160,1,
-    124,0,161,1,100,2,25,0,160,2,100,3,100,4,161,2,
-    125,1,116,3,124,1,131,1,100,5,107,4,111,30,124,1,
-    160,4,100,6,161,1,112,30,124,1,160,5,100,4,161,1,
-    83,0,41,8,250,30,82,101,112,108,97,99,101,109,101,110,
-    116,32,102,111,114,32,111,115,46,112,97,116,104,46,105,115,
-    97,98,115,46,70,114,0,0,0,0,114,2,0,0,0,114,
-    1,0,0,0,114,3,0,0,0,122,2,92,92,78,41,6,
-    114,18,0,0,0,114,56,0,0,0,218,7,114,101,112,108,
-    97,99,101,114,4,0,0,0,114,26,0,0,0,114,58,0,
-    0,0,41,2,114,65,0,0,0,114,64,0,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,218,11,95,
-    112,97,116,104,95,105,115,97,98,115,172,0,0,0,115,8,
-    0,0,0,4,2,4,1,22,1,32,1,114,86,0,0,0,
-    99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
-    0,3,0,0,0,67,0,0,0,115,10,0,0,0,124,0,
-    160,0,116,1,161,1,83,0,41,2,114,84,0,0,0,78,
-    41,2,114,26,0,0,0,114,50,0,0,0,114,71,0,0,
-    0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,86,0,0,0,180,0,0,0,114,81,0,0,0,233,182,
-    1,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
-    6,0,0,0,11,0,0,0,67,0,0,0,115,170,0,0,
-    0,100,1,160,0,124,0,116,1,124,0,131,1,161,2,125,
-    3,116,2,160,3,124,3,116,2,106,4,116,2,106,5,66,
-    0,116,2,106,6,66,0,124,2,100,2,64,0,161,3,125,
-    4,122,36,116,7,160,8,124,4,100,3,161,2,143,13,125,
-    5,124,5,160,9,124,1,161,1,1,0,87,0,100,4,4,
-    0,4,0,131,3,1,0,110,8,49,0,115,47,119,1,1,
-    0,1,0,1,0,89,0,1,0,116,2,160,10,124,3,124,
-    0,161,2,1,0,87,0,100,4,83,0,4,0,116,11,121,
-    84,1,0,1,0,1,0,122,7,116,2,160,12,124,3,161,
-    1,1,0,87,0,130,0,4,0,116,11,121,83,1,0,1,
-    0,1,0,89,0,130,0,119,0,119,0,41,5,122,162,66,
-    101,115,116,45,101,102,102,111,114,116,32,102,117,110,99,116,
-    105,111,110,32,116,111,32,119,114,105,116,101,32,100,97,116,
-    97,32,116,111,32,97,32,112,97,116,104,32,97,116,111,109,
-    105,99,97,108,108,121,46,10,32,32,32,32,66,101,32,112,
-    114,101,112,97,114,101,100,32,116,111,32,104,97,110,100,108,
-    101,32,97,32,70,105,108,101,69,120,105,115,116,115,69,114,
-    114,111,114,32,105,102,32,99,111,110,99,117,114,114,101,110,
-    116,32,119,114,105,116,105,110,103,32,111,102,32,116,104,101,
-    10,32,32,32,32,116,101,109,112,111,114,97,114,121,32,102,
-    105,108,101,32,105,115,32,97,116,116,101,109,112,116,101,100,
-    46,250,5,123,125,46,123,125,114,87,0,0,0,90,2,119,
-    98,78,41,13,218,6,102,111,114,109,97,116,218,2,105,100,
-    114,18,0,0,0,90,4,111,112,101,110,90,6,79,95,69,
-    88,67,76,90,7,79,95,67,82,69,65,84,90,8,79,95,
-    87,82,79,78,76,89,218,3,95,105,111,218,6,70,105,108,
-    101,73,79,218,5,119,114,105,116,101,114,85,0,0,0,114,
-    76,0,0,0,90,6,117,110,108,105,110,107,41,6,114,65,
-    0,0,0,114,41,0,0,0,114,78,0,0,0,90,8,112,
-    97,116,104,95,116,109,112,90,2,102,100,218,4,102,105,108,
-    101,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    218,13,95,119,114,105,116,101,95,97,116,111,109,105,99,185,
-    0,0,0,115,36,0,0,0,16,5,6,1,22,1,4,255,
-    2,2,14,3,12,1,28,255,18,2,12,1,2,1,12,1,
-    2,3,12,254,2,1,2,1,2,254,2,253,114,95,0,0,
-    0,105,111,13,0,0,114,44,0,0,0,114,32,0,0,0,
-    115,2,0,0,0,13,10,90,11,95,95,112,121,99,97,99,
-    104,101,95,95,122,4,111,112,116,45,122,3,46,112,121,122,
-    4,46,112,121,119,122,4,46,112,121,99,41,1,218,12,111,
-    112,116,105,109,105,122,97,116,105,111,110,99,2,0,0,0,
-    0,0,0,0,1,0,0,0,12,0,0,0,5,0,0,0,
-    67,0,0,0,115,80,1,0,0,124,1,100,1,117,1,114,
-    26,116,0,160,1,100,2,116,2,161,2,1,0,124,2,100,
-    1,117,1,114,20,100,3,125,3,116,3,124,3,131,1,130,
-    1,124,1,114,24,100,4,110,1,100,5,125,2,116,4,160,
-    5,124,0,161,1,125,0,116,6,124,0,131,1,92,2,125,
-    4,125,5,124,5,160,7,100,6,161,1,92,3,125,6,125,
-    7,125,8,116,8,106,9,106,10,125,9,124,9,100,1,117,
-    0,114,57,116,11,100,7,131,1,130,1,100,4,160,12,124,
-    6,114,63,124,6,110,1,124,8,124,7,124,9,103,3,161,
-    1,125,10,124,2,100,1,117,0,114,86,116,8,106,13,106,
-    14,100,8,107,2,114,82,100,4,125,2,110,4,116,8,106,
-    13,106,14,125,2,116,15,124,2,131,1,125,2,124,2,100,
-    4,107,3,114,112,124,2,160,16,161,0,115,105,116,17,100,
-    9,160,18,124,2,161,1,131,1,130,1,100,10,160,18,124,
-    10,116,19,124,2,161,3,125,10,124,10,116,20,100,8,25,
-    0,23,0,125,11,116,8,106,21,100,1,117,1,114,162,116,
-    22,124,4,131,1,115,134,116,23,116,4,160,24,161,0,124,
-    4,131,2,125,4,124,4,100,5,25,0,100,11,107,2,114,
-    152,124,4,100,8,25,0,116,25,118,1,114,152,124,4,100,
-    12,100,1,133,2,25,0,125,4,116,23,116,8,106,21,124,
-    4,160,26,116,25,161,1,124,11,131,3,83,0,116,23,124,
-    4,116,27,124,11,131,3,83,0,41,13,97,254,2,0,0,
+    0,0,0,114,86,0,0,0,180,0,0,0,114,81,0,0,
+    0,233,182,1,0,0,99,3,0,0,0,0,0,0,0,0,
+    0,0,0,6,0,0,0,11,0,0,0,67,0,0,0,115,
+    170,0,0,0,100,1,160,0,124,0,116,1,124,0,131,1,
+    161,2,125,3,116,2,160,3,124,3,116,2,106,4,116,2,
+    106,5,66,0,116,2,106,6,66,0,124,2,100,2,64,0,
+    161,3,125,4,122,36,116,7,160,8,124,4,100,3,161,2,
+    143,13,125,5,124,5,160,9,124,1,161,1,1,0,87,0,
+    100,4,4,0,4,0,131,3,1,0,110,8,49,0,115,47,
+    119,1,1,0,1,0,1,0,89,0,1,0,116,2,160,10,
+    124,3,124,0,161,2,1,0,87,0,100,4,83,0,4,0,
+    116,11,121,84,1,0,1,0,1,0,122,7,116,2,160,12,
+    124,3,161,1,1,0,87,0,130,0,4,0,116,11,121,83,
+    1,0,1,0,1,0,89,0,130,0,119,0,119,0,41,5,
+    122,162,66,101,115,116,45,101,102,102,111,114,116,32,102,117,
+    110,99,116,105,111,110,32,116,111,32,119,114,105,116,101,32,
+    100,97,116,97,32,116,111,32,97,32,112,97,116,104,32,97,
+    116,111,109,105,99,97,108,108,121,46,10,32,32,32,32,66,
+    101,32,112,114,101,112,97,114,101,100,32,116,111,32,104,97,
+    110,100,108,101,32,97,32,70,105,108,101,69,120,105,115,116,
+    115,69,114,114,111,114,32,105,102,32,99,111,110,99,117,114,
+    114,101,110,116,32,119,114,105,116,105,110,103,32,111,102,32,
+    116,104,101,10,32,32,32,32,116,101,109,112,111,114,97,114,
+    121,32,102,105,108,101,32,105,115,32,97,116,116,101,109,112,
+    116,101,100,46,250,5,123,125,46,123,125,114,87,0,0,0,
+    90,2,119,98,78,41,13,218,6,102,111,114,109,97,116,218,
+    2,105,100,114,18,0,0,0,90,4,111,112,101,110,90,6,
+    79,95,69,88,67,76,90,7,79,95,67,82,69,65,84,90,
+    8,79,95,87,82,79,78,76,89,218,3,95,105,111,218,6,
+    70,105,108,101,73,79,218,5,119,114,105,116,101,114,85,0,
+    0,0,114,76,0,0,0,90,6,117,110,108,105,110,107,41,
+    6,114,65,0,0,0,114,41,0,0,0,114,78,0,0,0,
+    90,8,112,97,116,104,95,116,109,112,90,2,102,100,218,4,
+    102,105,108,101,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,218,13,95,119,114,105,116,101,95,97,116,111,109,
+    105,99,185,0,0,0,115,36,0,0,0,16,5,6,1,22,
+    1,4,255,2,2,14,3,12,1,28,255,18,2,12,1,2,
+    1,12,1,2,3,12,254,2,1,2,1,2,254,2,253,114,
+    95,0,0,0,105,111,13,0,0,114,44,0,0,0,114,32,
+    0,0,0,115,2,0,0,0,13,10,90,11,95,95,112,121,
+    99,97,99,104,101,95,95,122,4,111,112,116,45,122,3,46,
+    112,121,122,4,46,112,121,119,122,4,46,112,121,99,41,1,
+    218,12,111,112,116,105,109,105,122,97,116,105,111,110,99,2,
+    0,0,0,0,0,0,0,1,0,0,0,12,0,0,0,5,
+    0,0,0,67,0,0,0,115,80,1,0,0,124,1,100,1,
+    117,1,114,26,116,0,160,1,100,2,116,2,161,2,1,0,
+    124,2,100,1,117,1,114,20,100,3,125,3,116,3,124,3,
+    131,1,130,1,124,1,114,24,100,4,110,1,100,5,125,2,
+    116,4,160,5,124,0,161,1,125,0,116,6,124,0,131,1,
+    92,2,125,4,125,5,124,5,160,7,100,6,161,1,92,3,
+    125,6,125,7,125,8,116,8,106,9,106,10,125,9,124,9,
+    100,1,117,0,114,57,116,11,100,7,131,1,130,1,100,4,
+    160,12,124,6,114,63,124,6,110,1,124,8,124,7,124,9,
+    103,3,161,1,125,10,124,2,100,1,117,0,114,86,116,8,
+    106,13,106,14,100,8,107,2,114,82,100,4,125,2,110,4,
+    116,8,106,13,106,14,125,2,116,15,124,2,131,1,125,2,
+    124,2,100,4,107,3,114,112,124,2,160,16,161,0,115,105,
+    116,17,100,9,160,18,124,2,161,1,131,1,130,1,100,10,
+    160,18,124,10,116,19,124,2,161,3,125,10,124,10,116,20,
+    100,8,25,0,23,0,125,11,116,8,106,21,100,1,117,1,
+    114,162,116,22,124,4,131,1,115,134,116,23,116,4,160,24,
+    161,0,124,4,131,2,125,4,124,4,100,5,25,0,100,11,
+    107,2,114,152,124,4,100,8,25,0,116,25,118,1,114,152,
+    124,4,100,12,100,1,133,2,25,0,125,4,116,23,116,8,
+    106,21,124,4,160,26,116,25,161,1,124,11,131,3,83,0,
+    116,23,124,4,116,27,124,11,131,3,83,0,41,13,97,254,
+    2,0,0,71,105,118,101,110,32,116,104,101,32,112,97,116,
+    104,32,116,111,32,97,32,46,112,121,32,102,105,108,101,44,
+    32,114,101,116,117,114,110,32,116,104,101,32,112,97,116,104,
+    32,116,111,32,105,116,115,32,46,112,121,99,32,102,105,108,
+    101,46,10,10,32,32,32,32,84,104,101,32,46,112,121,32,
+    102,105,108,101,32,100,111,101,115,32,110,111,116,32,110,101,
+    101,100,32,116,111,32,101,120,105,115,116,59,32,116,104,105,
+    115,32,115,105,109,112,108,121,32,114,101,116,117,114,110,115,
+    32,116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,
+    10,32,32,32,32,46,112,121,99,32,102,105,108,101,32,99,
+    97,108,99,117,108,97,116,101,100,32,97,115,32,105,102,32,
+    116,104,101,32,46,112,121,32,102,105,108,101,32,119,101,114,
+    101,32,105,109,112,111,114,116,101,100,46,10,10,32,32,32,
+    32,84,104,101,32,39,111,112,116,105,109,105,122,97,116,105,
+    111,110,39,32,112,97,114,97,109,101,116,101,114,32,99,111,
+    110,116,114,111,108,115,32,116,104,101,32,112,114,101,115,117,
+    109,101,100,32,111,112,116,105,109,105,122,97,116,105,111,110,
+    32,108,101,118,101,108,32,111,102,10,32,32,32,32,116,104,
+    101,32,98,121,116,101,99,111,100,101,32,102,105,108,101,46,
+    32,73,102,32,39,111,112,116,105,109,105,122,97,116,105,111,
+    110,39,32,105,115,32,110,111,116,32,78,111,110,101,44,32,
+    116,104,101,32,115,116,114,105,110,103,32,114,101,112,114,101,
+    115,101,110,116,97,116,105,111,110,10,32,32,32,32,111,102,
+    32,116,104,101,32,97,114,103,117,109,101,110,116,32,105,115,
+    32,116,97,107,101,110,32,97,110,100,32,118,101,114,105,102,
+    105,101,100,32,116,111,32,98,101,32,97,108,112,104,97,110,
+    117,109,101,114,105,99,32,40,101,108,115,101,32,86,97,108,
+    117,101,69,114,114,111,114,10,32,32,32,32,105,115,32,114,
+    97,105,115,101,100,41,46,10,10,32,32,32,32,84,104,101,
+    32,100,101,98,117,103,95,111,118,101,114,114,105,100,101,32,
+    112,97,114,97,109,101,116,101,114,32,105,115,32,100,101,112,
+    114,101,99,97,116,101,100,46,32,73,102,32,100,101,98,117,
+    103,95,111,118,101,114,114,105,100,101,32,105,115,32,110,111,
+    116,32,78,111,110,101,44,10,32,32,32,32,97,32,84,114,
+    117,101,32,118,97,108,117,101,32,105,115,32,116,104,101,32,
+    115,97,109,101,32,97,115,32,115,101,116,116,105,110,103,32,
+    39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,116,
+    111,32,116,104,101,32,101,109,112,116,121,32,115,116,114,105,
+    110,103,10,32,32,32,32,119,104,105,108,101,32,97,32,70,
+    97,108,115,101,32,118,97,108,117,101,32,105,115,32,101,113,
+    117,105,118,97,108,101,110,116,32,116,111,32,115,101,116,116,
+    105,110,103,32,39,111,112,116,105,109,105,122,97,116,105,111,
+    110,39,32,116,111,32,39,49,39,46,10,10,32,32,32,32,
+    73,102,32,115,121,115,46,105,109,112,108,101,109,101,110,116,
+    97,116,105,111,110,46,99,97,99,104,101,95,116,97,103,32,
+    105,115,32,78,111,110,101,32,116,104,101,110,32,78,111,116,
+    73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,
+    32,105,115,32,114,97,105,115,101,100,46,10,10,32,32,32,
+    32,78,122,70,116,104,101,32,100,101,98,117,103,95,111,118,
+    101,114,114,105,100,101,32,112,97,114,97,109,101,116,101,114,
+    32,105,115,32,100,101,112,114,101,99,97,116,101,100,59,32,
+    117,115,101,32,39,111,112,116,105,109,105,122,97,116,105,111,
+    110,39,32,105,110,115,116,101,97,100,122,50,100,101,98,117,
+    103,95,111,118,101,114,114,105,100,101,32,111,114,32,111,112,
+    116,105,109,105,122,97,116,105,111,110,32,109,117,115,116,32,
+    98,101,32,115,101,116,32,116,111,32,78,111,110,101,114,10,
+    0,0,0,114,3,0,0,0,218,1,46,250,36,115,121,115,
+    46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,46,
+    99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,110,
+    101,114,0,0,0,0,122,24,123,33,114,125,32,105,115,32,
+    110,111,116,32,97,108,112,104,97,110,117,109,101,114,105,99,
+    122,7,123,125,46,123,125,123,125,114,11,0,0,0,114,44,
+    0,0,0,41,28,218,9,95,119,97,114,110,105,110,103,115,
+    218,4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,
+    105,111,110,87,97,114,110,105,110,103,218,9,84,121,112,101,
+    69,114,114,111,114,114,18,0,0,0,218,6,102,115,112,97,
+    116,104,114,74,0,0,0,218,10,114,112,97,114,116,105,116,
+    105,111,110,114,15,0,0,0,218,14,105,109,112,108,101,109,
+    101,110,116,97,116,105,111,110,218,9,99,97,99,104,101,95,
+    116,97,103,218,19,78,111,116,73,109,112,108,101,109,101,110,
+    116,101,100,69,114,114,111,114,114,62,0,0,0,114,16,0,
+    0,0,218,8,111,112,116,105,109,105,122,101,218,3,115,116,
+    114,218,7,105,115,97,108,110,117,109,218,10,86,97,108,117,
+    101,69,114,114,111,114,114,89,0,0,0,218,4,95,79,80,
+    84,218,17,66,89,84,69,67,79,68,69,95,83,85,70,70,
+    73,88,69,83,218,14,112,121,99,97,99,104,101,95,112,114,
+    101,102,105,120,114,86,0,0,0,114,67,0,0,0,114,82,
+    0,0,0,114,50,0,0,0,218,6,108,115,116,114,105,112,
+    218,8,95,80,89,67,65,67,72,69,41,12,114,65,0,0,
+    0,90,14,100,101,98,117,103,95,111,118,101,114,114,105,100,
+    101,114,96,0,0,0,218,7,109,101,115,115,97,103,101,218,
+    4,104,101,97,100,114,66,0,0,0,90,4,98,97,115,101,
+    114,6,0,0,0,218,4,114,101,115,116,90,3,116,97,103,
+    90,15,97,108,109,111,115,116,95,102,105,108,101,110,97,109,
+    101,218,8,102,105,108,101,110,97,109,101,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,218,17,99,97,99,104,
+    101,95,102,114,111,109,95,115,111,117,114,99,101,124,1,0,
+    0,115,72,0,0,0,8,18,6,1,2,1,4,255,8,2,
+    4,1,8,1,12,1,10,1,12,1,16,1,8,1,8,1,
+    8,1,24,1,8,1,12,1,6,1,8,2,8,1,8,1,
+    8,1,14,1,14,1,12,1,10,1,8,9,14,1,24,5,
+    12,1,2,4,4,1,8,1,2,1,4,253,12,5,114,121,
+    0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+    10,0,0,0,5,0,0,0,67,0,0,0,115,40,1,0,
+    0,116,0,106,1,106,2,100,1,117,0,114,10,116,3,100,
+    2,131,1,130,1,116,4,160,5,124,0,161,1,125,0,116,
+    6,124,0,131,1,92,2,125,1,125,2,100,3,125,3,116,
+    0,106,7,100,1,117,1,114,51,116,0,106,7,160,8,116,
+    9,161,1,125,4,124,1,160,10,124,4,116,11,23,0,161,
+    1,114,51,124,1,116,12,124,4,131,1,100,1,133,2,25,
+    0,125,1,100,4,125,3,124,3,115,72,116,6,124,1,131,
+    1,92,2,125,1,125,5,124,5,116,13,107,3,114,72,116,
+    14,116,13,155,0,100,5,124,0,155,2,157,3,131,1,130,
+    1,124,2,160,15,100,6,161,1,125,6,124,6,100,7,118,
+    1,114,88,116,14,100,8,124,2,155,2,157,2,131,1,130,
+    1,124,6,100,9,107,2,114,132,124,2,160,16,100,6,100,
+    10,161,2,100,11,25,0,125,7,124,7,160,10,116,17,161,
+    1,115,112,116,14,100,12,116,17,155,2,157,2,131,1,130,
+    1,124,7,116,12,116,17,131,1,100,1,133,2,25,0,125,
+    8,124,8,160,18,161,0,115,132,116,14,100,13,124,7,155,
+    2,100,14,157,3,131,1,130,1,124,2,160,19,100,6,161,
+    1,100,15,25,0,125,9,116,20,124,1,124,9,116,21,100,
+    15,25,0,23,0,131,2,83,0,41,16,97,110,1,0,0,
     71,105,118,101,110,32,116,104,101,32,112,97,116,104,32,116,
-    111,32,97,32,46,112,121,32,102,105,108,101,44,32,114,101,
-    116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,111,
-    32,105,116,115,32,46,112,121,99,32,102,105,108,101,46,10,
-    10,32,32,32,32,84,104,101,32,46,112,121,32,102,105,108,
-    101,32,100,111,101,115,32,110,111,116,32,110,101,101,100,32,
-    116,111,32,101,120,105,115,116,59,32,116,104,105,115,32,115,
-    105,109,112,108,121,32,114,101,116,117,114,110,115,32,116,104,
-    101,32,112,97,116,104,32,116,111,32,116,104,101,10,32,32,
-    32,32,46,112,121,99,32,102,105,108,101,32,99,97,108,99,
-    117,108,97,116,101,100,32,97,115,32,105,102,32,116,104,101,
-    32,46,112,121,32,102,105,108,101,32,119,101,114,101,32,105,
-    109,112,111,114,116,101,100,46,10,10,32,32,32,32,84,104,
-    101,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,
-    32,112,97,114,97,109,101,116,101,114,32,99,111,110,116,114,
-    111,108,115,32,116,104,101,32,112,114,101,115,117,109,101,100,
-    32,111,112,116,105,109,105,122,97,116,105,111,110,32,108,101,
-    118,101,108,32,111,102,10,32,32,32,32,116,104,101,32,98,
-    121,116,101,99,111,100,101,32,102,105,108,101,46,32,73,102,
-    32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,
-    105,115,32,110,111,116,32,78,111,110,101,44,32,116,104,101,
-    32,115,116,114,105,110,103,32,114,101,112,114,101,115,101,110,
-    116,97,116,105,111,110,10,32,32,32,32,111,102,32,116,104,
-    101,32,97,114,103,117,109,101,110,116,32,105,115,32,116,97,
-    107,101,110,32,97,110,100,32,118,101,114,105,102,105,101,100,
-    32,116,111,32,98,101,32,97,108,112,104,97,110,117,109,101,
-    114,105,99,32,40,101,108,115,101,32,86,97,108,117,101,69,
-    114,114,111,114,10,32,32,32,32,105,115,32,114,97,105,115,
-    101,100,41,46,10,10,32,32,32,32,84,104,101,32,100,101,
-    98,117,103,95,111,118,101,114,114,105,100,101,32,112,97,114,
-    97,109,101,116,101,114,32,105,115,32,100,101,112,114,101,99,
-    97,116,101,100,46,32,73,102,32,100,101,98,117,103,95,111,
-    118,101,114,114,105,100,101,32,105,115,32,110,111,116,32,78,
-    111,110,101,44,10,32,32,32,32,97,32,84,114,117,101,32,
-    118,97,108,117,101,32,105,115,32,116,104,101,32,115,97,109,
-    101,32,97,115,32,115,101,116,116,105,110,103,32,39,111,112,
-    116,105,109,105,122,97,116,105,111,110,39,32,116,111,32,116,
-    104,101,32,101,109,112,116,121,32,115,116,114,105,110,103,10,
-    32,32,32,32,119,104,105,108,101,32,97,32,70,97,108,115,
-    101,32,118,97,108,117,101,32,105,115,32,101,113,117,105,118,
-    97,108,101,110,116,32,116,111,32,115,101,116,116,105,110,103,
-    32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,
-    116,111,32,39,49,39,46,10,10,32,32,32,32,73,102,32,
+    111,32,97,32,46,112,121,99,46,32,102,105,108,101,44,32,
+    114,101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,
+    116,111,32,105,116,115,32,46,112,121,32,102,105,108,101,46,
+    10,10,32,32,32,32,84,104,101,32,46,112,121,99,32,102,
+    105,108,101,32,100,111,101,115,32,110,111,116,32,110,101,101,
+    100,32,116,111,32,101,120,105,115,116,59,32,116,104,105,115,
+    32,115,105,109,112,108,121,32,114,101,116,117,114,110,115,32,
+    116,104,101,32,112,97,116,104,32,116,111,10,32,32,32,32,
+    116,104,101,32,46,112,121,32,102,105,108,101,32,99,97,108,
+    99,117,108,97,116,101,100,32,116,111,32,99,111,114,114,101,
+    115,112,111,110,100,32,116,111,32,116,104,101,32,46,112,121,
+    99,32,102,105,108,101,46,32,32,73,102,32,112,97,116,104,
+    32,100,111,101,115,10,32,32,32,32,110,111,116,32,99,111,
+    110,102,111,114,109,32,116,111,32,80,69,80,32,51,49,52,
+    55,47,52,56,56,32,102,111,114,109,97,116,44,32,86,97,
+    108,117,101,69,114,114,111,114,32,119,105,108,108,32,98,101,
+    32,114,97,105,115,101,100,46,32,73,102,10,32,32,32,32,
     115,121,115,46,105,109,112,108,101,109,101,110,116,97,116,105,
     111,110,46,99,97,99,104,101,95,116,97,103,32,105,115,32,
     78,111,110,101,32,116,104,101,110,32,78,111,116,73,109,112,
     108,101,109,101,110,116,101,100,69,114,114,111,114,32,105,115,
-    32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,122,
-    70,116,104,101,32,100,101,98,117,103,95,111,118,101,114,114,
-    105,100,101,32,112,97,114,97,109,101,116,101,114,32,105,115,
-    32,100,101,112,114,101,99,97,116,101,100,59,32,117,115,101,
-    32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,
-    105,110,115,116,101,97,100,122,50,100,101,98,117,103,95,111,
-    118,101,114,114,105,100,101,32,111,114,32,111,112,116,105,109,
-    105,122,97,116,105,111,110,32,109,117,115,116,32,98,101,32,
-    115,101,116,32,116,111,32,78,111,110,101,114,10,0,0,0,
-    114,3,0,0,0,218,1,46,250,36,115,121,115,46,105,109,
-    112,108,101,109,101,110,116,97,116,105,111,110,46,99,97,99,
-    104,101,95,116,97,103,32,105,115,32,78,111,110,101,114,0,
-    0,0,0,122,24,123,33,114,125,32,105,115,32,110,111,116,
-    32,97,108,112,104,97,110,117,109,101,114,105,99,122,7,123,
-    125,46,123,125,123,125,114,11,0,0,0,114,44,0,0,0,
-    41,28,218,9,95,119,97,114,110,105,110,103,115,218,4,119,
-    97,114,110,218,18,68,101,112,114,101,99,97,116,105,111,110,
-    87,97,114,110,105,110,103,218,9,84,121,112,101,69,114,114,
-    111,114,114,18,0,0,0,218,6,102,115,112,97,116,104,114,
-    74,0,0,0,218,10,114,112,97,114,116,105,116,105,111,110,
-    114,15,0,0,0,218,14,105,109,112,108,101,109,101,110,116,
-    97,116,105,111,110,218,9,99,97,99,104,101,95,116,97,103,
-    218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
-    69,114,114,111,114,114,62,0,0,0,114,16,0,0,0,218,
-    8,111,112,116,105,109,105,122,101,218,3,115,116,114,218,7,
-    105,115,97,108,110,117,109,218,10,86,97,108,117,101,69,114,
-    114,111,114,114,89,0,0,0,218,4,95,79,80,84,218,17,
-    66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,
-    83,218,14,112,121,99,97,99,104,101,95,112,114,101,102,105,
-    120,114,86,0,0,0,114,67,0,0,0,114,82,0,0,0,
-    114,50,0,0,0,218,6,108,115,116,114,105,112,218,8,95,
-    80,89,67,65,67,72,69,41,12,114,65,0,0,0,90,14,
-    100,101,98,117,103,95,111,118,101,114,114,105,100,101,114,96,
-    0,0,0,218,7,109,101,115,115,97,103,101,218,4,104,101,
-    97,100,114,66,0,0,0,90,4,98,97,115,101,114,6,0,
-    0,0,218,4,114,101,115,116,90,3,116,97,103,90,15,97,
-    108,109,111,115,116,95,102,105,108,101,110,97,109,101,218,8,
-    102,105,108,101,110,97,109,101,114,7,0,0,0,114,7,0,
-    0,0,114,8,0,0,0,218,17,99,97,99,104,101,95,102,
-    114,111,109,95,115,111,117,114,99,101,124,1,0,0,115,72,
-    0,0,0,8,18,6,1,2,1,4,255,8,2,4,1,8,
-    1,12,1,10,1,12,1,16,1,8,1,8,1,8,1,24,
-    1,8,1,12,1,6,1,8,2,8,1,8,1,8,1,14,
-    1,14,1,12,1,10,1,8,9,14,1,24,5,12,1,2,
-    4,4,1,8,1,2,1,4,253,12,5,114,121,0,0,0,
-    99,1,0,0,0,0,0,0,0,0,0,0,0,10,0,0,
-    0,5,0,0,0,67,0,0,0,115,40,1,0,0,116,0,
-    106,1,106,2,100,1,117,0,114,10,116,3,100,2,131,1,
-    130,1,116,4,160,5,124,0,161,1,125,0,116,6,124,0,
-    131,1,92,2,125,1,125,2,100,3,125,3,116,0,106,7,
-    100,1,117,1,114,51,116,0,106,7,160,8,116,9,161,1,
-    125,4,124,1,160,10,124,4,116,11,23,0,161,1,114,51,
-    124,1,116,12,124,4,131,1,100,1,133,2,25,0,125,1,
-    100,4,125,3,124,3,115,72,116,6,124,1,131,1,92,2,
-    125,1,125,5,124,5,116,13,107,3,114,72,116,14,116,13,
-    155,0,100,5,124,0,155,2,157,3,131,1,130,1,124,2,
-    160,15,100,6,161,1,125,6,124,6,100,7,118,1,114,88,
-    116,14,100,8,124,2,155,2,157,2,131,1,130,1,124,6,
-    100,9,107,2,114,132,124,2,160,16,100,6,100,10,161,2,
-    100,11,25,0,125,7,124,7,160,10,116,17,161,1,115,112,
-    116,14,100,12,116,17,155,2,157,2,131,1,130,1,124,7,
-    116,12,116,17,131,1,100,1,133,2,25,0,125,8,124,8,
-    160,18,161,0,115,132,116,14,100,13,124,7,155,2,100,14,
-    157,3,131,1,130,1,124,2,160,19,100,6,161,1,100,15,
-    25,0,125,9,116,20,124,1,124,9,116,21,100,15,25,0,
-    23,0,131,2,83,0,41,16,97,110,1,0,0,71,105,118,
-    101,110,32,116,104,101,32,112,97,116,104,32,116,111,32,97,
-    32,46,112,121,99,46,32,102,105,108,101,44,32,114,101,116,
-    117,114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,
-    105,116,115,32,46,112,121,32,102,105,108,101,46,10,10,32,
-    32,32,32,84,104,101,32,46,112,121,99,32,102,105,108,101,
-    32,100,111,101,115,32,110,111,116,32,110,101,101,100,32,116,
-    111,32,101,120,105,115,116,59,32,116,104,105,115,32,115,105,
-    109,112,108,121,32,114,101,116,117,114,110,115,32,116,104,101,
-    32,112,97,116,104,32,116,111,10,32,32,32,32,116,104,101,
-    32,46,112,121,32,102,105,108,101,32,99,97,108,99,117,108,
-    97,116,101,100,32,116,111,32,99,111,114,114,101,115,112,111,
-    110,100,32,116,111,32,116,104,101,32,46,112,121,99,32,102,
-    105,108,101,46,32,32,73,102,32,112,97,116,104,32,100,111,
-    101,115,10,32,32,32,32,110,111,116,32,99,111,110,102,111,
-    114,109,32,116,111,32,80,69,80,32,51,49,52,55,47,52,
-    56,56,32,102,111,114,109,97,116,44,32,86,97,108,117,101,
-    69,114,114,111,114,32,119,105,108,108,32,98,101,32,114,97,
-    105,115,101,100,46,32,73,102,10,32,32,32,32,115,121,115,
-    46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,46,
-    99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,110,
-    101,32,116,104,101,110,32,78,111,116,73,109,112,108,101,109,
-    101,110,116,101,100,69,114,114,111,114,32,105,115,32,114,97,
-    105,115,101,100,46,10,10,32,32,32,32,78,114,98,0,0,
-    0,70,84,122,31,32,110,111,116,32,98,111,116,116,111,109,
-    45,108,101,118,101,108,32,100,105,114,101,99,116,111,114,121,
-    32,105,110,32,114,97,0,0,0,62,2,0,0,0,114,44,
-    0,0,0,233,3,0,0,0,122,29,101,120,112,101,99,116,
-    101,100,32,111,110,108,121,32,50,32,111,114,32,51,32,100,
-    111,116,115,32,105,110,32,114,122,0,0,0,114,44,0,0,
-    0,233,254,255,255,255,122,53,111,112,116,105,109,105,122,97,
-    116,105,111,110,32,112,111,114,116,105,111,110,32,111,102,32,
-    102,105,108,101,110,97,109,101,32,100,111,101,115,32,110,111,
-    116,32,115,116,97,114,116,32,119,105,116,104,32,122,19,111,
-    112,116,105,109,105,122,97,116,105,111,110,32,108,101,118,101,
-    108,32,122,29,32,105,115,32,110,111,116,32,97,110,32,97,
-    108,112,104,97,110,117,109,101,114,105,99,32,118,97,108,117,
-    101,114,0,0,0,0,41,22,114,15,0,0,0,114,105,0,
-    0,0,114,106,0,0,0,114,107,0,0,0,114,18,0,0,
-    0,114,103,0,0,0,114,74,0,0,0,114,114,0,0,0,
-    114,49,0,0,0,114,50,0,0,0,114,26,0,0,0,114,
-    59,0,0,0,114,4,0,0,0,114,116,0,0,0,114,111,
-    0,0,0,218,5,99,111,117,110,116,218,6,114,115,112,108,
-    105,116,114,112,0,0,0,114,110,0,0,0,218,9,112,97,
-    114,116,105,116,105,111,110,114,67,0,0,0,218,15,83,79,
-    85,82,67,69,95,83,85,70,70,73,88,69,83,41,10,114,
-    65,0,0,0,114,118,0,0,0,90,16,112,121,99,97,99,
-    104,101,95,102,105,108,101,110,97,109,101,90,23,102,111,117,
-    110,100,95,105,110,95,112,121,99,97,99,104,101,95,112,114,
-    101,102,105,120,90,13,115,116,114,105,112,112,101,100,95,112,
-    97,116,104,90,7,112,121,99,97,99,104,101,90,9,100,111,
-    116,95,99,111,117,110,116,114,96,0,0,0,90,9,111,112,
-    116,95,108,101,118,101,108,90,13,98,97,115,101,95,102,105,
-    108,101,110,97,109,101,114,7,0,0,0,114,7,0,0,0,
-    114,8,0,0,0,218,17,115,111,117,114,99,101,95,102,114,
-    111,109,95,99,97,99,104,101,195,1,0,0,115,60,0,0,
-    0,12,9,8,1,10,1,12,1,4,1,10,1,12,1,14,
-    1,16,1,4,1,4,1,12,1,8,1,8,1,2,1,8,
-    255,10,2,8,1,14,1,8,1,16,1,10,1,4,1,2,
-    1,8,255,16,2,8,1,16,1,14,2,18,1,114,128,0,
-    0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,5,
-    0,0,0,9,0,0,0,67,0,0,0,115,124,0,0,0,
-    116,0,124,0,131,1,100,1,107,2,114,8,100,2,83,0,
-    124,0,160,1,100,3,161,1,92,3,125,1,125,2,125,3,
-    124,1,114,28,124,3,160,2,161,0,100,4,100,5,133,2,
-    25,0,100,6,107,3,114,30,124,0,83,0,122,6,116,3,
-    124,0,131,1,125,4,87,0,110,17,4,0,116,4,116,5,
-    102,2,121,53,1,0,1,0,1,0,124,0,100,2,100,5,
-    133,2,25,0,125,4,89,0,110,1,119,0,116,6,124,4,
-    131,1,114,60,124,4,83,0,124,0,83,0,41,7,122,188,
-    67,111,110,118,101,114,116,32,97,32,98,121,116,101,99,111,
-    100,101,32,102,105,108,101,32,112,97,116,104,32,116,111,32,
-    97,32,115,111,117,114,99,101,32,112,97,116,104,32,40,105,
-    102,32,112,111,115,115,105,98,108,101,41,46,10,10,32,32,
-    32,32,84,104,105,115,32,102,117,110,99,116,105,111,110,32,
-    101,120,105,115,116,115,32,112,117,114,101,108,121,32,102,111,
-    114,32,98,97,99,107,119,97,114,100,115,45,99,111,109,112,
-    97,116,105,98,105,108,105,116,121,32,102,111,114,10,32,32,
-    32,32,80,121,73,109,112,111,114,116,95,69,120,101,99,67,
-    111,100,101,77,111,100,117,108,101,87,105,116,104,70,105,108,
-    101,110,97,109,101,115,40,41,32,105,110,32,116,104,101,32,
-    67,32,65,80,73,46,10,10,32,32,32,32,114,0,0,0,
-    0,78,114,97,0,0,0,233,253,255,255,255,233,255,255,255,
-    255,90,2,112,121,41,7,114,4,0,0,0,114,104,0,0,
-    0,218,5,108,111,119,101,114,114,128,0,0,0,114,107,0,
-    0,0,114,111,0,0,0,114,80,0,0,0,41,5,218,13,
-    98,121,116,101,99,111,100,101,95,112,97,116,104,114,119,0,
-    0,0,218,1,95,90,9,101,120,116,101,110,115,105,111,110,
-    218,11,115,111,117,114,99,101,95,112,97,116,104,114,7,0,
-    0,0,114,7,0,0,0,114,8,0,0,0,218,15,95,103,
-    101,116,95,115,111,117,114,99,101,102,105,108,101,235,1,0,
-    0,115,22,0,0,0,12,7,4,1,16,1,24,1,4,1,
-    2,1,12,1,16,1,16,1,2,255,16,2,114,135,0,0,
-    0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
-    0,0,8,0,0,0,67,0,0,0,115,68,0,0,0,124,
-    0,160,0,116,1,116,2,131,1,161,1,114,23,122,5,116,
-    3,124,0,131,1,87,0,83,0,4,0,116,4,121,22,1,
-    0,1,0,1,0,89,0,100,0,83,0,119,0,124,0,160,
-    0,116,1,116,5,131,1,161,1,114,32,124,0,83,0,100,
-    0,83,0,114,69,0,0,0,41,6,114,58,0,0,0,218,
-    5,116,117,112,108,101,114,127,0,0,0,114,121,0,0,0,
-    114,107,0,0,0,114,113,0,0,0,41,1,114,120,0,0,
-    0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    218,11,95,103,101,116,95,99,97,99,104,101,100,254,1,0,
-    0,115,18,0,0,0,14,1,2,1,10,1,12,1,6,1,
-    2,255,14,2,4,1,4,2,114,137,0,0,0,99,1,0,
-    0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0,
-    0,0,67,0,0,0,115,50,0,0,0,122,7,116,0,124,
-    0,131,1,106,1,125,1,87,0,110,11,4,0,116,2,121,
-    18,1,0,1,0,1,0,100,1,125,1,89,0,110,1,119,
-    0,124,1,100,2,79,0,125,1,124,1,83,0,41,4,122,
-    51,67,97,108,99,117,108,97,116,101,32,116,104,101,32,109,
-    111,100,101,32,112,101,114,109,105,115,115,105,111,110,115,32,
-    102,111,114,32,97,32,98,121,116,101,99,111,100,101,32,102,
-    105,108,101,46,114,87,0,0,0,233,128,0,0,0,78,41,
-    3,114,75,0,0,0,114,77,0,0,0,114,76,0,0,0,
-    41,2,114,65,0,0,0,114,78,0,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,218,10,95,99,97,
-    108,99,95,109,111,100,101,10,2,0,0,115,14,0,0,0,
-    2,2,14,1,12,1,8,1,2,255,8,4,4,1,114,139,
-    0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
-    3,0,0,0,4,0,0,0,3,0,0,0,115,52,0,0,
-    0,100,6,135,0,102,1,100,2,100,3,132,9,125,1,116,
-    0,100,1,117,1,114,15,116,0,106,1,125,2,110,4,100,
-    4,100,5,132,0,125,2,124,2,124,1,136,0,131,2,1,
-    0,124,1,83,0,41,7,122,252,68,101,99,111,114,97,116,
-    111,114,32,116,111,32,118,101,114,105,102,121,32,116,104,97,
-    116,32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,
-    110,103,32,114,101,113,117,101,115,116,101,100,32,109,97,116,
-    99,104,101,115,32,116,104,101,32,111,110,101,32,116,104,101,
-    10,32,32,32,32,108,111,97,100,101,114,32,99,97,110,32,
-    104,97,110,100,108,101,46,10,10,32,32,32,32,84,104,101,
-    32,102,105,114,115,116,32,97,114,103,117,109,101,110,116,32,
-    40,115,101,108,102,41,32,109,117,115,116,32,100,101,102,105,
-    110,101,32,95,110,97,109,101,32,119,104,105,99,104,32,116,
-    104,101,32,115,101,99,111,110,100,32,97,114,103,117,109,101,
-    110,116,32,105,115,10,32,32,32,32,99,111,109,112,97,114,
-    101,100,32,97,103,97,105,110,115,116,46,32,73,102,32,116,
-    104,101,32,99,111,109,112,97,114,105,115,111,110,32,102,97,
-    105,108,115,32,116,104,101,110,32,73,109,112,111,114,116,69,
-    114,114,111,114,32,105,115,32,114,97,105,115,101,100,46,10,
-    10,32,32,32,32,78,99,2,0,0,0,0,0,0,0,0,
-    0,0,0,4,0,0,0,4,0,0,0,31,0,0,0,115,
-    72,0,0,0,124,1,100,0,117,0,114,8,124,0,106,0,
-    125,1,110,16,124,0,106,0,124,1,107,3,114,24,116,1,
-    100,1,124,0,106,0,124,1,102,2,22,0,124,1,100,2,
-    141,2,130,1,136,0,124,0,124,1,103,2,124,2,162,1,
-    82,0,105,0,124,3,164,1,142,1,83,0,41,3,78,122,
-    30,108,111,97,100,101,114,32,102,111,114,32,37,115,32,99,
-    97,110,110,111,116,32,104,97,110,100,108,101,32,37,115,169,
-    1,218,4,110,97,109,101,41,2,114,141,0,0,0,218,11,
-    73,109,112,111,114,116,69,114,114,111,114,41,4,218,4,115,
-    101,108,102,114,141,0,0,0,218,4,97,114,103,115,218,6,
-    107,119,97,114,103,115,169,1,218,6,109,101,116,104,111,100,
-    114,7,0,0,0,114,8,0,0,0,218,19,95,99,104,101,
-    99,107,95,110,97,109,101,95,119,114,97,112,112,101,114,30,
-    2,0,0,115,18,0,0,0,8,1,8,1,10,1,4,1,
-    8,1,2,255,2,1,6,255,24,2,122,40,95,99,104,101,
-    99,107,95,110,97,109,101,46,60,108,111,99,97,108,115,62,
-    46,95,99,104,101,99,107,95,110,97,109,101,95,119,114,97,
-    112,112,101,114,99,2,0,0,0,0,0,0,0,0,0,0,
-    0,3,0,0,0,7,0,0,0,83,0,0,0,115,56,0,
-    0,0,100,1,68,0,93,16,125,2,116,0,124,1,124,2,
-    131,2,114,18,116,1,124,0,124,2,116,2,124,1,124,2,
-    131,2,131,3,1,0,113,2,124,0,106,3,160,4,124,1,
-    106,3,161,1,1,0,100,0,83,0,41,2,78,41,4,218,
-    10,95,95,109,111,100,117,108,101,95,95,218,8,95,95,110,
-    97,109,101,95,95,218,12,95,95,113,117,97,108,110,97,109,
-    101,95,95,218,7,95,95,100,111,99,95,95,41,5,218,7,
-    104,97,115,97,116,116,114,218,7,115,101,116,97,116,116,114,
-    218,7,103,101,116,97,116,116,114,218,8,95,95,100,105,99,
-    116,95,95,218,6,117,112,100,97,116,101,41,3,90,3,110,
-    101,119,90,3,111,108,100,114,85,0,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,218,5,95,119,114,
-    97,112,43,2,0,0,115,10,0,0,0,8,1,10,1,18,
-    1,2,128,18,1,122,26,95,99,104,101,99,107,95,110,97,
-    109,101,46,60,108,111,99,97,108,115,62,46,95,119,114,97,
-    112,114,69,0,0,0,41,2,218,10,95,98,111,111,116,115,
-    116,114,97,112,114,158,0,0,0,41,3,114,147,0,0,0,
-    114,148,0,0,0,114,158,0,0,0,114,7,0,0,0,114,
-    146,0,0,0,114,8,0,0,0,218,11,95,99,104,101,99,
-    107,95,110,97,109,101,22,2,0,0,115,12,0,0,0,14,
-    8,8,10,8,1,8,2,10,6,4,1,114,160,0,0,0,
-    99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,
-    0,6,0,0,0,67,0,0,0,115,72,0,0,0,116,0,
-    160,1,100,1,116,2,161,2,1,0,124,0,160,3,124,1,
-    161,1,92,2,125,2,125,3,124,2,100,2,117,0,114,34,
-    116,4,124,3,131,1,114,34,100,3,125,4,116,0,160,1,
-    124,4,160,5,124,3,100,4,25,0,161,1,116,6,161,2,
-    1,0,124,2,83,0,41,5,122,155,84,114,121,32,116,111,
-    32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,102,
-    111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
-    32,109,111,100,117,108,101,32,98,121,32,100,101,108,101,103,
-    97,116,105,110,103,32,116,111,10,32,32,32,32,115,101,108,
-    102,46,102,105,110,100,95,108,111,97,100,101,114,40,41,46,
-    10,10,32,32,32,32,84,104,105,115,32,109,101,116,104,111,
-    100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,
-    105,110,32,102,97,118,111,114,32,111,102,32,102,105,110,100,
-    101,114,46,102,105,110,100,95,115,112,101,99,40,41,46,10,
-    10,32,32,32,32,122,90,102,105,110,100,95,109,111,100,117,
-    108,101,40,41,32,105,115,32,100,101,112,114,101,99,97,116,
-    101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,111,
-    114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,116,
-    104,111,110,32,51,46,49,50,59,32,117,115,101,32,102,105,
-    110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,
-    100,78,122,44,78,111,116,32,105,109,112,111,114,116,105,110,
-    103,32,100,105,114,101,99,116,111,114,121,32,123,125,58,32,
-    109,105,115,115,105,110,103,32,95,95,105,110,105,116,95,95,
-    114,0,0,0,0,41,7,114,99,0,0,0,114,100,0,0,
-    0,114,101,0,0,0,218,11,102,105,110,100,95,108,111,97,
-    100,101,114,114,4,0,0,0,114,89,0,0,0,218,13,73,
-    109,112,111,114,116,87,97,114,110,105,110,103,41,5,114,143,
-    0,0,0,218,8,102,117,108,108,110,97,109,101,218,6,108,
-    111,97,100,101,114,218,8,112,111,114,116,105,111,110,115,218,
-    3,109,115,103,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,
-    101,95,115,104,105,109,53,2,0,0,115,16,0,0,0,6,
-    7,2,2,4,254,14,6,16,1,4,1,22,1,4,1,114,
-    167,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,
-    0,6,0,0,0,4,0,0,0,67,0,0,0,115,166,0,
-    0,0,124,0,100,1,100,2,133,2,25,0,125,3,124,3,
-    116,0,107,3,114,32,100,3,124,1,155,2,100,4,124,3,
-    155,2,157,4,125,4,116,1,160,2,100,5,124,4,161,2,
-    1,0,116,3,124,4,102,1,105,0,124,2,164,1,142,1,
-    130,1,116,4,124,0,131,1,100,6,107,0,114,53,100,7,
-    124,1,155,2,157,2,125,4,116,1,160,2,100,5,124,4,
-    161,2,1,0,116,5,124,4,131,1,130,1,116,6,124,0,
-    100,2,100,8,133,2,25,0,131,1,125,5,124,5,100,9,
-    64,0,114,81,100,10,124,5,155,2,100,11,124,1,155,2,
-    157,4,125,4,116,3,124,4,102,1,105,0,124,2,164,1,
-    142,1,130,1,124,5,83,0,41,12,97,84,2,0,0,80,
-    101,114,102,111,114,109,32,98,97,115,105,99,32,118,97,108,
-    105,100,105,116,121,32,99,104,101,99,107,105,110,103,32,111,
-    102,32,97,32,112,121,99,32,104,101,97,100,101,114,32,97,
-    110,100,32,114,101,116,117,114,110,32,116,104,101,32,102,108,
-    97,103,115,32,102,105,101,108,100,44,10,32,32,32,32,119,
-    104,105,99,104,32,100,101,116,101,114,109,105,110,101,115,32,
-    104,111,119,32,116,104,101,32,112,121,99,32,115,104,111,117,
-    108,100,32,98,101,32,102,117,114,116,104,101,114,32,118,97,
-    108,105,100,97,116,101,100,32,97,103,97,105,110,115,116,32,
-    116,104,101,32,115,111,117,114,99,101,46,10,10,32,32,32,
-    32,42,100,97,116,97,42,32,105,115,32,116,104,101,32,99,
-    111,110,116,101,110,116,115,32,111,102,32,116,104,101,32,112,
-    121,99,32,102,105,108,101,46,32,40,79,110,108,121,32,116,
-    104,101,32,102,105,114,115,116,32,49,54,32,98,121,116,101,
-    115,32,97,114,101,10,32,32,32,32,114,101,113,117,105,114,
-    101,100,44,32,116,104,111,117,103,104,46,41,10,10,32,32,
-    32,32,42,110,97,109,101,42,32,105,115,32,116,104,101,32,
-    110,97,109,101,32,111,102,32,116,104,101,32,109,111,100,117,
-    108,101,32,98,101,105,110,103,32,105,109,112,111,114,116,101,
-    100,46,32,73,116,32,105,115,32,117,115,101,100,32,102,111,
-    114,32,108,111,103,103,105,110,103,46,10,10,32,32,32,32,
-    42,101,120,99,95,100,101,116,97,105,108,115,42,32,105,115,
-    32,97,32,100,105,99,116,105,111,110,97,114,121,32,112,97,
-    115,115,101,100,32,116,111,32,73,109,112,111,114,116,69,114,
-    114,111,114,32,105,102,32,105,116,32,114,97,105,115,101,100,
-    32,102,111,114,10,32,32,32,32,105,109,112,114,111,118,101,
-    100,32,100,101,98,117,103,103,105,110,103,46,10,10,32,32,
-    32,32,73,109,112,111,114,116,69,114,114,111,114,32,105,115,
-    32,114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,
-    32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,115,
-    32,105,110,99,111,114,114,101,99,116,32,111,114,32,119,104,
-    101,110,32,116,104,101,32,102,108,97,103,115,10,32,32,32,
-    32,102,105,101,108,100,32,105,115,32,105,110,118,97,108,105,
-    100,46,32,69,79,70,69,114,114,111,114,32,105,115,32,114,
-    97,105,115,101,100,32,119,104,101,110,32,116,104,101,32,100,
-    97,116,97,32,105,115,32,102,111,117,110,100,32,116,111,32,
-    98,101,32,116,114,117,110,99,97,116,101,100,46,10,10,32,
-    32,32,32,78,114,31,0,0,0,122,20,98,97,100,32,109,
-    97,103,105,99,32,110,117,109,98,101,114,32,105,110,32,122,
-    2,58,32,250,2,123,125,233,16,0,0,0,122,40,114,101,
-    97,99,104,101,100,32,69,79,70,32,119,104,105,108,101,32,
-    114,101,97,100,105,110,103,32,112,121,99,32,104,101,97,100,
-    101,114,32,111,102,32,233,8,0,0,0,233,252,255,255,255,
-    122,14,105,110,118,97,108,105,100,32,102,108,97,103,115,32,
-    122,4,32,105,110,32,41,7,218,12,77,65,71,73,67,95,
-    78,85,77,66,69,82,114,159,0,0,0,218,16,95,118,101,
-    114,98,111,115,101,95,109,101,115,115,97,103,101,114,142,0,
-    0,0,114,4,0,0,0,218,8,69,79,70,69,114,114,111,
-    114,114,42,0,0,0,41,6,114,41,0,0,0,114,141,0,
-    0,0,218,11,101,120,99,95,100,101,116,97,105,108,115,90,
-    5,109,97,103,105,99,114,117,0,0,0,114,16,0,0,0,
+    32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,114,
+    98,0,0,0,70,84,122,31,32,110,111,116,32,98,111,116,
+    116,111,109,45,108,101,118,101,108,32,100,105,114,101,99,116,
+    111,114,121,32,105,110,32,114,97,0,0,0,62,2,0,0,
+    0,114,44,0,0,0,233,3,0,0,0,122,29,101,120,112,
+    101,99,116,101,100,32,111,110,108,121,32,50,32,111,114,32,
+    51,32,100,111,116,115,32,105,110,32,114,122,0,0,0,114,
+    44,0,0,0,233,254,255,255,255,122,53,111,112,116,105,109,
+    105,122,97,116,105,111,110,32,112,111,114,116,105,111,110,32,
+    111,102,32,102,105,108,101,110,97,109,101,32,100,111,101,115,
+    32,110,111,116,32,115,116,97,114,116,32,119,105,116,104,32,
+    122,19,111,112,116,105,109,105,122,97,116,105,111,110,32,108,
+    101,118,101,108,32,122,29,32,105,115,32,110,111,116,32,97,
+    110,32,97,108,112,104,97,110,117,109,101,114,105,99,32,118,
+    97,108,117,101,114,0,0,0,0,41,22,114,15,0,0,0,
+    114,105,0,0,0,114,106,0,0,0,114,107,0,0,0,114,
+    18,0,0,0,114,103,0,0,0,114,74,0,0,0,114,114,
+    0,0,0,114,49,0,0,0,114,50,0,0,0,114,26,0,
+    0,0,114,59,0,0,0,114,4,0,0,0,114,116,0,0,
+    0,114,111,0,0,0,218,5,99,111,117,110,116,218,6,114,
+    115,112,108,105,116,114,112,0,0,0,114,110,0,0,0,218,
+    9,112,97,114,116,105,116,105,111,110,114,67,0,0,0,218,
+    15,83,79,85,82,67,69,95,83,85,70,70,73,88,69,83,
+    41,10,114,65,0,0,0,114,118,0,0,0,90,16,112,121,
+    99,97,99,104,101,95,102,105,108,101,110,97,109,101,90,23,
+    102,111,117,110,100,95,105,110,95,112,121,99,97,99,104,101,
+    95,112,114,101,102,105,120,90,13,115,116,114,105,112,112,101,
+    100,95,112,97,116,104,90,7,112,121,99,97,99,104,101,90,
+    9,100,111,116,95,99,111,117,110,116,114,96,0,0,0,90,
+    9,111,112,116,95,108,101,118,101,108,90,13,98,97,115,101,
+    95,102,105,108,101,110,97,109,101,114,7,0,0,0,114,7,
+    0,0,0,114,8,0,0,0,218,17,115,111,117,114,99,101,
+    95,102,114,111,109,95,99,97,99,104,101,195,1,0,0,115,
+    60,0,0,0,12,9,8,1,10,1,12,1,4,1,10,1,
+    12,1,14,1,16,1,4,1,4,1,12,1,8,1,8,1,
+    2,1,8,255,10,2,8,1,14,1,8,1,16,1,10,1,
+    4,1,2,1,8,255,16,2,8,1,16,1,14,2,18,1,
+    114,128,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+    0,0,5,0,0,0,9,0,0,0,67,0,0,0,115,124,
+    0,0,0,116,0,124,0,131,1,100,1,107,2,114,8,100,
+    2,83,0,124,0,160,1,100,3,161,1,92,3,125,1,125,
+    2,125,3,124,1,114,28,124,3,160,2,161,0,100,4,100,
+    5,133,2,25,0,100,6,107,3,114,30,124,0,83,0,122,
+    6,116,3,124,0,131,1,125,4,87,0,110,17,4,0,116,
+    4,116,5,102,2,121,53,1,0,1,0,1,0,124,0,100,
+    2,100,5,133,2,25,0,125,4,89,0,110,1,119,0,116,
+    6,124,4,131,1,114,60,124,4,83,0,124,0,83,0,41,
+    7,122,188,67,111,110,118,101,114,116,32,97,32,98,121,116,
+    101,99,111,100,101,32,102,105,108,101,32,112,97,116,104,32,
+    116,111,32,97,32,115,111,117,114,99,101,32,112,97,116,104,
+    32,40,105,102,32,112,111,115,115,105,98,108,101,41,46,10,
+    10,32,32,32,32,84,104,105,115,32,102,117,110,99,116,105,
+    111,110,32,101,120,105,115,116,115,32,112,117,114,101,108,121,
+    32,102,111,114,32,98,97,99,107,119,97,114,100,115,45,99,
+    111,109,112,97,116,105,98,105,108,105,116,121,32,102,111,114,
+    10,32,32,32,32,80,121,73,109,112,111,114,116,95,69,120,
+    101,99,67,111,100,101,77,111,100,117,108,101,87,105,116,104,
+    70,105,108,101,110,97,109,101,115,40,41,32,105,110,32,116,
+    104,101,32,67,32,65,80,73,46,10,10,32,32,32,32,114,
+    0,0,0,0,78,114,97,0,0,0,233,253,255,255,255,233,
+    255,255,255,255,90,2,112,121,41,7,114,4,0,0,0,114,
+    104,0,0,0,218,5,108,111,119,101,114,114,128,0,0,0,
+    114,107,0,0,0,114,111,0,0,0,114,80,0,0,0,41,
+    5,218,13,98,121,116,101,99,111,100,101,95,112,97,116,104,
+    114,119,0,0,0,218,1,95,90,9,101,120,116,101,110,115,
+    105,111,110,218,11,115,111,117,114,99,101,95,112,97,116,104,
     114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
-    13,95,99,108,97,115,115,105,102,121,95,112,121,99,73,2,
-    0,0,115,28,0,0,0,12,16,8,1,16,1,12,1,16,
-    1,12,1,10,1,12,1,8,1,16,1,8,2,16,1,16,
-    1,4,1,114,176,0,0,0,99,5,0,0,0,0,0,0,
-    0,0,0,0,0,6,0,0,0,4,0,0,0,67,0,0,
-    0,115,124,0,0,0,116,0,124,0,100,1,100,2,133,2,
-    25,0,131,1,124,1,100,3,64,0,107,3,114,31,100,4,
-    124,3,155,2,157,2,125,5,116,1,160,2,100,5,124,5,
-    161,2,1,0,116,3,124,5,102,1,105,0,124,4,164,1,
-    142,1,130,1,124,2,100,6,117,1,114,58,116,0,124,0,
-    100,2,100,7,133,2,25,0,131,1,124,2,100,3,64,0,
-    107,3,114,60,116,3,100,4,124,3,155,2,157,2,102,1,
-    105,0,124,4,164,1,142,1,130,1,100,6,83,0,100,6,
-    83,0,41,8,97,7,2,0,0,86,97,108,105,100,97,116,
-    101,32,97,32,112,121,99,32,97,103,97,105,110,115,116,32,
-    116,104,101,32,115,111,117,114,99,101,32,108,97,115,116,45,
-    109,111,100,105,102,105,101,100,32,116,105,109,101,46,10,10,
-    32,32,32,32,42,100,97,116,97,42,32,105,115,32,116,104,
-    101,32,99,111,110,116,101,110,116,115,32,111,102,32,116,104,
-    101,32,112,121,99,32,102,105,108,101,46,32,40,79,110,108,
-    121,32,116,104,101,32,102,105,114,115,116,32,49,54,32,98,
-    121,116,101,115,32,97,114,101,10,32,32,32,32,114,101,113,
-    117,105,114,101,100,46,41,10,10,32,32,32,32,42,115,111,
-    117,114,99,101,95,109,116,105,109,101,42,32,105,115,32,116,
-    104,101,32,108,97,115,116,32,109,111,100,105,102,105,101,100,
-    32,116,105,109,101,115,116,97,109,112,32,111,102,32,116,104,
-    101,32,115,111,117,114,99,101,32,102,105,108,101,46,10,10,
-    32,32,32,32,42,115,111,117,114,99,101,95,115,105,122,101,
-    42,32,105,115,32,78,111,110,101,32,111,114,32,116,104,101,
-    32,115,105,122,101,32,111,102,32,116,104,101,32,115,111,117,
-    114,99,101,32,102,105,108,101,32,105,110,32,98,121,116,101,
-    115,46,10,10,32,32,32,32,42,110,97,109,101,42,32,105,
-    115,32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,
-    101,32,109,111,100,117,108,101,32,98,101,105,110,103,32,105,
-    109,112,111,114,116,101,100,46,32,73,116,32,105,115,32,117,
-    115,101,100,32,102,111,114,32,108,111,103,103,105,110,103,46,
-    10,10,32,32,32,32,42,101,120,99,95,100,101,116,97,105,
-    108,115,42,32,105,115,32,97,32,100,105,99,116,105,111,110,
-    97,114,121,32,112,97,115,115,101,100,32,116,111,32,73,109,
-    112,111,114,116,69,114,114,111,114,32,105,102,32,105,116,32,
-    114,97,105,115,101,100,32,102,111,114,10,32,32,32,32,105,
-    109,112,114,111,118,101,100,32,100,101,98,117,103,103,105,110,
-    103,46,10,10,32,32,32,32,65,110,32,73,109,112,111,114,
+    15,95,103,101,116,95,115,111,117,114,99,101,102,105,108,101,
+    235,1,0,0,115,22,0,0,0,12,7,4,1,16,1,24,
+    1,4,1,2,1,12,1,16,1,16,1,2,255,16,2,114,
+    135,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+    0,1,0,0,0,8,0,0,0,67,0,0,0,115,68,0,
+    0,0,124,0,160,0,116,1,116,2,131,1,161,1,114,23,
+    122,5,116,3,124,0,131,1,87,0,83,0,4,0,116,4,
+    121,22,1,0,1,0,1,0,89,0,100,0,83,0,119,0,
+    124,0,160,0,116,1,116,5,131,1,161,1,114,32,124,0,
+    83,0,100,0,83,0,114,69,0,0,0,41,6,114,58,0,
+    0,0,218,5,116,117,112,108,101,114,127,0,0,0,114,121,
+    0,0,0,114,107,0,0,0,114,113,0,0,0,41,1,114,
+    120,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,218,11,95,103,101,116,95,99,97,99,104,101,100,
+    254,1,0,0,115,18,0,0,0,14,1,2,1,10,1,12,
+    1,6,1,2,255,14,2,4,1,4,2,114,137,0,0,0,
+    99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+    0,8,0,0,0,67,0,0,0,115,50,0,0,0,122,7,
+    116,0,124,0,131,1,106,1,125,1,87,0,110,11,4,0,
+    116,2,121,18,1,0,1,0,1,0,100,1,125,1,89,0,
+    110,1,119,0,124,1,100,2,79,0,125,1,124,1,83,0,
+    41,3,122,51,67,97,108,99,117,108,97,116,101,32,116,104,
+    101,32,109,111,100,101,32,112,101,114,109,105,115,115,105,111,
+    110,115,32,102,111,114,32,97,32,98,121,116,101,99,111,100,
+    101,32,102,105,108,101,46,114,87,0,0,0,233,128,0,0,
+    0,41,3,114,75,0,0,0,114,77,0,0,0,114,76,0,
+    0,0,41,2,114,65,0,0,0,114,78,0,0,0,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,218,10,95,
+    99,97,108,99,95,109,111,100,101,10,2,0,0,115,14,0,
+    0,0,2,2,14,1,12,1,8,1,2,255,8,4,4,1,
+    114,139,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+    0,0,3,0,0,0,4,0,0,0,3,0,0,0,115,52,
+    0,0,0,100,6,135,0,102,1,100,2,100,3,132,9,125,
+    1,116,0,100,1,117,1,114,15,116,0,106,1,125,2,110,
+    4,100,4,100,5,132,0,125,2,124,2,124,1,136,0,131,
+    2,1,0,124,1,83,0,41,7,122,252,68,101,99,111,114,
+    97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,116,
+    104,97,116,32,116,104,101,32,109,111,100,117,108,101,32,98,
+    101,105,110,103,32,114,101,113,117,101,115,116,101,100,32,109,
+    97,116,99,104,101,115,32,116,104,101,32,111,110,101,32,116,
+    104,101,10,32,32,32,32,108,111,97,100,101,114,32,99,97,
+    110,32,104,97,110,100,108,101,46,10,10,32,32,32,32,84,
+    104,101,32,102,105,114,115,116,32,97,114,103,117,109,101,110,
+    116,32,40,115,101,108,102,41,32,109,117,115,116,32,100,101,
+    102,105,110,101,32,95,110,97,109,101,32,119,104,105,99,104,
+    32,116,104,101,32,115,101,99,111,110,100,32,97,114,103,117,
+    109,101,110,116,32,105,115,10,32,32,32,32,99,111,109,112,
+    97,114,101,100,32,97,103,97,105,110,115,116,46,32,73,102,
+    32,116,104,101,32,99,111,109,112,97,114,105,115,111,110,32,
+    102,97,105,108,115,32,116,104,101,110,32,73,109,112,111,114,
     116,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100,
-    32,105,102,32,116,104,101,32,98,121,116,101,99,111,100,101,
-    32,105,115,32,115,116,97,108,101,46,10,10,32,32,32,32,
-    114,170,0,0,0,233,12,0,0,0,114,30,0,0,0,122,
-    22,98,121,116,101,99,111,100,101,32,105,115,32,115,116,97,
-    108,101,32,102,111,114,32,114,168,0,0,0,78,114,169,0,
-    0,0,41,4,114,42,0,0,0,114,159,0,0,0,114,173,
-    0,0,0,114,142,0,0,0,41,6,114,41,0,0,0,218,
-    12,115,111,117,114,99,101,95,109,116,105,109,101,218,11,115,
-    111,117,114,99,101,95,115,105,122,101,114,141,0,0,0,114,
-    175,0,0,0,114,117,0,0,0,114,7,0,0,0,114,7,
-    0,0,0,114,8,0,0,0,218,23,95,118,97,108,105,100,
-    97,116,101,95,116,105,109,101,115,116,97,109,112,95,112,121,
-    99,106,2,0,0,115,18,0,0,0,24,19,10,1,12,1,
-    16,1,8,1,22,1,2,255,22,2,8,254,114,180,0,0,
-    0,99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,
-    0,0,4,0,0,0,67,0,0,0,115,42,0,0,0,124,
-    0,100,1,100,2,133,2,25,0,124,1,107,3,114,19,116,
-    0,100,3,124,2,155,2,157,2,102,1,105,0,124,3,164,
-    1,142,1,130,1,100,4,83,0,41,5,97,243,1,0,0,
-    86,97,108,105,100,97,116,101,32,97,32,104,97,115,104,45,
-    98,97,115,101,100,32,112,121,99,32,98,121,32,99,104,101,
-    99,107,105,110,103,32,116,104,101,32,114,101,97,108,32,115,
-    111,117,114,99,101,32,104,97,115,104,32,97,103,97,105,110,
-    115,116,32,116,104,101,32,111,110,101,32,105,110,10,32,32,
-    32,32,116,104,101,32,112,121,99,32,104,101,97,100,101,114,
-    46,10,10,32,32,32,32,42,100,97,116,97,42,32,105,115,
-    32,116,104,101,32,99,111,110,116,101,110,116,115,32,111,102,
-    32,116,104,101,32,112,121,99,32,102,105,108,101,46,32,40,
-    79,110,108,121,32,116,104,101,32,102,105,114,115,116,32,49,
-    54,32,98,121,116,101,115,32,97,114,101,10,32,32,32,32,
-    114,101,113,117,105,114,101,100,46,41,10,10,32,32,32,32,
-    42,115,111,117,114,99,101,95,104,97,115,104,42,32,105,115,
-    32,116,104,101,32,105,109,112,111,114,116,108,105,98,46,117,
-    116,105,108,46,115,111,117,114,99,101,95,104,97,115,104,40,
-    41,32,111,102,32,116,104,101,32,115,111,117,114,99,101,32,
-    102,105,108,101,46,10,10,32,32,32,32,42,110,97,109,101,
-    42,32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,
-    32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,
-    103,32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,
-    115,32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,
-    110,103,46,10,10,32,32,32,32,42,101,120,99,95,100,101,
-    116,97,105,108,115,42,32,105,115,32,97,32,100,105,99,116,
-    105,111,110,97,114,121,32,112,97,115,115,101,100,32,116,111,
-    32,73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,
-    105,116,32,114,97,105,115,101,100,32,102,111,114,10,32,32,
-    32,32,105,109,112,114,111,118,101,100,32,100,101,98,117,103,
-    103,105,110,103,46,10,10,32,32,32,32,65,110,32,73,109,
-    112,111,114,116,69,114,114,111,114,32,105,115,32,114,97,105,
-    115,101,100,32,105,102,32,116,104,101,32,98,121,116,101,99,
-    111,100,101,32,105,115,32,115,116,97,108,101,46,10,10,32,
-    32,32,32,114,170,0,0,0,114,169,0,0,0,122,46,104,
-    97,115,104,32,105,110,32,98,121,116,101,99,111,100,101,32,
-    100,111,101,115,110,39,116,32,109,97,116,99,104,32,104,97,
-    115,104,32,111,102,32,115,111,117,114,99,101,32,78,41,1,
-    114,142,0,0,0,41,4,114,41,0,0,0,218,11,115,111,
-    117,114,99,101,95,104,97,115,104,114,141,0,0,0,114,175,
-    0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,218,18,95,118,97,108,105,100,97,116,101,95,104,97,
-    115,104,95,112,121,99,134,2,0,0,115,14,0,0,0,16,
-    17,2,1,8,1,4,255,2,2,6,254,4,255,114,182,0,
-    0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,5,
-    0,0,0,5,0,0,0,67,0,0,0,115,76,0,0,0,
-    116,0,160,1,124,0,161,1,125,4,116,2,124,4,116,3,
-    131,2,114,28,116,4,160,5,100,1,124,2,161,2,1,0,
-    124,3,100,2,117,1,114,26,116,6,160,7,124,4,124,3,
-    161,2,1,0,124,4,83,0,116,8,100,3,160,9,124,2,
-    161,1,124,1,124,2,100,4,141,3,130,1,41,5,122,35,
-    67,111,109,112,105,108,101,32,98,121,116,101,99,111,100,101,
-    32,97,115,32,102,111,117,110,100,32,105,110,32,97,32,112,
-    121,99,46,122,21,99,111,100,101,32,111,98,106,101,99,116,
-    32,102,114,111,109,32,123,33,114,125,78,122,23,78,111,110,
-    45,99,111,100,101,32,111,98,106,101,99,116,32,105,110,32,
-    123,33,114,125,169,2,114,141,0,0,0,114,65,0,0,0,
-    41,10,218,7,109,97,114,115,104,97,108,90,5,108,111,97,
-    100,115,218,10,105,115,105,110,115,116,97,110,99,101,218,10,
-    95,99,111,100,101,95,116,121,112,101,114,159,0,0,0,114,
-    173,0,0,0,218,4,95,105,109,112,90,16,95,102,105,120,
-    95,99,111,95,102,105,108,101,110,97,109,101,114,142,0,0,
-    0,114,89,0,0,0,41,5,114,41,0,0,0,114,141,0,
-    0,0,114,132,0,0,0,114,134,0,0,0,218,4,99,111,
-    100,101,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,218,17,95,99,111,109,112,105,108,101,95,98,121,116,101,
-    99,111,100,101,158,2,0,0,115,18,0,0,0,10,2,10,
-    1,12,1,8,1,12,1,4,1,10,2,4,1,6,255,114,
-    189,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,
-    0,4,0,0,0,5,0,0,0,67,0,0,0,115,70,0,
-    0,0,116,0,116,1,131,1,125,3,124,3,160,2,116,3,
-    100,1,131,1,161,1,1,0,124,3,160,2,116,3,124,1,
-    131,1,161,1,1,0,124,3,160,2,116,3,124,2,131,1,
-    161,1,1,0,124,3,160,2,116,4,160,5,124,0,161,1,
-    161,1,1,0,124,3,83,0,41,3,122,43,80,114,111,100,
-    117,99,101,32,116,104,101,32,100,97,116,97,32,102,111,114,
-    32,97,32,116,105,109,101,115,116,97,109,112,45,98,97,115,
-    101,100,32,112,121,99,46,114,0,0,0,0,78,41,6,218,
-    9,98,121,116,101,97,114,114,97,121,114,172,0,0,0,218,
-    6,101,120,116,101,110,100,114,36,0,0,0,114,184,0,0,
-    0,218,5,100,117,109,112,115,41,4,114,188,0,0,0,218,
-    5,109,116,105,109,101,114,179,0,0,0,114,41,0,0,0,
-    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
-    22,95,99,111,100,101,95,116,111,95,116,105,109,101,115,116,
-    97,109,112,95,112,121,99,171,2,0,0,115,12,0,0,0,
-    8,2,14,1,14,1,14,1,16,1,4,1,114,194,0,0,
-    0,84,99,3,0,0,0,0,0,0,0,0,0,0,0,5,
-    0,0,0,5,0,0,0,67,0,0,0,115,80,0,0,0,
-    116,0,116,1,131,1,125,3,100,1,124,2,100,1,62,0,
-    66,0,125,4,124,3,160,2,116,3,124,4,131,1,161,1,
-    1,0,116,4,124,1,131,1,100,2,107,2,115,25,74,0,
-    130,1,124,3,160,2,124,1,161,1,1,0,124,3,160,2,
-    116,5,160,6,124,0,161,1,161,1,1,0,124,3,83,0,
-    41,4,122,38,80,114,111,100,117,99,101,32,116,104,101,32,
-    100,97,116,97,32,102,111,114,32,97,32,104,97,115,104,45,
-    98,97,115,101,100,32,112,121,99,46,114,3,0,0,0,114,
-    170,0,0,0,78,41,7,114,190,0,0,0,114,172,0,0,
+    46,10,10,32,32,32,32,78,99,2,0,0,0,0,0,0,
+    0,0,0,0,0,4,0,0,0,4,0,0,0,31,0,0,
+    0,115,72,0,0,0,124,1,100,0,117,0,114,8,124,0,
+    106,0,125,1,110,16,124,0,106,0,124,1,107,3,114,24,
+    116,1,100,1,124,0,106,0,124,1,102,2,22,0,124,1,
+    100,2,141,2,130,1,136,0,124,0,124,1,103,2,124,2,
+    162,1,82,0,105,0,124,3,164,1,142,1,83,0,41,3,
+    78,122,30,108,111,97,100,101,114,32,102,111,114,32,37,115,
+    32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,37,
+    115,169,1,218,4,110,97,109,101,41,2,114,141,0,0,0,
+    218,11,73,109,112,111,114,116,69,114,114,111,114,41,4,218,
+    4,115,101,108,102,114,141,0,0,0,218,4,97,114,103,115,
+    218,6,107,119,97,114,103,115,169,1,218,6,109,101,116,104,
+    111,100,114,7,0,0,0,114,8,0,0,0,218,19,95,99,
+    104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,
+    114,30,2,0,0,115,18,0,0,0,8,1,8,1,10,1,
+    4,1,8,1,2,255,2,1,6,255,24,2,122,40,95,99,
+    104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,
+    115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,119,
+    114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,0,
+    0,0,0,3,0,0,0,7,0,0,0,83,0,0,0,115,
+    56,0,0,0,100,1,68,0,93,16,125,2,116,0,124,1,
+    124,2,131,2,114,18,116,1,124,0,124,2,116,2,124,1,
+    124,2,131,2,131,3,1,0,113,2,124,0,106,3,160,4,
+    124,1,106,3,161,1,1,0,100,0,83,0,41,2,78,41,
+    4,218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,
+    95,110,97,109,101,95,95,218,12,95,95,113,117,97,108,110,
+    97,109,101,95,95,218,7,95,95,100,111,99,95,95,41,5,
+    218,7,104,97,115,97,116,116,114,218,7,115,101,116,97,116,
+    116,114,218,7,103,101,116,97,116,116,114,218,8,95,95,100,
+    105,99,116,95,95,218,6,117,112,100,97,116,101,41,3,90,
+    3,110,101,119,90,3,111,108,100,114,85,0,0,0,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,218,5,95,
+    119,114,97,112,43,2,0,0,115,10,0,0,0,8,1,10,
+    1,18,1,2,128,18,1,122,26,95,99,104,101,99,107,95,
+    110,97,109,101,46,60,108,111,99,97,108,115,62,46,95,119,
+    114,97,112,114,69,0,0,0,41,2,218,10,95,98,111,111,
+    116,115,116,114,97,112,114,158,0,0,0,41,3,114,147,0,
+    0,0,114,148,0,0,0,114,158,0,0,0,114,7,0,0,
+    0,114,146,0,0,0,114,8,0,0,0,218,11,95,99,104,
+    101,99,107,95,110,97,109,101,22,2,0,0,115,12,0,0,
+    0,14,8,8,10,8,1,8,2,10,6,4,1,114,160,0,
+    0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,5,
+    0,0,0,6,0,0,0,67,0,0,0,115,72,0,0,0,
+    116,0,160,1,100,1,116,2,161,2,1,0,124,0,160,3,
+    124,1,161,1,92,2,125,2,125,3,124,2,100,2,117,0,
+    114,34,116,4,124,3,131,1,114,34,100,3,125,4,116,0,
+    160,1,124,4,160,5,124,3,100,4,25,0,161,1,116,6,
+    161,2,1,0,124,2,83,0,41,5,122,155,84,114,121,32,
+    116,111,32,102,105,110,100,32,97,32,108,111,97,100,101,114,
+    32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,
+    101,100,32,109,111,100,117,108,101,32,98,121,32,100,101,108,
+    101,103,97,116,105,110,103,32,116,111,10,32,32,32,32,115,
+    101,108,102,46,102,105,110,100,95,108,111,97,100,101,114,40,
+    41,46,10,10,32,32,32,32,84,104,105,115,32,109,101,116,
+    104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,
+    100,32,105,110,32,102,97,118,111,114,32,111,102,32,102,105,
+    110,100,101,114,46,102,105,110,100,95,115,112,101,99,40,41,
+    46,10,10,32,32,32,32,122,90,102,105,110,100,95,109,111,
+    100,117,108,101,40,41,32,105,115,32,100,101,112,114,101,99,
+    97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,
+    102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,
+    121,116,104,111,110,32,51,46,49,50,59,32,117,115,101,32,
+    102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,
+    101,97,100,78,122,44,78,111,116,32,105,109,112,111,114,116,
+    105,110,103,32,100,105,114,101,99,116,111,114,121,32,123,125,
+    58,32,109,105,115,115,105,110,103,32,95,95,105,110,105,116,
+    95,95,114,0,0,0,0,41,7,114,99,0,0,0,114,100,
+    0,0,0,114,101,0,0,0,218,11,102,105,110,100,95,108,
+    111,97,100,101,114,114,4,0,0,0,114,89,0,0,0,218,
+    13,73,109,112,111,114,116,87,97,114,110,105,110,103,41,5,
+    114,143,0,0,0,218,8,102,117,108,108,110,97,109,101,218,
+    6,108,111,97,100,101,114,218,8,112,111,114,116,105,111,110,
+    115,218,3,109,115,103,114,7,0,0,0,114,7,0,0,0,
+    114,8,0,0,0,218,17,95,102,105,110,100,95,109,111,100,
+    117,108,101,95,115,104,105,109,53,2,0,0,115,16,0,0,
+    0,6,7,2,2,4,254,14,6,16,1,4,1,22,1,4,
+    1,114,167,0,0,0,99,3,0,0,0,0,0,0,0,0,
+    0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,
+    166,0,0,0,124,0,100,1,100,2,133,2,25,0,125,3,
+    124,3,116,0,107,3,114,32,100,3,124,1,155,2,100,4,
+    124,3,155,2,157,4,125,4,116,1,160,2,100,5,124,4,
+    161,2,1,0,116,3,124,4,102,1,105,0,124,2,164,1,
+    142,1,130,1,116,4,124,0,131,1,100,6,107,0,114,53,
+    100,7,124,1,155,2,157,2,125,4,116,1,160,2,100,5,
+    124,4,161,2,1,0,116,5,124,4,131,1,130,1,116,6,
+    124,0,100,2,100,8,133,2,25,0,131,1,125,5,124,5,
+    100,9,64,0,114,81,100,10,124,5,155,2,100,11,124,1,
+    155,2,157,4,125,4,116,3,124,4,102,1,105,0,124,2,
+    164,1,142,1,130,1,124,5,83,0,41,12,97,84,2,0,
+    0,80,101,114,102,111,114,109,32,98,97,115,105,99,32,118,
+    97,108,105,100,105,116,121,32,99,104,101,99,107,105,110,103,
+    32,111,102,32,97,32,112,121,99,32,104,101,97,100,101,114,
+    32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,
+    102,108,97,103,115,32,102,105,101,108,100,44,10,32,32,32,
+    32,119,104,105,99,104,32,100,101,116,101,114,109,105,110,101,
+    115,32,104,111,119,32,116,104,101,32,112,121,99,32,115,104,
+    111,117,108,100,32,98,101,32,102,117,114,116,104,101,114,32,
+    118,97,108,105,100,97,116,101,100,32,97,103,97,105,110,115,
+    116,32,116,104,101,32,115,111,117,114,99,101,46,10,10,32,
+    32,32,32,42,100,97,116,97,42,32,105,115,32,116,104,101,
+    32,99,111,110,116,101,110,116,115,32,111,102,32,116,104,101,
+    32,112,121,99,32,102,105,108,101,46,32,40,79,110,108,121,
+    32,116,104,101,32,102,105,114,115,116,32,49,54,32,98,121,
+    116,101,115,32,97,114,101,10,32,32,32,32,114,101,113,117,
+    105,114,101,100,44,32,116,104,111,117,103,104,46,41,10,10,
+    32,32,32,32,42,110,97,109,101,42,32,105,115,32,116,104,
+    101,32,110,97,109,101,32,111,102,32,116,104,101,32,109,111,
+    100,117,108,101,32,98,101,105,110,103,32,105,109,112,111,114,
+    116,101,100,46,32,73,116,32,105,115,32,117,115,101,100,32,
+    102,111,114,32,108,111,103,103,105,110,103,46,10,10,32,32,
+    32,32,42,101,120,99,95,100,101,116,97,105,108,115,42,32,
+    105,115,32,97,32,100,105,99,116,105,111,110,97,114,121,32,
+    112,97,115,115,101,100,32,116,111,32,73,109,112,111,114,116,
+    69,114,114,111,114,32,105,102,32,105,116,32,114,97,105,115,
+    101,100,32,102,111,114,10,32,32,32,32,105,109,112,114,111,
+    118,101,100,32,100,101,98,117,103,103,105,110,103,46,10,10,
+    32,32,32,32,73,109,112,111,114,116,69,114,114,111,114,32,
+    105,115,32,114,97,105,115,101,100,32,119,104,101,110,32,116,
+    104,101,32,109,97,103,105,99,32,110,117,109,98,101,114,32,
+    105,115,32,105,110,99,111,114,114,101,99,116,32,111,114,32,
+    119,104,101,110,32,116,104,101,32,102,108,97,103,115,10,32,
+    32,32,32,102,105,101,108,100,32,105,115,32,105,110,118,97,
+    108,105,100,46,32,69,79,70,69,114,114,111,114,32,105,115,
+    32,114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,
+    32,100,97,116,97,32,105,115,32,102,111,117,110,100,32,116,
+    111,32,98,101,32,116,114,117,110,99,97,116,101,100,46,10,
+    10,32,32,32,32,78,114,31,0,0,0,122,20,98,97,100,
+    32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,110,
+    32,122,2,58,32,250,2,123,125,233,16,0,0,0,122,40,
+    114,101,97,99,104,101,100,32,69,79,70,32,119,104,105,108,
+    101,32,114,101,97,100,105,110,103,32,112,121,99,32,104,101,
+    97,100,101,114,32,111,102,32,233,8,0,0,0,233,252,255,
+    255,255,122,14,105,110,118,97,108,105,100,32,102,108,97,103,
+    115,32,122,4,32,105,110,32,41,7,218,12,77,65,71,73,
+    67,95,78,85,77,66,69,82,114,159,0,0,0,218,16,95,
+    118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,114,
+    142,0,0,0,114,4,0,0,0,218,8,69,79,70,69,114,
+    114,111,114,114,42,0,0,0,41,6,114,41,0,0,0,114,
+    141,0,0,0,218,11,101,120,99,95,100,101,116,97,105,108,
+    115,90,5,109,97,103,105,99,114,117,0,0,0,114,16,0,
+    0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+    0,218,13,95,99,108,97,115,115,105,102,121,95,112,121,99,
+    73,2,0,0,115,28,0,0,0,12,16,8,1,16,1,12,
+    1,16,1,12,1,10,1,12,1,8,1,16,1,8,2,16,
+    1,16,1,4,1,114,176,0,0,0,99,5,0,0,0,0,
+    0,0,0,0,0,0,0,6,0,0,0,4,0,0,0,67,
+    0,0,0,115,124,0,0,0,116,0,124,0,100,1,100,2,
+    133,2,25,0,131,1,124,1,100,3,64,0,107,3,114,31,
+    100,4,124,3,155,2,157,2,125,5,116,1,160,2,100,5,
+    124,5,161,2,1,0,116,3,124,5,102,1,105,0,124,4,
+    164,1,142,1,130,1,124,2,100,6,117,1,114,58,116,0,
+    124,0,100,2,100,7,133,2,25,0,131,1,124,2,100,3,
+    64,0,107,3,114,60,116,3,100,4,124,3,155,2,157,2,
+    102,1,105,0,124,4,164,1,142,1,130,1,100,6,83,0,
+    100,6,83,0,41,8,97,7,2,0,0,86,97,108,105,100,
+    97,116,101,32,97,32,112,121,99,32,97,103,97,105,110,115,
+    116,32,116,104,101,32,115,111,117,114,99,101,32,108,97,115,
+    116,45,109,111,100,105,102,105,101,100,32,116,105,109,101,46,
+    10,10,32,32,32,32,42,100,97,116,97,42,32,105,115,32,
+    116,104,101,32,99,111,110,116,101,110,116,115,32,111,102,32,
+    116,104,101,32,112,121,99,32,102,105,108,101,46,32,40,79,
+    110,108,121,32,116,104,101,32,102,105,114,115,116,32,49,54,
+    32,98,121,116,101,115,32,97,114,101,10,32,32,32,32,114,
+    101,113,117,105,114,101,100,46,41,10,10,32,32,32,32,42,
+    115,111,117,114,99,101,95,109,116,105,109,101,42,32,105,115,
+    32,116,104,101,32,108,97,115,116,32,109,111,100,105,102,105,
+    101,100,32,116,105,109,101,115,116,97,109,112,32,111,102,32,
+    116,104,101,32,115,111,117,114,99,101,32,102,105,108,101,46,
+    10,10,32,32,32,32,42,115,111,117,114,99,101,95,115,105,
+    122,101,42,32,105,115,32,78,111,110,101,32,111,114,32,116,
+    104,101,32,115,105,122,101,32,111,102,32,116,104,101,32,115,
+    111,117,114,99,101,32,102,105,108,101,32,105,110,32,98,121,
+    116,101,115,46,10,10,32,32,32,32,42,110,97,109,101,42,
+    32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32,
+    116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,
+    32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,115,
+    32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,110,
+    103,46,10,10,32,32,32,32,42,101,120,99,95,100,101,116,
+    97,105,108,115,42,32,105,115,32,97,32,100,105,99,116,105,
+    111,110,97,114,121,32,112,97,115,115,101,100,32,116,111,32,
+    73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,105,
+    116,32,114,97,105,115,101,100,32,102,111,114,10,32,32,32,
+    32,105,109,112,114,111,118,101,100,32,100,101,98,117,103,103,
+    105,110,103,46,10,10,32,32,32,32,65,110,32,73,109,112,
+    111,114,116,69,114,114,111,114,32,105,115,32,114,97,105,115,
+    101,100,32,105,102,32,116,104,101,32,98,121,116,101,99,111,
+    100,101,32,105,115,32,115,116,97,108,101,46,10,10,32,32,
+    32,32,114,170,0,0,0,233,12,0,0,0,114,30,0,0,
+    0,122,22,98,121,116,101,99,111,100,101,32,105,115,32,115,
+    116,97,108,101,32,102,111,114,32,114,168,0,0,0,78,114,
+    169,0,0,0,41,4,114,42,0,0,0,114,159,0,0,0,
+    114,173,0,0,0,114,142,0,0,0,41,6,114,41,0,0,
+    0,218,12,115,111,117,114,99,101,95,109,116,105,109,101,218,
+    11,115,111,117,114,99,101,95,115,105,122,101,114,141,0,0,
+    0,114,175,0,0,0,114,117,0,0,0,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,218,23,95,118,97,108,
+    105,100,97,116,101,95,116,105,109,101,115,116,97,109,112,95,
+    112,121,99,106,2,0,0,115,18,0,0,0,24,19,10,1,
+    12,1,16,1,8,1,22,1,2,255,22,2,8,254,114,180,
+    0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,
+    4,0,0,0,4,0,0,0,67,0,0,0,115,42,0,0,
+    0,124,0,100,1,100,2,133,2,25,0,124,1,107,3,114,
+    19,116,0,100,3,124,2,155,2,157,2,102,1,105,0,124,
+    3,164,1,142,1,130,1,100,4,83,0,41,5,97,243,1,
+    0,0,86,97,108,105,100,97,116,101,32,97,32,104,97,115,
+    104,45,98,97,115,101,100,32,112,121,99,32,98,121,32,99,
+    104,101,99,107,105,110,103,32,116,104,101,32,114,101,97,108,
+    32,115,111,117,114,99,101,32,104,97,115,104,32,97,103,97,
+    105,110,115,116,32,116,104,101,32,111,110,101,32,105,110,10,
+    32,32,32,32,116,104,101,32,112,121,99,32,104,101,97,100,
+    101,114,46,10,10,32,32,32,32,42,100,97,116,97,42,32,
+    105,115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,
+    111,102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,
+    32,40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,
+    32,49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,
+    32,32,114,101,113,117,105,114,101,100,46,41,10,10,32,32,
+    32,32,42,115,111,117,114,99,101,95,104,97,115,104,42,32,
+    105,115,32,116,104,101,32,105,109,112,111,114,116,108,105,98,
+    46,117,116,105,108,46,115,111,117,114,99,101,95,104,97,115,
+    104,40,41,32,111,102,32,116,104,101,32,115,111,117,114,99,
+    101,32,102,105,108,101,46,10,10,32,32,32,32,42,110,97,
+    109,101,42,32,105,115,32,116,104,101,32,110,97,109,101,32,
+    111,102,32,116,104,101,32,109,111,100,117,108,101,32,98,101,
+    105,110,103,32,105,109,112,111,114,116,101,100,46,32,73,116,
+    32,105,115,32,117,115,101,100,32,102,111,114,32,108,111,103,
+    103,105,110,103,46,10,10,32,32,32,32,42,101,120,99,95,
+    100,101,116,97,105,108,115,42,32,105,115,32,97,32,100,105,
+    99,116,105,111,110,97,114,121,32,112,97,115,115,101,100,32,
+    116,111,32,73,109,112,111,114,116,69,114,114,111,114,32,105,
+    102,32,105,116,32,114,97,105,115,101,100,32,102,111,114,10,
+    32,32,32,32,105,109,112,114,111,118,101,100,32,100,101,98,
+    117,103,103,105,110,103,46,10,10,32,32,32,32,65,110,32,
+    73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,
+    97,105,115,101,100,32,105,102,32,116,104,101,32,98,121,116,
+    101,99,111,100,101,32,105,115,32,115,116,97,108,101,46,10,
+    10,32,32,32,32,114,170,0,0,0,114,169,0,0,0,122,
+    46,104,97,115,104,32,105,110,32,98,121,116,101,99,111,100,
+    101,32,100,111,101,115,110,39,116,32,109,97,116,99,104,32,
+    104,97,115,104,32,111,102,32,115,111,117,114,99,101,32,78,
+    41,1,114,142,0,0,0,41,4,114,41,0,0,0,218,11,
+    115,111,117,114,99,101,95,104,97,115,104,114,141,0,0,0,
+    114,175,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+    8,0,0,0,218,18,95,118,97,108,105,100,97,116,101,95,
+    104,97,115,104,95,112,121,99,134,2,0,0,115,14,0,0,
+    0,16,17,2,1,8,1,4,255,2,2,6,254,4,255,114,
+    182,0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,
+    0,5,0,0,0,5,0,0,0,67,0,0,0,115,76,0,
+    0,0,116,0,160,1,124,0,161,1,125,4,116,2,124,4,
+    116,3,131,2,114,28,116,4,160,5,100,1,124,2,161,2,
+    1,0,124,3,100,2,117,1,114,26,116,6,160,7,124,4,
+    124,3,161,2,1,0,124,4,83,0,116,8,100,3,160,9,
+    124,2,161,1,124,1,124,2,100,4,141,3,130,1,41,5,
+    122,35,67,111,109,112,105,108,101,32,98,121,116,101,99,111,
+    100,101,32,97,115,32,102,111,117,110,100,32,105,110,32,97,
+    32,112,121,99,46,122,21,99,111,100,101,32,111,98,106,101,
+    99,116,32,102,114,111,109,32,123,33,114,125,78,122,23,78,
+    111,110,45,99,111,100,101,32,111,98,106,101,99,116,32,105,
+    110,32,123,33,114,125,169,2,114,141,0,0,0,114,65,0,
+    0,0,41,10,218,7,109,97,114,115,104,97,108,90,5,108,
+    111,97,100,115,218,10,105,115,105,110,115,116,97,110,99,101,
+    218,10,95,99,111,100,101,95,116,121,112,101,114,159,0,0,
+    0,114,173,0,0,0,218,4,95,105,109,112,90,16,95,102,
+    105,120,95,99,111,95,102,105,108,101,110,97,109,101,114,142,
+    0,0,0,114,89,0,0,0,41,5,114,41,0,0,0,114,
+    141,0,0,0,114,132,0,0,0,114,134,0,0,0,218,4,
+    99,111,100,101,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,218,17,95,99,111,109,112,105,108,101,95,98,121,
+    116,101,99,111,100,101,158,2,0,0,115,18,0,0,0,10,
+    2,10,1,12,1,8,1,12,1,4,1,10,2,4,1,6,
+    255,114,189,0,0,0,99,3,0,0,0,0,0,0,0,0,
+    0,0,0,4,0,0,0,5,0,0,0,67,0,0,0,115,
+    70,0,0,0,116,0,116,1,131,1,125,3,124,3,160,2,
+    116,3,100,1,131,1,161,1,1,0,124,3,160,2,116,3,
+    124,1,131,1,161,1,1,0,124,3,160,2,116,3,124,2,
+    131,1,161,1,1,0,124,3,160,2,116,4,160,5,124,0,
+    161,1,161,1,1,0,124,3,83,0,41,2,122,43,80,114,
+    111,100,117,99,101,32,116,104,101,32,100,97,116,97,32,102,
+    111,114,32,97,32,116,105,109,101,115,116,97,109,112,45,98,
+    97,115,101,100,32,112,121,99,46,114,0,0,0,0,41,6,
+    218,9,98,121,116,101,97,114,114,97,121,114,172,0,0,0,
+    218,6,101,120,116,101,110,100,114,36,0,0,0,114,184,0,
+    0,0,218,5,100,117,109,112,115,41,4,114,188,0,0,0,
+    218,5,109,116,105,109,101,114,179,0,0,0,114,41,0,0,
+    0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+    218,22,95,99,111,100,101,95,116,111,95,116,105,109,101,115,
+    116,97,109,112,95,112,121,99,171,2,0,0,115,12,0,0,
+    0,8,2,14,1,14,1,14,1,16,1,4,1,114,194,0,
+    0,0,84,99,3,0,0,0,0,0,0,0,0,0,0,0,
+    5,0,0,0,5,0,0,0,67,0,0,0,115,80,0,0,
+    0,116,0,116,1,131,1,125,3,100,1,124,2,100,1,62,
+    0,66,0,125,4,124,3,160,2,116,3,124,4,131,1,161,
+    1,1,0,116,4,124,1,131,1,100,2,107,2,115,25,74,
+    0,130,1,124,3,160,2,124,1,161,1,1,0,124,3,160,
+    2,116,5,160,6,124,0,161,1,161,1,1,0,124,3,83,
+    0,41,3,122,38,80,114,111,100,117,99,101,32,116,104,101,
+    32,100,97,116,97,32,102,111,114,32,97,32,104,97,115,104,
+    45,98,97,115,101,100,32,112,121,99,46,114,3,0,0,0,
+    114,170,0,0,0,41,7,114,190,0,0,0,114,172,0,0,
     0,114,191,0,0,0,114,36,0,0,0,114,4,0,0,0,
     114,184,0,0,0,114,192,0,0,0,41,5,114,188,0,0,
     0,114,181,0,0,0,90,7,99,104,101,99,107,101,100,114,
@@ -978,8 +977,8 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     8,0,0,0,67,0,0,0,115,54,1,0,0,124,1,100,
     1,117,0,114,29,100,2,125,1,116,0,124,2,100,3,131,
     2,114,28,122,7,124,2,160,1,124,0,161,1,125,1,87,
-    0,110,38,4,0,116,2,121,27,1,0,1,0,1,0,89,
-    0,110,30,119,0,110,28,116,3,160,4,124,1,161,1,125,
+    0,113,57,4,0,116,2,121,27,1,0,1,0,1,0,89,
+    0,113,57,119,0,110,28,116,3,160,4,124,1,161,1,125,
     1,116,5,124,1,131,1,115,57,122,9,116,6,116,3,160,
     7,161,0,124,1,131,2,125,1,87,0,110,9,4,0,116,
     8,121,56,1,0,1,0,1,0,89,0,110,1,119,0,116,
@@ -991,7 +990,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     1,83,0,124,3,116,16,117,0,114,131,116,0,124,2,100,
     6,131,2,114,130,122,7,124,2,160,17,124,0,161,1,125,
     7,87,0,110,9,4,0,116,2,121,124,1,0,1,0,1,
-    0,89,0,110,10,119,0,124,7,114,130,103,0,124,4,95,
+    0,89,0,113,134,119,0,124,7,114,130,103,0,124,4,95,
     18,110,3,124,3,124,4,95,18,124,4,106,18,103,0,107,
     2,114,153,124,1,114,153,116,19,124,1,131,1,100,7,25,
     0,125,8,124,4,106,18,160,20,124,8,161,1,1,0,124,
@@ -1186,7 +1185,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     2,124,2,160,2,100,2,100,1,161,2,100,3,25,0,125,
     3,124,1,160,3,100,2,161,1,100,4,25,0,125,4,124,
     3,100,5,107,2,111,31,124,4,100,5,107,3,83,0,41,
-    7,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108,
+    6,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108,
     101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,
     115,112,101,99,116,76,111,97,100,101,114,46,105,115,95,112,
     97,99,107,97,103,101,32,98,121,32,99,104,101,99,107,105,
@@ -1196,1428 +1195,1427 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111,
     102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46,
     114,3,0,0,0,114,97,0,0,0,114,0,0,0,0,114,
-    44,0,0,0,218,8,95,95,105,110,105,116,95,95,78,41,
-    4,114,74,0,0,0,114,203,0,0,0,114,125,0,0,0,
-    114,104,0,0,0,41,5,114,143,0,0,0,114,163,0,0,
-    0,114,120,0,0,0,90,13,102,105,108,101,110,97,109,101,
-    95,98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,
-    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
-    206,0,0,0,98,3,0,0,115,8,0,0,0,18,3,16,
-    1,14,1,16,1,122,24,95,76,111,97,100,101,114,66,97,
-    115,105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,
+    44,0,0,0,218,8,95,95,105,110,105,116,95,95,41,4,
+    114,74,0,0,0,114,203,0,0,0,114,125,0,0,0,114,
+    104,0,0,0,41,5,114,143,0,0,0,114,163,0,0,0,
+    114,120,0,0,0,90,13,102,105,108,101,110,97,109,101,95,
+    98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,114,
+    7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,206,
+    0,0,0,98,3,0,0,115,8,0,0,0,18,3,16,1,
+    14,1,16,1,122,24,95,76,111,97,100,101,114,66,97,115,
+    105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,2,
+    0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
+    0,0,0,67,0,0,0,114,23,0,0,0,169,2,122,42,
+    85,115,101,32,100,101,102,97,117,108,116,32,115,101,109,97,
+    110,116,105,99,115,32,102,111,114,32,109,111,100,117,108,101,
+    32,99,114,101,97,116,105,111,110,46,78,114,7,0,0,0,
+    169,2,114,143,0,0,0,114,210,0,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,218,13,99,114,101,
+    97,116,101,95,109,111,100,117,108,101,106,3,0,0,243,2,
+    0,0,0,4,0,122,27,95,76,111,97,100,101,114,66,97,
+    115,105,99,115,46,99,114,101,97,116,101,95,109,111,100,117,
+    108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,
+    0,0,0,5,0,0,0,67,0,0,0,115,56,0,0,0,
+    124,0,160,0,124,1,106,1,161,1,125,2,124,2,100,1,
+    117,0,114,18,116,2,100,2,160,3,124,1,106,1,161,1,
+    131,1,130,1,116,4,160,5,116,6,124,2,124,1,106,7,
+    161,3,1,0,100,1,83,0,41,3,122,19,69,120,101,99,
+    117,116,101,32,116,104,101,32,109,111,100,117,108,101,46,78,
+    122,52,99,97,110,110,111,116,32,108,111,97,100,32,109,111,
+    100,117,108,101,32,123,33,114,125,32,119,104,101,110,32,103,
+    101,116,95,99,111,100,101,40,41,32,114,101,116,117,114,110,
+    115,32,78,111,110,101,41,8,218,8,103,101,116,95,99,111,
+    100,101,114,150,0,0,0,114,142,0,0,0,114,89,0,0,
+    0,114,159,0,0,0,218,25,95,99,97,108,108,95,119,105,
+    116,104,95,102,114,97,109,101,115,95,114,101,109,111,118,101,
+    100,218,4,101,120,101,99,114,156,0,0,0,41,3,114,143,
+    0,0,0,218,6,109,111,100,117,108,101,114,188,0,0,0,
+    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+    11,101,120,101,99,95,109,111,100,117,108,101,109,3,0,0,
+    115,12,0,0,0,12,2,8,1,4,1,8,1,4,255,20,
+    2,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115,
+    46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0,
+    0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
+    0,67,0,0,0,115,12,0,0,0,116,0,160,1,124,0,
+    124,1,161,2,83,0,41,1,122,26,84,104,105,115,32,109,
+    101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
+    116,101,100,46,41,2,114,159,0,0,0,218,17,95,108,111,
+    97,100,95,109,111,100,117,108,101,95,115,104,105,109,169,2,
+    114,143,0,0,0,114,163,0,0,0,114,7,0,0,0,114,
+    7,0,0,0,114,8,0,0,0,218,11,108,111,97,100,95,
+    109,111,100,117,108,101,117,3,0,0,115,2,0,0,0,12,
+    3,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115,
+    46,108,111,97,100,95,109,111,100,117,108,101,78,41,8,114,
+    150,0,0,0,114,149,0,0,0,114,151,0,0,0,114,152,
+    0,0,0,114,206,0,0,0,114,239,0,0,0,114,245,0,
+    0,0,114,248,0,0,0,114,7,0,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,114,235,0,0,0,
+    93,3,0,0,115,12,0,0,0,8,0,4,2,8,3,8,
+    8,8,3,12,8,114,235,0,0,0,99,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,
+    0,0,0,115,74,0,0,0,101,0,90,1,100,0,90,2,
+    100,1,100,2,132,0,90,3,100,3,100,4,132,0,90,4,
+    100,5,100,6,132,0,90,5,100,7,100,8,132,0,90,6,
+    100,9,100,10,132,0,90,7,100,11,100,12,156,1,100,13,
+    100,14,132,2,90,8,100,15,100,16,132,0,90,9,100,17,
+    83,0,41,18,218,12,83,111,117,114,99,101,76,111,97,100,
+    101,114,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+    0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,
+    116,0,130,1,41,1,122,165,79,112,116,105,111,110,97,108,
+    32,109,101,116,104,111,100,32,116,104,97,116,32,114,101,116,
+    117,114,110,115,32,116,104,101,32,109,111,100,105,102,105,99,
+    97,116,105,111,110,32,116,105,109,101,32,40,97,110,32,105,
+    110,116,41,32,102,111,114,32,116,104,101,10,32,32,32,32,
+    32,32,32,32,115,112,101,99,105,102,105,101,100,32,112,97,
+    116,104,32,40,97,32,115,116,114,41,46,10,10,32,32,32,
+    32,32,32,32,32,82,97,105,115,101,115,32,79,83,69,114,
+    114,111,114,32,119,104,101,110,32,116,104,101,32,112,97,116,
+    104,32,99,97,110,110,111,116,32,98,101,32,104,97,110,100,
+    108,101,100,46,10,32,32,32,32,32,32,32,32,41,1,114,
+    76,0,0,0,169,2,114,143,0,0,0,114,65,0,0,0,
+    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+    10,112,97,116,104,95,109,116,105,109,101,125,3,0,0,115,
+    2,0,0,0,4,6,122,23,83,111,117,114,99,101,76,111,
+    97,100,101,114,46,112,97,116,104,95,109,116,105,109,101,99,
     2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
-    1,0,0,0,67,0,0,0,114,23,0,0,0,169,2,122,
-    42,85,115,101,32,100,101,102,97,117,108,116,32,115,101,109,
-    97,110,116,105,99,115,32,102,111,114,32,109,111,100,117,108,
-    101,32,99,114,101,97,116,105,111,110,46,78,114,7,0,0,
-    0,169,2,114,143,0,0,0,114,210,0,0,0,114,7,0,
-    0,0,114,7,0,0,0,114,8,0,0,0,218,13,99,114,
-    101,97,116,101,95,109,111,100,117,108,101,106,3,0,0,243,
-    2,0,0,0,4,0,122,27,95,76,111,97,100,101,114,66,
-    97,115,105,99,115,46,99,114,101,97,116,101,95,109,111,100,
-    117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
-    3,0,0,0,5,0,0,0,67,0,0,0,115,56,0,0,
-    0,124,0,160,0,124,1,106,1,161,1,125,2,124,2,100,
-    1,117,0,114,18,116,2,100,2,160,3,124,1,106,1,161,
-    1,131,1,130,1,116,4,160,5,116,6,124,2,124,1,106,
-    7,161,3,1,0,100,1,83,0,41,3,122,19,69,120,101,
-    99,117,116,101,32,116,104,101,32,109,111,100,117,108,101,46,
-    78,122,52,99,97,110,110,111,116,32,108,111,97,100,32,109,
-    111,100,117,108,101,32,123,33,114,125,32,119,104,101,110,32,
-    103,101,116,95,99,111,100,101,40,41,32,114,101,116,117,114,
-    110,115,32,78,111,110,101,41,8,218,8,103,101,116,95,99,
-    111,100,101,114,150,0,0,0,114,142,0,0,0,114,89,0,
-    0,0,114,159,0,0,0,218,25,95,99,97,108,108,95,119,
-    105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,118,
-    101,100,218,4,101,120,101,99,114,156,0,0,0,41,3,114,
-    143,0,0,0,218,6,109,111,100,117,108,101,114,188,0,0,
-    0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    218,11,101,120,101,99,95,109,111,100,117,108,101,109,3,0,
-    0,115,12,0,0,0,12,2,8,1,4,1,8,1,4,255,
-    20,2,122,25,95,76,111,97,100,101,114,66,97,115,105,99,
-    115,46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,
-    0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,
-    0,0,67,0,0,0,115,12,0,0,0,116,0,160,1,124,
-    0,124,1,161,2,83,0,41,2,122,26,84,104,105,115,32,
-    109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
-    97,116,101,100,46,78,41,2,114,159,0,0,0,218,17,95,
-    108,111,97,100,95,109,111,100,117,108,101,95,115,104,105,109,
-    169,2,114,143,0,0,0,114,163,0,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,218,11,108,111,97,
-    100,95,109,111,100,117,108,101,117,3,0,0,115,2,0,0,
-    0,12,3,122,25,95,76,111,97,100,101,114,66,97,115,105,
-    99,115,46,108,111,97,100,95,109,111,100,117,108,101,78,41,
-    8,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0,
-    114,152,0,0,0,114,206,0,0,0,114,239,0,0,0,114,
-    245,0,0,0,114,248,0,0,0,114,7,0,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,235,0,
-    0,0,93,3,0,0,115,12,0,0,0,8,0,4,2,8,
-    3,8,8,8,3,12,8,114,235,0,0,0,99,0,0,0,
-    0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
-    0,64,0,0,0,115,74,0,0,0,101,0,90,1,100,0,
-    90,2,100,1,100,2,132,0,90,3,100,3,100,4,132,0,
-    90,4,100,5,100,6,132,0,90,5,100,7,100,8,132,0,
-    90,6,100,9,100,10,132,0,90,7,100,11,100,12,156,1,
-    100,13,100,14,132,2,90,8,100,15,100,16,132,0,90,9,
-    100,17,83,0,41,18,218,12,83,111,117,114,99,101,76,111,
-    97,100,101,114,99,2,0,0,0,0,0,0,0,0,0,0,
-    0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
-    0,0,116,0,130,1,41,2,122,165,79,112,116,105,111,110,
-    97,108,32,109,101,116,104,111,100,32,116,104,97,116,32,114,
-    101,116,117,114,110,115,32,116,104,101,32,109,111,100,105,102,
-    105,99,97,116,105,111,110,32,116,105,109,101,32,40,97,110,
-    32,105,110,116,41,32,102,111,114,32,116,104,101,10,32,32,
-    32,32,32,32,32,32,115,112,101,99,105,102,105,101,100,32,
-    112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32,
-    32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,83,
-    69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,112,
-    97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,97,
-    110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,78,
-    41,1,114,76,0,0,0,169,2,114,143,0,0,0,114,65,
-    0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,218,10,112,97,116,104,95,109,116,105,109,101,125,3,
-    0,0,115,2,0,0,0,4,6,122,23,83,111,117,114,99,
-    101,76,111,97,100,101,114,46,112,97,116,104,95,109,116,105,
-    109,101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
-    0,0,0,4,0,0,0,67,0,0,0,115,14,0,0,0,
-    100,1,124,0,160,0,124,1,161,1,105,1,83,0,41,3,
-    97,158,1,0,0,79,112,116,105,111,110,97,108,32,109,101,
-    116,104,111,100,32,114,101,116,117,114,110,105,110,103,32,97,
-    32,109,101,116,97,100,97,116,97,32,100,105,99,116,32,102,
-    111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
-    10,32,32,32,32,32,32,32,32,112,97,116,104,32,40,97,
-    32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,
-    80,111,115,115,105,98,108,101,32,107,101,121,115,58,10,32,
-    32,32,32,32,32,32,32,45,32,39,109,116,105,109,101,39,
-    32,40,109,97,110,100,97,116,111,114,121,41,32,105,115,32,
-    116,104,101,32,110,117,109,101,114,105,99,32,116,105,109,101,
-    115,116,97,109,112,32,111,102,32,108,97,115,116,32,115,111,
-    117,114,99,101,10,32,32,32,32,32,32,32,32,32,32,99,
-    111,100,101,32,109,111,100,105,102,105,99,97,116,105,111,110,
-    59,10,32,32,32,32,32,32,32,32,45,32,39,115,105,122,
-    101,39,32,40,111,112,116,105,111,110,97,108,41,32,105,115,
-    32,116,104,101,32,115,105,122,101,32,105,110,32,98,121,116,
-    101,115,32,111,102,32,116,104,101,32,115,111,117,114,99,101,
-    32,99,111,100,101,46,10,10,32,32,32,32,32,32,32,32,
-    73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,
-    115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,
-    116,104,101,32,108,111,97,100,101,114,32,116,111,32,114,101,
-    97,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101,
-    115,46,10,32,32,32,32,32,32,32,32,82,97,105,115,101,
-    115,32,79,83,69,114,114,111,114,32,119,104,101,110,32,116,
-    104,101,32,112,97,116,104,32,99,97,110,110,111,116,32,98,
-    101,32,104,97,110,100,108,101,100,46,10,32,32,32,32,32,
-    32,32,32,114,193,0,0,0,78,41,1,114,251,0,0,0,
-    114,250,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    8,0,0,0,218,10,112,97,116,104,95,115,116,97,116,115,
-    133,3,0,0,115,2,0,0,0,14,12,122,23,83,111,117,
-    114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,115,
-    116,97,116,115,99,4,0,0,0,0,0,0,0,0,0,0,
-    0,4,0,0,0,4,0,0,0,67,0,0,0,115,12,0,
-    0,0,124,0,160,0,124,2,124,3,161,2,83,0,41,2,
-    122,228,79,112,116,105,111,110,97,108,32,109,101,116,104,111,
-    100,32,119,104,105,99,104,32,119,114,105,116,101,115,32,100,
-    97,116,97,32,40,98,121,116,101,115,41,32,116,111,32,97,
-    32,102,105,108,101,32,112,97,116,104,32,40,97,32,115,116,
-    114,41,46,10,10,32,32,32,32,32,32,32,32,73,109,112,
+    4,0,0,0,67,0,0,0,115,14,0,0,0,100,1,124,
+    0,160,0,124,1,161,1,105,1,83,0,41,2,97,158,1,
+    0,0,79,112,116,105,111,110,97,108,32,109,101,116,104,111,
+    100,32,114,101,116,117,114,110,105,110,103,32,97,32,109,101,
+    116,97,100,97,116,97,32,100,105,99,116,32,102,111,114,32,
+    116,104,101,32,115,112,101,99,105,102,105,101,100,10,32,32,
+    32,32,32,32,32,32,112,97,116,104,32,40,97,32,115,116,
+    114,41,46,10,10,32,32,32,32,32,32,32,32,80,111,115,
+    115,105,98,108,101,32,107,101,121,115,58,10,32,32,32,32,
+    32,32,32,32,45,32,39,109,116,105,109,101,39,32,40,109,
+    97,110,100,97,116,111,114,121,41,32,105,115,32,116,104,101,
+    32,110,117,109,101,114,105,99,32,116,105,109,101,115,116,97,
+    109,112,32,111,102,32,108,97,115,116,32,115,111,117,114,99,
+    101,10,32,32,32,32,32,32,32,32,32,32,99,111,100,101,
+    32,109,111,100,105,102,105,99,97,116,105,111,110,59,10,32,
+    32,32,32,32,32,32,32,45,32,39,115,105,122,101,39,32,
+    40,111,112,116,105,111,110,97,108,41,32,105,115,32,116,104,
+    101,32,115,105,122,101,32,105,110,32,98,121,116,101,115,32,
+    111,102,32,116,104,101,32,115,111,117,114,99,101,32,99,111,
+    100,101,46,10,10,32,32,32,32,32,32,32,32,73,109,112,
     108,101,109,101,110,116,105,110,103,32,116,104,105,115,32,109,
-    101,116,104,111,100,32,97,108,108,111,119,115,32,102,111,114,
-    32,116,104,101,32,119,114,105,116,105,110,103,32,111,102,32,
+    101,116,104,111,100,32,97,108,108,111,119,115,32,116,104,101,
+    32,108,111,97,100,101,114,32,116,111,32,114,101,97,100,32,
     98,121,116,101,99,111,100,101,32,102,105,108,101,115,46,10,
-    10,32,32,32,32,32,32,32,32,84,104,101,32,115,111,117,
-    114,99,101,32,112,97,116,104,32,105,115,32,110,101,101,100,
-    101,100,32,105,110,32,111,114,100,101,114,32,116,111,32,99,
-    111,114,114,101,99,116,108,121,32,116,114,97,110,115,102,101,
-    114,32,112,101,114,109,105,115,115,105,111,110,115,10,32,32,
-    32,32,32,32,32,32,78,41,1,218,8,115,101,116,95,100,
-    97,116,97,41,4,114,143,0,0,0,114,134,0,0,0,90,
-    10,99,97,99,104,101,95,112,97,116,104,114,41,0,0,0,
-    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
-    15,95,99,97,99,104,101,95,98,121,116,101,99,111,100,101,
-    147,3,0,0,115,2,0,0,0,12,8,122,28,83,111,117,
-    114,99,101,76,111,97,100,101,114,46,95,99,97,99,104,101,
-    95,98,121,116,101,99,111,100,101,99,3,0,0,0,0,0,
-    0,0,0,0,0,0,3,0,0,0,1,0,0,0,67,0,
-    0,0,114,23,0,0,0,41,2,122,150,79,112,116,105,111,
-    110,97,108,32,109,101,116,104,111,100,32,119,104,105,99,104,
-    32,119,114,105,116,101,115,32,100,97,116,97,32,40,98,121,
-    116,101,115,41,32,116,111,32,97,32,102,105,108,101,32,112,
-    97,116,104,32,40,97,32,115,116,114,41,46,10,10,32,32,
-    32,32,32,32,32,32,73,109,112,108,101,109,101,110,116,105,
-    110,103,32,116,104,105,115,32,109,101,116,104,111,100,32,97,
-    108,108,111,119,115,32,102,111,114,32,116,104,101,32,119,114,
-    105,116,105,110,103,32,111,102,32,98,121,116,101,99,111,100,
-    101,32,102,105,108,101,115,46,10,32,32,32,32,32,32,32,
-    32,78,114,7,0,0,0,41,3,114,143,0,0,0,114,65,
-    0,0,0,114,41,0,0,0,114,7,0,0,0,114,7,0,
-    0,0,114,8,0,0,0,114,253,0,0,0,157,3,0,0,
-    114,240,0,0,0,122,21,83,111,117,114,99,101,76,111,97,
-    100,101,114,46,115,101,116,95,100,97,116,97,99,2,0,0,
-    0,0,0,0,0,0,0,0,0,5,0,0,0,10,0,0,
-    0,67,0,0,0,115,70,0,0,0,124,0,160,0,124,1,
-    161,1,125,2,122,10,124,0,160,1,124,2,161,1,125,3,
-    87,0,116,4,124,3,131,1,83,0,4,0,116,2,121,34,
-    1,0,125,4,1,0,122,7,116,3,100,1,124,1,100,2,
-    141,2,124,4,130,2,100,3,125,4,126,4,119,1,119,0,
-    41,4,122,52,67,111,110,99,114,101,116,101,32,105,109,112,
-    108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,
-    110,115,112,101,99,116,76,111,97,100,101,114,46,103,101,116,
-    95,115,111,117,114,99,101,46,122,39,115,111,117,114,99,101,
-    32,110,111,116,32,97,118,97,105,108,97,98,108,101,32,116,
-    104,114,111,117,103,104,32,103,101,116,95,100,97,116,97,40,
-    41,114,140,0,0,0,78,41,5,114,203,0,0,0,218,8,
-    103,101,116,95,100,97,116,97,114,76,0,0,0,114,142,0,
-    0,0,114,200,0,0,0,41,5,114,143,0,0,0,114,163,
-    0,0,0,114,65,0,0,0,114,198,0,0,0,218,3,101,
-    120,99,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,218,10,103,101,116,95,115,111,117,114,99,101,164,3,0,
-    0,115,24,0,0,0,10,2,2,1,12,1,8,4,14,253,
-    4,1,2,1,4,255,2,1,2,255,8,128,2,255,122,23,
-    83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,
-    95,115,111,117,114,99,101,114,130,0,0,0,41,1,218,9,
-    95,111,112,116,105,109,105,122,101,99,3,0,0,0,0,0,
-    0,0,1,0,0,0,4,0,0,0,8,0,0,0,67,0,
-    0,0,115,22,0,0,0,116,0,106,1,116,2,124,1,124,
-    2,100,1,100,2,124,3,100,3,141,6,83,0,41,5,122,
-    130,82,101,116,117,114,110,32,116,104,101,32,99,111,100,101,
-    32,111,98,106,101,99,116,32,99,111,109,112,105,108,101,100,
-    32,102,114,111,109,32,115,111,117,114,99,101,46,10,10,32,
-    32,32,32,32,32,32,32,84,104,101,32,39,100,97,116,97,
-    39,32,97,114,103,117,109,101,110,116,32,99,97,110,32,98,
-    101,32,97,110,121,32,111,98,106,101,99,116,32,116,121,112,
-    101,32,116,104,97,116,32,99,111,109,112,105,108,101,40,41,
-    32,115,117,112,112,111,114,116,115,46,10,32,32,32,32,32,
-    32,32,32,114,243,0,0,0,84,41,2,218,12,100,111,110,
-    116,95,105,110,104,101,114,105,116,114,108,0,0,0,78,41,
-    3,114,159,0,0,0,114,242,0,0,0,218,7,99,111,109,
-    112,105,108,101,41,4,114,143,0,0,0,114,41,0,0,0,
-    114,65,0,0,0,114,2,1,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,218,14,115,111,117,114,99,
-    101,95,116,111,95,99,111,100,101,174,3,0,0,115,6,0,
-    0,0,12,5,4,1,6,255,122,27,83,111,117,114,99,101,
-    76,111,97,100,101,114,46,115,111,117,114,99,101,95,116,111,
-    95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,
-    0,0,15,0,0,0,9,0,0,0,67,0,0,0,115,2,
-    2,0,0,124,0,160,0,124,1,161,1,125,2,100,1,125,
-    3,100,1,125,4,100,1,125,5,100,2,125,6,100,3,125,
-    7,122,6,116,1,124,2,131,1,125,8,87,0,110,11,4,
-    0,116,2,121,32,1,0,1,0,1,0,100,1,125,8,89,
-    0,110,144,119,0,122,7,124,0,160,3,124,2,161,1,125,
-    9,87,0,110,9,4,0,116,4,121,49,1,0,1,0,1,
-    0,89,0,110,127,119,0,116,5,124,9,100,4,25,0,131,
-    1,125,3,122,7,124,0,160,6,124,8,161,1,125,10,87,
-    0,110,9,4,0,116,4,121,72,1,0,1,0,1,0,89,
-    0,110,104,119,0,124,1,124,8,100,5,156,2,125,11,122,
-    71,116,7,124,10,124,1,124,11,131,3,125,12,116,8,124,
-    10,131,1,100,6,100,1,133,2,25,0,125,13,124,12,100,
-    7,64,0,100,8,107,3,125,6,124,6,114,138,124,12,100,
-    9,64,0,100,8,107,3,125,7,116,9,106,10,100,10,107,
-    3,114,137,124,7,115,119,116,9,106,10,100,11,107,2,114,
-    137,124,0,160,6,124,2,161,1,125,4,116,9,160,11,116,
-    12,124,4,161,2,125,5,116,13,124,10,124,5,124,1,124,
-    11,131,4,1,0,110,10,116,14,124,10,124,3,124,9,100,
-    12,25,0,124,1,124,11,131,5,1,0,87,0,110,11,4,
-    0,116,15,116,16,102,2,121,160,1,0,1,0,1,0,89,
-    0,110,16,119,0,116,17,160,18,100,13,124,8,124,2,161,
-    3,1,0,116,19,124,13,124,1,124,8,124,2,100,14,141,
-    4,83,0,124,4,100,1,117,0,114,185,124,0,160,6,124,
-    2,161,1,125,4,124,0,160,20,124,4,124,2,161,2,125,
-    14,116,17,160,18,100,15,124,2,161,2,1,0,116,21,106,
-    22,115,255,124,8,100,1,117,1,114,255,124,3,100,1,117,
-    1,114,255,124,6,114,226,124,5,100,1,117,0,114,219,116,
-    9,160,11,124,4,161,1,125,5,116,23,124,14,124,5,124,
-    7,131,3,125,10,110,8,116,24,124,14,124,3,116,25,124,
-    4,131,1,131,3,125,10,122,10,124,0,160,26,124,2,124,
-    8,124,10,161,3,1,0,87,0,124,14,83,0,4,0,116,
-    2,121,254,1,0,1,0,1,0,89,0,124,14,83,0,119,
-    0,124,14,83,0,41,16,122,190,67,111,110,99,114,101,116,
-    101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
-    32,111,102,32,73,110,115,112,101,99,116,76,111,97,100,101,
-    114,46,103,101,116,95,99,111,100,101,46,10,10,32,32,32,
-    32,32,32,32,32,82,101,97,100,105,110,103,32,111,102,32,
-    98,121,116,101,99,111,100,101,32,114,101,113,117,105,114,101,
-    115,32,112,97,116,104,95,115,116,97,116,115,32,116,111,32,
-    98,101,32,105,109,112,108,101,109,101,110,116,101,100,46,32,
-    84,111,32,119,114,105,116,101,10,32,32,32,32,32,32,32,
-    32,98,121,116,101,99,111,100,101,44,32,115,101,116,95,100,
-    97,116,97,32,109,117,115,116,32,97,108,115,111,32,98,101,
-    32,105,109,112,108,101,109,101,110,116,101,100,46,10,10,32,
-    32,32,32,32,32,32,32,78,70,84,114,193,0,0,0,114,
-    183,0,0,0,114,169,0,0,0,114,3,0,0,0,114,0,
-    0,0,0,114,44,0,0,0,90,5,110,101,118,101,114,90,
-    6,97,108,119,97,121,115,218,4,115,105,122,101,122,13,123,
-    125,32,109,97,116,99,104,101,115,32,123,125,41,3,114,141,
-    0,0,0,114,132,0,0,0,114,134,0,0,0,122,19,99,
-    111,100,101,32,111,98,106,101,99,116,32,102,114,111,109,32,
-    123,125,41,27,114,203,0,0,0,114,121,0,0,0,114,107,
-    0,0,0,114,252,0,0,0,114,76,0,0,0,114,33,0,
-    0,0,114,255,0,0,0,114,176,0,0,0,218,10,109,101,
-    109,111,114,121,118,105,101,119,114,187,0,0,0,90,21,99,
-    104,101,99,107,95,104,97,115,104,95,98,97,115,101,100,95,
-    112,121,99,115,114,181,0,0,0,218,17,95,82,65,87,95,
-    77,65,71,73,67,95,78,85,77,66,69,82,114,182,0,0,
-    0,114,180,0,0,0,114,142,0,0,0,114,174,0,0,0,
-    114,159,0,0,0,114,173,0,0,0,114,189,0,0,0,114,
-    5,1,0,0,114,15,0,0,0,218,19,100,111,110,116,95,
-    119,114,105,116,101,95,98,121,116,101,99,111,100,101,114,195,
-    0,0,0,114,194,0,0,0,114,4,0,0,0,114,254,0,
-    0,0,41,15,114,143,0,0,0,114,163,0,0,0,114,134,
-    0,0,0,114,178,0,0,0,114,198,0,0,0,114,181,0,
-    0,0,90,10,104,97,115,104,95,98,97,115,101,100,90,12,
-    99,104,101,99,107,95,115,111,117,114,99,101,114,132,0,0,
-    0,218,2,115,116,114,41,0,0,0,114,175,0,0,0,114,
-    16,0,0,0,90,10,98,121,116,101,115,95,100,97,116,97,
-    90,11,99,111,100,101,95,111,98,106,101,99,116,114,7,0,
-    0,0,114,7,0,0,0,114,8,0,0,0,114,241,0,0,
-    0,182,3,0,0,115,170,0,0,0,10,7,4,1,4,1,
-    4,1,4,1,4,1,2,1,12,1,12,1,8,1,2,255,
-    2,3,14,1,12,1,4,1,2,255,12,3,2,1,14,1,
-    12,1,4,1,2,255,2,4,2,1,6,254,2,4,12,1,
-    16,1,12,1,4,1,12,1,10,1,2,1,2,255,8,2,
-    2,254,10,3,4,1,2,1,2,1,4,254,8,4,2,1,
-    4,255,2,128,2,3,2,1,2,1,6,1,2,1,2,1,
-    4,251,4,128,16,7,4,1,2,255,8,3,2,1,4,255,
-    6,2,2,1,2,1,6,254,8,3,10,1,12,1,12,1,
-    14,1,6,1,2,255,4,2,8,1,10,1,14,1,6,2,
-    6,1,4,255,2,2,16,1,4,3,12,254,2,1,4,1,
-    2,254,4,2,122,21,83,111,117,114,99,101,76,111,97,100,
-    101,114,46,103,101,116,95,99,111,100,101,78,41,10,114,150,
-    0,0,0,114,149,0,0,0,114,151,0,0,0,114,251,0,
-    0,0,114,252,0,0,0,114,254,0,0,0,114,253,0,0,
-    0,114,1,1,0,0,114,5,1,0,0,114,241,0,0,0,
-    114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    8,0,0,0,114,249,0,0,0,123,3,0,0,115,16,0,
-    0,0,8,0,8,2,8,8,8,14,8,10,8,7,14,10,
-    12,8,114,249,0,0,0,99,0,0,0,0,0,0,0,0,
-    0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,
-    115,92,0,0,0,101,0,90,1,100,0,90,2,100,1,90,
-    3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,
-    5,100,6,100,7,132,0,90,6,101,7,135,0,102,1,100,
-    8,100,9,132,8,131,1,90,8,101,7,100,10,100,11,132,
-    0,131,1,90,9,100,12,100,13,132,0,90,10,101,7,100,
-    14,100,15,132,0,131,1,90,11,135,0,4,0,90,12,83,
-    0,41,16,218,10,70,105,108,101,76,111,97,100,101,114,122,
-    103,66,97,115,101,32,102,105,108,101,32,108,111,97,100,101,
-    114,32,99,108,97,115,115,32,119,104,105,99,104,32,105,109,
-    112,108,101,109,101,110,116,115,32,116,104,101,32,108,111,97,
-    100,101,114,32,112,114,111,116,111,99,111,108,32,109,101,116,
-    104,111,100,115,32,116,104,97,116,10,32,32,32,32,114,101,
-    113,117,105,114,101,32,102,105,108,101,32,115,121,115,116,101,
-    109,32,117,115,97,103,101,46,99,3,0,0,0,0,0,0,
-    0,0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,
-    0,115,16,0,0,0,124,1,124,0,95,0,124,2,124,0,
-    95,1,100,1,83,0,41,2,122,75,67,97,99,104,101,32,
-    116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,32,
-    97,110,100,32,116,104,101,32,112,97,116,104,32,116,111,32,
-    116,104,101,32,102,105,108,101,32,102,111,117,110,100,32,98,
-    121,32,116,104,101,10,32,32,32,32,32,32,32,32,102,105,
-    110,100,101,114,46,78,114,183,0,0,0,41,3,114,143,0,
-    0,0,114,163,0,0,0,114,65,0,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,114,236,0,0,0,
-    16,4,0,0,115,4,0,0,0,6,3,10,1,122,19,70,
-    105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
-    95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
-    0,0,0,2,0,0,0,67,0,0,0,243,24,0,0,0,
-    124,0,106,0,124,1,106,0,107,2,111,11,124,0,106,1,
-    124,1,106,1,107,2,83,0,114,69,0,0,0,169,2,218,
-    9,95,95,99,108,97,115,115,95,95,114,156,0,0,0,169,
-    2,114,143,0,0,0,90,5,111,116,104,101,114,114,7,0,
-    0,0,114,7,0,0,0,114,8,0,0,0,218,6,95,95,
-    101,113,95,95,22,4,0,0,243,6,0,0,0,12,1,10,
-    1,2,255,122,17,70,105,108,101,76,111,97,100,101,114,46,
-    95,95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,
-    0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,243,
-    20,0,0,0,116,0,124,0,106,1,131,1,116,0,124,0,
-    106,2,131,1,65,0,83,0,114,69,0,0,0,169,3,218,
-    4,104,97,115,104,114,141,0,0,0,114,65,0,0,0,169,
-    1,114,143,0,0,0,114,7,0,0,0,114,7,0,0,0,
-    114,8,0,0,0,218,8,95,95,104,97,115,104,95,95,26,
-    4,0,0,243,2,0,0,0,20,1,122,19,70,105,108,101,
-    76,111,97,100,101,114,46,95,95,104,97,115,104,95,95,99,
-    2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
-    3,0,0,0,3,0,0,0,115,16,0,0,0,116,0,116,
-    1,124,0,131,2,160,2,124,1,161,1,83,0,41,2,122,
-    100,76,111,97,100,32,97,32,109,111,100,117,108,101,32,102,
-    114,111,109,32,97,32,102,105,108,101,46,10,10,32,32,32,
-    32,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,
-    32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,
-    32,85,115,101,32,101,120,101,99,95,109,111,100,117,108,101,
-    40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,32,
-    32,32,32,32,32,78,41,3,218,5,115,117,112,101,114,114,
-    11,1,0,0,114,248,0,0,0,114,247,0,0,0,169,1,
-    114,14,1,0,0,114,7,0,0,0,114,8,0,0,0,114,
-    248,0,0,0,29,4,0,0,115,2,0,0,0,16,10,122,
-    22,70,105,108,101,76,111,97,100,101,114,46,108,111,97,100,
-    95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
-    0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
-    243,6,0,0,0,124,0,106,0,83,0,169,2,122,58,82,
-    101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,
-    111,32,116,104,101,32,115,111,117,114,99,101,32,102,105,108,
-    101,32,97,115,32,102,111,117,110,100,32,98,121,32,116,104,
-    101,32,102,105,110,100,101,114,46,78,114,71,0,0,0,114,
-    247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,114,203,0,0,0,41,4,0,0,243,2,0,0,
-    0,6,3,122,23,70,105,108,101,76,111,97,100,101,114,46,
-    103,101,116,95,102,105,108,101,110,97,109,101,99,2,0,0,
-    0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,
-    0,67,0,0,0,115,128,0,0,0,116,0,124,0,116,1,
-    116,2,102,2,131,2,114,36,116,3,160,4,116,5,124,1,
-    131,1,161,1,143,12,125,2,124,2,160,6,161,0,87,0,
-    2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,0,
-    115,29,119,1,1,0,1,0,1,0,89,0,1,0,100,1,
-    83,0,116,3,160,7,124,1,100,2,161,2,143,12,125,2,
-    124,2,160,6,161,0,87,0,2,0,100,1,4,0,4,0,
-    131,3,1,0,83,0,49,0,115,57,119,1,1,0,1,0,
-    1,0,89,0,1,0,100,1,83,0,41,3,122,39,82,101,
-    116,117,114,110,32,116,104,101,32,100,97,116,97,32,102,114,
-    111,109,32,112,97,116,104,32,97,115,32,114,97,119,32,98,
-    121,116,101,115,46,78,218,1,114,41,8,114,185,0,0,0,
-    114,249,0,0,0,218,19,69,120,116,101,110,115,105,111,110,
-    70,105,108,101,76,111,97,100,101,114,114,91,0,0,0,90,
-    9,111,112,101,110,95,99,111,100,101,114,109,0,0,0,90,
-    4,114,101,97,100,114,92,0,0,0,41,3,114,143,0,0,
-    0,114,65,0,0,0,114,94,0,0,0,114,7,0,0,0,
-    114,7,0,0,0,114,8,0,0,0,114,255,0,0,0,46,
-    4,0,0,115,14,0,0,0,14,2,16,1,6,1,36,255,
-    14,3,6,1,36,255,122,19,70,105,108,101,76,111,97,100,
-    101,114,46,103,101,116,95,100,97,116,97,99,2,0,0,0,
-    0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,
-    67,0,0,0,115,20,0,0,0,100,1,100,2,108,0,109,
-    1,125,2,1,0,124,2,124,0,131,1,83,0,41,3,78,
-    114,0,0,0,0,41,1,218,10,70,105,108,101,82,101,97,
-    100,101,114,41,2,218,17,105,109,112,111,114,116,108,105,98,
-    46,114,101,97,100,101,114,115,114,31,1,0,0,41,3,114,
-    143,0,0,0,114,244,0,0,0,114,31,1,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,218,19,103,
-    101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,
-    101,114,55,4,0,0,115,4,0,0,0,12,2,8,1,122,
-    30,70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,
-    114,101,115,111,117,114,99,101,95,114,101,97,100,101,114,41,
-    13,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0,
-    114,152,0,0,0,114,236,0,0,0,114,16,1,0,0,114,
-    22,1,0,0,114,160,0,0,0,114,248,0,0,0,114,203,
-    0,0,0,114,255,0,0,0,114,33,1,0,0,90,13,95,
-    95,99,108,97,115,115,99,101,108,108,95,95,114,7,0,0,
-    0,114,7,0,0,0,114,25,1,0,0,114,8,0,0,0,
-    114,11,1,0,0,11,4,0,0,115,24,0,0,0,8,0,
-    4,2,8,3,8,6,8,4,2,3,14,1,2,11,10,1,
-    8,4,2,9,18,1,114,11,1,0,0,99,0,0,0,0,
-    0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
-    64,0,0,0,115,46,0,0,0,101,0,90,1,100,0,90,
-    2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,
-    5,132,0,90,5,100,6,100,7,156,1,100,8,100,9,132,
-    2,90,6,100,10,83,0,41,11,218,16,83,111,117,114,99,
-    101,70,105,108,101,76,111,97,100,101,114,122,62,67,111,110,
-    99,114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,
-    116,105,111,110,32,111,102,32,83,111,117,114,99,101,76,111,
-    97,100,101,114,32,117,115,105,110,103,32,116,104,101,32,102,
-    105,108,101,32,115,121,115,116,101,109,46,99,2,0,0,0,
-    0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,
-    67,0,0,0,115,22,0,0,0,116,0,124,1,131,1,125,
-    2,124,2,106,1,124,2,106,2,100,1,156,2,83,0,41,
-    3,122,33,82,101,116,117,114,110,32,116,104,101,32,109,101,
-    116,97,100,97,116,97,32,102,111,114,32,116,104,101,32,112,
-    97,116,104,46,41,2,114,193,0,0,0,114,6,1,0,0,
-    78,41,3,114,75,0,0,0,218,8,115,116,95,109,116,105,
-    109,101,90,7,115,116,95,115,105,122,101,41,3,114,143,0,
-    0,0,114,65,0,0,0,114,10,1,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,114,252,0,0,0,
-    65,4,0,0,115,4,0,0,0,8,2,14,1,122,27,83,
-    111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,
-    112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,0,
-    0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,
-    0,0,0,115,24,0,0,0,116,0,124,1,131,1,125,4,
-    124,0,106,1,124,2,124,3,124,4,100,1,141,3,83,0,
-    41,2,78,169,1,218,5,95,109,111,100,101,41,2,114,139,
-    0,0,0,114,253,0,0,0,41,5,114,143,0,0,0,114,
-    134,0,0,0,114,132,0,0,0,114,41,0,0,0,114,78,
+    32,32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,
+    83,69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,
+    112,97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,
+    97,110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,
+    114,193,0,0,0,41,1,114,251,0,0,0,114,250,0,0,
+    0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+    218,10,112,97,116,104,95,115,116,97,116,115,133,3,0,0,
+    115,2,0,0,0,14,12,122,23,83,111,117,114,99,101,76,
+    111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,115,
+    99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+    0,4,0,0,0,67,0,0,0,115,12,0,0,0,124,0,
+    160,0,124,2,124,3,161,2,83,0,41,1,122,228,79,112,
+    116,105,111,110,97,108,32,109,101,116,104,111,100,32,119,104,
+    105,99,104,32,119,114,105,116,101,115,32,100,97,116,97,32,
+    40,98,121,116,101,115,41,32,116,111,32,97,32,102,105,108,
+    101,32,112,97,116,104,32,40,97,32,115,116,114,41,46,10,
+    10,32,32,32,32,32,32,32,32,73,109,112,108,101,109,101,
+    110,116,105,110,103,32,116,104,105,115,32,109,101,116,104,111,
+    100,32,97,108,108,111,119,115,32,102,111,114,32,116,104,101,
+    32,119,114,105,116,105,110,103,32,111,102,32,98,121,116,101,
+    99,111,100,101,32,102,105,108,101,115,46,10,10,32,32,32,
+    32,32,32,32,32,84,104,101,32,115,111,117,114,99,101,32,
+    112,97,116,104,32,105,115,32,110,101,101,100,101,100,32,105,
+    110,32,111,114,100,101,114,32,116,111,32,99,111,114,114,101,
+    99,116,108,121,32,116,114,97,110,115,102,101,114,32,112,101,
+    114,109,105,115,115,105,111,110,115,10,32,32,32,32,32,32,
+    32,32,41,1,218,8,115,101,116,95,100,97,116,97,41,4,
+    114,143,0,0,0,114,134,0,0,0,90,10,99,97,99,104,
+    101,95,112,97,116,104,114,41,0,0,0,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,218,15,95,99,97,99,
+    104,101,95,98,121,116,101,99,111,100,101,147,3,0,0,115,
+    2,0,0,0,12,8,122,28,83,111,117,114,99,101,76,111,
+    97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,101,
+    99,111,100,101,99,3,0,0,0,0,0,0,0,0,0,0,
+    0,3,0,0,0,1,0,0,0,67,0,0,0,114,23,0,
+    0,0,41,2,122,150,79,112,116,105,111,110,97,108,32,109,
+    101,116,104,111,100,32,119,104,105,99,104,32,119,114,105,116,
+    101,115,32,100,97,116,97,32,40,98,121,116,101,115,41,32,
+    116,111,32,97,32,102,105,108,101,32,112,97,116,104,32,40,
+    97,32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,
+    32,73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,
+    105,115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,
+    32,102,111,114,32,116,104,101,32,119,114,105,116,105,110,103,
+    32,111,102,32,98,121,116,101,99,111,100,101,32,102,105,108,
+    101,115,46,10,32,32,32,32,32,32,32,32,78,114,7,0,
+    0,0,41,3,114,143,0,0,0,114,65,0,0,0,114,41,
     0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,114,254,0,0,0,70,4,0,0,115,4,0,0,0,
-    8,2,16,1,122,32,83,111,117,114,99,101,70,105,108,101,
-    76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,
-    116,101,99,111,100,101,114,87,0,0,0,114,36,1,0,0,
-    99,3,0,0,0,0,0,0,0,1,0,0,0,9,0,0,
-    0,11,0,0,0,67,0,0,0,115,254,0,0,0,116,0,
-    124,1,131,1,92,2,125,4,125,5,103,0,125,6,124,4,
-    114,31,116,1,124,4,131,1,115,31,116,0,124,4,131,1,
-    92,2,125,4,125,7,124,6,160,2,124,7,161,1,1,0,
-    124,4,114,31,116,1,124,4,131,1,114,14,116,3,124,6,
-    131,1,68,0,93,49,125,7,116,4,124,4,124,7,131,2,
-    125,4,122,7,116,5,160,6,124,4,161,1,1,0,87,0,
-    113,35,4,0,116,7,121,58,1,0,1,0,1,0,89,0,
-    113,35,4,0,116,8,121,84,1,0,125,8,1,0,122,15,
-    116,9,160,10,100,1,124,4,124,8,161,3,1,0,87,0,
-    89,0,100,2,125,8,126,8,1,0,100,2,83,0,100,2,
-    125,8,126,8,119,1,119,0,122,15,116,11,124,1,124,2,
-    124,3,131,3,1,0,116,9,160,10,100,3,124,1,161,2,
-    1,0,87,0,100,2,83,0,4,0,116,8,121,126,1,0,
-    125,8,1,0,122,14,116,9,160,10,100,1,124,1,124,8,
-    161,3,1,0,87,0,89,0,100,2,125,8,126,8,100,2,
-    83,0,100,2,125,8,126,8,119,1,119,0,41,4,122,27,
-    87,114,105,116,101,32,98,121,116,101,115,32,100,97,116,97,
-    32,116,111,32,97,32,102,105,108,101,46,122,27,99,111,117,
-    108,100,32,110,111,116,32,99,114,101,97,116,101,32,123,33,
-    114,125,58,32,123,33,114,125,78,122,12,99,114,101,97,116,
-    101,100,32,123,33,114,125,41,12,114,74,0,0,0,114,83,
-    0,0,0,114,61,0,0,0,218,8,114,101,118,101,114,115,
-    101,100,114,67,0,0,0,114,18,0,0,0,90,5,109,107,
-    100,105,114,218,15,70,105,108,101,69,120,105,115,116,115,69,
-    114,114,111,114,114,76,0,0,0,114,159,0,0,0,114,173,
-    0,0,0,114,95,0,0,0,41,9,114,143,0,0,0,114,
-    65,0,0,0,114,41,0,0,0,114,37,1,0,0,218,6,
-    112,97,114,101,110,116,114,120,0,0,0,114,63,0,0,0,
-    114,68,0,0,0,114,0,1,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,253,0,0,0,75,4,
-    0,0,115,56,0,0,0,12,2,4,1,12,2,12,1,10,
-    1,12,254,12,4,10,1,2,1,14,1,12,1,4,2,14,
-    1,6,3,4,1,4,255,16,2,8,128,2,251,2,6,12,
-    1,18,1,14,1,8,2,2,1,18,255,8,128,2,254,122,
-    25,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
-    114,46,115,101,116,95,100,97,116,97,78,41,7,114,150,0,
-    0,0,114,149,0,0,0,114,151,0,0,0,114,152,0,0,
-    0,114,252,0,0,0,114,254,0,0,0,114,253,0,0,0,
-    114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    8,0,0,0,114,34,1,0,0,61,4,0,0,115,10,0,
-    0,0,8,0,4,2,8,2,8,5,18,5,114,34,1,0,
+    0,0,114,253,0,0,0,157,3,0,0,114,240,0,0,0,
+    122,21,83,111,117,114,99,101,76,111,97,100,101,114,46,115,
+    101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,
+    0,0,0,0,5,0,0,0,10,0,0,0,67,0,0,0,
+    115,70,0,0,0,124,0,160,0,124,1,161,1,125,2,122,
+    10,124,0,160,1,124,2,161,1,125,3,87,0,116,4,124,
+    3,131,1,83,0,4,0,116,2,121,34,1,0,125,4,1,
+    0,122,7,116,3,100,1,124,1,100,2,141,2,124,4,130,
+    2,100,3,125,4,126,4,119,1,119,0,41,4,122,52,67,
+    111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,110,
+    116,97,116,105,111,110,32,111,102,32,73,110,115,112,101,99,
+    116,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+    99,101,46,122,39,115,111,117,114,99,101,32,110,111,116,32,
+    97,118,97,105,108,97,98,108,101,32,116,104,114,111,117,103,
+    104,32,103,101,116,95,100,97,116,97,40,41,114,140,0,0,
+    0,78,41,5,114,203,0,0,0,218,8,103,101,116,95,100,
+    97,116,97,114,76,0,0,0,114,142,0,0,0,114,200,0,
+    0,0,41,5,114,143,0,0,0,114,163,0,0,0,114,65,
+    0,0,0,114,198,0,0,0,218,3,101,120,99,114,7,0,
+    0,0,114,7,0,0,0,114,8,0,0,0,218,10,103,101,
+    116,95,115,111,117,114,99,101,164,3,0,0,115,24,0,0,
+    0,10,2,2,1,12,1,8,4,14,253,4,1,2,1,4,
+    255,2,1,2,255,8,128,2,255,122,23,83,111,117,114,99,
+    101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+    99,101,114,130,0,0,0,41,1,218,9,95,111,112,116,105,
+    109,105,122,101,99,3,0,0,0,0,0,0,0,1,0,0,
+    0,4,0,0,0,8,0,0,0,67,0,0,0,115,22,0,
+    0,0,116,0,106,1,116,2,124,1,124,2,100,1,100,2,
+    124,3,100,3,141,6,83,0,41,4,122,130,82,101,116,117,
+    114,110,32,116,104,101,32,99,111,100,101,32,111,98,106,101,
+    99,116,32,99,111,109,112,105,108,101,100,32,102,114,111,109,
+    32,115,111,117,114,99,101,46,10,10,32,32,32,32,32,32,
+    32,32,84,104,101,32,39,100,97,116,97,39,32,97,114,103,
+    117,109,101,110,116,32,99,97,110,32,98,101,32,97,110,121,
+    32,111,98,106,101,99,116,32,116,121,112,101,32,116,104,97,
+    116,32,99,111,109,112,105,108,101,40,41,32,115,117,112,112,
+    111,114,116,115,46,10,32,32,32,32,32,32,32,32,114,243,
+    0,0,0,84,41,2,218,12,100,111,110,116,95,105,110,104,
+    101,114,105,116,114,108,0,0,0,41,3,114,159,0,0,0,
+    114,242,0,0,0,218,7,99,111,109,112,105,108,101,41,4,
+    114,143,0,0,0,114,41,0,0,0,114,65,0,0,0,114,
+    2,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,
+    111,100,101,174,3,0,0,115,6,0,0,0,12,5,4,1,
+    6,255,122,27,83,111,117,114,99,101,76,111,97,100,101,114,
+    46,115,111,117,114,99,101,95,116,111,95,99,111,100,101,99,
+    2,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,
+    9,0,0,0,67,0,0,0,115,2,2,0,0,124,0,160,
+    0,124,1,161,1,125,2,100,1,125,3,100,1,125,4,100,
+    1,125,5,100,2,125,6,100,3,125,7,122,6,116,1,124,
+    2,131,1,125,8,87,0,110,11,4,0,116,2,121,32,1,
+    0,1,0,1,0,100,1,125,8,89,0,110,144,119,0,122,
+    7,124,0,160,3,124,2,161,1,125,9,87,0,110,9,4,
+    0,116,4,121,49,1,0,1,0,1,0,89,0,110,127,119,
+    0,116,5,124,9,100,4,25,0,131,1,125,3,122,7,124,
+    0,160,6,124,8,161,1,125,10,87,0,110,9,4,0,116,
+    4,121,72,1,0,1,0,1,0,89,0,110,104,119,0,124,
+    1,124,8,100,5,156,2,125,11,122,71,116,7,124,10,124,
+    1,124,11,131,3,125,12,116,8,124,10,131,1,100,6,100,
+    1,133,2,25,0,125,13,124,12,100,7,64,0,100,8,107,
+    3,125,6,124,6,114,138,124,12,100,9,64,0,100,8,107,
+    3,125,7,116,9,106,10,100,10,107,3,114,137,124,7,115,
+    119,116,9,106,10,100,11,107,2,114,137,124,0,160,6,124,
+    2,161,1,125,4,116,9,160,11,116,12,124,4,161,2,125,
+    5,116,13,124,10,124,5,124,1,124,11,131,4,1,0,110,
+    10,116,14,124,10,124,3,124,9,100,12,25,0,124,1,124,
+    11,131,5,1,0,87,0,110,11,4,0,116,15,116,16,102,
+    2,121,160,1,0,1,0,1,0,89,0,110,16,119,0,116,
+    17,160,18,100,13,124,8,124,2,161,3,1,0,116,19,124,
+    13,124,1,124,8,124,2,100,14,141,4,83,0,124,4,100,
+    1,117,0,114,185,124,0,160,6,124,2,161,1,125,4,124,
+    0,160,20,124,4,124,2,161,2,125,14,116,17,160,18,100,
+    15,124,2,161,2,1,0,116,21,106,22,115,255,124,8,100,
+    1,117,1,114,255,124,3,100,1,117,1,114,255,124,6,114,
+    226,124,5,100,1,117,0,114,219,116,9,160,11,124,4,161,
+    1,125,5,116,23,124,14,124,5,124,7,131,3,125,10,110,
+    8,116,24,124,14,124,3,116,25,124,4,131,1,131,3,125,
+    10,122,10,124,0,160,26,124,2,124,8,124,10,161,3,1,
+    0,87,0,124,14,83,0,4,0,116,2,121,254,1,0,1,
+    0,1,0,89,0,124,14,83,0,119,0,124,14,83,0,41,
+    16,122,190,67,111,110,99,114,101,116,101,32,105,109,112,108,
+    101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,
+    115,112,101,99,116,76,111,97,100,101,114,46,103,101,116,95,
+    99,111,100,101,46,10,10,32,32,32,32,32,32,32,32,82,
+    101,97,100,105,110,103,32,111,102,32,98,121,116,101,99,111,
+    100,101,32,114,101,113,117,105,114,101,115,32,112,97,116,104,
+    95,115,116,97,116,115,32,116,111,32,98,101,32,105,109,112,
+    108,101,109,101,110,116,101,100,46,32,84,111,32,119,114,105,
+    116,101,10,32,32,32,32,32,32,32,32,98,121,116,101,99,
+    111,100,101,44,32,115,101,116,95,100,97,116,97,32,109,117,
+    115,116,32,97,108,115,111,32,98,101,32,105,109,112,108,101,
+    109,101,110,116,101,100,46,10,10,32,32,32,32,32,32,32,
+    32,78,70,84,114,193,0,0,0,114,183,0,0,0,114,169,
+    0,0,0,114,3,0,0,0,114,0,0,0,0,114,44,0,
+    0,0,90,5,110,101,118,101,114,90,6,97,108,119,97,121,
+    115,218,4,115,105,122,101,122,13,123,125,32,109,97,116,99,
+    104,101,115,32,123,125,41,3,114,141,0,0,0,114,132,0,
+    0,0,114,134,0,0,0,122,19,99,111,100,101,32,111,98,
+    106,101,99,116,32,102,114,111,109,32,123,125,41,27,114,203,
+    0,0,0,114,121,0,0,0,114,107,0,0,0,114,252,0,
+    0,0,114,76,0,0,0,114,33,0,0,0,114,255,0,0,
+    0,114,176,0,0,0,218,10,109,101,109,111,114,121,118,105,
+    101,119,114,187,0,0,0,90,21,99,104,101,99,107,95,104,
+    97,115,104,95,98,97,115,101,100,95,112,121,99,115,114,181,
+    0,0,0,218,17,95,82,65,87,95,77,65,71,73,67,95,
+    78,85,77,66,69,82,114,182,0,0,0,114,180,0,0,0,
+    114,142,0,0,0,114,174,0,0,0,114,159,0,0,0,114,
+    173,0,0,0,114,189,0,0,0,114,5,1,0,0,114,15,
+    0,0,0,218,19,100,111,110,116,95,119,114,105,116,101,95,
+    98,121,116,101,99,111,100,101,114,195,0,0,0,114,194,0,
+    0,0,114,4,0,0,0,114,254,0,0,0,41,15,114,143,
+    0,0,0,114,163,0,0,0,114,134,0,0,0,114,178,0,
+    0,0,114,198,0,0,0,114,181,0,0,0,90,10,104,97,
+    115,104,95,98,97,115,101,100,90,12,99,104,101,99,107,95,
+    115,111,117,114,99,101,114,132,0,0,0,218,2,115,116,114,
+    41,0,0,0,114,175,0,0,0,114,16,0,0,0,90,10,
+    98,121,116,101,115,95,100,97,116,97,90,11,99,111,100,101,
+    95,111,98,106,101,99,116,114,7,0,0,0,114,7,0,0,
+    0,114,8,0,0,0,114,241,0,0,0,182,3,0,0,115,
+    170,0,0,0,10,7,4,1,4,1,4,1,4,1,4,1,
+    2,1,12,1,12,1,8,1,2,255,2,3,14,1,12,1,
+    4,1,2,255,12,3,2,1,14,1,12,1,4,1,2,255,
+    2,4,2,1,6,254,2,4,12,1,16,1,12,1,4,1,
+    12,1,10,1,2,1,2,255,8,2,2,254,10,3,4,1,
+    2,1,2,1,4,254,8,4,2,1,4,255,2,128,2,3,
+    2,1,2,1,6,1,2,1,2,1,4,251,4,128,16,7,
+    4,1,2,255,8,3,2,1,4,255,6,2,2,1,2,1,
+    6,254,8,3,10,1,12,1,12,1,14,1,6,1,2,255,
+    4,2,8,1,10,1,14,1,6,2,6,1,4,255,2,2,
+    16,1,4,3,12,254,2,1,4,1,2,254,4,2,122,21,
+    83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,
+    95,99,111,100,101,78,41,10,114,150,0,0,0,114,149,0,
+    0,0,114,151,0,0,0,114,251,0,0,0,114,252,0,0,
+    0,114,254,0,0,0,114,253,0,0,0,114,1,1,0,0,
+    114,5,1,0,0,114,241,0,0,0,114,7,0,0,0,114,
+    7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,249,
+    0,0,0,123,3,0,0,115,16,0,0,0,8,0,8,2,
+    8,8,8,14,8,10,8,7,14,10,12,8,114,249,0,0,
     0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,64,0,0,0,115,32,0,0,0,101,
+    0,0,4,0,0,0,0,0,0,0,115,92,0,0,0,101,
     0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,
-    0,90,4,100,4,100,5,132,0,90,5,100,6,83,0,41,
-    7,218,20,83,111,117,114,99,101,108,101,115,115,70,105,108,
-    101,76,111,97,100,101,114,122,45,76,111,97,100,101,114,32,
-    119,104,105,99,104,32,104,97,110,100,108,101,115,32,115,111,
-    117,114,99,101,108,101,115,115,32,102,105,108,101,32,105,109,
-    112,111,114,116,115,46,99,2,0,0,0,0,0,0,0,0,
-    0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115,
-    68,0,0,0,124,0,160,0,124,1,161,1,125,2,124,0,
-    160,1,124,2,161,1,125,3,124,1,124,2,100,1,156,2,
-    125,4,116,2,124,3,124,1,124,4,131,3,1,0,116,3,
-    116,4,124,3,131,1,100,2,100,0,133,2,25,0,124,1,
-    124,2,100,3,141,3,83,0,41,4,78,114,183,0,0,0,
-    114,169,0,0,0,41,2,114,141,0,0,0,114,132,0,0,
-    0,41,5,114,203,0,0,0,114,255,0,0,0,114,176,0,
-    0,0,114,189,0,0,0,114,7,1,0,0,41,5,114,143,
-    0,0,0,114,163,0,0,0,114,65,0,0,0,114,41,0,
-    0,0,114,175,0,0,0,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,114,241,0,0,0,110,4,0,0,115,
-    22,0,0,0,10,1,10,1,2,4,2,1,6,254,12,4,
-    2,1,14,1,2,1,2,1,6,253,122,29,83,111,117,114,
-    99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,
-    46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,
-    0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
-    0,0,114,23,0,0,0,41,2,122,39,82,101,116,117,114,
-    110,32,78,111,110,101,32,97,115,32,116,104,101,114,101,32,
-    105,115,32,110,111,32,115,111,117,114,99,101,32,99,111,100,
-    101,46,78,114,7,0,0,0,114,247,0,0,0,114,7,0,
-    0,0,114,7,0,0,0,114,8,0,0,0,114,1,1,0,
-    0,126,4,0,0,114,24,0,0,0,122,31,83,111,117,114,
-    99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,
-    46,103,101,116,95,115,111,117,114,99,101,78,41,6,114,150,
-    0,0,0,114,149,0,0,0,114,151,0,0,0,114,152,0,
-    0,0,114,241,0,0,0,114,1,1,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,41,1,0,0,106,4,0,0,115,8,0,0,0,8,0,
-    4,2,8,2,12,16,114,41,1,0,0,99,0,0,0,0,
-    0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
-    64,0,0,0,115,92,0,0,0,101,0,90,1,100,0,90,
-    2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,
-    5,132,0,90,5,100,6,100,7,132,0,90,6,100,8,100,
-    9,132,0,90,7,100,10,100,11,132,0,90,8,100,12,100,
-    13,132,0,90,9,100,14,100,15,132,0,90,10,100,16,100,
-    17,132,0,90,11,101,12,100,18,100,19,132,0,131,1,90,
-    13,100,20,83,0,41,21,114,30,1,0,0,122,93,76,111,
-    97,100,101,114,32,102,111,114,32,101,120,116,101,110,115,105,
-    111,110,32,109,111,100,117,108,101,115,46,10,10,32,32,32,
-    32,84,104,101,32,99,111,110,115,116,114,117,99,116,111,114,
-    32,105,115,32,100,101,115,105,103,110,101,100,32,116,111,32,
-    119,111,114,107,32,119,105,116,104,32,70,105,108,101,70,105,
-    110,100,101,114,46,10,10,32,32,32,32,99,3,0,0,0,
-    0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,
-    67,0,0,0,115,16,0,0,0,124,1,124,0,95,0,124,
-    2,124,0,95,1,100,0,83,0,114,69,0,0,0,114,183,
-    0,0,0,41,3,114,143,0,0,0,114,141,0,0,0,114,
-    65,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,114,236,0,0,0,139,4,0,0,115,4,0,0,
-    0,6,1,10,1,122,28,69,120,116,101,110,115,105,111,110,
-    70,105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,
-    116,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
-    2,0,0,0,2,0,0,0,67,0,0,0,114,12,1,0,
-    0,114,69,0,0,0,114,13,1,0,0,114,15,1,0,0,
-    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
-    16,1,0,0,143,4,0,0,114,17,1,0,0,122,26,69,
+    0,90,4,100,4,100,5,132,0,90,5,100,6,100,7,132,
+    0,90,6,101,7,135,0,102,1,100,8,100,9,132,8,131,
+    1,90,8,101,7,100,10,100,11,132,0,131,1,90,9,100,
+    12,100,13,132,0,90,10,101,7,100,14,100,15,132,0,131,
+    1,90,11,135,0,4,0,90,12,83,0,41,16,218,10,70,
+    105,108,101,76,111,97,100,101,114,122,103,66,97,115,101,32,
+    102,105,108,101,32,108,111,97,100,101,114,32,99,108,97,115,
+    115,32,119,104,105,99,104,32,105,109,112,108,101,109,101,110,
+    116,115,32,116,104,101,32,108,111,97,100,101,114,32,112,114,
+    111,116,111,99,111,108,32,109,101,116,104,111,100,115,32,116,
+    104,97,116,10,32,32,32,32,114,101,113,117,105,114,101,32,
+    102,105,108,101,32,115,121,115,116,101,109,32,117,115,97,103,
+    101,46,99,3,0,0,0,0,0,0,0,0,0,0,0,3,
+    0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,
+    124,1,124,0,95,0,124,2,124,0,95,1,100,1,83,0,
+    41,2,122,75,67,97,99,104,101,32,116,104,101,32,109,111,
+    100,117,108,101,32,110,97,109,101,32,97,110,100,32,116,104,
+    101,32,112,97,116,104,32,116,111,32,116,104,101,32,102,105,
+    108,101,32,102,111,117,110,100,32,98,121,32,116,104,101,10,
+    32,32,32,32,32,32,32,32,102,105,110,100,101,114,46,78,
+    114,183,0,0,0,41,3,114,143,0,0,0,114,163,0,0,
+    0,114,65,0,0,0,114,7,0,0,0,114,7,0,0,0,
+    114,8,0,0,0,114,236,0,0,0,16,4,0,0,115,4,
+    0,0,0,6,3,10,1,122,19,70,105,108,101,76,111,97,
+    100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,
+    0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
+    0,67,0,0,0,243,24,0,0,0,124,0,106,0,124,1,
+    106,0,107,2,111,11,124,0,106,1,124,1,106,1,107,2,
+    83,0,114,69,0,0,0,169,2,218,9,95,95,99,108,97,
+    115,115,95,95,114,156,0,0,0,169,2,114,143,0,0,0,
+    90,5,111,116,104,101,114,114,7,0,0,0,114,7,0,0,
+    0,114,8,0,0,0,218,6,95,95,101,113,95,95,22,4,
+    0,0,243,6,0,0,0,12,1,10,1,2,255,122,17,70,
+    105,108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,
+    99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
+    0,3,0,0,0,67,0,0,0,243,20,0,0,0,116,0,
+    124,0,106,1,131,1,116,0,124,0,106,2,131,1,65,0,
+    83,0,114,69,0,0,0,169,3,218,4,104,97,115,104,114,
+    141,0,0,0,114,65,0,0,0,169,1,114,143,0,0,0,
+    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+    8,95,95,104,97,115,104,95,95,26,4,0,0,243,2,0,
+    0,0,20,1,122,19,70,105,108,101,76,111,97,100,101,114,
+    46,95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,
+    0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,
+    0,0,115,16,0,0,0,116,0,116,1,124,0,131,2,160,
+    2,124,1,161,1,83,0,41,1,122,100,76,111,97,100,32,
+    97,32,109,111,100,117,108,101,32,102,114,111,109,32,97,32,
+    102,105,108,101,46,10,10,32,32,32,32,32,32,32,32,84,
+    104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,
+    112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,101,
+    120,101,99,95,109,111,100,117,108,101,40,41,32,105,110,115,
+    116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,41,
+    3,218,5,115,117,112,101,114,114,11,1,0,0,114,248,0,
+    0,0,114,247,0,0,0,169,1,114,14,1,0,0,114,7,
+    0,0,0,114,8,0,0,0,114,248,0,0,0,29,4,0,
+    0,115,2,0,0,0,16,10,122,22,70,105,108,101,76,111,
+    97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,101,
+    99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+    0,1,0,0,0,67,0,0,0,243,6,0,0,0,124,0,
+    106,0,83,0,169,1,122,58,82,101,116,117,114,110,32,116,
+    104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,115,
+    111,117,114,99,101,32,102,105,108,101,32,97,115,32,102,111,
+    117,110,100,32,98,121,32,116,104,101,32,102,105,110,100,101,
+    114,46,114,71,0,0,0,114,247,0,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,114,203,0,0,0,
+    41,4,0,0,243,2,0,0,0,6,3,122,23,70,105,108,
+    101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,
+    110,97,109,101,99,2,0,0,0,0,0,0,0,0,0,0,
+    0,3,0,0,0,8,0,0,0,67,0,0,0,115,128,0,
+    0,0,116,0,124,0,116,1,116,2,102,2,131,2,114,36,
+    116,3,160,4,116,5,124,1,131,1,161,1,143,12,125,2,
+    124,2,160,6,161,0,87,0,2,0,100,1,4,0,4,0,
+    131,3,1,0,83,0,49,0,115,29,119,1,1,0,1,0,
+    1,0,89,0,1,0,100,1,83,0,116,3,160,7,124,1,
+    100,2,161,2,143,12,125,2,124,2,160,6,161,0,87,0,
+    2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,0,
+    115,57,119,1,1,0,1,0,1,0,89,0,1,0,100,1,
+    83,0,41,3,122,39,82,101,116,117,114,110,32,116,104,101,
+    32,100,97,116,97,32,102,114,111,109,32,112,97,116,104,32,
+    97,115,32,114,97,119,32,98,121,116,101,115,46,78,218,1,
+    114,41,8,114,185,0,0,0,114,249,0,0,0,218,19,69,
     120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,
-    101,114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,
-    0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
-    0,0,114,18,1,0,0,114,69,0,0,0,114,19,1,0,
-    0,114,21,1,0,0,114,7,0,0,0,114,7,0,0,0,
-    114,8,0,0,0,114,22,1,0,0,147,4,0,0,114,23,
-    1,0,0,122,28,69,120,116,101,110,115,105,111,110,70,105,
-    108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,95,
-    95,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
-    0,0,5,0,0,0,67,0,0,0,115,36,0,0,0,116,
-    0,160,1,116,2,106,3,124,1,161,2,125,2,116,0,160,
-    4,100,1,124,1,106,5,124,0,106,6,161,3,1,0,124,
-    2,83,0,41,3,122,38,67,114,101,97,116,101,32,97,110,
-    32,117,110,105,116,105,97,108,105,122,101,100,32,101,120,116,
-    101,110,115,105,111,110,32,109,111,100,117,108,101,122,38,101,
-    120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32,
-    123,33,114,125,32,108,111,97,100,101,100,32,102,114,111,109,
-    32,123,33,114,125,78,41,7,114,159,0,0,0,114,242,0,
-    0,0,114,187,0,0,0,90,14,99,114,101,97,116,101,95,
-    100,121,110,97,109,105,99,114,173,0,0,0,114,141,0,0,
-    0,114,65,0,0,0,41,3,114,143,0,0,0,114,210,0,
-    0,0,114,244,0,0,0,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,114,239,0,0,0,150,4,0,0,115,
-    14,0,0,0,4,2,6,1,4,255,6,2,8,1,4,255,
-    4,2,122,33,69,120,116,101,110,115,105,111,110,70,105,108,
-    101,76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,
-    111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,5,0,0,0,67,0,0,0,115,36,
-    0,0,0,116,0,160,1,116,2,106,3,124,1,161,2,1,
-    0,116,0,160,4,100,1,124,0,106,5,124,0,106,6,161,
-    3,1,0,100,2,83,0,41,3,122,30,73,110,105,116,105,
-    97,108,105,122,101,32,97,110,32,101,120,116,101,110,115,105,
-    111,110,32,109,111,100,117,108,101,122,40,101,120,116,101,110,
-    115,105,111,110,32,109,111,100,117,108,101,32,123,33,114,125,
-    32,101,120,101,99,117,116,101,100,32,102,114,111,109,32,123,
-    33,114,125,78,41,7,114,159,0,0,0,114,242,0,0,0,
-    114,187,0,0,0,90,12,101,120,101,99,95,100,121,110,97,
-    109,105,99,114,173,0,0,0,114,141,0,0,0,114,65,0,
-    0,0,169,2,114,143,0,0,0,114,244,0,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,245,0,
-    0,0,158,4,0,0,115,8,0,0,0,14,2,6,1,8,
-    1,8,255,122,31,69,120,116,101,110,115,105,111,110,70,105,
-    108,101,76,111,97,100,101,114,46,101,120,101,99,95,109,111,
-    100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,
-    0,2,0,0,0,4,0,0,0,3,0,0,0,115,36,0,
-    0,0,116,0,124,0,106,1,131,1,100,1,25,0,137,0,
-    116,2,135,0,102,1,100,2,100,3,132,8,116,3,68,0,
-    131,1,131,1,83,0,41,5,122,49,82,101,116,117,114,110,
-    32,84,114,117,101,32,105,102,32,116,104,101,32,101,120,116,
-    101,110,115,105,111,110,32,109,111,100,117,108,101,32,105,115,
-    32,97,32,112,97,99,107,97,103,101,46,114,3,0,0,0,
-    99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
-    0,4,0,0,0,51,0,0,0,115,28,0,0,0,129,0,
-    124,0,93,9,125,1,136,0,100,0,124,1,23,0,107,2,
-    86,0,1,0,113,2,100,1,83,0,41,2,114,236,0,0,
-    0,78,114,7,0,0,0,169,2,114,5,0,0,0,218,6,
-    115,117,102,102,105,120,169,1,90,9,102,105,108,101,95,110,
-    97,109,101,114,7,0,0,0,114,8,0,0,0,114,9,0,
-    0,0,167,4,0,0,115,8,0,0,0,2,128,4,0,2,
-    1,20,255,122,49,69,120,116,101,110,115,105,111,110,70,105,
-    108,101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,
-    97,103,101,46,60,108,111,99,97,108,115,62,46,60,103,101,
-    110,101,120,112,114,62,78,41,4,114,74,0,0,0,114,65,
-    0,0,0,218,3,97,110,121,114,232,0,0,0,114,247,0,
-    0,0,114,7,0,0,0,114,45,1,0,0,114,8,0,0,
-    0,114,206,0,0,0,164,4,0,0,115,8,0,0,0,14,
-    2,12,1,2,1,8,255,122,30,69,120,116,101,110,115,105,
-    111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,
-    112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,
-    0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
-    114,23,0,0,0,41,2,122,63,82,101,116,117,114,110,32,
-    78,111,110,101,32,97,115,32,97,110,32,101,120,116,101,110,
-    115,105,111,110,32,109,111,100,117,108,101,32,99,97,110,110,
-    111,116,32,99,114,101,97,116,101,32,97,32,99,111,100,101,
-    32,111,98,106,101,99,116,46,78,114,7,0,0,0,114,247,
+    101,114,114,91,0,0,0,90,9,111,112,101,110,95,99,111,
+    100,101,114,109,0,0,0,90,4,114,101,97,100,114,92,0,
+    0,0,41,3,114,143,0,0,0,114,65,0,0,0,114,94,
     0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,114,241,0,0,0,170,4,0,0,114,24,0,0,0,
-    122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
-    111,97,100,101,114,46,103,101,116,95,99,111,100,101,99,2,
-    0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
-    0,0,0,67,0,0,0,114,23,0,0,0,41,2,122,53,
-    82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,101,
-    120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,115,
-    32,104,97,118,101,32,110,111,32,115,111,117,114,99,101,32,
-    99,111,100,101,46,78,114,7,0,0,0,114,247,0,0,0,
+    0,0,114,255,0,0,0,46,4,0,0,115,14,0,0,0,
+    14,2,16,1,6,1,36,255,14,3,6,1,36,255,122,19,
+    70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,100,
+    97,116,97,99,2,0,0,0,0,0,0,0,0,0,0,0,
+    3,0,0,0,2,0,0,0,67,0,0,0,115,20,0,0,
+    0,100,1,100,2,108,0,109,1,125,2,1,0,124,2,124,
+    0,131,1,83,0,41,3,78,114,0,0,0,0,41,1,218,
+    10,70,105,108,101,82,101,97,100,101,114,41,2,218,17,105,
+    109,112,111,114,116,108,105,98,46,114,101,97,100,101,114,115,
+    114,31,1,0,0,41,3,114,143,0,0,0,114,244,0,0,
+    0,114,31,1,0,0,114,7,0,0,0,114,7,0,0,0,
+    114,8,0,0,0,218,19,103,101,116,95,114,101,115,111,117,
+    114,99,101,95,114,101,97,100,101,114,55,4,0,0,115,4,
+    0,0,0,12,2,8,1,122,30,70,105,108,101,76,111,97,
+    100,101,114,46,103,101,116,95,114,101,115,111,117,114,99,101,
+    95,114,101,97,100,101,114,41,13,114,150,0,0,0,114,149,
+    0,0,0,114,151,0,0,0,114,152,0,0,0,114,236,0,
+    0,0,114,16,1,0,0,114,22,1,0,0,114,160,0,0,
+    0,114,248,0,0,0,114,203,0,0,0,114,255,0,0,0,
+    114,33,1,0,0,90,13,95,95,99,108,97,115,115,99,101,
+    108,108,95,95,114,7,0,0,0,114,7,0,0,0,114,25,
+    1,0,0,114,8,0,0,0,114,11,1,0,0,11,4,0,
+    0,115,24,0,0,0,8,0,4,2,8,3,8,6,8,4,
+    2,3,14,1,2,11,10,1,8,4,2,9,18,1,114,11,
+    1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,3,0,0,0,64,0,0,0,115,46,0,0,
+    0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,
+    3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,100,
+    7,156,1,100,8,100,9,132,2,90,6,100,10,83,0,41,
+    11,218,16,83,111,117,114,99,101,70,105,108,101,76,111,97,
+    100,101,114,122,62,67,111,110,99,114,101,116,101,32,105,109,
+    112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,
+    83,111,117,114,99,101,76,111,97,100,101,114,32,117,115,105,
+    110,103,32,116,104,101,32,102,105,108,101,32,115,121,115,116,
+    101,109,46,99,2,0,0,0,0,0,0,0,0,0,0,0,
+    3,0,0,0,3,0,0,0,67,0,0,0,115,22,0,0,
+    0,116,0,124,1,131,1,125,2,124,2,106,1,124,2,106,
+    2,100,1,156,2,83,0,41,2,122,33,82,101,116,117,114,
+    110,32,116,104,101,32,109,101,116,97,100,97,116,97,32,102,
+    111,114,32,116,104,101,32,112,97,116,104,46,41,2,114,193,
+    0,0,0,114,6,1,0,0,41,3,114,75,0,0,0,218,
+    8,115,116,95,109,116,105,109,101,90,7,115,116,95,115,105,
+    122,101,41,3,114,143,0,0,0,114,65,0,0,0,114,10,
+    1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
+    0,0,114,252,0,0,0,65,4,0,0,115,4,0,0,0,
+    8,2,14,1,122,27,83,111,117,114,99,101,70,105,108,101,
+    76,111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,
+    115,99,4,0,0,0,0,0,0,0,0,0,0,0,5,0,
+    0,0,5,0,0,0,67,0,0,0,115,24,0,0,0,116,
+    0,124,1,131,1,125,4,124,0,106,1,124,2,124,3,124,
+    4,100,1,141,3,83,0,41,2,78,169,1,218,5,95,109,
+    111,100,101,41,2,114,139,0,0,0,114,253,0,0,0,41,
+    5,114,143,0,0,0,114,134,0,0,0,114,132,0,0,0,
+    114,41,0,0,0,114,78,0,0,0,114,7,0,0,0,114,
+    7,0,0,0,114,8,0,0,0,114,254,0,0,0,70,4,
+    0,0,115,4,0,0,0,8,2,16,1,122,32,83,111,117,
+    114,99,101,70,105,108,101,76,111,97,100,101,114,46,95,99,
+    97,99,104,101,95,98,121,116,101,99,111,100,101,114,87,0,
+    0,0,114,36,1,0,0,99,3,0,0,0,0,0,0,0,
+    1,0,0,0,9,0,0,0,11,0,0,0,67,0,0,0,
+    115,254,0,0,0,116,0,124,1,131,1,92,2,125,4,125,
+    5,103,0,125,6,124,4,114,31,116,1,124,4,131,1,115,
+    31,116,0,124,4,131,1,92,2,125,4,125,7,124,6,160,
+    2,124,7,161,1,1,0,124,4,114,31,116,1,124,4,131,
+    1,114,14,116,3,124,6,131,1,68,0,93,49,125,7,116,
+    4,124,4,124,7,131,2,125,4,122,7,116,5,160,6,124,
+    4,161,1,1,0,87,0,113,35,4,0,116,7,121,58,1,
+    0,1,0,1,0,89,0,113,35,4,0,116,8,121,84,1,
+    0,125,8,1,0,122,15,116,9,160,10,100,1,124,4,124,
+    8,161,3,1,0,87,0,89,0,100,2,125,8,126,8,1,
+    0,100,2,83,0,100,2,125,8,126,8,119,1,119,0,122,
+    15,116,11,124,1,124,2,124,3,131,3,1,0,116,9,160,
+    10,100,3,124,1,161,2,1,0,87,0,100,2,83,0,4,
+    0,116,8,121,126,1,0,125,8,1,0,122,14,116,9,160,
+    10,100,1,124,1,124,8,161,3,1,0,87,0,89,0,100,
+    2,125,8,126,8,100,2,83,0,100,2,125,8,126,8,119,
+    1,119,0,41,4,122,27,87,114,105,116,101,32,98,121,116,
+    101,115,32,100,97,116,97,32,116,111,32,97,32,102,105,108,
+    101,46,122,27,99,111,117,108,100,32,110,111,116,32,99,114,
+    101,97,116,101,32,123,33,114,125,58,32,123,33,114,125,78,
+    122,12,99,114,101,97,116,101,100,32,123,33,114,125,41,12,
+    114,74,0,0,0,114,83,0,0,0,114,61,0,0,0,218,
+    8,114,101,118,101,114,115,101,100,114,67,0,0,0,114,18,
+    0,0,0,90,5,109,107,100,105,114,218,15,70,105,108,101,
+    69,120,105,115,116,115,69,114,114,111,114,114,76,0,0,0,
+    114,159,0,0,0,114,173,0,0,0,114,95,0,0,0,41,
+    9,114,143,0,0,0,114,65,0,0,0,114,41,0,0,0,
+    114,37,1,0,0,218,6,112,97,114,101,110,116,114,120,0,
+    0,0,114,63,0,0,0,114,68,0,0,0,114,0,1,0,
+    0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+    114,253,0,0,0,75,4,0,0,115,56,0,0,0,12,2,
+    4,1,12,2,12,1,10,1,12,254,12,4,10,1,2,1,
+    14,1,12,1,4,2,14,1,6,3,4,1,4,255,16,2,
+    8,128,2,251,2,6,12,1,18,1,14,1,8,2,2,1,
+    18,255,8,128,2,254,122,25,83,111,117,114,99,101,70,105,
+    108,101,76,111,97,100,101,114,46,115,101,116,95,100,97,116,
+    97,78,41,7,114,150,0,0,0,114,149,0,0,0,114,151,
+    0,0,0,114,152,0,0,0,114,252,0,0,0,114,254,0,
+    0,0,114,253,0,0,0,114,7,0,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,114,34,1,0,0,
+    61,4,0,0,115,10,0,0,0,8,0,4,2,8,2,8,
+    5,18,5,114,34,1,0,0,99,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
+    0,115,32,0,0,0,101,0,90,1,100,0,90,2,100,1,
+    90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
+    90,5,100,6,83,0,41,7,218,20,83,111,117,114,99,101,
+    108,101,115,115,70,105,108,101,76,111,97,100,101,114,122,45,
+    76,111,97,100,101,114,32,119,104,105,99,104,32,104,97,110,
+    100,108,101,115,32,115,111,117,114,99,101,108,101,115,115,32,
+    102,105,108,101,32,105,109,112,111,114,116,115,46,99,2,0,
+    0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,
+    0,0,67,0,0,0,115,68,0,0,0,124,0,160,0,124,
+    1,161,1,125,2,124,0,160,1,124,2,161,1,125,3,124,
+    1,124,2,100,1,156,2,125,4,116,2,124,3,124,1,124,
+    4,131,3,1,0,116,3,116,4,124,3,131,1,100,2,100,
+    0,133,2,25,0,124,1,124,2,100,3,141,3,83,0,41,
+    4,78,114,183,0,0,0,114,169,0,0,0,41,2,114,141,
+    0,0,0,114,132,0,0,0,41,5,114,203,0,0,0,114,
+    255,0,0,0,114,176,0,0,0,114,189,0,0,0,114,7,
+    1,0,0,41,5,114,143,0,0,0,114,163,0,0,0,114,
+    65,0,0,0,114,41,0,0,0,114,175,0,0,0,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,114,241,0,
+    0,0,110,4,0,0,115,22,0,0,0,10,1,10,1,2,
+    4,2,1,6,254,12,4,2,1,14,1,2,1,2,1,6,
+    253,122,29,83,111,117,114,99,101,108,101,115,115,70,105,108,
+    101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
+    99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+    0,1,0,0,0,67,0,0,0,114,23,0,0,0,41,2,
+    122,39,82,101,116,117,114,110,32,78,111,110,101,32,97,115,
+    32,116,104,101,114,101,32,105,115,32,110,111,32,115,111,117,
+    114,99,101,32,99,111,100,101,46,78,114,7,0,0,0,114,
+    247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,114,1,1,0,0,126,4,0,0,114,24,0,0,
+    0,122,31,83,111,117,114,99,101,108,101,115,115,70,105,108,
+    101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+    99,101,78,41,6,114,150,0,0,0,114,149,0,0,0,114,
+    151,0,0,0,114,152,0,0,0,114,241,0,0,0,114,1,
+    1,0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,
+    0,0,114,8,0,0,0,114,41,1,0,0,106,4,0,0,
+    115,8,0,0,0,8,0,4,2,8,2,12,16,114,41,1,
+    0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,3,0,0,0,64,0,0,0,115,92,0,0,0,
+    101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,
+    132,0,90,4,100,4,100,5,132,0,90,5,100,6,100,7,
+    132,0,90,6,100,8,100,9,132,0,90,7,100,10,100,11,
+    132,0,90,8,100,12,100,13,132,0,90,9,100,14,100,15,
+    132,0,90,10,100,16,100,17,132,0,90,11,101,12,100,18,
+    100,19,132,0,131,1,90,13,100,20,83,0,41,21,114,30,
+    1,0,0,122,93,76,111,97,100,101,114,32,102,111,114,32,
+    101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
+    115,46,10,10,32,32,32,32,84,104,101,32,99,111,110,115,
+    116,114,117,99,116,111,114,32,105,115,32,100,101,115,105,103,
+    110,101,100,32,116,111,32,119,111,114,107,32,119,105,116,104,
+    32,70,105,108,101,70,105,110,100,101,114,46,10,10,32,32,
+    32,32,99,3,0,0,0,0,0,0,0,0,0,0,0,3,
+    0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,
+    124,1,124,0,95,0,124,2,124,0,95,1,100,0,83,0,
+    114,69,0,0,0,114,183,0,0,0,41,3,114,143,0,0,
+    0,114,141,0,0,0,114,65,0,0,0,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,114,236,0,0,0,139,
+    4,0,0,115,4,0,0,0,6,1,10,1,122,28,69,120,
+    116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
+    114,46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,
+    0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,
+    0,0,0,114,12,1,0,0,114,69,0,0,0,114,13,1,
+    0,0,114,15,1,0,0,114,7,0,0,0,114,7,0,0,
+    0,114,8,0,0,0,114,16,1,0,0,143,4,0,0,114,
+    17,1,0,0,122,26,69,120,116,101,110,115,105,111,110,70,
+    105,108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,
+    99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
+    0,3,0,0,0,67,0,0,0,114,18,1,0,0,114,69,
+    0,0,0,114,19,1,0,0,114,21,1,0,0,114,7,0,
+    0,0,114,7,0,0,0,114,8,0,0,0,114,22,1,0,
+    0,147,4,0,0,114,23,1,0,0,122,28,69,120,116,101,
+    110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
+    95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,
+    0,0,0,0,0,3,0,0,0,5,0,0,0,67,0,0,
+    0,115,36,0,0,0,116,0,160,1,116,2,106,3,124,1,
+    161,2,125,2,116,0,160,4,100,1,124,1,106,5,124,0,
+    106,6,161,3,1,0,124,2,83,0,41,2,122,38,67,114,
+    101,97,116,101,32,97,110,32,117,110,105,116,105,97,108,105,
+    122,101,100,32,101,120,116,101,110,115,105,111,110,32,109,111,
+    100,117,108,101,122,38,101,120,116,101,110,115,105,111,110,32,
+    109,111,100,117,108,101,32,123,33,114,125,32,108,111,97,100,
+    101,100,32,102,114,111,109,32,123,33,114,125,41,7,114,159,
+    0,0,0,114,242,0,0,0,114,187,0,0,0,90,14,99,
+    114,101,97,116,101,95,100,121,110,97,109,105,99,114,173,0,
+    0,0,114,141,0,0,0,114,65,0,0,0,41,3,114,143,
+    0,0,0,114,210,0,0,0,114,244,0,0,0,114,7,0,
+    0,0,114,7,0,0,0,114,8,0,0,0,114,239,0,0,
+    0,150,4,0,0,115,14,0,0,0,4,2,6,1,4,255,
+    6,2,8,1,4,255,4,2,122,33,69,120,116,101,110,115,
+    105,111,110,70,105,108,101,76,111,97,100,101,114,46,99,114,
+    101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,
+    0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,
+    67,0,0,0,115,36,0,0,0,116,0,160,1,116,2,106,
+    3,124,1,161,2,1,0,116,0,160,4,100,1,124,0,106,
+    5,124,0,106,6,161,3,1,0,100,2,83,0,41,3,122,
+    30,73,110,105,116,105,97,108,105,122,101,32,97,110,32,101,
+    120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,122,
+    40,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
+    101,32,123,33,114,125,32,101,120,101,99,117,116,101,100,32,
+    102,114,111,109,32,123,33,114,125,78,41,7,114,159,0,0,
+    0,114,242,0,0,0,114,187,0,0,0,90,12,101,120,101,
+    99,95,100,121,110,97,109,105,99,114,173,0,0,0,114,141,
+    0,0,0,114,65,0,0,0,169,2,114,143,0,0,0,114,
+    244,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,114,245,0,0,0,158,4,0,0,115,8,0,0,
+    0,14,2,6,1,8,1,8,255,122,31,69,120,116,101,110,
+    115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,101,
+    120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,
+    0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,3,
+    0,0,0,115,36,0,0,0,116,0,124,0,106,1,131,1,
+    100,1,25,0,137,0,116,2,135,0,102,1,100,2,100,3,
+    132,8,116,3,68,0,131,1,131,1,83,0,41,4,122,49,
+    82,101,116,117,114,110,32,84,114,117,101,32,105,102,32,116,
+    104,101,32,101,120,116,101,110,115,105,111,110,32,109,111,100,
+    117,108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,
+    46,114,3,0,0,0,99,1,0,0,0,0,0,0,0,0,
+    0,0,0,2,0,0,0,4,0,0,0,51,0,0,0,115,
+    28,0,0,0,129,0,124,0,93,9,125,1,136,0,100,0,
+    124,1,23,0,107,2,86,0,1,0,113,2,100,1,83,0,
+    41,2,114,236,0,0,0,78,114,7,0,0,0,169,2,114,
+    5,0,0,0,218,6,115,117,102,102,105,120,169,1,90,9,
+    102,105,108,101,95,110,97,109,101,114,7,0,0,0,114,8,
+    0,0,0,114,9,0,0,0,167,4,0,0,115,8,0,0,
+    0,2,128,4,0,2,1,20,255,122,49,69,120,116,101,110,
+    115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,
+    115,95,112,97,99,107,97,103,101,46,60,108,111,99,97,108,
+    115,62,46,60,103,101,110,101,120,112,114,62,41,4,114,74,
+    0,0,0,114,65,0,0,0,218,3,97,110,121,114,232,0,
+    0,0,114,247,0,0,0,114,7,0,0,0,114,45,1,0,
+    0,114,8,0,0,0,114,206,0,0,0,164,4,0,0,115,
+    8,0,0,0,14,2,12,1,2,1,8,255,122,30,69,120,
+    116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
+    114,46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,
+    0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
+    0,67,0,0,0,114,23,0,0,0,41,2,122,63,82,101,
+    116,117,114,110,32,78,111,110,101,32,97,115,32,97,110,32,
+    101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
+    32,99,97,110,110,111,116,32,99,114,101,97,116,101,32,97,
+    32,99,111,100,101,32,111,98,106,101,99,116,46,78,114,7,
+    0,0,0,114,247,0,0,0,114,7,0,0,0,114,7,0,
+    0,0,114,8,0,0,0,114,241,0,0,0,170,4,0,0,
+    114,24,0,0,0,122,28,69,120,116,101,110,115,105,111,110,
+    70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,99,
+    111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
+    2,0,0,0,1,0,0,0,67,0,0,0,114,23,0,0,
+    0,41,2,122,53,82,101,116,117,114,110,32,78,111,110,101,
+    32,97,115,32,101,120,116,101,110,115,105,111,110,32,109,111,
+    100,117,108,101,115,32,104,97,118,101,32,110,111,32,115,111,
+    117,114,99,101,32,99,111,100,101,46,78,114,7,0,0,0,
+    114,247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+    8,0,0,0,114,1,1,0,0,174,4,0,0,114,24,0,
+    0,0,122,30,69,120,116,101,110,115,105,111,110,70,105,108,
+    101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+    99,101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+    0,0,0,1,0,0,0,67,0,0,0,114,26,1,0,0,
+    114,27,1,0,0,114,71,0,0,0,114,247,0,0,0,114,
+    7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,203,
+    0,0,0,178,4,0,0,114,28,1,0,0,122,32,69,120,
+    116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
+    114,46,103,101,116,95,102,105,108,101,110,97,109,101,78,41,
+    14,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0,
+    114,152,0,0,0,114,236,0,0,0,114,16,1,0,0,114,
+    22,1,0,0,114,239,0,0,0,114,245,0,0,0,114,206,
+    0,0,0,114,241,0,0,0,114,1,1,0,0,114,160,0,
+    0,0,114,203,0,0,0,114,7,0,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,114,30,1,0,0,
+    131,4,0,0,115,24,0,0,0,8,0,4,2,8,6,8,
+    4,8,4,8,3,8,8,8,6,8,6,8,4,2,4,14,
+    1,114,30,1,0,0,99,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,
+    104,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+    100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
+    100,6,100,7,132,0,90,6,100,8,100,9,132,0,90,7,
+    100,10,100,11,132,0,90,8,100,12,100,13,132,0,90,9,
+    100,14,100,15,132,0,90,10,100,16,100,17,132,0,90,11,
+    100,18,100,19,132,0,90,12,100,20,100,21,132,0,90,13,
+    100,22,100,23,132,0,90,14,100,24,83,0,41,25,218,14,
+    95,78,97,109,101,115,112,97,99,101,80,97,116,104,97,38,
+    1,0,0,82,101,112,114,101,115,101,110,116,115,32,97,32,
+    110,97,109,101,115,112,97,99,101,32,112,97,99,107,97,103,
+    101,39,115,32,112,97,116,104,46,32,32,73,116,32,117,115,
+    101,115,32,116,104,101,32,109,111,100,117,108,101,32,110,97,
+    109,101,10,32,32,32,32,116,111,32,102,105,110,100,32,105,
+    116,115,32,112,97,114,101,110,116,32,109,111,100,117,108,101,
+    44,32,97,110,100,32,102,114,111,109,32,116,104,101,114,101,
+    32,105,116,32,108,111,111,107,115,32,117,112,32,116,104,101,
+    32,112,97,114,101,110,116,39,115,10,32,32,32,32,95,95,
+    112,97,116,104,95,95,46,32,32,87,104,101,110,32,116,104,
+    105,115,32,99,104,97,110,103,101,115,44,32,116,104,101,32,
+    109,111,100,117,108,101,39,115,32,111,119,110,32,112,97,116,
+    104,32,105,115,32,114,101,99,111,109,112,117,116,101,100,44,
+    10,32,32,32,32,117,115,105,110,103,32,112,97,116,104,95,
+    102,105,110,100,101,114,46,32,32,70,111,114,32,116,111,112,
+    45,108,101,118,101,108,32,109,111,100,117,108,101,115,44,32,
+    116,104,101,32,112,97,114,101,110,116,32,109,111,100,117,108,
+    101,39,115,32,112,97,116,104,10,32,32,32,32,105,115,32,
+    115,121,115,46,112,97,116,104,46,99,4,0,0,0,0,0,
+    0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,
+    0,0,115,36,0,0,0,124,1,124,0,95,0,124,2,124,
+    0,95,1,116,2,124,0,160,3,161,0,131,1,124,0,95,
+    4,124,3,124,0,95,5,100,0,83,0,114,69,0,0,0,
+    41,6,218,5,95,110,97,109,101,218,5,95,112,97,116,104,
+    114,136,0,0,0,218,16,95,103,101,116,95,112,97,114,101,
+    110,116,95,112,97,116,104,218,17,95,108,97,115,116,95,112,
+    97,114,101,110,116,95,112,97,116,104,218,12,95,112,97,116,
+    104,95,102,105,110,100,101,114,169,4,114,143,0,0,0,114,
+    141,0,0,0,114,65,0,0,0,90,11,112,97,116,104,95,
+    102,105,110,100,101,114,114,7,0,0,0,114,7,0,0,0,
+    114,8,0,0,0,114,236,0,0,0,191,4,0,0,115,8,
+    0,0,0,6,1,6,1,14,1,10,1,122,23,95,78,97,
+    109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,110,
+    105,116,95,95,99,1,0,0,0,0,0,0,0,0,0,0,
+    0,4,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
+    0,0,124,0,106,0,160,1,100,1,161,1,92,3,125,1,
+    125,2,125,3,124,2,100,2,107,2,114,15,100,3,83,0,
+    124,1,100,4,102,2,83,0,41,5,122,62,82,101,116,117,
+    114,110,115,32,97,32,116,117,112,108,101,32,111,102,32,40,
+    112,97,114,101,110,116,45,109,111,100,117,108,101,45,110,97,
+    109,101,44,32,112,97,114,101,110,116,45,112,97,116,104,45,
+    97,116,116,114,45,110,97,109,101,41,114,97,0,0,0,114,
+    10,0,0,0,41,2,114,15,0,0,0,114,65,0,0,0,
+    90,8,95,95,112,97,116,104,95,95,41,2,114,48,1,0,
+    0,114,104,0,0,0,41,4,114,143,0,0,0,114,40,1,
+    0,0,218,3,100,111,116,90,2,109,101,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,218,23,95,102,105,110,
+    100,95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,
+    109,101,115,197,4,0,0,115,8,0,0,0,18,2,8,1,
+    4,2,8,3,122,38,95,78,97,109,101,115,112,97,99,101,
+    80,97,116,104,46,95,102,105,110,100,95,112,97,114,101,110,
+    116,95,112,97,116,104,95,110,97,109,101,115,99,1,0,0,
+    0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,
+    0,67,0,0,0,115,28,0,0,0,124,0,160,0,161,0,
+    92,2,125,1,125,2,116,1,116,2,106,3,124,1,25,0,
+    124,2,131,2,83,0,114,69,0,0,0,41,4,114,55,1,
+    0,0,114,155,0,0,0,114,15,0,0,0,218,7,109,111,
+    100,117,108,101,115,41,3,114,143,0,0,0,90,18,112,97,
+    114,101,110,116,95,109,111,100,117,108,101,95,110,97,109,101,
+    90,14,112,97,116,104,95,97,116,116,114,95,110,97,109,101,
     114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
-    1,1,0,0,174,4,0,0,114,24,0,0,0,122,30,69,
-    120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,
-    101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,0,
-    0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
-    0,0,67,0,0,0,114,26,1,0,0,114,27,1,0,0,
-    114,71,0,0,0,114,247,0,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,203,0,0,0,178,4,
-    0,0,114,28,1,0,0,122,32,69,120,116,101,110,115,105,
-    111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
-    95,102,105,108,101,110,97,109,101,78,41,14,114,150,0,0,
-    0,114,149,0,0,0,114,151,0,0,0,114,152,0,0,0,
-    114,236,0,0,0,114,16,1,0,0,114,22,1,0,0,114,
-    239,0,0,0,114,245,0,0,0,114,206,0,0,0,114,241,
-    0,0,0,114,1,1,0,0,114,160,0,0,0,114,203,0,
-    0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,114,30,1,0,0,131,4,0,0,115,
-    24,0,0,0,8,0,4,2,8,6,8,4,8,4,8,3,
-    8,8,8,6,8,6,8,4,2,4,14,1,114,30,1,0,
-    0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,64,0,0,0,115,104,0,0,0,101,
-    0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,
-    0,90,4,100,4,100,5,132,0,90,5,100,6,100,7,132,
-    0,90,6,100,8,100,9,132,0,90,7,100,10,100,11,132,
-    0,90,8,100,12,100,13,132,0,90,9,100,14,100,15,132,
-    0,90,10,100,16,100,17,132,0,90,11,100,18,100,19,132,
-    0,90,12,100,20,100,21,132,0,90,13,100,22,100,23,132,
-    0,90,14,100,24,83,0,41,25,218,14,95,78,97,109,101,
-    115,112,97,99,101,80,97,116,104,97,38,1,0,0,82,101,
-    112,114,101,115,101,110,116,115,32,97,32,110,97,109,101,115,
-    112,97,99,101,32,112,97,99,107,97,103,101,39,115,32,112,
-    97,116,104,46,32,32,73,116,32,117,115,101,115,32,116,104,
-    101,32,109,111,100,117,108,101,32,110,97,109,101,10,32,32,
-    32,32,116,111,32,102,105,110,100,32,105,116,115,32,112,97,
-    114,101,110,116,32,109,111,100,117,108,101,44,32,97,110,100,
-    32,102,114,111,109,32,116,104,101,114,101,32,105,116,32,108,
-    111,111,107,115,32,117,112,32,116,104,101,32,112,97,114,101,
-    110,116,39,115,10,32,32,32,32,95,95,112,97,116,104,95,
-    95,46,32,32,87,104,101,110,32,116,104,105,115,32,99,104,
-    97,110,103,101,115,44,32,116,104,101,32,109,111,100,117,108,
-    101,39,115,32,111,119,110,32,112,97,116,104,32,105,115,32,
-    114,101,99,111,109,112,117,116,101,100,44,10,32,32,32,32,
-    117,115,105,110,103,32,112,97,116,104,95,102,105,110,100,101,
-    114,46,32,32,70,111,114,32,116,111,112,45,108,101,118,101,
-    108,32,109,111,100,117,108,101,115,44,32,116,104,101,32,112,
-    97,114,101,110,116,32,109,111,100,117,108,101,39,115,32,112,
-    97,116,104,10,32,32,32,32,105,115,32,115,121,115,46,112,
-    97,116,104,46,99,4,0,0,0,0,0,0,0,0,0,0,
-    0,4,0,0,0,3,0,0,0,67,0,0,0,115,36,0,
-    0,0,124,1,124,0,95,0,124,2,124,0,95,1,116,2,
-    124,0,160,3,161,0,131,1,124,0,95,4,124,3,124,0,
-    95,5,100,0,83,0,114,69,0,0,0,41,6,218,5,95,
-    110,97,109,101,218,5,95,112,97,116,104,114,136,0,0,0,
-    218,16,95,103,101,116,95,112,97,114,101,110,116,95,112,97,
-    116,104,218,17,95,108,97,115,116,95,112,97,114,101,110,116,
-    95,112,97,116,104,218,12,95,112,97,116,104,95,102,105,110,
-    100,101,114,169,4,114,143,0,0,0,114,141,0,0,0,114,
-    65,0,0,0,90,11,112,97,116,104,95,102,105,110,100,101,
-    114,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,236,0,0,0,191,4,0,0,115,8,0,0,0,6,1,
-    6,1,14,1,10,1,122,23,95,78,97,109,101,115,112,97,
-    99,101,80,97,116,104,46,95,95,105,110,105,116,95,95,99,
-    1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
-    3,0,0,0,67,0,0,0,115,38,0,0,0,124,0,106,
-    0,160,1,100,1,161,1,92,3,125,1,125,2,125,3,124,
-    2,100,2,107,2,114,15,100,3,83,0,124,1,100,4,102,
-    2,83,0,41,6,122,62,82,101,116,117,114,110,115,32,97,
-    32,116,117,112,108,101,32,111,102,32,40,112,97,114,101,110,
-    116,45,109,111,100,117,108,101,45,110,97,109,101,44,32,112,
-    97,114,101,110,116,45,112,97,116,104,45,97,116,116,114,45,
-    110,97,109,101,41,114,97,0,0,0,114,10,0,0,0,41,
-    2,114,15,0,0,0,114,65,0,0,0,90,8,95,95,112,
-    97,116,104,95,95,78,41,2,114,48,1,0,0,114,104,0,
-    0,0,41,4,114,143,0,0,0,114,40,1,0,0,218,3,
-    100,111,116,90,2,109,101,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,218,23,95,102,105,110,100,95,112,97,
-    114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,197,
-    4,0,0,115,8,0,0,0,18,2,8,1,4,2,8,3,
-    122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
-    46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,
-    116,104,95,110,97,109,101,115,99,1,0,0,0,0,0,0,
-    0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
-    0,115,28,0,0,0,124,0,160,0,161,0,92,2,125,1,
-    125,2,116,1,116,2,106,3,124,1,25,0,124,2,131,2,
-    83,0,114,69,0,0,0,41,4,114,55,1,0,0,114,155,
-    0,0,0,114,15,0,0,0,218,7,109,111,100,117,108,101,
-    115,41,3,114,143,0,0,0,90,18,112,97,114,101,110,116,
-    95,109,111,100,117,108,101,95,110,97,109,101,90,14,112,97,
-    116,104,95,97,116,116,114,95,110,97,109,101,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,114,50,1,0,0,
-    207,4,0,0,115,4,0,0,0,12,1,16,1,122,31,95,
-    78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,103,
-    101,116,95,112,97,114,101,110,116,95,112,97,116,104,99,1,
-    0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,
-    0,0,0,67,0,0,0,115,80,0,0,0,116,0,124,0,
-    160,1,161,0,131,1,125,1,124,1,124,0,106,2,107,3,
-    114,37,124,0,160,3,124,0,106,4,124,1,161,2,125,2,
-    124,2,100,0,117,1,114,34,124,2,106,5,100,0,117,0,
-    114,34,124,2,106,6,114,34,124,2,106,6,124,0,95,7,
-    124,1,124,0,95,2,124,0,106,7,83,0,114,69,0,0,
-    0,41,8,114,136,0,0,0,114,50,1,0,0,114,51,1,
-    0,0,114,52,1,0,0,114,48,1,0,0,114,164,0,0,
-    0,114,202,0,0,0,114,49,1,0,0,41,3,114,143,0,
-    0,0,90,11,112,97,114,101,110,116,95,112,97,116,104,114,
-    210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,218,12,95,114,101,99,97,108,99,117,108,97,116,
-    101,211,4,0,0,115,16,0,0,0,12,2,10,1,14,1,
-    18,3,6,1,8,1,6,1,6,1,122,27,95,78,97,109,
-    101,115,112,97,99,101,80,97,116,104,46,95,114,101,99,97,
-    108,99,117,108,97,116,101,99,1,0,0,0,0,0,0,0,
-    0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
-    243,12,0,0,0,116,0,124,0,160,1,161,0,131,1,83,
-    0,114,69,0,0,0,41,2,218,4,105,116,101,114,114,57,
-    1,0,0,114,21,1,0,0,114,7,0,0,0,114,7,0,
-    0,0,114,8,0,0,0,218,8,95,95,105,116,101,114,95,
-    95,224,4,0,0,243,2,0,0,0,12,1,122,23,95,78,
-    97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,
-    116,101,114,95,95,99,2,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,12,
-    0,0,0,124,0,160,0,161,0,124,1,25,0,83,0,114,
-    69,0,0,0,169,1,114,57,1,0,0,41,2,114,143,0,
-    0,0,218,5,105,110,100,101,120,114,7,0,0,0,114,7,
-    0,0,0,114,8,0,0,0,218,11,95,95,103,101,116,105,
-    116,101,109,95,95,227,4,0,0,114,61,1,0,0,122,26,
+    50,1,0,0,207,4,0,0,115,4,0,0,0,12,1,16,
+    1,122,31,95,78,97,109,101,115,112,97,99,101,80,97,116,
+    104,46,95,103,101,116,95,112,97,114,101,110,116,95,112,97,
+    116,104,99,1,0,0,0,0,0,0,0,0,0,0,0,3,
+    0,0,0,4,0,0,0,67,0,0,0,115,80,0,0,0,
+    116,0,124,0,160,1,161,0,131,1,125,1,124,1,124,0,
+    106,2,107,3,114,37,124,0,160,3,124,0,106,4,124,1,
+    161,2,125,2,124,2,100,0,117,1,114,34,124,2,106,5,
+    100,0,117,0,114,34,124,2,106,6,114,34,124,2,106,6,
+    124,0,95,7,124,1,124,0,95,2,124,0,106,7,83,0,
+    114,69,0,0,0,41,8,114,136,0,0,0,114,50,1,0,
+    0,114,51,1,0,0,114,52,1,0,0,114,48,1,0,0,
+    114,164,0,0,0,114,202,0,0,0,114,49,1,0,0,41,
+    3,114,143,0,0,0,90,11,112,97,114,101,110,116,95,112,
+    97,116,104,114,210,0,0,0,114,7,0,0,0,114,7,0,
+    0,0,114,8,0,0,0,218,12,95,114,101,99,97,108,99,
+    117,108,97,116,101,211,4,0,0,115,16,0,0,0,12,2,
+    10,1,14,1,18,3,6,1,8,1,6,1,6,1,122,27,
     95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
-    95,103,101,116,105,116,101,109,95,95,99,3,0,0,0,0,
-    0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
-    0,0,0,115,14,0,0,0,124,2,124,0,106,0,124,1,
-    60,0,100,0,83,0,114,69,0,0,0,41,1,114,49,1,
-    0,0,41,3,114,143,0,0,0,114,63,1,0,0,114,65,
-    0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,218,11,95,95,115,101,116,105,116,101,109,95,95,230,
-    4,0,0,115,2,0,0,0,14,1,122,26,95,78,97,109,
-    101,115,112,97,99,101,80,97,116,104,46,95,95,115,101,116,
-    105,116,101,109,95,95,99,1,0,0,0,0,0,0,0,0,
-    0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,114,
-    58,1,0,0,114,69,0,0,0,41,2,114,4,0,0,0,
-    114,57,1,0,0,114,21,1,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,218,7,95,95,108,101,110,
-    95,95,233,4,0,0,114,61,1,0,0,122,22,95,78,97,
-    109,101,115,112,97,99,101,80,97,116,104,46,95,95,108,101,
-    110,95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,
-    1,0,0,0,3,0,0,0,67,0,0,0,243,12,0,0,
-    0,100,1,160,0,124,0,106,1,161,1,83,0,41,2,78,
-    122,20,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
-    40,123,33,114,125,41,41,2,114,89,0,0,0,114,49,1,
-    0,0,114,21,1,0,0,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,218,8,95,95,114,101,112,114,95,95,
-    236,4,0,0,114,61,1,0,0,122,23,95,78,97,109,101,
-    115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,
-    95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
-    0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,
-    124,1,124,0,160,0,161,0,118,0,83,0,114,69,0,0,
-    0,114,62,1,0,0,169,2,114,143,0,0,0,218,4,105,
-    116,101,109,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,
-    239,4,0,0,114,61,1,0,0,122,27,95,78,97,109,101,
-    115,112,97,99,101,80,97,116,104,46,95,95,99,111,110,116,
-    97,105,110,115,95,95,99,2,0,0,0,0,0,0,0,0,
+    114,101,99,97,108,99,117,108,97,116,101,99,1,0,0,0,
+    0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
+    67,0,0,0,243,12,0,0,0,116,0,124,0,160,1,161,
+    0,131,1,83,0,114,69,0,0,0,41,2,218,4,105,116,
+    101,114,114,57,1,0,0,114,21,1,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,218,8,95,95,105,
+    116,101,114,95,95,224,4,0,0,243,2,0,0,0,12,1,
+    122,23,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
+    46,95,95,105,116,101,114,95,95,99,2,0,0,0,0,0,
+    0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,
+    0,0,115,12,0,0,0,124,0,160,0,161,0,124,1,25,
+    0,83,0,114,69,0,0,0,169,1,114,57,1,0,0,41,
+    2,114,143,0,0,0,218,5,105,110,100,101,120,114,7,0,
+    0,0,114,7,0,0,0,114,8,0,0,0,218,11,95,95,
+    103,101,116,105,116,101,109,95,95,227,4,0,0,114,61,1,
+    0,0,122,26,95,78,97,109,101,115,112,97,99,101,80,97,
+    116,104,46,95,95,103,101,116,105,116,101,109,95,95,99,3,
+    0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
+    0,0,0,67,0,0,0,115,14,0,0,0,124,2,124,0,
+    106,0,124,1,60,0,100,0,83,0,114,69,0,0,0,41,
+    1,114,49,1,0,0,41,3,114,143,0,0,0,114,63,1,
+    0,0,114,65,0,0,0,114,7,0,0,0,114,7,0,0,
+    0,114,8,0,0,0,218,11,95,95,115,101,116,105,116,101,
+    109,95,95,230,4,0,0,115,2,0,0,0,14,1,122,26,
+    95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
+    95,115,101,116,105,116,101,109,95,95,99,1,0,0,0,0,
+    0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,
+    0,0,0,114,58,1,0,0,114,69,0,0,0,41,2,114,
+    4,0,0,0,114,57,1,0,0,114,21,1,0,0,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,218,7,95,
+    95,108,101,110,95,95,233,4,0,0,114,61,1,0,0,122,
+    22,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
+    95,95,108,101,110,95,95,99,1,0,0,0,0,0,0,0,
+    0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+    243,12,0,0,0,100,1,160,0,124,0,106,1,161,1,83,
+    0,41,2,78,122,20,95,78,97,109,101,115,112,97,99,101,
+    80,97,116,104,40,123,33,114,125,41,41,2,114,89,0,0,
+    0,114,49,1,0,0,114,21,1,0,0,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,218,8,95,95,114,101,
+    112,114,95,95,236,4,0,0,114,61,1,0,0,122,23,95,
+    78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
+    114,101,112,114,95,95,99,2,0,0,0,0,0,0,0,0,
     0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
-    16,0,0,0,124,0,106,0,160,1,124,1,161,1,1,0,
-    100,0,83,0,114,69,0,0,0,41,2,114,49,1,0,0,
-    114,61,0,0,0,114,69,1,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,61,0,0,0,242,4,
-    0,0,243,2,0,0,0,16,1,122,21,95,78,97,109,101,
-    115,112,97,99,101,80,97,116,104,46,97,112,112,101,110,100,
-    78,41,15,114,150,0,0,0,114,149,0,0,0,114,151,0,
-    0,0,114,152,0,0,0,114,236,0,0,0,114,55,1,0,
-    0,114,50,1,0,0,114,57,1,0,0,114,60,1,0,0,
-    114,64,1,0,0,114,65,1,0,0,114,66,1,0,0,114,
-    68,1,0,0,114,71,1,0,0,114,61,0,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,114,47,1,0,0,184,4,0,0,115,26,0,0,0,
-    8,0,4,1,8,6,8,6,8,10,8,4,8,13,8,3,
-    8,3,8,3,8,3,8,3,12,3,114,47,1,0,0,99,
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-    3,0,0,0,64,0,0,0,115,88,0,0,0,101,0,90,
-    1,100,0,90,2,100,1,100,2,132,0,90,3,101,4,100,
-    3,100,4,132,0,131,1,90,5,100,5,100,6,132,0,90,
-    6,100,7,100,8,132,0,90,7,100,9,100,10,132,0,90,
-    8,100,11,100,12,132,0,90,9,100,13,100,14,132,0,90,
-    10,100,15,100,16,132,0,90,11,100,17,100,18,132,0,90,
-    12,100,19,83,0,41,20,218,16,95,78,97,109,101,115,112,
-    97,99,101,76,111,97,100,101,114,99,4,0,0,0,0,0,
-    0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,
-    0,0,115,18,0,0,0,116,0,124,1,124,2,124,3,131,
-    3,124,0,95,1,100,0,83,0,114,69,0,0,0,41,2,
-    114,47,1,0,0,114,49,1,0,0,114,53,1,0,0,114,
-    7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,236,
-    0,0,0,248,4,0,0,115,2,0,0,0,18,1,122,25,
-    95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
-    46,95,95,105,110,105,116,95,95,99,1,0,0,0,0,0,
-    0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,
-    0,0,115,24,0,0,0,116,0,160,1,100,1,116,2,161,
-    2,1,0,100,2,160,3,124,0,106,4,161,1,83,0,41,
-    4,122,115,82,101,116,117,114,110,32,114,101,112,114,32,102,
-    111,114,32,116,104,101,32,109,111,100,117,108,101,46,10,10,
-    32,32,32,32,32,32,32,32,84,104,101,32,109,101,116,104,
-    111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
-    46,32,32,84,104,101,32,105,109,112,111,114,116,32,109,97,
-    99,104,105,110,101,114,121,32,100,111,101,115,32,116,104,101,
-    32,106,111,98,32,105,116,115,101,108,102,46,10,10,32,32,
-    32,32,32,32,32,32,122,82,95,78,97,109,101,115,112,97,
-    99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,
-    114,101,112,114,40,41,32,105,115,32,100,101,112,114,101,99,
-    97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,
-    102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,
-    121,116,104,111,110,32,51,46,49,50,122,25,60,109,111,100,
-    117,108,101,32,123,33,114,125,32,40,110,97,109,101,115,112,
-    97,99,101,41,62,78,41,5,114,99,0,0,0,114,100,0,
-    0,0,114,101,0,0,0,114,89,0,0,0,114,150,0,0,
-    0,41,1,114,244,0,0,0,114,7,0,0,0,114,7,0,
-    0,0,114,8,0,0,0,218,11,109,111,100,117,108,101,95,
-    114,101,112,114,251,4,0,0,115,8,0,0,0,6,7,2,
-    1,4,255,12,2,122,28,95,78,97,109,101,115,112,97,99,
-    101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,114,
-    101,112,114,99,2,0,0,0,0,0,0,0,0,0,0,0,
-    2,0,0,0,1,0,0,0,67,0,0,0,114,23,0,0,
-    0,41,2,78,84,114,7,0,0,0,114,247,0,0,0,114,
-    7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,206,
-    0,0,0,6,5,0,0,243,2,0,0,0,4,1,122,27,
-    95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
-    46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,0,
-    0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
-    67,0,0,0,114,23,0,0,0,41,2,78,114,10,0,0,
-    0,114,7,0,0,0,114,247,0,0,0,114,7,0,0,0,
-    114,7,0,0,0,114,8,0,0,0,114,1,1,0,0,9,
-    5,0,0,114,75,1,0,0,122,27,95,78,97,109,101,115,
-    112,97,99,101,76,111,97,100,101,114,46,103,101,116,95,115,
-    111,117,114,99,101,99,2,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,6,0,0,0,67,0,0,0,115,16,
-    0,0,0,116,0,100,1,100,2,100,3,100,4,100,5,141,
-    4,83,0,41,6,78,114,10,0,0,0,122,8,60,115,116,
-    114,105,110,103,62,114,243,0,0,0,84,41,1,114,3,1,
-    0,0,41,1,114,4,1,0,0,114,247,0,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,241,0,
-    0,0,12,5,0,0,114,72,1,0,0,122,25,95,78,97,
-    109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,101,
-    116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,
+    12,0,0,0,124,1,124,0,160,0,161,0,118,0,83,0,
+    114,69,0,0,0,114,62,1,0,0,169,2,114,143,0,0,
+    0,218,4,105,116,101,109,114,7,0,0,0,114,7,0,0,
+    0,114,8,0,0,0,218,12,95,95,99,111,110,116,97,105,
+    110,115,95,95,239,4,0,0,114,61,1,0,0,122,27,95,
+    78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
+    99,111,110,116,97,105,110,115,95,95,99,2,0,0,0,0,
+    0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,
+    0,0,0,115,16,0,0,0,124,0,106,0,160,1,124,1,
+    161,1,1,0,100,0,83,0,114,69,0,0,0,41,2,114,
+    49,1,0,0,114,61,0,0,0,114,69,1,0,0,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,114,61,0,
+    0,0,242,4,0,0,243,2,0,0,0,16,1,122,21,95,
+    78,97,109,101,115,112,97,99,101,80,97,116,104,46,97,112,
+    112,101,110,100,78,41,15,114,150,0,0,0,114,149,0,0,
+    0,114,151,0,0,0,114,152,0,0,0,114,236,0,0,0,
+    114,55,1,0,0,114,50,1,0,0,114,57,1,0,0,114,
+    60,1,0,0,114,64,1,0,0,114,65,1,0,0,114,66,
+    1,0,0,114,68,1,0,0,114,71,1,0,0,114,61,0,
+    0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
+    0,114,8,0,0,0,114,47,1,0,0,184,4,0,0,115,
+    26,0,0,0,8,0,4,1,8,6,8,6,8,10,8,4,
+    8,13,8,3,8,3,8,3,8,3,8,3,12,3,114,47,
+    1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,3,0,0,0,64,0,0,0,115,88,0,0,
+    0,101,0,90,1,100,0,90,2,100,1,100,2,132,0,90,
+    3,101,4,100,3,100,4,132,0,131,1,90,5,100,5,100,
+    6,132,0,90,6,100,7,100,8,132,0,90,7,100,9,100,
+    10,132,0,90,8,100,11,100,12,132,0,90,9,100,13,100,
+    14,132,0,90,10,100,15,100,16,132,0,90,11,100,17,100,
+    18,132,0,90,12,100,19,83,0,41,20,218,16,95,78,97,
+    109,101,115,112,97,99,101,76,111,97,100,101,114,99,4,0,
+    0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,
+    0,0,67,0,0,0,115,18,0,0,0,116,0,124,1,124,
+    2,124,3,131,3,124,0,95,1,100,0,83,0,114,69,0,
+    0,0,41,2,114,47,1,0,0,114,49,1,0,0,114,53,
+    1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
+    0,0,114,236,0,0,0,248,4,0,0,115,2,0,0,0,
+    18,1,122,25,95,78,97,109,101,115,112,97,99,101,76,111,
+    97,100,101,114,46,95,95,105,110,105,116,95,95,99,1,0,
+    0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,
+    0,0,67,0,0,0,115,24,0,0,0,116,0,160,1,100,
+    1,116,2,161,2,1,0,100,2,160,3,124,0,106,4,161,
+    1,83,0,41,3,122,115,82,101,116,117,114,110,32,114,101,
+    112,114,32,102,111,114,32,116,104,101,32,109,111,100,117,108,
+    101,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,
+    109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
+    97,116,101,100,46,32,32,84,104,101,32,105,109,112,111,114,
+    116,32,109,97,99,104,105,110,101,114,121,32,100,111,101,115,
+    32,116,104,101,32,106,111,98,32,105,116,115,101,108,102,46,
+    10,10,32,32,32,32,32,32,32,32,122,82,95,78,97,109,
+    101,115,112,97,99,101,76,111,97,100,101,114,46,109,111,100,
+    117,108,101,95,114,101,112,114,40,41,32,105,115,32,100,101,
+    112,114,101,99,97,116,101,100,32,97,110,100,32,115,108,97,
+    116,101,100,32,102,111,114,32,114,101,109,111,118,97,108,32,
+    105,110,32,80,121,116,104,111,110,32,51,46,49,50,122,25,
+    60,109,111,100,117,108,101,32,123,33,114,125,32,40,110,97,
+    109,101,115,112,97,99,101,41,62,41,5,114,99,0,0,0,
+    114,100,0,0,0,114,101,0,0,0,114,89,0,0,0,114,
+    150,0,0,0,41,1,114,244,0,0,0,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,218,11,109,111,100,117,
+    108,101,95,114,101,112,114,251,4,0,0,115,8,0,0,0,
+    6,7,2,1,4,255,12,2,122,28,95,78,97,109,101,115,
+    112,97,99,101,76,111,97,100,101,114,46,109,111,100,117,108,
+    101,95,114,101,112,114,99,2,0,0,0,0,0,0,0,0,
     0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,114,
-    23,0,0,0,114,237,0,0,0,114,7,0,0,0,114,238,
-    0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,114,239,0,0,0,15,5,0,0,114,240,0,0,0,
-    122,30,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
-    101,114,46,99,114,101,97,116,101,95,109,111,100,117,108,101,
-    99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
-    0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,0,
-    83,0,114,69,0,0,0,114,7,0,0,0,114,42,1,0,
+    23,0,0,0,41,2,78,84,114,7,0,0,0,114,247,0,
+    0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+    0,114,206,0,0,0,6,5,0,0,243,2,0,0,0,4,
+    1,122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,
+    100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,2,
+    0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
+    0,0,0,67,0,0,0,114,23,0,0,0,41,2,78,114,
+    10,0,0,0,114,7,0,0,0,114,247,0,0,0,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,114,1,1,
+    0,0,9,5,0,0,114,75,1,0,0,122,27,95,78,97,
+    109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,101,
+    116,95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,
+    0,0,0,0,0,2,0,0,0,6,0,0,0,67,0,0,
+    0,115,16,0,0,0,116,0,100,1,100,2,100,3,100,4,
+    100,5,141,4,83,0,41,6,78,114,10,0,0,0,122,8,
+    60,115,116,114,105,110,103,62,114,243,0,0,0,84,41,1,
+    114,3,1,0,0,41,1,114,4,1,0,0,114,247,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,245,0,0,0,18,5,0,0,114,75,1,0,0,122,28,
+    114,241,0,0,0,12,5,0,0,114,72,1,0,0,122,25,
     95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
-    46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0,
-    0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
-    0,67,0,0,0,115,26,0,0,0,116,0,160,1,100,1,
-    124,0,106,2,161,2,1,0,116,0,160,3,124,0,124,1,
-    161,2,83,0,41,3,122,98,76,111,97,100,32,97,32,110,
-    97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,46,
-    10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
-    101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
-    116,101,100,46,32,32,85,115,101,32,101,120,101,99,95,109,
-    111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,
-    10,10,32,32,32,32,32,32,32,32,122,38,110,97,109,101,
-    115,112,97,99,101,32,109,111,100,117,108,101,32,108,111,97,
-    100,101,100,32,119,105,116,104,32,112,97,116,104,32,123,33,
-    114,125,78,41,4,114,159,0,0,0,114,173,0,0,0,114,
-    49,1,0,0,114,246,0,0,0,114,247,0,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,248,0,
-    0,0,21,5,0,0,115,8,0,0,0,6,7,4,1,4,
-    255,12,3,122,28,95,78,97,109,101,115,112,97,99,101,76,
-    111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,
-    101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
-    0,0,2,0,0,0,67,0,0,0,115,22,0,0,0,100,
-    1,100,2,108,0,109,1,125,2,1,0,124,2,124,0,106,
-    2,131,1,83,0,41,3,78,114,0,0,0,0,41,1,218,
-    15,78,97,109,101,115,112,97,99,101,82,101,97,100,101,114,
-    41,3,114,32,1,0,0,114,76,1,0,0,114,49,1,0,
-    0,41,3,114,143,0,0,0,114,244,0,0,0,114,76,1,
-    0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,114,33,1,0,0,33,5,0,0,115,4,0,0,0,12,
-    1,10,1,122,36,95,78,97,109,101,115,112,97,99,101,76,
-    111,97,100,101,114,46,103,101,116,95,114,101,115,111,117,114,
-    99,101,95,114,101,97,100,101,114,78,41,13,114,150,0,0,
-    0,114,149,0,0,0,114,151,0,0,0,114,236,0,0,0,
-    114,233,0,0,0,114,74,1,0,0,114,206,0,0,0,114,
-    1,1,0,0,114,241,0,0,0,114,239,0,0,0,114,245,
-    0,0,0,114,248,0,0,0,114,33,1,0,0,114,7,0,
-    0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,114,73,1,0,0,247,4,0,0,115,22,0,0,0,8,
-    0,8,1,2,3,10,1,8,10,8,3,8,3,8,3,8,
-    3,8,3,12,12,114,73,1,0,0,99,0,0,0,0,0,
-    0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,64,
-    0,0,0,115,118,0,0,0,101,0,90,1,100,0,90,2,
-    100,1,90,3,101,4,100,2,100,3,132,0,131,1,90,5,
-    101,4,100,4,100,5,132,0,131,1,90,6,101,7,100,6,
-    100,7,132,0,131,1,90,8,101,7,100,8,100,9,132,0,
-    131,1,90,9,101,7,100,19,100,11,100,12,132,1,131,1,
-    90,10,101,7,100,20,100,13,100,14,132,1,131,1,90,11,
-    101,7,100,19,100,15,100,16,132,1,131,1,90,12,101,4,
-    100,17,100,18,132,0,131,1,90,13,100,10,83,0,41,21,
-    218,10,80,97,116,104,70,105,110,100,101,114,122,62,77,101,
-    116,97,32,112,97,116,104,32,102,105,110,100,101,114,32,102,
-    111,114,32,115,121,115,46,112,97,116,104,32,97,110,100,32,
-    112,97,99,107,97,103,101,32,95,95,112,97,116,104,95,95,
-    32,97,116,116,114,105,98,117,116,101,115,46,99,0,0,0,
-    0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
-    0,67,0,0,0,115,64,0,0,0,116,0,116,1,106,2,
-    160,3,161,0,131,1,68,0,93,22,92,2,125,0,125,1,
-    124,1,100,1,117,0,114,20,116,1,106,2,124,0,61,0,
-    113,7,116,4,124,1,100,2,131,2,114,29,124,1,160,5,
-    161,0,1,0,113,7,100,1,83,0,41,3,122,125,67,97,
-    108,108,32,116,104,101,32,105,110,118,97,108,105,100,97,116,
-    101,95,99,97,99,104,101,115,40,41,32,109,101,116,104,111,
-    100,32,111,110,32,97,108,108,32,112,97,116,104,32,101,110,
-    116,114,121,32,102,105,110,100,101,114,115,10,32,32,32,32,
-    32,32,32,32,115,116,111,114,101,100,32,105,110,32,115,121,
-    115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
-    99,97,99,104,101,115,32,40,119,104,101,114,101,32,105,109,
-    112,108,101,109,101,110,116,101,100,41,46,78,218,17,105,110,
-    118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,41,
-    6,218,4,108,105,115,116,114,15,0,0,0,218,19,112,97,
-    116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
-    101,218,5,105,116,101,109,115,114,153,0,0,0,114,78,1,
-    0,0,41,2,114,141,0,0,0,218,6,102,105,110,100,101,
-    114,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,78,1,0,0,44,5,0,0,115,14,0,0,0,22,4,
-    8,1,10,1,10,1,8,1,2,128,4,252,122,28,80,97,
-    116,104,70,105,110,100,101,114,46,105,110,118,97,108,105,100,
-    97,116,101,95,99,97,99,104,101,115,99,1,0,0,0,0,
-    0,0,0,0,0,0,0,2,0,0,0,9,0,0,0,67,
-    0,0,0,115,76,0,0,0,116,0,106,1,100,1,117,1,
-    114,14,116,0,106,1,115,14,116,2,160,3,100,2,116,4,
-    161,2,1,0,116,0,106,1,68,0,93,18,125,1,122,7,
-    124,1,124,0,131,1,87,0,2,0,1,0,83,0,4,0,
-    116,5,121,35,1,0,1,0,1,0,89,0,113,17,119,0,
-    100,1,83,0,41,3,122,46,83,101,97,114,99,104,32,115,
-    121,115,46,112,97,116,104,95,104,111,111,107,115,32,102,111,
-    114,32,97,32,102,105,110,100,101,114,32,102,111,114,32,39,
-    112,97,116,104,39,46,78,122,23,115,121,115,46,112,97,116,
-    104,95,104,111,111,107,115,32,105,115,32,101,109,112,116,121,
-    41,6,114,15,0,0,0,218,10,112,97,116,104,95,104,111,
-    111,107,115,114,99,0,0,0,114,100,0,0,0,114,162,0,
-    0,0,114,142,0,0,0,41,2,114,65,0,0,0,90,4,
-    104,111,111,107,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,218,11,95,112,97,116,104,95,104,111,111,107,115,
-    54,5,0,0,115,18,0,0,0,16,3,12,1,10,1,2,
-    1,14,1,12,1,4,1,2,255,4,3,122,22,80,97,116,
-    104,70,105,110,100,101,114,46,95,112,97,116,104,95,104,111,
-    111,107,115,99,2,0,0,0,0,0,0,0,0,0,0,0,
-    3,0,0,0,8,0,0,0,67,0,0,0,115,100,0,0,
-    0,124,1,100,1,107,2,114,21,122,6,116,0,160,1,161,
-    0,125,1,87,0,110,10,4,0,116,2,121,20,1,0,1,
-    0,1,0,89,0,100,2,83,0,119,0,122,8,116,3,106,
-    4,124,1,25,0,125,2,87,0,124,2,83,0,4,0,116,
-    5,121,49,1,0,1,0,1,0,124,0,160,6,124,1,161,
-    1,125,2,124,2,116,3,106,4,124,1,60,0,89,0,124,
-    2,83,0,119,0,41,3,122,210,71,101,116,32,116,104,101,
-    32,102,105,110,100,101,114,32,102,111,114,32,116,104,101,32,
-    112,97,116,104,32,101,110,116,114,121,32,102,114,111,109,32,
+    46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,
+    0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
+    0,0,114,23,0,0,0,114,237,0,0,0,114,7,0,0,
+    0,114,238,0,0,0,114,7,0,0,0,114,7,0,0,0,
+    114,8,0,0,0,114,239,0,0,0,15,5,0,0,114,240,
+    0,0,0,122,30,95,78,97,109,101,115,112,97,99,101,76,
+    111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,100,
+    117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
+    2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
+    0,100,0,83,0,114,69,0,0,0,114,7,0,0,0,114,
+    42,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,114,245,0,0,0,18,5,0,0,114,75,1,0,
+    0,122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,
+    100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,99,
+    2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+    4,0,0,0,67,0,0,0,115,26,0,0,0,116,0,160,
+    1,100,1,124,0,106,2,161,2,1,0,116,0,160,3,124,
+    0,124,1,161,2,83,0,41,2,122,98,76,111,97,100,32,
+    97,32,110,97,109,101,115,112,97,99,101,32,109,111,100,117,
+    108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,
+    115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
+    101,99,97,116,101,100,46,32,32,85,115,101,32,101,120,101,
+    99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,
+    97,100,46,10,10,32,32,32,32,32,32,32,32,122,38,110,
+    97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,32,
+    108,111,97,100,101,100,32,119,105,116,104,32,112,97,116,104,
+    32,123,33,114,125,41,4,114,159,0,0,0,114,173,0,0,
+    0,114,49,1,0,0,114,246,0,0,0,114,247,0,0,0,
+    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
+    248,0,0,0,21,5,0,0,115,8,0,0,0,6,7,4,
+    1,4,255,12,3,122,28,95,78,97,109,101,115,112,97,99,
+    101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,100,
+    117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
+    3,0,0,0,2,0,0,0,67,0,0,0,115,22,0,0,
+    0,100,1,100,2,108,0,109,1,125,2,1,0,124,2,124,
+    0,106,2,131,1,83,0,41,3,78,114,0,0,0,0,41,
+    1,218,15,78,97,109,101,115,112,97,99,101,82,101,97,100,
+    101,114,41,3,114,32,1,0,0,114,76,1,0,0,114,49,
+    1,0,0,41,3,114,143,0,0,0,114,244,0,0,0,114,
+    76,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,114,33,1,0,0,33,5,0,0,115,4,0,0,
+    0,12,1,10,1,122,36,95,78,97,109,101,115,112,97,99,
+    101,76,111,97,100,101,114,46,103,101,116,95,114,101,115,111,
+    117,114,99,101,95,114,101,97,100,101,114,78,41,13,114,150,
+    0,0,0,114,149,0,0,0,114,151,0,0,0,114,236,0,
+    0,0,114,233,0,0,0,114,74,1,0,0,114,206,0,0,
+    0,114,1,1,0,0,114,241,0,0,0,114,239,0,0,0,
+    114,245,0,0,0,114,248,0,0,0,114,33,1,0,0,114,
+    7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,114,73,1,0,0,247,4,0,0,115,22,0,0,
+    0,8,0,8,1,2,3,10,1,8,10,8,3,8,3,8,
+    3,8,3,8,3,12,12,114,73,1,0,0,99,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+    0,64,0,0,0,115,118,0,0,0,101,0,90,1,100,0,
+    90,2,100,1,90,3,101,4,100,2,100,3,132,0,131,1,
+    90,5,101,4,100,4,100,5,132,0,131,1,90,6,101,7,
+    100,6,100,7,132,0,131,1,90,8,101,7,100,8,100,9,
+    132,0,131,1,90,9,101,7,100,19,100,11,100,12,132,1,
+    131,1,90,10,101,7,100,20,100,13,100,14,132,1,131,1,
+    90,11,101,7,100,19,100,15,100,16,132,1,131,1,90,12,
+    101,4,100,17,100,18,132,0,131,1,90,13,100,10,83,0,
+    41,21,218,10,80,97,116,104,70,105,110,100,101,114,122,62,
+    77,101,116,97,32,112,97,116,104,32,102,105,110,100,101,114,
+    32,102,111,114,32,115,121,115,46,112,97,116,104,32,97,110,
+    100,32,112,97,99,107,97,103,101,32,95,95,112,97,116,104,
+    95,95,32,97,116,116,114,105,98,117,116,101,115,46,99,0,
+    0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
+    0,0,0,67,0,0,0,115,64,0,0,0,116,0,116,1,
+    106,2,160,3,161,0,131,1,68,0,93,22,92,2,125,0,
+    125,1,124,1,100,1,117,0,114,20,116,1,106,2,124,0,
+    61,0,113,7,116,4,124,1,100,2,131,2,114,29,124,1,
+    160,5,161,0,1,0,113,7,100,1,83,0,41,3,122,125,
+    67,97,108,108,32,116,104,101,32,105,110,118,97,108,105,100,
+    97,116,101,95,99,97,99,104,101,115,40,41,32,109,101,116,
+    104,111,100,32,111,110,32,97,108,108,32,112,97,116,104,32,
+    101,110,116,114,121,32,102,105,110,100,101,114,115,10,32,32,
+    32,32,32,32,32,32,115,116,111,114,101,100,32,105,110,32,
     115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,
-    114,95,99,97,99,104,101,46,10,10,32,32,32,32,32,32,
-    32,32,73,102,32,116,104,101,32,112,97,116,104,32,101,110,
-    116,114,121,32,105,115,32,110,111,116,32,105,110,32,116,104,
-    101,32,99,97,99,104,101,44,32,102,105,110,100,32,116,104,
-    101,32,97,112,112,114,111,112,114,105,97,116,101,32,102,105,
-    110,100,101,114,10,32,32,32,32,32,32,32,32,97,110,100,
-    32,99,97,99,104,101,32,105,116,46,32,73,102,32,110,111,
-    32,102,105,110,100,101,114,32,105,115,32,97,118,97,105,108,
-    97,98,108,101,44,32,115,116,111,114,101,32,78,111,110,101,
-    46,10,10,32,32,32,32,32,32,32,32,114,10,0,0,0,
-    78,41,7,114,18,0,0,0,114,82,0,0,0,218,17,70,
-    105,108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,
-    114,15,0,0,0,114,80,1,0,0,218,8,75,101,121,69,
-    114,114,111,114,114,84,1,0,0,41,3,114,221,0,0,0,
-    114,65,0,0,0,114,82,1,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,218,20,95,112,97,116,104,
-    95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,67,
-    5,0,0,115,28,0,0,0,8,8,2,1,12,1,12,1,
-    6,3,2,253,2,4,12,1,4,4,12,253,10,1,12,1,
-    4,1,2,253,122,31,80,97,116,104,70,105,110,100,101,114,
-    46,95,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
-    99,97,99,104,101,99,3,0,0,0,0,0,0,0,0,0,
-    0,0,7,0,0,0,4,0,0,0,67,0,0,0,115,138,
-    0,0,0,116,0,124,2,100,1,131,2,114,27,116,1,160,
-    2,124,2,161,1,155,0,100,2,157,2,125,3,116,3,160,
-    4,124,3,116,5,161,2,1,0,124,2,160,6,124,1,161,
-    1,92,2,125,4,125,5,110,21,116,1,160,2,124,2,161,
-    1,155,0,100,3,157,2,125,3,116,3,160,4,124,3,116,
-    5,161,2,1,0,124,2,160,7,124,1,161,1,125,4,103,
-    0,125,5,124,4,100,0,117,1,114,58,116,1,160,8,124,
-    1,124,4,161,2,83,0,116,1,160,9,124,1,100,0,161,
-    2,125,6,124,5,124,6,95,10,124,6,83,0,41,4,78,
-    114,161,0,0,0,122,53,46,102,105,110,100,95,115,112,101,
-    99,40,41,32,110,111,116,32,102,111,117,110,100,59,32,102,
-    97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,102,
-    105,110,100,95,108,111,97,100,101,114,40,41,122,53,46,102,
-    105,110,100,95,115,112,101,99,40,41,32,110,111,116,32,102,
-    111,117,110,100,59,32,102,97,108,108,105,110,103,32,98,97,
-    99,107,32,116,111,32,102,105,110,100,95,109,111,100,117,108,
-    101,40,41,41,11,114,153,0,0,0,114,159,0,0,0,90,
-    12,95,111,98,106,101,99,116,95,110,97,109,101,114,99,0,
-    0,0,114,100,0,0,0,114,162,0,0,0,114,161,0,0,
-    0,114,229,0,0,0,114,224,0,0,0,114,207,0,0,0,
-    114,202,0,0,0,41,7,114,221,0,0,0,114,163,0,0,
-    0,114,82,1,0,0,114,166,0,0,0,114,164,0,0,0,
-    114,165,0,0,0,114,210,0,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,218,16,95,108,101,103,97,
-    99,121,95,103,101,116,95,115,112,101,99,89,5,0,0,115,
-    26,0,0,0,10,4,16,1,12,2,16,1,16,2,12,2,
-    10,1,4,1,8,1,12,1,12,1,6,1,4,1,122,27,
-    80,97,116,104,70,105,110,100,101,114,46,95,108,101,103,97,
-    99,121,95,103,101,116,95,115,112,101,99,78,99,4,0,0,
-    0,0,0,0,0,0,0,0,0,9,0,0,0,5,0,0,
-    0,67,0,0,0,115,166,0,0,0,103,0,125,4,124,2,
-    68,0,93,67,125,5,116,0,124,5,116,1,116,2,102,2,
-    131,2,115,14,113,4,124,0,160,3,124,5,161,1,125,6,
-    124,6,100,1,117,1,114,71,116,4,124,6,100,2,131,2,
-    114,35,124,6,160,5,124,1,124,3,161,2,125,7,110,6,
-    124,0,160,6,124,1,124,6,161,2,125,7,124,7,100,1,
-    117,0,114,46,113,4,124,7,106,7,100,1,117,1,114,55,
-    124,7,2,0,1,0,83,0,124,7,106,8,125,8,124,8,
-    100,1,117,0,114,66,116,9,100,3,131,1,130,1,124,4,
-    160,10,124,8,161,1,1,0,113,4,116,11,160,12,124,1,
-    100,1,161,2,125,7,124,4,124,7,95,8,124,7,83,0,
-    41,4,122,63,70,105,110,100,32,116,104,101,32,108,111,97,
-    100,101,114,32,111,114,32,110,97,109,101,115,112,97,99,101,
-    95,112,97,116,104,32,102,111,114,32,116,104,105,115,32,109,
-    111,100,117,108,101,47,112,97,99,107,97,103,101,32,110,97,
-    109,101,46,78,114,226,0,0,0,122,19,115,112,101,99,32,
-    109,105,115,115,105,110,103,32,108,111,97,100,101,114,41,13,
-    114,185,0,0,0,114,109,0,0,0,218,5,98,121,116,101,
-    115,114,87,1,0,0,114,153,0,0,0,114,226,0,0,0,
-    114,88,1,0,0,114,164,0,0,0,114,202,0,0,0,114,
-    142,0,0,0,114,191,0,0,0,114,159,0,0,0,114,207,
-    0,0,0,41,9,114,221,0,0,0,114,163,0,0,0,114,
-    65,0,0,0,114,225,0,0,0,218,14,110,97,109,101,115,
-    112,97,99,101,95,112,97,116,104,90,5,101,110,116,114,121,
-    114,82,1,0,0,114,210,0,0,0,114,165,0,0,0,114,
-    7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,9,
-    95,103,101,116,95,115,112,101,99,110,5,0,0,115,42,0,
-    0,0,4,5,8,1,14,1,2,1,10,1,8,1,10,1,
-    14,1,12,2,8,1,2,1,10,1,8,1,6,1,8,1,
-    8,1,10,5,2,128,12,2,6,1,4,1,122,20,80,97,
-    116,104,70,105,110,100,101,114,46,95,103,101,116,95,115,112,
-    101,99,99,4,0,0,0,0,0,0,0,0,0,0,0,6,
-    0,0,0,5,0,0,0,67,0,0,0,115,94,0,0,0,
-    124,2,100,1,117,0,114,7,116,0,106,1,125,2,124,0,
-    160,2,124,1,124,2,124,3,161,3,125,4,124,4,100,1,
-    117,0,114,20,100,1,83,0,124,4,106,3,100,1,117,0,
-    114,45,124,4,106,4,125,5,124,5,114,43,100,1,124,4,
-    95,5,116,6,124,1,124,5,124,0,106,2,131,3,124,4,
-    95,4,124,4,83,0,100,1,83,0,124,4,83,0,41,2,
-    122,141,84,114,121,32,116,111,32,102,105,110,100,32,97,32,
-    115,112,101,99,32,102,111,114,32,39,102,117,108,108,110,97,
-    109,101,39,32,111,110,32,115,121,115,46,112,97,116,104,32,
-    111,114,32,39,112,97,116,104,39,46,10,10,32,32,32,32,
-    32,32,32,32,84,104,101,32,115,101,97,114,99,104,32,105,
-    115,32,98,97,115,101,100,32,111,110,32,115,121,115,46,112,
-    97,116,104,95,104,111,111,107,115,32,97,110,100,32,115,121,
-    115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
-    99,97,99,104,101,46,10,32,32,32,32,32,32,32,32,78,
-    41,7,114,15,0,0,0,114,65,0,0,0,114,91,1,0,
-    0,114,164,0,0,0,114,202,0,0,0,114,205,0,0,0,
-    114,47,1,0,0,41,6,114,221,0,0,0,114,163,0,0,
-    0,114,65,0,0,0,114,225,0,0,0,114,210,0,0,0,
-    114,90,1,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    8,0,0,0,114,226,0,0,0,142,5,0,0,115,26,0,
-    0,0,8,6,6,1,14,1,8,1,4,1,10,1,6,1,
-    4,1,6,3,16,1,4,1,4,2,4,2,122,20,80,97,
-    116,104,70,105,110,100,101,114,46,102,105,110,100,95,115,112,
-    101,99,99,3,0,0,0,0,0,0,0,0,0,0,0,4,
-    0,0,0,4,0,0,0,67,0,0,0,115,42,0,0,0,
-    116,0,160,1,100,1,116,2,161,2,1,0,124,0,160,3,
-    124,1,124,2,161,2,125,3,124,3,100,2,117,0,114,18,
-    100,2,83,0,124,3,106,4,83,0,41,3,122,170,102,105,
-    110,100,32,116,104,101,32,109,111,100,117,108,101,32,111,110,
-    32,115,121,115,46,112,97,116,104,32,111,114,32,39,112,97,
-    116,104,39,32,98,97,115,101,100,32,111,110,32,115,121,115,
-    46,112,97,116,104,95,104,111,111,107,115,32,97,110,100,10,
-    32,32,32,32,32,32,32,32,115,121,115,46,112,97,116,104,
-    95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,46,
-    10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
-    101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
-    116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,115,
-    112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,10,
-    32,32,32,32,32,32,32,32,122,101,80,97,116,104,70,105,
-    110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,
-    40,41,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
-    32,97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,
-    114,101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,
-    110,32,51,46,49,50,59,32,117,115,101,32,102,105,110,100,
-    95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,78,
-    114,227,0,0,0,114,228,0,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,229,0,0,0,166,5,
-    0,0,115,14,0,0,0,6,8,2,2,4,254,12,3,8,
-    1,4,1,6,1,122,22,80,97,116,104,70,105,110,100,101,
-    114,46,102,105,110,100,95,109,111,100,117,108,101,99,0,0,
-    0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,
-    0,0,79,0,0,0,115,28,0,0,0,100,1,100,2,108,
-    0,109,1,125,2,1,0,124,2,106,2,124,0,105,0,124,
-    1,164,1,142,1,83,0,41,4,97,32,1,0,0,10,32,
-    32,32,32,32,32,32,32,70,105,110,100,32,100,105,115,116,
-    114,105,98,117,116,105,111,110,115,46,10,10,32,32,32,32,
-    32,32,32,32,82,101,116,117,114,110,32,97,110,32,105,116,
-    101,114,97,98,108,101,32,111,102,32,97,108,108,32,68,105,
-    115,116,114,105,98,117,116,105,111,110,32,105,110,115,116,97,
-    110,99,101,115,32,99,97,112,97,98,108,101,32,111,102,10,
-    32,32,32,32,32,32,32,32,108,111,97,100,105,110,103,32,
-    116,104,101,32,109,101,116,97,100,97,116,97,32,102,111,114,
-    32,112,97,99,107,97,103,101,115,32,109,97,116,99,104,105,
-    110,103,32,96,96,99,111,110,116,101,120,116,46,110,97,109,
-    101,96,96,10,32,32,32,32,32,32,32,32,40,111,114,32,
-    97,108,108,32,110,97,109,101,115,32,105,102,32,96,96,78,
-    111,110,101,96,96,32,105,110,100,105,99,97,116,101,100,41,
-    32,97,108,111,110,103,32,116,104,101,32,112,97,116,104,115,
-    32,105,110,32,116,104,101,32,108,105,115,116,10,32,32,32,
-    32,32,32,32,32,111,102,32,100,105,114,101,99,116,111,114,
-    105,101,115,32,96,96,99,111,110,116,101,120,116,46,112,97,
-    116,104,96,96,46,10,32,32,32,32,32,32,32,32,114,0,
-    0,0,0,41,1,218,18,77,101,116,97,100,97,116,97,80,
-    97,116,104,70,105,110,100,101,114,78,41,3,90,18,105,109,
-    112,111,114,116,108,105,98,46,109,101,116,97,100,97,116,97,
-    114,92,1,0,0,218,18,102,105,110,100,95,100,105,115,116,
-    114,105,98,117,116,105,111,110,115,41,3,114,144,0,0,0,
-    114,145,0,0,0,114,92,1,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,93,1,0,0,182,5,
-    0,0,115,4,0,0,0,12,10,16,1,122,29,80,97,116,
-    104,70,105,110,100,101,114,46,102,105,110,100,95,100,105,115,
-    116,114,105,98,117,116,105,111,110,115,114,69,0,0,0,114,
-    230,0,0,0,41,14,114,150,0,0,0,114,149,0,0,0,
-    114,151,0,0,0,114,152,0,0,0,114,233,0,0,0,114,
-    78,1,0,0,114,84,1,0,0,114,234,0,0,0,114,87,
-    1,0,0,114,88,1,0,0,114,91,1,0,0,114,226,0,
-    0,0,114,229,0,0,0,114,93,1,0,0,114,7,0,0,
+    114,95,99,97,99,104,101,115,32,40,119,104,101,114,101,32,
+    105,109,112,108,101,109,101,110,116,101,100,41,46,78,218,17,
+    105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,
+    115,41,6,218,4,108,105,115,116,114,15,0,0,0,218,19,
+    112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,
+    99,104,101,218,5,105,116,101,109,115,114,153,0,0,0,114,
+    78,1,0,0,41,2,114,141,0,0,0,218,6,102,105,110,
+    100,101,114,114,7,0,0,0,114,7,0,0,0,114,8,0,
+    0,0,114,78,1,0,0,44,5,0,0,115,14,0,0,0,
+    22,4,8,1,10,1,10,1,8,1,2,128,4,252,122,28,
+    80,97,116,104,70,105,110,100,101,114,46,105,110,118,97,108,
+    105,100,97,116,101,95,99,97,99,104,101,115,99,1,0,0,
+    0,0,0,0,0,0,0,0,0,2,0,0,0,9,0,0,
+    0,67,0,0,0,115,76,0,0,0,116,0,106,1,100,1,
+    117,1,114,14,116,0,106,1,115,14,116,2,160,3,100,2,
+    116,4,161,2,1,0,116,0,106,1,68,0,93,18,125,1,
+    122,7,124,1,124,0,131,1,87,0,2,0,1,0,83,0,
+    4,0,116,5,121,35,1,0,1,0,1,0,89,0,113,17,
+    119,0,100,1,83,0,41,3,122,46,83,101,97,114,99,104,
+    32,115,121,115,46,112,97,116,104,95,104,111,111,107,115,32,
+    102,111,114,32,97,32,102,105,110,100,101,114,32,102,111,114,
+    32,39,112,97,116,104,39,46,78,122,23,115,121,115,46,112,
+    97,116,104,95,104,111,111,107,115,32,105,115,32,101,109,112,
+    116,121,41,6,114,15,0,0,0,218,10,112,97,116,104,95,
+    104,111,111,107,115,114,99,0,0,0,114,100,0,0,0,114,
+    162,0,0,0,114,142,0,0,0,41,2,114,65,0,0,0,
+    90,4,104,111,111,107,114,7,0,0,0,114,7,0,0,0,
+    114,8,0,0,0,218,11,95,112,97,116,104,95,104,111,111,
+    107,115,54,5,0,0,115,18,0,0,0,16,3,12,1,10,
+    1,2,1,14,1,12,1,4,1,2,255,4,3,122,22,80,
+    97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,
+    104,111,111,107,115,99,2,0,0,0,0,0,0,0,0,0,
+    0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,100,
+    0,0,0,124,1,100,1,107,2,114,21,122,6,116,0,160,
+    1,161,0,125,1,87,0,110,10,4,0,116,2,121,20,1,
+    0,1,0,1,0,89,0,100,2,83,0,119,0,122,8,116,
+    3,106,4,124,1,25,0,125,2,87,0,124,2,83,0,4,
+    0,116,5,121,49,1,0,1,0,1,0,124,0,160,6,124,
+    1,161,1,125,2,124,2,116,3,106,4,124,1,60,0,89,
+    0,124,2,83,0,119,0,41,3,122,210,71,101,116,32,116,
+    104,101,32,102,105,110,100,101,114,32,102,111,114,32,116,104,
+    101,32,112,97,116,104,32,101,110,116,114,121,32,102,114,111,
+    109,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
+    116,101,114,95,99,97,99,104,101,46,10,10,32,32,32,32,
+    32,32,32,32,73,102,32,116,104,101,32,112,97,116,104,32,
+    101,110,116,114,121,32,105,115,32,110,111,116,32,105,110,32,
+    116,104,101,32,99,97,99,104,101,44,32,102,105,110,100,32,
+    116,104,101,32,97,112,112,114,111,112,114,105,97,116,101,32,
+    102,105,110,100,101,114,10,32,32,32,32,32,32,32,32,97,
+    110,100,32,99,97,99,104,101,32,105,116,46,32,73,102,32,
+    110,111,32,102,105,110,100,101,114,32,105,115,32,97,118,97,
+    105,108,97,98,108,101,44,32,115,116,111,114,101,32,78,111,
+    110,101,46,10,10,32,32,32,32,32,32,32,32,114,10,0,
+    0,0,78,41,7,114,18,0,0,0,114,82,0,0,0,218,
+    17,70,105,108,101,78,111,116,70,111,117,110,100,69,114,114,
+    111,114,114,15,0,0,0,114,80,1,0,0,218,8,75,101,
+    121,69,114,114,111,114,114,84,1,0,0,41,3,114,221,0,
+    0,0,114,65,0,0,0,114,82,1,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,218,20,95,112,97,
+    116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
+    101,67,5,0,0,115,28,0,0,0,8,8,2,1,12,1,
+    12,1,6,3,2,253,2,4,12,1,4,4,12,253,10,1,
+    12,1,4,1,2,253,122,31,80,97,116,104,70,105,110,100,
+    101,114,46,95,112,97,116,104,95,105,109,112,111,114,116,101,
+    114,95,99,97,99,104,101,99,3,0,0,0,0,0,0,0,
+    0,0,0,0,7,0,0,0,4,0,0,0,67,0,0,0,
+    115,138,0,0,0,116,0,124,2,100,1,131,2,114,27,116,
+    1,160,2,124,2,161,1,155,0,100,2,157,2,125,3,116,
+    3,160,4,124,3,116,5,161,2,1,0,124,2,160,6,124,
+    1,161,1,92,2,125,4,125,5,110,21,116,1,160,2,124,
+    2,161,1,155,0,100,3,157,2,125,3,116,3,160,4,124,
+    3,116,5,161,2,1,0,124,2,160,7,124,1,161,1,125,
+    4,103,0,125,5,124,4,100,0,117,1,114,58,116,1,160,
+    8,124,1,124,4,161,2,83,0,116,1,160,9,124,1,100,
+    0,161,2,125,6,124,5,124,6,95,10,124,6,83,0,41,
+    4,78,114,161,0,0,0,122,53,46,102,105,110,100,95,115,
+    112,101,99,40,41,32,110,111,116,32,102,111,117,110,100,59,
+    32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,
+    32,102,105,110,100,95,108,111,97,100,101,114,40,41,122,53,
+    46,102,105,110,100,95,115,112,101,99,40,41,32,110,111,116,
+    32,102,111,117,110,100,59,32,102,97,108,108,105,110,103,32,
+    98,97,99,107,32,116,111,32,102,105,110,100,95,109,111,100,
+    117,108,101,40,41,41,11,114,153,0,0,0,114,159,0,0,
+    0,90,12,95,111,98,106,101,99,116,95,110,97,109,101,114,
+    99,0,0,0,114,100,0,0,0,114,162,0,0,0,114,161,
+    0,0,0,114,229,0,0,0,114,224,0,0,0,114,207,0,
+    0,0,114,202,0,0,0,41,7,114,221,0,0,0,114,163,
+    0,0,0,114,82,1,0,0,114,166,0,0,0,114,164,0,
+    0,0,114,165,0,0,0,114,210,0,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,218,16,95,108,101,
+    103,97,99,121,95,103,101,116,95,115,112,101,99,89,5,0,
+    0,115,26,0,0,0,10,4,16,1,12,2,16,1,16,2,
+    12,2,10,1,4,1,8,1,12,1,12,1,6,1,4,1,
+    122,27,80,97,116,104,70,105,110,100,101,114,46,95,108,101,
+    103,97,99,121,95,103,101,116,95,115,112,101,99,78,99,4,
+    0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,5,
+    0,0,0,67,0,0,0,115,166,0,0,0,103,0,125,4,
+    124,2,68,0,93,67,125,5,116,0,124,5,116,1,116,2,
+    102,2,131,2,115,14,113,4,124,0,160,3,124,5,161,1,
+    125,6,124,6,100,1,117,1,114,71,116,4,124,6,100,2,
+    131,2,114,35,124,6,160,5,124,1,124,3,161,2,125,7,
+    110,6,124,0,160,6,124,1,124,6,161,2,125,7,124,7,
+    100,1,117,0,114,46,113,4,124,7,106,7,100,1,117,1,
+    114,55,124,7,2,0,1,0,83,0,124,7,106,8,125,8,
+    124,8,100,1,117,0,114,66,116,9,100,3,131,1,130,1,
+    124,4,160,10,124,8,161,1,1,0,113,4,116,11,160,12,
+    124,1,100,1,161,2,125,7,124,4,124,7,95,8,124,7,
+    83,0,41,4,122,63,70,105,110,100,32,116,104,101,32,108,
+    111,97,100,101,114,32,111,114,32,110,97,109,101,115,112,97,
+    99,101,95,112,97,116,104,32,102,111,114,32,116,104,105,115,
+    32,109,111,100,117,108,101,47,112,97,99,107,97,103,101,32,
+    110,97,109,101,46,78,114,226,0,0,0,122,19,115,112,101,
+    99,32,109,105,115,115,105,110,103,32,108,111,97,100,101,114,
+    41,13,114,185,0,0,0,114,109,0,0,0,218,5,98,121,
+    116,101,115,114,87,1,0,0,114,153,0,0,0,114,226,0,
+    0,0,114,88,1,0,0,114,164,0,0,0,114,202,0,0,
+    0,114,142,0,0,0,114,191,0,0,0,114,159,0,0,0,
+    114,207,0,0,0,41,9,114,221,0,0,0,114,163,0,0,
+    0,114,65,0,0,0,114,225,0,0,0,218,14,110,97,109,
+    101,115,112,97,99,101,95,112,97,116,104,90,5,101,110,116,
+    114,121,114,82,1,0,0,114,210,0,0,0,114,165,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,77,1,0,0,40,5,0,0,115,36,0,0,0,8,0,
-    4,2,2,2,10,1,2,9,10,1,2,12,10,1,2,21,
-    10,1,2,20,12,1,2,31,12,1,2,23,12,1,2,15,
-    14,1,114,77,1,0,0,99,0,0,0,0,0,0,0,0,
-    0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,
-    115,90,0,0,0,101,0,90,1,100,0,90,2,100,1,90,
-    3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,
-    5,101,6,90,7,100,6,100,7,132,0,90,8,100,8,100,
-    9,132,0,90,9,100,19,100,11,100,12,132,1,90,10,100,
-    13,100,14,132,0,90,11,101,12,100,15,100,16,132,0,131,
-    1,90,13,100,17,100,18,132,0,90,14,100,10,83,0,41,
-    20,218,10,70,105,108,101,70,105,110,100,101,114,122,172,70,
-    105,108,101,45,98,97,115,101,100,32,102,105,110,100,101,114,
-    46,10,10,32,32,32,32,73,110,116,101,114,97,99,116,105,
-    111,110,115,32,119,105,116,104,32,116,104,101,32,102,105,108,
-    101,32,115,121,115,116,101,109,32,97,114,101,32,99,97,99,
-    104,101,100,32,102,111,114,32,112,101,114,102,111,114,109,97,
-    110,99,101,44,32,98,101,105,110,103,10,32,32,32,32,114,
-    101,102,114,101,115,104,101,100,32,119,104,101,110,32,116,104,
-    101,32,100,105,114,101,99,116,111,114,121,32,116,104,101,32,
-    102,105,110,100,101,114,32,105,115,32,104,97,110,100,108,105,
-    110,103,32,104,97,115,32,98,101,101,110,32,109,111,100,105,
-    102,105,101,100,46,10,10,32,32,32,32,99,2,0,0,0,
-    0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,
-    7,0,0,0,115,112,0,0,0,103,0,125,3,124,2,68,
-    0,93,16,92,2,137,0,125,4,124,3,160,0,135,0,102,
-    1,100,1,100,2,132,8,124,4,68,0,131,1,161,1,1,
-    0,113,4,124,3,124,0,95,1,124,1,112,27,100,3,124,
-    0,95,2,116,3,124,0,106,2,131,1,115,43,116,4,116,
-    5,160,6,161,0,124,0,106,2,131,2,124,0,95,2,100,
-    4,124,0,95,7,116,8,131,0,124,0,95,9,116,8,131,
-    0,124,0,95,10,100,5,83,0,41,6,122,154,73,110,105,
-    116,105,97,108,105,122,101,32,119,105,116,104,32,116,104,101,
-    32,112,97,116,104,32,116,111,32,115,101,97,114,99,104,32,
-    111,110,32,97,110,100,32,97,32,118,97,114,105,97,98,108,
-    101,32,110,117,109,98,101,114,32,111,102,10,32,32,32,32,
-    32,32,32,32,50,45,116,117,112,108,101,115,32,99,111,110,
-    116,97,105,110,105,110,103,32,116,104,101,32,108,111,97,100,
-    101,114,32,97,110,100,32,116,104,101,32,102,105,108,101,32,
-    115,117,102,102,105,120,101,115,32,116,104,101,32,108,111,97,
-    100,101,114,10,32,32,32,32,32,32,32,32,114,101,99,111,
-    103,110,105,122,101,115,46,99,1,0,0,0,0,0,0,0,
-    0,0,0,0,2,0,0,0,3,0,0,0,51,0,0,0,
-    115,24,0,0,0,129,0,124,0,93,7,125,1,124,1,136,
-    0,102,2,86,0,1,0,113,2,100,0,83,0,114,69,0,
-    0,0,114,7,0,0,0,114,43,1,0,0,169,1,114,164,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0,
-    0,0,211,5,0,0,115,4,0,0,0,2,128,22,0,122,
-    38,70,105,108,101,70,105,110,100,101,114,46,95,95,105,110,
-    105,116,95,95,46,60,108,111,99,97,108,115,62,46,60,103,
-    101,110,101,120,112,114,62,114,97,0,0,0,114,130,0,0,
-    0,78,41,11,114,191,0,0,0,218,8,95,108,111,97,100,
-    101,114,115,114,65,0,0,0,114,86,0,0,0,114,67,0,
-    0,0,114,18,0,0,0,114,82,0,0,0,218,11,95,112,
-    97,116,104,95,109,116,105,109,101,218,3,115,101,116,218,11,
-    95,112,97,116,104,95,99,97,99,104,101,218,19,95,114,101,
-    108,97,120,101,100,95,112,97,116,104,95,99,97,99,104,101,
-    41,5,114,143,0,0,0,114,65,0,0,0,218,14,108,111,
-    97,100,101,114,95,100,101,116,97,105,108,115,90,7,108,111,
-    97,100,101,114,115,114,212,0,0,0,114,7,0,0,0,114,
-    95,1,0,0,114,8,0,0,0,114,236,0,0,0,205,5,
-    0,0,115,20,0,0,0,4,4,12,1,26,1,6,1,10,
-    2,10,1,18,1,6,1,8,1,12,1,122,19,70,105,108,
-    101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
-    99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
-    0,2,0,0,0,67,0,0,0,115,10,0,0,0,100,1,
-    124,0,95,0,100,2,83,0,41,3,122,31,73,110,118,97,
-    108,105,100,97,116,101,32,116,104,101,32,100,105,114,101,99,
-    116,111,114,121,32,109,116,105,109,101,46,114,130,0,0,0,
-    78,41,1,114,97,1,0,0,114,21,1,0,0,114,7,0,
-    0,0,114,7,0,0,0,114,8,0,0,0,114,78,1,0,
-    0,221,5,0,0,114,81,0,0,0,122,28,70,105,108,101,
-    70,105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,
-    101,95,99,97,99,104,101,115,99,2,0,0,0,0,0,0,
-    0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,
-    0,115,54,0,0,0,116,0,160,1,100,1,116,2,161,2,
-    1,0,124,0,160,3,124,1,161,1,125,2,124,2,100,2,
-    117,0,114,19,100,2,103,0,102,2,83,0,124,2,106,4,
-    124,2,106,5,112,25,103,0,102,2,83,0,41,3,122,197,
-    84,114,121,32,116,111,32,102,105,110,100,32,97,32,108,111,
-    97,100,101,114,32,102,111,114,32,116,104,101,32,115,112,101,
-    99,105,102,105,101,100,32,109,111,100,117,108,101,44,32,111,
-    114,32,116,104,101,32,110,97,109,101,115,112,97,99,101,10,
-    32,32,32,32,32,32,32,32,112,97,99,107,97,103,101,32,
-    112,111,114,116,105,111,110,115,46,32,82,101,116,117,114,110,
-    115,32,40,108,111,97,100,101,114,44,32,108,105,115,116,45,
-    111,102,45,112,111,114,116,105,111,110,115,41,46,10,10,32,
-    32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,
-    111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
-    46,32,32,85,115,101,32,102,105,110,100,95,115,112,101,99,
-    40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,32,
-    32,32,32,32,32,122,101,70,105,108,101,70,105,110,100,101,
-    114,46,102,105,110,100,95,108,111,97,100,101,114,40,41,32,
-    105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,
-    100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,
-    111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,
-    46,49,50,59,32,117,115,101,32,102,105,110,100,95,115,112,
-    101,99,40,41,32,105,110,115,116,101,97,100,78,41,6,114,
-    99,0,0,0,114,100,0,0,0,114,101,0,0,0,114,226,
-    0,0,0,114,164,0,0,0,114,202,0,0,0,41,3,114,
-    143,0,0,0,114,163,0,0,0,114,210,0,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,161,0,
-    0,0,227,5,0,0,115,14,0,0,0,6,7,2,2,4,
-    254,10,3,8,1,8,1,16,1,122,22,70,105,108,101,70,
-    105,110,100,101,114,46,102,105,110,100,95,108,111,97,100,101,
-    114,99,6,0,0,0,0,0,0,0,0,0,0,0,7,0,
-    0,0,6,0,0,0,67,0,0,0,115,26,0,0,0,124,
-    1,124,2,124,3,131,2,125,6,116,0,124,2,124,3,124,
-    6,124,4,100,1,141,4,83,0,41,2,78,114,201,0,0,
-    0,41,1,114,213,0,0,0,41,7,114,143,0,0,0,114,
-    211,0,0,0,114,163,0,0,0,114,65,0,0,0,90,4,
-    115,109,115,108,114,225,0,0,0,114,164,0,0,0,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,91,1,
-    0,0,242,5,0,0,115,8,0,0,0,10,1,8,1,2,
-    1,6,255,122,20,70,105,108,101,70,105,110,100,101,114,46,
-    95,103,101,116,95,115,112,101,99,78,99,3,0,0,0,0,
-    0,0,0,0,0,0,0,14,0,0,0,9,0,0,0,67,
-    0,0,0,115,122,1,0,0,100,1,125,3,124,1,160,0,
-    100,2,161,1,100,3,25,0,125,4,122,12,116,1,124,0,
-    106,2,112,17,116,3,160,4,161,0,131,1,106,5,125,5,
-    87,0,110,11,4,0,116,6,121,32,1,0,1,0,1,0,
-    100,4,125,5,89,0,110,1,119,0,124,5,124,0,106,7,
-    107,3,114,45,124,0,160,8,161,0,1,0,124,5,124,0,
-    95,7,116,9,131,0,114,56,124,0,106,10,125,6,124,4,
-    160,11,161,0,125,7,110,5,124,0,106,12,125,6,124,4,
-    125,7,124,7,124,6,118,0,114,108,116,13,124,0,106,2,
-    124,4,131,2,125,8,124,0,106,14,68,0,93,29,92,2,
-    125,9,125,10,100,5,124,9,23,0,125,11,116,13,124,8,
-    124,11,131,2,125,12,116,15,124,12,131,1,114,103,124,0,
-    160,16,124,10,124,1,124,12,124,8,103,1,124,2,161,5,
-    2,0,1,0,83,0,113,74,116,17,124,8,131,1,125,3,
-    124,0,106,14,68,0,93,55,92,2,125,9,125,10,122,10,
-    116,13,124,0,106,2,124,4,124,9,23,0,131,2,125,12,
-    87,0,110,11,4,0,116,18,121,136,1,0,1,0,1,0,
-    89,0,1,0,100,6,83,0,119,0,116,19,106,20,100,7,
-    124,12,100,3,100,8,141,3,1,0,124,7,124,9,23,0,
-    124,6,118,0,114,166,116,15,124,12,131,1,114,166,124,0,
-    160,16,124,10,124,1,124,12,100,6,124,2,161,5,2,0,
-    1,0,83,0,113,111,124,3,114,187,116,19,160,20,100,9,
-    124,8,161,2,1,0,116,19,160,21,124,1,100,6,161,2,
-    125,13,124,8,103,1,124,13,95,22,124,13,83,0,100,6,
-    83,0,41,10,122,111,84,114,121,32,116,111,32,102,105,110,
-    100,32,97,32,115,112,101,99,32,102,111,114,32,116,104,101,
-    32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,
-    101,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117,
-    114,110,115,32,116,104,101,32,109,97,116,99,104,105,110,103,
-    32,115,112,101,99,44,32,111,114,32,78,111,110,101,32,105,
-    102,32,110,111,116,32,102,111,117,110,100,46,10,32,32,32,
-    32,32,32,32,32,70,114,97,0,0,0,114,44,0,0,0,
-    114,130,0,0,0,114,236,0,0,0,78,122,9,116,114,121,
-    105,110,103,32,123,125,41,1,90,9,118,101,114,98,111,115,
-    105,116,121,122,25,112,111,115,115,105,98,108,101,32,110,97,
-    109,101,115,112,97,99,101,32,102,111,114,32,123,125,41,23,
-    114,104,0,0,0,114,75,0,0,0,114,65,0,0,0,114,
-    18,0,0,0,114,82,0,0,0,114,35,1,0,0,114,76,
-    0,0,0,114,97,1,0,0,218,11,95,102,105,108,108,95,
-    99,97,99,104,101,114,21,0,0,0,114,100,1,0,0,114,
-    131,0,0,0,114,99,1,0,0,114,67,0,0,0,114,96,
-    1,0,0,114,80,0,0,0,114,91,1,0,0,114,83,0,
-    0,0,114,111,0,0,0,114,159,0,0,0,114,173,0,0,
-    0,114,207,0,0,0,114,202,0,0,0,41,14,114,143,0,
-    0,0,114,163,0,0,0,114,225,0,0,0,90,12,105,115,
-    95,110,97,109,101,115,112,97,99,101,90,11,116,97,105,108,
-    95,109,111,100,117,108,101,114,193,0,0,0,90,5,99,97,
-    99,104,101,90,12,99,97,99,104,101,95,109,111,100,117,108,
-    101,90,9,98,97,115,101,95,112,97,116,104,114,44,1,0,
-    0,114,211,0,0,0,90,13,105,110,105,116,95,102,105,108,
-    101,110,97,109,101,90,9,102,117,108,108,95,112,97,116,104,
-    114,210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    8,0,0,0,114,226,0,0,0,247,5,0,0,115,86,0,
-    0,0,4,5,14,1,2,1,24,1,12,1,8,1,2,255,
-    10,2,8,1,6,1,6,2,6,1,10,1,6,2,4,1,
-    8,2,12,1,14,1,8,1,10,1,8,1,24,1,2,255,
-    8,5,14,2,2,1,20,1,12,1,8,1,2,255,16,2,
-    12,1,8,1,10,1,4,1,8,255,2,128,4,2,12,1,
-    12,1,8,1,4,1,4,1,122,20,70,105,108,101,70,105,
-    110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,
-    0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,10,
-    0,0,0,67,0,0,0,115,192,0,0,0,124,0,106,0,
-    125,1,122,11,116,1,160,2,124,1,112,11,116,1,160,3,
-    161,0,161,1,125,2,87,0,110,14,4,0,116,4,116,5,
-    116,6,102,3,121,28,1,0,1,0,1,0,103,0,125,2,
-    89,0,110,1,119,0,116,7,106,8,160,9,100,1,161,1,
-    115,41,116,10,124,2,131,1,124,0,95,11,110,37,116,10,
-    131,0,125,3,124,2,68,0,93,28,125,4,124,4,160,12,
-    100,2,161,1,92,3,125,5,125,6,125,7,124,6,114,67,
-    100,3,160,13,124,5,124,7,160,14,161,0,161,2,125,8,
-    110,2,124,5,125,8,124,3,160,15,124,8,161,1,1,0,
-    113,46,124,3,124,0,95,11,116,7,106,8,160,9,116,16,
-    161,1,114,94,100,4,100,5,132,0,124,2,68,0,131,1,
-    124,0,95,17,100,6,83,0,100,6,83,0,41,7,122,68,
-    70,105,108,108,32,116,104,101,32,99,97,99,104,101,32,111,
-    102,32,112,111,116,101,110,116,105,97,108,32,109,111,100,117,
-    108,101,115,32,97,110,100,32,112,97,99,107,97,103,101,115,
-    32,102,111,114,32,116,104,105,115,32,100,105,114,101,99,116,
-    111,114,121,46,114,14,0,0,0,114,97,0,0,0,114,88,
-    0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
-    2,0,0,0,4,0,0,0,83,0,0,0,115,20,0,0,
-    0,104,0,124,0,93,6,125,1,124,1,160,0,161,0,146,
-    2,113,2,83,0,114,7,0,0,0,41,1,114,131,0,0,
-    0,41,2,114,5,0,0,0,90,2,102,110,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,114,13,0,0,0,
-    71,6,0,0,115,2,0,0,0,20,0,122,41,70,105,108,
-    101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,97,
-    99,104,101,46,60,108,111,99,97,108,115,62,46,60,115,101,
-    116,99,111,109,112,62,78,41,18,114,65,0,0,0,114,18,
-    0,0,0,90,7,108,105,115,116,100,105,114,114,82,0,0,
-    0,114,85,1,0,0,218,15,80,101,114,109,105,115,115,105,
-    111,110,69,114,114,111,114,218,18,78,111,116,65,68,105,114,
-    101,99,116,111,114,121,69,114,114,111,114,114,15,0,0,0,
-    114,25,0,0,0,114,26,0,0,0,114,98,1,0,0,114,
-    99,1,0,0,114,126,0,0,0,114,89,0,0,0,114,131,
-    0,0,0,218,3,97,100,100,114,27,0,0,0,114,100,1,
-    0,0,41,9,114,143,0,0,0,114,65,0,0,0,90,8,
-    99,111,110,116,101,110,116,115,90,21,108,111,119,101,114,95,
-    115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,
-    70,1,0,0,114,141,0,0,0,114,54,1,0,0,114,44,
-    1,0,0,90,8,110,101,119,95,110,97,109,101,114,7,0,
-    0,0,114,7,0,0,0,114,8,0,0,0,114,102,1,0,
-    0,42,6,0,0,115,38,0,0,0,6,2,2,1,22,1,
-    18,1,8,3,2,253,12,6,12,1,6,7,8,1,16,1,
-    4,1,18,1,4,2,12,1,6,1,12,1,20,1,4,255,
-    122,22,70,105,108,101,70,105,110,100,101,114,46,95,102,105,
-    108,108,95,99,97,99,104,101,99,1,0,0,0,0,0,0,
-    0,0,0,0,0,3,0,0,0,3,0,0,0,7,0,0,
-    0,115,18,0,0,0,135,0,135,1,102,2,100,1,100,2,
-    132,8,125,2,124,2,83,0,41,4,97,20,1,0,0,65,
-    32,99,108,97,115,115,32,109,101,116,104,111,100,32,119,104,
-    105,99,104,32,114,101,116,117,114,110,115,32,97,32,99,108,
-    111,115,117,114,101,32,116,111,32,117,115,101,32,111,110,32,
-    115,121,115,46,112,97,116,104,95,104,111,111,107,10,32,32,
-    32,32,32,32,32,32,119,104,105,99,104,32,119,105,108,108,
-    32,114,101,116,117,114,110,32,97,110,32,105,110,115,116,97,
-    110,99,101,32,117,115,105,110,103,32,116,104,101,32,115,112,
-    101,99,105,102,105,101,100,32,108,111,97,100,101,114,115,32,
-    97,110,100,32,116,104,101,32,112,97,116,104,10,32,32,32,
-    32,32,32,32,32,99,97,108,108,101,100,32,111,110,32,116,
-    104,101,32,99,108,111,115,117,114,101,46,10,10,32,32,32,
-    32,32,32,32,32,73,102,32,116,104,101,32,112,97,116,104,
-    32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,99,
-    108,111,115,117,114,101,32,105,115,32,110,111,116,32,97,32,
-    100,105,114,101,99,116,111,114,121,44,32,73,109,112,111,114,
-    116,69,114,114,111,114,32,105,115,10,32,32,32,32,32,32,
-    32,32,114,97,105,115,101,100,46,10,10,32,32,32,32,32,
-    32,32,32,99,1,0,0,0,0,0,0,0,0,0,0,0,
-    1,0,0,0,4,0,0,0,19,0,0,0,115,36,0,0,
-    0,116,0,124,0,131,1,115,10,116,1,100,1,124,0,100,
-    2,141,2,130,1,136,0,124,0,103,1,136,1,162,1,82,
-    0,142,0,83,0,41,4,122,45,80,97,116,104,32,104,111,
-    111,107,32,102,111,114,32,105,109,112,111,114,116,108,105,98,
-    46,109,97,99,104,105,110,101,114,121,46,70,105,108,101,70,
-    105,110,100,101,114,46,122,30,111,110,108,121,32,100,105,114,
-    101,99,116,111,114,105,101,115,32,97,114,101,32,115,117,112,
-    112,111,114,116,101,100,114,71,0,0,0,78,41,2,114,83,
+    218,9,95,103,101,116,95,115,112,101,99,110,5,0,0,115,
+    42,0,0,0,4,5,8,1,14,1,2,1,10,1,8,1,
+    10,1,14,1,12,2,8,1,2,1,10,1,8,1,6,1,
+    8,1,8,1,10,5,2,128,12,2,6,1,4,1,122,20,
+    80,97,116,104,70,105,110,100,101,114,46,95,103,101,116,95,
+    115,112,101,99,99,4,0,0,0,0,0,0,0,0,0,0,
+    0,6,0,0,0,5,0,0,0,67,0,0,0,115,94,0,
+    0,0,124,2,100,1,117,0,114,7,116,0,106,1,125,2,
+    124,0,160,2,124,1,124,2,124,3,161,3,125,4,124,4,
+    100,1,117,0,114,20,100,1,83,0,124,4,106,3,100,1,
+    117,0,114,45,124,4,106,4,125,5,124,5,114,43,100,1,
+    124,4,95,5,116,6,124,1,124,5,124,0,106,2,131,3,
+    124,4,95,4,124,4,83,0,100,1,83,0,124,4,83,0,
+    41,2,122,141,84,114,121,32,116,111,32,102,105,110,100,32,
+    97,32,115,112,101,99,32,102,111,114,32,39,102,117,108,108,
+    110,97,109,101,39,32,111,110,32,115,121,115,46,112,97,116,
+    104,32,111,114,32,39,112,97,116,104,39,46,10,10,32,32,
+    32,32,32,32,32,32,84,104,101,32,115,101,97,114,99,104,
+    32,105,115,32,98,97,115,101,100,32,111,110,32,115,121,115,
+    46,112,97,116,104,95,104,111,111,107,115,32,97,110,100,32,
+    115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,
+    114,95,99,97,99,104,101,46,10,32,32,32,32,32,32,32,
+    32,78,41,7,114,15,0,0,0,114,65,0,0,0,114,91,
+    1,0,0,114,164,0,0,0,114,202,0,0,0,114,205,0,
+    0,0,114,47,1,0,0,41,6,114,221,0,0,0,114,163,
+    0,0,0,114,65,0,0,0,114,225,0,0,0,114,210,0,
+    0,0,114,90,1,0,0,114,7,0,0,0,114,7,0,0,
+    0,114,8,0,0,0,114,226,0,0,0,142,5,0,0,115,
+    26,0,0,0,8,6,6,1,14,1,8,1,4,1,10,1,
+    6,1,4,1,6,3,16,1,4,1,4,2,4,2,122,20,
+    80,97,116,104,70,105,110,100,101,114,46,102,105,110,100,95,
+    115,112,101,99,99,3,0,0,0,0,0,0,0,0,0,0,
+    0,4,0,0,0,4,0,0,0,67,0,0,0,115,42,0,
+    0,0,116,0,160,1,100,1,116,2,161,2,1,0,124,0,
+    160,3,124,1,124,2,161,2,125,3,124,3,100,2,117,0,
+    114,18,100,2,83,0,124,3,106,4,83,0,41,3,122,170,
+    102,105,110,100,32,116,104,101,32,109,111,100,117,108,101,32,
+    111,110,32,115,121,115,46,112,97,116,104,32,111,114,32,39,
+    112,97,116,104,39,32,98,97,115,101,100,32,111,110,32,115,
+    121,115,46,112,97,116,104,95,104,111,111,107,115,32,97,110,
+    100,10,32,32,32,32,32,32,32,32,115,121,115,46,112,97,
+    116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
+    101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,
+    32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,
+    99,97,116,101,100,46,32,32,85,115,101,32,102,105,110,100,
+    95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,46,
+    10,10,32,32,32,32,32,32,32,32,122,101,80,97,116,104,
+    70,105,110,100,101,114,46,102,105,110,100,95,109,111,100,117,
+    108,101,40,41,32,105,115,32,100,101,112,114,101,99,97,116,
+    101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,111,
+    114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,116,
+    104,111,110,32,51,46,49,50,59,32,117,115,101,32,102,105,
+    110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,
+    100,78,114,227,0,0,0,114,228,0,0,0,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,114,229,0,0,0,
+    166,5,0,0,115,14,0,0,0,6,8,2,2,4,254,12,
+    3,8,1,4,1,6,1,122,22,80,97,116,104,70,105,110,
+    100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,
+    0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
+    4,0,0,0,79,0,0,0,115,28,0,0,0,100,1,100,
+    2,108,0,109,1,125,2,1,0,124,2,106,2,124,0,105,
+    0,124,1,164,1,142,1,83,0,41,3,97,32,1,0,0,
+    10,32,32,32,32,32,32,32,32,70,105,110,100,32,100,105,
+    115,116,114,105,98,117,116,105,111,110,115,46,10,10,32,32,
+    32,32,32,32,32,32,82,101,116,117,114,110,32,97,110,32,
+    105,116,101,114,97,98,108,101,32,111,102,32,97,108,108,32,
+    68,105,115,116,114,105,98,117,116,105,111,110,32,105,110,115,
+    116,97,110,99,101,115,32,99,97,112,97,98,108,101,32,111,
+    102,10,32,32,32,32,32,32,32,32,108,111,97,100,105,110,
+    103,32,116,104,101,32,109,101,116,97,100,97,116,97,32,102,
+    111,114,32,112,97,99,107,97,103,101,115,32,109,97,116,99,
+    104,105,110,103,32,96,96,99,111,110,116,101,120,116,46,110,
+    97,109,101,96,96,10,32,32,32,32,32,32,32,32,40,111,
+    114,32,97,108,108,32,110,97,109,101,115,32,105,102,32,96,
+    96,78,111,110,101,96,96,32,105,110,100,105,99,97,116,101,
+    100,41,32,97,108,111,110,103,32,116,104,101,32,112,97,116,
+    104,115,32,105,110,32,116,104,101,32,108,105,115,116,10,32,
+    32,32,32,32,32,32,32,111,102,32,100,105,114,101,99,116,
+    111,114,105,101,115,32,96,96,99,111,110,116,101,120,116,46,
+    112,97,116,104,96,96,46,10,32,32,32,32,32,32,32,32,
+    114,0,0,0,0,41,1,218,18,77,101,116,97,100,97,116,
+    97,80,97,116,104,70,105,110,100,101,114,41,3,90,18,105,
+    109,112,111,114,116,108,105,98,46,109,101,116,97,100,97,116,
+    97,114,92,1,0,0,218,18,102,105,110,100,95,100,105,115,
+    116,114,105,98,117,116,105,111,110,115,41,3,114,144,0,0,
+    0,114,145,0,0,0,114,92,1,0,0,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,114,93,1,0,0,182,
+    5,0,0,115,4,0,0,0,12,10,16,1,122,29,80,97,
+    116,104,70,105,110,100,101,114,46,102,105,110,100,95,100,105,
+    115,116,114,105,98,117,116,105,111,110,115,114,69,0,0,0,
+    114,230,0,0,0,41,14,114,150,0,0,0,114,149,0,0,
+    0,114,151,0,0,0,114,152,0,0,0,114,233,0,0,0,
+    114,78,1,0,0,114,84,1,0,0,114,234,0,0,0,114,
+    87,1,0,0,114,88,1,0,0,114,91,1,0,0,114,226,
+    0,0,0,114,229,0,0,0,114,93,1,0,0,114,7,0,
+    0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+    0,114,77,1,0,0,40,5,0,0,115,36,0,0,0,8,
+    0,4,2,2,2,10,1,2,9,10,1,2,12,10,1,2,
+    21,10,1,2,20,12,1,2,31,12,1,2,23,12,1,2,
+    15,14,1,114,77,1,0,0,99,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,
+    0,115,90,0,0,0,101,0,90,1,100,0,90,2,100,1,
+    90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
+    90,5,101,6,90,7,100,6,100,7,132,0,90,8,100,8,
+    100,9,132,0,90,9,100,19,100,11,100,12,132,1,90,10,
+    100,13,100,14,132,0,90,11,101,12,100,15,100,16,132,0,
+    131,1,90,13,100,17,100,18,132,0,90,14,100,10,83,0,
+    41,20,218,10,70,105,108,101,70,105,110,100,101,114,122,172,
+    70,105,108,101,45,98,97,115,101,100,32,102,105,110,100,101,
+    114,46,10,10,32,32,32,32,73,110,116,101,114,97,99,116,
+    105,111,110,115,32,119,105,116,104,32,116,104,101,32,102,105,
+    108,101,32,115,121,115,116,101,109,32,97,114,101,32,99,97,
+    99,104,101,100,32,102,111,114,32,112,101,114,102,111,114,109,
+    97,110,99,101,44,32,98,101,105,110,103,10,32,32,32,32,
+    114,101,102,114,101,115,104,101,100,32,119,104,101,110,32,116,
+    104,101,32,100,105,114,101,99,116,111,114,121,32,116,104,101,
+    32,102,105,110,100,101,114,32,105,115,32,104,97,110,100,108,
+    105,110,103,32,104,97,115,32,98,101,101,110,32,109,111,100,
+    105,102,105,101,100,46,10,10,32,32,32,32,99,2,0,0,
+    0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,
+    0,7,0,0,0,115,112,0,0,0,103,0,125,3,124,2,
+    68,0,93,16,92,2,137,0,125,4,124,3,160,0,135,0,
+    102,1,100,1,100,2,132,8,124,4,68,0,131,1,161,1,
+    1,0,113,4,124,3,124,0,95,1,124,1,112,27,100,3,
+    124,0,95,2,116,3,124,0,106,2,131,1,115,43,116,4,
+    116,5,160,6,161,0,124,0,106,2,131,2,124,0,95,2,
+    100,4,124,0,95,7,116,8,131,0,124,0,95,9,116,8,
+    131,0,124,0,95,10,100,5,83,0,41,6,122,154,73,110,
+    105,116,105,97,108,105,122,101,32,119,105,116,104,32,116,104,
+    101,32,112,97,116,104,32,116,111,32,115,101,97,114,99,104,
+    32,111,110,32,97,110,100,32,97,32,118,97,114,105,97,98,
+    108,101,32,110,117,109,98,101,114,32,111,102,10,32,32,32,
+    32,32,32,32,32,50,45,116,117,112,108,101,115,32,99,111,
+    110,116,97,105,110,105,110,103,32,116,104,101,32,108,111,97,
+    100,101,114,32,97,110,100,32,116,104,101,32,102,105,108,101,
+    32,115,117,102,102,105,120,101,115,32,116,104,101,32,108,111,
+    97,100,101,114,10,32,32,32,32,32,32,32,32,114,101,99,
+    111,103,110,105,122,101,115,46,99,1,0,0,0,0,0,0,
+    0,0,0,0,0,2,0,0,0,3,0,0,0,51,0,0,
+    0,115,24,0,0,0,129,0,124,0,93,7,125,1,124,1,
+    136,0,102,2,86,0,1,0,113,2,100,0,83,0,114,69,
+    0,0,0,114,7,0,0,0,114,43,1,0,0,169,1,114,
+    164,0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,
+    0,0,0,211,5,0,0,115,4,0,0,0,2,128,22,0,
+    122,38,70,105,108,101,70,105,110,100,101,114,46,95,95,105,
+    110,105,116,95,95,46,60,108,111,99,97,108,115,62,46,60,
+    103,101,110,101,120,112,114,62,114,97,0,0,0,114,130,0,
+    0,0,78,41,11,114,191,0,0,0,218,8,95,108,111,97,
+    100,101,114,115,114,65,0,0,0,114,86,0,0,0,114,67,
+    0,0,0,114,18,0,0,0,114,82,0,0,0,218,11,95,
+    112,97,116,104,95,109,116,105,109,101,218,3,115,101,116,218,
+    11,95,112,97,116,104,95,99,97,99,104,101,218,19,95,114,
+    101,108,97,120,101,100,95,112,97,116,104,95,99,97,99,104,
+    101,41,5,114,143,0,0,0,114,65,0,0,0,218,14,108,
+    111,97,100,101,114,95,100,101,116,97,105,108,115,90,7,108,
+    111,97,100,101,114,115,114,212,0,0,0,114,7,0,0,0,
+    114,95,1,0,0,114,8,0,0,0,114,236,0,0,0,205,
+    5,0,0,115,20,0,0,0,4,4,12,1,26,1,6,1,
+    10,2,10,1,18,1,6,1,8,1,12,1,122,19,70,105,
+    108,101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,
+    95,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
+    0,0,2,0,0,0,67,0,0,0,115,10,0,0,0,100,
+    1,124,0,95,0,100,2,83,0,41,3,122,31,73,110,118,
+    97,108,105,100,97,116,101,32,116,104,101,32,100,105,114,101,
+    99,116,111,114,121,32,109,116,105,109,101,46,114,130,0,0,
+    0,78,41,1,114,97,1,0,0,114,21,1,0,0,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,114,78,1,
+    0,0,221,5,0,0,114,81,0,0,0,122,28,70,105,108,
+    101,70,105,110,100,101,114,46,105,110,118,97,108,105,100,97,
+    116,101,95,99,97,99,104,101,115,99,2,0,0,0,0,0,
+    0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
+    0,0,115,54,0,0,0,116,0,160,1,100,1,116,2,161,
+    2,1,0,124,0,160,3,124,1,161,1,125,2,124,2,100,
+    2,117,0,114,19,100,2,103,0,102,2,83,0,124,2,106,
+    4,124,2,106,5,112,25,103,0,102,2,83,0,41,3,122,
+    197,84,114,121,32,116,111,32,102,105,110,100,32,97,32,108,
+    111,97,100,101,114,32,102,111,114,32,116,104,101,32,115,112,
+    101,99,105,102,105,101,100,32,109,111,100,117,108,101,44,32,
+    111,114,32,116,104,101,32,110,97,109,101,115,112,97,99,101,
+    10,32,32,32,32,32,32,32,32,112,97,99,107,97,103,101,
+    32,112,111,114,116,105,111,110,115,46,32,82,101,116,117,114,
+    110,115,32,40,108,111,97,100,101,114,44,32,108,105,115,116,
+    45,111,102,45,112,111,114,116,105,111,110,115,41,46,10,10,
+    32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,
+    104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,
+    100,46,32,32,85,115,101,32,102,105,110,100,95,115,112,101,
+    99,40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,
+    32,32,32,32,32,32,122,101,70,105,108,101,70,105,110,100,
+    101,114,46,102,105,110,100,95,108,111,97,100,101,114,40,41,
+    32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,
+    110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,
+    109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,
+    51,46,49,50,59,32,117,115,101,32,102,105,110,100,95,115,
+    112,101,99,40,41,32,105,110,115,116,101,97,100,78,41,6,
+    114,99,0,0,0,114,100,0,0,0,114,101,0,0,0,114,
+    226,0,0,0,114,164,0,0,0,114,202,0,0,0,41,3,
+    114,143,0,0,0,114,163,0,0,0,114,210,0,0,0,114,
+    7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,161,
+    0,0,0,227,5,0,0,115,14,0,0,0,6,7,2,2,
+    4,254,10,3,8,1,8,1,16,1,122,22,70,105,108,101,
+    70,105,110,100,101,114,46,102,105,110,100,95,108,111,97,100,
+    101,114,99,6,0,0,0,0,0,0,0,0,0,0,0,7,
+    0,0,0,6,0,0,0,67,0,0,0,115,26,0,0,0,
+    124,1,124,2,124,3,131,2,125,6,116,0,124,2,124,3,
+    124,6,124,4,100,1,141,4,83,0,41,2,78,114,201,0,
+    0,0,41,1,114,213,0,0,0,41,7,114,143,0,0,0,
+    114,211,0,0,0,114,163,0,0,0,114,65,0,0,0,90,
+    4,115,109,115,108,114,225,0,0,0,114,164,0,0,0,114,
+    7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,91,
+    1,0,0,242,5,0,0,115,8,0,0,0,10,1,8,1,
+    2,1,6,255,122,20,70,105,108,101,70,105,110,100,101,114,
+    46,95,103,101,116,95,115,112,101,99,78,99,3,0,0,0,
+    0,0,0,0,0,0,0,0,14,0,0,0,9,0,0,0,
+    67,0,0,0,115,122,1,0,0,100,1,125,3,124,1,160,
+    0,100,2,161,1,100,3,25,0,125,4,122,12,116,1,124,
+    0,106,2,112,17,116,3,160,4,161,0,131,1,106,5,125,
+    5,87,0,110,11,4,0,116,6,121,32,1,0,1,0,1,
+    0,100,4,125,5,89,0,110,1,119,0,124,5,124,0,106,
+    7,107,3,114,45,124,0,160,8,161,0,1,0,124,5,124,
+    0,95,7,116,9,131,0,114,56,124,0,106,10,125,6,124,
+    4,160,11,161,0,125,7,110,5,124,0,106,12,125,6,124,
+    4,125,7,124,7,124,6,118,0,114,108,116,13,124,0,106,
+    2,124,4,131,2,125,8,124,0,106,14,68,0,93,29,92,
+    2,125,9,125,10,100,5,124,9,23,0,125,11,116,13,124,
+    8,124,11,131,2,125,12,116,15,124,12,131,1,114,103,124,
+    0,160,16,124,10,124,1,124,12,124,8,103,1,124,2,161,
+    5,2,0,1,0,83,0,113,74,116,17,124,8,131,1,125,
+    3,124,0,106,14,68,0,93,55,92,2,125,9,125,10,122,
+    10,116,13,124,0,106,2,124,4,124,9,23,0,131,2,125,
+    12,87,0,110,11,4,0,116,18,121,136,1,0,1,0,1,
+    0,89,0,1,0,100,6,83,0,119,0,116,19,106,20,100,
+    7,124,12,100,3,100,8,141,3,1,0,124,7,124,9,23,
+    0,124,6,118,0,114,166,116,15,124,12,131,1,114,166,124,
+    0,160,16,124,10,124,1,124,12,100,6,124,2,161,5,2,
+    0,1,0,83,0,113,111,124,3,114,187,116,19,160,20,100,
+    9,124,8,161,2,1,0,116,19,160,21,124,1,100,6,161,
+    2,125,13,124,8,103,1,124,13,95,22,124,13,83,0,100,
+    6,83,0,41,10,122,111,84,114,121,32,116,111,32,102,105,
+    110,100,32,97,32,115,112,101,99,32,102,111,114,32,116,104,
+    101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,
+    108,101,46,10,10,32,32,32,32,32,32,32,32,82,101,116,
+    117,114,110,115,32,116,104,101,32,109,97,116,99,104,105,110,
+    103,32,115,112,101,99,44,32,111,114,32,78,111,110,101,32,
+    105,102,32,110,111,116,32,102,111,117,110,100,46,10,32,32,
+    32,32,32,32,32,32,70,114,97,0,0,0,114,44,0,0,
+    0,114,130,0,0,0,114,236,0,0,0,78,122,9,116,114,
+    121,105,110,103,32,123,125,41,1,90,9,118,101,114,98,111,
+    115,105,116,121,122,25,112,111,115,115,105,98,108,101,32,110,
+    97,109,101,115,112,97,99,101,32,102,111,114,32,123,125,41,
+    23,114,104,0,0,0,114,75,0,0,0,114,65,0,0,0,
+    114,18,0,0,0,114,82,0,0,0,114,35,1,0,0,114,
+    76,0,0,0,114,97,1,0,0,218,11,95,102,105,108,108,
+    95,99,97,99,104,101,114,21,0,0,0,114,100,1,0,0,
+    114,131,0,0,0,114,99,1,0,0,114,67,0,0,0,114,
+    96,1,0,0,114,80,0,0,0,114,91,1,0,0,114,83,
+    0,0,0,114,111,0,0,0,114,159,0,0,0,114,173,0,
+    0,0,114,207,0,0,0,114,202,0,0,0,41,14,114,143,
+    0,0,0,114,163,0,0,0,114,225,0,0,0,90,12,105,
+    115,95,110,97,109,101,115,112,97,99,101,90,11,116,97,105,
+    108,95,109,111,100,117,108,101,114,193,0,0,0,90,5,99,
+    97,99,104,101,90,12,99,97,99,104,101,95,109,111,100,117,
+    108,101,90,9,98,97,115,101,95,112,97,116,104,114,44,1,
+    0,0,114,211,0,0,0,90,13,105,110,105,116,95,102,105,
+    108,101,110,97,109,101,90,9,102,117,108,108,95,112,97,116,
+    104,114,210,0,0,0,114,7,0,0,0,114,7,0,0,0,
+    114,8,0,0,0,114,226,0,0,0,247,5,0,0,115,86,
+    0,0,0,4,5,14,1,2,1,24,1,12,1,8,1,2,
+    255,10,2,8,1,6,1,6,2,6,1,10,1,6,2,4,
+    1,8,2,12,1,14,1,8,1,10,1,8,1,24,1,2,
+    255,8,5,14,2,2,1,20,1,12,1,8,1,2,255,16,
+    2,12,1,8,1,10,1,4,1,8,255,2,128,4,2,12,
+    1,12,1,8,1,4,1,4,1,122,20,70,105,108,101,70,
+    105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,
+    1,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,
+    10,0,0,0,67,0,0,0,115,192,0,0,0,124,0,106,
+    0,125,1,122,11,116,1,160,2,124,1,112,11,116,1,160,
+    3,161,0,161,1,125,2,87,0,110,14,4,0,116,4,116,
+    5,116,6,102,3,121,28,1,0,1,0,1,0,103,0,125,
+    2,89,0,110,1,119,0,116,7,106,8,160,9,100,1,161,
+    1,115,41,116,10,124,2,131,1,124,0,95,11,110,37,116,
+    10,131,0,125,3,124,2,68,0,93,28,125,4,124,4,160,
+    12,100,2,161,1,92,3,125,5,125,6,125,7,124,6,114,
+    67,100,3,160,13,124,5,124,7,160,14,161,0,161,2,125,
+    8,110,2,124,5,125,8,124,3,160,15,124,8,161,1,1,
+    0,113,46,124,3,124,0,95,11,116,7,106,8,160,9,116,
+    16,161,1,114,94,100,4,100,5,132,0,124,2,68,0,131,
+    1,124,0,95,17,100,6,83,0,100,6,83,0,41,7,122,
+    68,70,105,108,108,32,116,104,101,32,99,97,99,104,101,32,
+    111,102,32,112,111,116,101,110,116,105,97,108,32,109,111,100,
+    117,108,101,115,32,97,110,100,32,112,97,99,107,97,103,101,
+    115,32,102,111,114,32,116,104,105,115,32,100,105,114,101,99,
+    116,111,114,121,46,114,14,0,0,0,114,97,0,0,0,114,
+    88,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+    0,2,0,0,0,4,0,0,0,83,0,0,0,115,20,0,
+    0,0,104,0,124,0,93,6,125,1,124,1,160,0,161,0,
+    146,2,113,2,83,0,114,7,0,0,0,41,1,114,131,0,
+    0,0,41,2,114,5,0,0,0,90,2,102,110,114,7,0,
+    0,0,114,7,0,0,0,114,8,0,0,0,114,13,0,0,
+    0,71,6,0,0,115,2,0,0,0,20,0,122,41,70,105,
+    108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,
+    97,99,104,101,46,60,108,111,99,97,108,115,62,46,60,115,
+    101,116,99,111,109,112,62,78,41,18,114,65,0,0,0,114,
+    18,0,0,0,90,7,108,105,115,116,100,105,114,114,82,0,
+    0,0,114,85,1,0,0,218,15,80,101,114,109,105,115,115,
+    105,111,110,69,114,114,111,114,218,18,78,111,116,65,68,105,
+    114,101,99,116,111,114,121,69,114,114,111,114,114,15,0,0,
+    0,114,25,0,0,0,114,26,0,0,0,114,98,1,0,0,
+    114,99,1,0,0,114,126,0,0,0,114,89,0,0,0,114,
+    131,0,0,0,218,3,97,100,100,114,27,0,0,0,114,100,
+    1,0,0,41,9,114,143,0,0,0,114,65,0,0,0,90,
+    8,99,111,110,116,101,110,116,115,90,21,108,111,119,101,114,
+    95,115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,
+    114,70,1,0,0,114,141,0,0,0,114,54,1,0,0,114,
+    44,1,0,0,90,8,110,101,119,95,110,97,109,101,114,7,
+    0,0,0,114,7,0,0,0,114,8,0,0,0,114,102,1,
+    0,0,42,6,0,0,115,38,0,0,0,6,2,2,1,22,
+    1,18,1,8,3,2,253,12,6,12,1,6,7,8,1,16,
+    1,4,1,18,1,4,2,12,1,6,1,12,1,20,1,4,
+    255,122,22,70,105,108,101,70,105,110,100,101,114,46,95,102,
+    105,108,108,95,99,97,99,104,101,99,1,0,0,0,0,0,
+    0,0,0,0,0,0,3,0,0,0,3,0,0,0,7,0,
+    0,0,115,18,0,0,0,135,0,135,1,102,2,100,1,100,
+    2,132,8,125,2,124,2,83,0,41,3,97,20,1,0,0,
+    65,32,99,108,97,115,115,32,109,101,116,104,111,100,32,119,
+    104,105,99,104,32,114,101,116,117,114,110,115,32,97,32,99,
+    108,111,115,117,114,101,32,116,111,32,117,115,101,32,111,110,
+    32,115,121,115,46,112,97,116,104,95,104,111,111,107,10,32,
+    32,32,32,32,32,32,32,119,104,105,99,104,32,119,105,108,
+    108,32,114,101,116,117,114,110,32,97,110,32,105,110,115,116,
+    97,110,99,101,32,117,115,105,110,103,32,116,104,101,32,115,
+    112,101,99,105,102,105,101,100,32,108,111,97,100,101,114,115,
+    32,97,110,100,32,116,104,101,32,112,97,116,104,10,32,32,
+    32,32,32,32,32,32,99,97,108,108,101,100,32,111,110,32,
+    116,104,101,32,99,108,111,115,117,114,101,46,10,10,32,32,
+    32,32,32,32,32,32,73,102,32,116,104,101,32,112,97,116,
+    104,32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,
+    99,108,111,115,117,114,101,32,105,115,32,110,111,116,32,97,
+    32,100,105,114,101,99,116,111,114,121,44,32,73,109,112,111,
+    114,116,69,114,114,111,114,32,105,115,10,32,32,32,32,32,
+    32,32,32,114,97,105,115,101,100,46,10,10,32,32,32,32,
+    32,32,32,32,99,1,0,0,0,0,0,0,0,0,0,0,
+    0,1,0,0,0,4,0,0,0,19,0,0,0,115,36,0,
+    0,0,116,0,124,0,131,1,115,10,116,1,100,1,124,0,
+    100,2,141,2,130,1,136,0,124,0,103,1,136,1,162,1,
+    82,0,142,0,83,0,41,3,122,45,80,97,116,104,32,104,
+    111,111,107,32,102,111,114,32,105,109,112,111,114,116,108,105,
+    98,46,109,97,99,104,105,110,101,114,121,46,70,105,108,101,
+    70,105,110,100,101,114,46,122,30,111,110,108,121,32,100,105,
+    114,101,99,116,111,114,105,101,115,32,97,114,101,32,115,117,
+    112,112,111,114,116,101,100,114,71,0,0,0,41,2,114,83,
     0,0,0,114,142,0,0,0,114,71,0,0,0,169,2,114,
     221,0,0,0,114,101,1,0,0,114,7,0,0,0,114,8,
     0,0,0,218,24,112,97,116,104,95,104,111,111,107,95,102,
@@ -2626,142 +2624,142 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,111,
     111,107,46,60,108,111,99,97,108,115,62,46,112,97,116,104,
     95,104,111,111,107,95,102,111,114,95,70,105,108,101,70,105,
-    110,100,101,114,78,114,7,0,0,0,41,3,114,221,0,0,
-    0,114,101,1,0,0,114,107,1,0,0,114,7,0,0,0,
-    114,106,1,0,0,114,8,0,0,0,218,9,112,97,116,104,
-    95,104,111,111,107,73,6,0,0,115,4,0,0,0,14,10,
-    4,6,122,20,70,105,108,101,70,105,110,100,101,114,46,112,
-    97,116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,
-    0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
-    0,114,67,1,0,0,41,2,78,122,16,70,105,108,101,70,
-    105,110,100,101,114,40,123,33,114,125,41,41,2,114,89,0,
-    0,0,114,65,0,0,0,114,21,1,0,0,114,7,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,114,68,1,0,0,
-    91,6,0,0,114,61,1,0,0,122,19,70,105,108,101,70,
-    105,110,100,101,114,46,95,95,114,101,112,114,95,95,114,69,
-    0,0,0,41,15,114,150,0,0,0,114,149,0,0,0,114,
-    151,0,0,0,114,152,0,0,0,114,236,0,0,0,114,78,
-    1,0,0,114,167,0,0,0,114,229,0,0,0,114,161,0,
-    0,0,114,91,1,0,0,114,226,0,0,0,114,102,1,0,
-    0,114,234,0,0,0,114,108,1,0,0,114,68,1,0,0,
-    114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    8,0,0,0,114,94,1,0,0,196,5,0,0,115,24,0,
-    0,0,8,0,4,2,8,7,8,16,4,4,8,2,8,15,
-    10,5,8,51,2,31,10,1,12,17,114,94,1,0,0,99,
-    4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,
-    8,0,0,0,67,0,0,0,115,144,0,0,0,124,0,160,
-    0,100,1,161,1,125,4,124,0,160,0,100,2,161,1,125,
-    5,124,4,115,33,124,5,114,18,124,5,106,1,125,4,110,
-    15,124,2,124,3,107,2,114,28,116,2,124,1,124,2,131,
-    2,125,4,110,5,116,3,124,1,124,2,131,2,125,4,124,
-    5,115,42,116,4,124,1,124,2,124,4,100,3,141,3,125,
-    5,122,19,124,5,124,0,100,2,60,0,124,4,124,0,100,
-    1,60,0,124,2,124,0,100,4,60,0,124,3,124,0,100,
-    5,60,0,87,0,100,0,83,0,4,0,116,5,121,71,1,
-    0,1,0,1,0,89,0,100,0,83,0,119,0,41,6,78,
-    218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95,
-    115,112,101,99,95,95,114,95,1,0,0,90,8,95,95,102,
-    105,108,101,95,95,90,10,95,95,99,97,99,104,101,100,95,
-    95,41,6,218,3,103,101,116,114,164,0,0,0,114,41,1,
-    0,0,114,34,1,0,0,114,213,0,0,0,218,9,69,120,
-    99,101,112,116,105,111,110,41,6,90,2,110,115,114,141,0,
-    0,0,90,8,112,97,116,104,110,97,109,101,90,9,99,112,
-    97,116,104,110,97,109,101,114,164,0,0,0,114,210,0,0,
-    0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101,
-    97,6,0,0,115,36,0,0,0,10,2,10,1,4,1,4,
-    1,8,1,8,1,12,1,10,2,4,1,14,1,2,1,8,
-    1,8,1,8,1,14,1,12,1,6,2,2,254,114,113,1,
-    0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,
-    0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,
-    116,0,116,1,160,2,161,0,102,2,125,0,116,3,116,4,
-    102,2,125,1,116,5,116,6,102,2,125,2,124,0,124,1,
-    124,2,103,3,83,0,41,2,122,95,82,101,116,117,114,110,
-    115,32,97,32,108,105,115,116,32,111,102,32,102,105,108,101,
-    45,98,97,115,101,100,32,109,111,100,117,108,101,32,108,111,
-    97,100,101,114,115,46,10,10,32,32,32,32,69,97,99,104,
-    32,105,116,101,109,32,105,115,32,97,32,116,117,112,108,101,
-    32,40,108,111,97,100,101,114,44,32,115,117,102,102,105,120,
-    101,115,41,46,10,32,32,32,32,78,41,7,114,30,1,0,
-    0,114,187,0,0,0,218,18,101,120,116,101,110,115,105,111,
-    110,95,115,117,102,102,105,120,101,115,114,34,1,0,0,114,
-    127,0,0,0,114,41,1,0,0,114,113,0,0,0,41,3,
-    90,10,101,120,116,101,110,115,105,111,110,115,90,6,115,111,
-    117,114,99,101,90,8,98,121,116,101,99,111,100,101,114,7,
-    0,0,0,114,7,0,0,0,114,8,0,0,0,114,208,0,
-    0,0,120,6,0,0,115,8,0,0,0,12,5,8,1,8,
-    1,10,1,114,208,0,0,0,99,1,0,0,0,0,0,0,
-    0,0,0,0,0,1,0,0,0,1,0,0,0,67,0,0,
-    0,115,8,0,0,0,124,0,97,0,100,0,83,0,114,69,
-    0,0,0,41,1,114,159,0,0,0,41,1,218,17,95,98,
-    111,111,116,115,116,114,97,112,95,109,111,100,117,108,101,114,
-    7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,21,
-    95,115,101,116,95,98,111,111,116,115,116,114,97,112,95,109,
-    111,100,117,108,101,131,6,0,0,115,2,0,0,0,8,2,
-    114,116,1,0,0,99,1,0,0,0,0,0,0,0,0,0,
-    0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,50,
-    0,0,0,116,0,124,0,131,1,1,0,116,1,131,0,125,
-    1,116,2,106,3,160,4,116,5,106,6,124,1,142,0,103,
-    1,161,1,1,0,116,2,106,7,160,8,116,9,161,1,1,
-    0,100,1,83,0,41,2,122,41,73,110,115,116,97,108,108,
-    32,116,104,101,32,112,97,116,104,45,98,97,115,101,100,32,
-    105,109,112,111,114,116,32,99,111,109,112,111,110,101,110,116,
-    115,46,78,41,10,114,116,1,0,0,114,208,0,0,0,114,
-    15,0,0,0,114,83,1,0,0,114,191,0,0,0,114,94,
-    1,0,0,114,108,1,0,0,218,9,109,101,116,97,95,112,
-    97,116,104,114,61,0,0,0,114,77,1,0,0,41,2,114,
-    115,1,0,0,90,17,115,117,112,112,111,114,116,101,100,95,
-    108,111,97,100,101,114,115,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,218,8,95,105,110,115,116,97,108,108,
-    136,6,0,0,115,8,0,0,0,8,2,6,1,20,1,16,
-    1,114,118,1,0,0,41,1,114,87,0,0,0,114,69,0,
-    0,0,41,3,78,78,78,41,2,114,0,0,0,0,114,0,
-    0,0,0,41,1,84,41,85,114,152,0,0,0,114,159,0,
-    0,0,114,187,0,0,0,114,91,0,0,0,114,15,0,0,
-    0,114,99,0,0,0,114,184,0,0,0,114,25,0,0,0,
-    114,231,0,0,0,90,2,110,116,114,18,0,0,0,114,215,
-    0,0,0,90,5,112,111,115,105,120,114,50,0,0,0,218,
-    3,97,108,108,114,59,0,0,0,114,136,0,0,0,114,57,
-    0,0,0,114,62,0,0,0,90,20,95,112,97,116,104,115,
-    101,112,115,95,119,105,116,104,95,99,111,108,111,110,114,28,
-    0,0,0,90,37,95,67,65,83,69,95,73,78,83,69,78,
-    83,73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,
-    95,66,89,84,69,83,95,75,69,89,114,27,0,0,0,114,
-    29,0,0,0,114,21,0,0,0,114,36,0,0,0,114,42,
-    0,0,0,114,45,0,0,0,114,67,0,0,0,114,74,0,
-    0,0,114,75,0,0,0,114,79,0,0,0,114,80,0,0,
-    0,114,83,0,0,0,114,86,0,0,0,114,95,0,0,0,
-    218,4,116,121,112,101,218,8,95,95,99,111,100,101,95,95,
-    114,186,0,0,0,114,34,0,0,0,114,172,0,0,0,114,
-    33,0,0,0,114,39,0,0,0,114,8,1,0,0,114,116,
-    0,0,0,114,112,0,0,0,114,127,0,0,0,114,61,0,
-    0,0,114,114,1,0,0,114,232,0,0,0,114,113,0,0,
-    0,90,23,68,69,66,85,71,95,66,89,84,69,67,79,68,
-    69,95,83,85,70,70,73,88,69,83,90,27,79,80,84,73,
-    77,73,90,69,68,95,66,89,84,69,67,79,68,69,95,83,
-    85,70,70,73,88,69,83,114,121,0,0,0,114,128,0,0,
-    0,114,135,0,0,0,114,137,0,0,0,114,139,0,0,0,
-    114,160,0,0,0,114,167,0,0,0,114,176,0,0,0,114,
-    180,0,0,0,114,182,0,0,0,114,189,0,0,0,114,194,
-    0,0,0,114,195,0,0,0,114,200,0,0,0,218,6,111,
-    98,106,101,99,116,114,209,0,0,0,114,213,0,0,0,114,
-    214,0,0,0,114,235,0,0,0,114,249,0,0,0,114,11,
-    1,0,0,114,34,1,0,0,114,41,1,0,0,114,30,1,
-    0,0,114,47,1,0,0,114,73,1,0,0,114,77,1,0,
-    0,114,94,1,0,0,114,113,1,0,0,114,208,0,0,0,
-    114,116,1,0,0,114,118,1,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,8,
-    60,109,111,100,117,108,101,62,1,0,0,0,115,180,0,0,
-    0,4,0,4,22,8,3,8,1,8,1,8,1,8,1,10,
-    3,4,1,8,1,10,1,8,2,4,3,10,1,6,2,22,
-    2,8,1,8,1,10,1,14,1,4,4,4,1,2,1,2,
-    1,4,255,8,4,6,16,8,3,8,5,8,5,4,6,10,
-    1,8,30,8,6,8,8,8,10,8,9,8,5,4,7,10,
-    1,8,8,10,5,10,22,0,127,16,30,12,1,4,2,4,
-    1,6,2,4,1,10,1,8,2,6,2,8,2,16,2,8,
-    71,8,40,8,19,8,12,8,12,8,31,8,20,8,33,8,
-    28,10,24,10,13,10,10,8,11,6,14,4,3,2,1,12,
-    255,14,73,14,67,16,30,0,127,14,17,18,50,18,45,18,
-    25,14,53,14,63,14,49,0,127,14,29,0,127,10,30,8,
-    23,8,11,12,5,
+    110,100,101,114,114,7,0,0,0,41,3,114,221,0,0,0,
+    114,101,1,0,0,114,107,1,0,0,114,7,0,0,0,114,
+    106,1,0,0,114,8,0,0,0,218,9,112,97,116,104,95,
+    104,111,111,107,73,6,0,0,115,4,0,0,0,14,10,4,
+    6,122,20,70,105,108,101,70,105,110,100,101,114,46,112,97,
+    116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,0,
+    0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+    114,67,1,0,0,41,2,78,122,16,70,105,108,101,70,105,
+    110,100,101,114,40,123,33,114,125,41,41,2,114,89,0,0,
+    0,114,65,0,0,0,114,21,1,0,0,114,7,0,0,0,
+    114,7,0,0,0,114,8,0,0,0,114,68,1,0,0,91,
+    6,0,0,114,61,1,0,0,122,19,70,105,108,101,70,105,
+    110,100,101,114,46,95,95,114,101,112,114,95,95,114,69,0,
+    0,0,41,15,114,150,0,0,0,114,149,0,0,0,114,151,
+    0,0,0,114,152,0,0,0,114,236,0,0,0,114,78,1,
+    0,0,114,167,0,0,0,114,229,0,0,0,114,161,0,0,
+    0,114,91,1,0,0,114,226,0,0,0,114,102,1,0,0,
+    114,234,0,0,0,114,108,1,0,0,114,68,1,0,0,114,
+    7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+    0,0,0,114,94,1,0,0,196,5,0,0,115,24,0,0,
+    0,8,0,4,2,8,7,8,16,4,4,8,2,8,15,10,
+    5,8,51,2,31,10,1,12,17,114,94,1,0,0,99,4,
+    0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,
+    0,0,0,67,0,0,0,115,144,0,0,0,124,0,160,0,
+    100,1,161,1,125,4,124,0,160,0,100,2,161,1,125,5,
+    124,4,115,33,124,5,114,18,124,5,106,1,125,4,110,15,
+    124,2,124,3,107,2,114,28,116,2,124,1,124,2,131,2,
+    125,4,110,5,116,3,124,1,124,2,131,2,125,4,124,5,
+    115,42,116,4,124,1,124,2,124,4,100,3,141,3,125,5,
+    122,19,124,5,124,0,100,2,60,0,124,4,124,0,100,1,
+    60,0,124,2,124,0,100,4,60,0,124,3,124,0,100,5,
+    60,0,87,0,100,0,83,0,4,0,116,5,121,71,1,0,
+    1,0,1,0,89,0,100,0,83,0,119,0,41,6,78,218,
+    10,95,95,108,111,97,100,101,114,95,95,218,8,95,95,115,
+    112,101,99,95,95,114,95,1,0,0,90,8,95,95,102,105,
+    108,101,95,95,90,10,95,95,99,97,99,104,101,100,95,95,
+    41,6,218,3,103,101,116,114,164,0,0,0,114,41,1,0,
+    0,114,34,1,0,0,114,213,0,0,0,218,9,69,120,99,
+    101,112,116,105,111,110,41,6,90,2,110,115,114,141,0,0,
+    0,90,8,112,97,116,104,110,97,109,101,90,9,99,112,97,
+    116,104,110,97,109,101,114,164,0,0,0,114,210,0,0,0,
+    114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+    14,95,102,105,120,95,117,112,95,109,111,100,117,108,101,97,
+    6,0,0,115,36,0,0,0,10,2,10,1,4,1,4,1,
+    8,1,8,1,12,1,10,2,4,1,14,1,2,1,8,1,
+    8,1,8,1,14,1,12,1,6,2,2,254,114,113,1,0,
+    0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
+    0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,116,
+    0,116,1,160,2,161,0,102,2,125,0,116,3,116,4,102,
+    2,125,1,116,5,116,6,102,2,125,2,124,0,124,1,124,
+    2,103,3,83,0,41,1,122,95,82,101,116,117,114,110,115,
+    32,97,32,108,105,115,116,32,111,102,32,102,105,108,101,45,
+    98,97,115,101,100,32,109,111,100,117,108,101,32,108,111,97,
+    100,101,114,115,46,10,10,32,32,32,32,69,97,99,104,32,
+    105,116,101,109,32,105,115,32,97,32,116,117,112,108,101,32,
+    40,108,111,97,100,101,114,44,32,115,117,102,102,105,120,101,
+    115,41,46,10,32,32,32,32,41,7,114,30,1,0,0,114,
+    187,0,0,0,218,18,101,120,116,101,110,115,105,111,110,95,
+    115,117,102,102,105,120,101,115,114,34,1,0,0,114,127,0,
+    0,0,114,41,1,0,0,114,113,0,0,0,41,3,90,10,
+    101,120,116,101,110,115,105,111,110,115,90,6,115,111,117,114,
+    99,101,90,8,98,121,116,101,99,111,100,101,114,7,0,0,
+    0,114,7,0,0,0,114,8,0,0,0,114,208,0,0,0,
+    120,6,0,0,115,8,0,0,0,12,5,8,1,8,1,10,
+    1,114,208,0,0,0,99,1,0,0,0,0,0,0,0,0,
+    0,0,0,1,0,0,0,1,0,0,0,67,0,0,0,115,
+    8,0,0,0,124,0,97,0,100,0,83,0,114,69,0,0,
+    0,41,1,114,159,0,0,0,41,1,218,17,95,98,111,111,
+    116,115,116,114,97,112,95,109,111,100,117,108,101,114,7,0,
+    0,0,114,7,0,0,0,114,8,0,0,0,218,21,95,115,
+    101,116,95,98,111,111,116,115,116,114,97,112,95,109,111,100,
+    117,108,101,131,6,0,0,115,2,0,0,0,8,2,114,116,
+    1,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+    2,0,0,0,4,0,0,0,67,0,0,0,115,50,0,0,
+    0,116,0,124,0,131,1,1,0,116,1,131,0,125,1,116,
+    2,106,3,160,4,116,5,106,6,124,1,142,0,103,1,161,
+    1,1,0,116,2,106,7,160,8,116,9,161,1,1,0,100,
+    1,83,0,41,2,122,41,73,110,115,116,97,108,108,32,116,
+    104,101,32,112,97,116,104,45,98,97,115,101,100,32,105,109,
+    112,111,114,116,32,99,111,109,112,111,110,101,110,116,115,46,
+    78,41,10,114,116,1,0,0,114,208,0,0,0,114,15,0,
+    0,0,114,83,1,0,0,114,191,0,0,0,114,94,1,0,
+    0,114,108,1,0,0,218,9,109,101,116,97,95,112,97,116,
+    104,114,61,0,0,0,114,77,1,0,0,41,2,114,115,1,
+    0,0,90,17,115,117,112,112,111,114,116,101,100,95,108,111,
+    97,100,101,114,115,114,7,0,0,0,114,7,0,0,0,114,
+    8,0,0,0,218,8,95,105,110,115,116,97,108,108,136,6,
+    0,0,115,8,0,0,0,8,2,6,1,20,1,16,1,114,
+    118,1,0,0,41,1,114,87,0,0,0,114,69,0,0,0,
+    41,3,78,78,78,41,2,114,0,0,0,0,114,0,0,0,
+    0,41,1,84,41,85,114,152,0,0,0,114,159,0,0,0,
+    114,187,0,0,0,114,91,0,0,0,114,15,0,0,0,114,
+    99,0,0,0,114,184,0,0,0,114,25,0,0,0,114,231,
+    0,0,0,90,2,110,116,114,18,0,0,0,114,215,0,0,
+    0,90,5,112,111,115,105,120,114,50,0,0,0,218,3,97,
+    108,108,114,59,0,0,0,114,136,0,0,0,114,57,0,0,
+    0,114,62,0,0,0,90,20,95,112,97,116,104,115,101,112,
+    115,95,119,105,116,104,95,99,111,108,111,110,114,28,0,0,
+    0,90,37,95,67,65,83,69,95,73,78,83,69,78,83,73,
+    84,73,86,69,95,80,76,65,84,70,79,82,77,83,95,66,
+    89,84,69,83,95,75,69,89,114,27,0,0,0,114,29,0,
+    0,0,114,21,0,0,0,114,36,0,0,0,114,42,0,0,
+    0,114,45,0,0,0,114,67,0,0,0,114,74,0,0,0,
+    114,75,0,0,0,114,79,0,0,0,114,80,0,0,0,114,
+    83,0,0,0,114,86,0,0,0,114,95,0,0,0,218,4,
+    116,121,112,101,218,8,95,95,99,111,100,101,95,95,114,186,
+    0,0,0,114,34,0,0,0,114,172,0,0,0,114,33,0,
+    0,0,114,39,0,0,0,114,8,1,0,0,114,116,0,0,
+    0,114,112,0,0,0,114,127,0,0,0,114,61,0,0,0,
+    114,114,1,0,0,114,232,0,0,0,114,113,0,0,0,90,
+    23,68,69,66,85,71,95,66,89,84,69,67,79,68,69,95,
+    83,85,70,70,73,88,69,83,90,27,79,80,84,73,77,73,
+    90,69,68,95,66,89,84,69,67,79,68,69,95,83,85,70,
+    70,73,88,69,83,114,121,0,0,0,114,128,0,0,0,114,
+    135,0,0,0,114,137,0,0,0,114,139,0,0,0,114,160,
+    0,0,0,114,167,0,0,0,114,176,0,0,0,114,180,0,
+    0,0,114,182,0,0,0,114,189,0,0,0,114,194,0,0,
+    0,114,195,0,0,0,114,200,0,0,0,218,6,111,98,106,
+    101,99,116,114,209,0,0,0,114,213,0,0,0,114,214,0,
+    0,0,114,235,0,0,0,114,249,0,0,0,114,11,1,0,
+    0,114,34,1,0,0,114,41,1,0,0,114,30,1,0,0,
+    114,47,1,0,0,114,73,1,0,0,114,77,1,0,0,114,
+    94,1,0,0,114,113,1,0,0,114,208,0,0,0,114,116,
+    1,0,0,114,118,1,0,0,114,7,0,0,0,114,7,0,
+    0,0,114,7,0,0,0,114,8,0,0,0,218,8,60,109,
+    111,100,117,108,101,62,1,0,0,0,115,180,0,0,0,4,
+    0,4,22,8,3,8,1,8,1,8,1,8,1,10,3,4,
+    1,8,1,10,1,8,2,4,3,10,1,6,2,22,2,8,
+    1,8,1,10,1,14,1,4,4,4,1,2,1,2,1,4,
+    255,8,4,6,16,8,3,8,5,8,5,4,6,10,1,8,
+    30,8,6,8,8,8,10,8,9,8,5,4,7,10,1,8,
+    8,10,5,10,22,0,127,16,30,12,1,4,2,4,1,6,
+    2,4,1,10,1,8,2,6,2,8,2,16,2,8,71,8,
+    40,8,19,8,12,8,12,8,31,8,20,8,33,8,28,10,
+    24,10,13,10,10,8,11,6,14,4,3,2,1,12,255,14,
+    73,14,67,16,30,0,127,14,17,18,50,18,45,18,25,14,
+    53,14,63,14,49,0,127,14,29,0,127,10,30,8,23,8,
+    11,12,5,
 };
index 9db4e0d3bd0c745d3c6f7be3b17470ef537ab7d1..07c9dd574040f67a0870496f75a77904b8649376 100644 (file)
@@ -234,7 +234,7 @@ const unsigned char _Py_M__zipimport[] = {
     0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
     0,0,115,28,0,0,0,116,0,160,1,100,1,116,2,161,
     2,1,0,124,0,160,3,124,1,124,2,161,2,100,2,25,
-    0,83,0,41,4,97,203,1,0,0,102,105,110,100,95,109,
+    0,83,0,41,3,97,203,1,0,0,102,105,110,100,95,109,
     111,100,117,108,101,40,102,117,108,108,110,97,109,101,44,32,
     112,97,116,104,61,78,111,110,101,41,32,45,62,32,115,101,
     108,102,32,111,114,32,78,111,110,101,46,10,10,32,32,32,
@@ -270,794 +270,794 @@ const unsigned char _Py_M__zipimport[] = {
     109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,
     51,46,49,50,59,32,117,115,101,32,102,105,110,100,95,115,
     112,101,99,40,41,32,105,110,115,116,101,97,100,114,0,0,
-    0,0,78,41,4,114,35,0,0,0,114,36,0,0,0,114,
-    37,0,0,0,114,44,0,0,0,41,3,114,32,0,0,0,
-    114,41,0,0,0,114,13,0,0,0,114,9,0,0,0,114,
-    9,0,0,0,114,10,0,0,0,218,11,102,105,110,100,95,
-    109,111,100,117,108,101,147,0,0,0,115,8,0,0,0,6,
-    11,2,2,4,254,16,3,122,23,122,105,112,105,109,112,111,
-    114,116,101,114,46,102,105,110,100,95,109,111,100,117,108,101,
-    99,3,0,0,0,0,0,0,0,0,0,0,0,7,0,0,
-    0,5,0,0,0,67,0,0,0,115,108,0,0,0,116,0,
-    124,0,124,1,131,2,125,3,124,3,100,1,117,1,114,17,
-    116,1,106,2,124,1,124,0,124,3,100,2,141,3,83,0,
-    116,3,124,0,124,1,131,2,125,4,116,4,124,0,124,4,
-    131,2,114,52,124,0,106,5,155,0,116,6,155,0,124,4,
-    155,0,157,3,125,5,116,1,106,7,124,1,100,1,100,3,
-    100,4,141,3,125,6,124,6,106,8,160,9,124,5,161,1,
-    1,0,124,6,83,0,100,1,83,0,41,5,122,107,67,114,
-    101,97,116,101,32,97,32,77,111,100,117,108,101,83,112,101,
-    99,32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,
-    105,101,100,32,109,111,100,117,108,101,46,10,10,32,32,32,
-    32,32,32,32,32,82,101,116,117,114,110,115,32,78,111,110,
-    101,32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,
-    99,97,110,110,111,116,32,98,101,32,102,111,117,110,100,46,
-    10,32,32,32,32,32,32,32,32,78,41,1,218,10,105,115,
-    95,112,97,99,107,97,103,101,84,41,3,218,4,110,97,109,
-    101,90,6,108,111,97,100,101,114,114,46,0,0,0,41,10,
-    114,38,0,0,0,218,10,95,98,111,111,116,115,116,114,97,
-    112,90,16,115,112,101,99,95,102,114,111,109,95,108,111,97,
-    100,101,114,114,39,0,0,0,114,40,0,0,0,114,29,0,
-    0,0,114,20,0,0,0,90,10,77,111,100,117,108,101,83,
-    112,101,99,90,26,115,117,98,109,111,100,117,108,101,95,115,
-    101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,114,
-    24,0,0,0,41,7,114,32,0,0,0,114,41,0,0,0,
-    90,6,116,97,114,103,101,116,90,11,109,111,100,117,108,101,
-    95,105,110,102,111,114,43,0,0,0,114,13,0,0,0,90,
-    4,115,112,101,99,114,9,0,0,0,114,9,0,0,0,114,
-    10,0,0,0,218,9,102,105,110,100,95,115,112,101,99,163,
-    0,0,0,115,24,0,0,0,10,5,8,1,16,1,10,7,
-    10,1,18,4,8,1,2,1,6,255,12,2,4,1,4,2,
-    122,21,122,105,112,105,109,112,111,114,116,101,114,46,102,105,
-    110,100,95,115,112,101,99,99,2,0,0,0,0,0,0,0,
-    0,0,0,0,5,0,0,0,3,0,0,0,67,0,0,0,
-    115,20,0,0,0,116,0,124,0,124,1,131,2,92,3,125,
-    2,125,3,125,4,124,2,83,0,41,2,122,166,103,101,116,
-    95,99,111,100,101,40,102,117,108,108,110,97,109,101,41,32,
-    45,62,32,99,111,100,101,32,111,98,106,101,99,116,46,10,
-    10,32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,
-    116,104,101,32,99,111,100,101,32,111,98,106,101,99,116,32,
-    102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,
-    100,32,109,111,100,117,108,101,46,32,82,97,105,115,101,32,
-    90,105,112,73,109,112,111,114,116,69,114,114,111,114,10,32,
-    32,32,32,32,32,32,32,105,102,32,116,104,101,32,109,111,
-    100,117,108,101,32,99,111,117,108,100,110,39,116,32,98,101,
+    0,0,41,4,114,35,0,0,0,114,36,0,0,0,114,37,
+    0,0,0,114,44,0,0,0,41,3,114,32,0,0,0,114,
+    41,0,0,0,114,13,0,0,0,114,9,0,0,0,114,9,
+    0,0,0,114,10,0,0,0,218,11,102,105,110,100,95,109,
+    111,100,117,108,101,147,0,0,0,115,8,0,0,0,6,11,
+    2,2,4,254,16,3,122,23,122,105,112,105,109,112,111,114,
+    116,101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,
+    3,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,
+    5,0,0,0,67,0,0,0,115,108,0,0,0,116,0,124,
+    0,124,1,131,2,125,3,124,3,100,1,117,1,114,17,116,
+    1,106,2,124,1,124,0,124,3,100,2,141,3,83,0,116,
+    3,124,0,124,1,131,2,125,4,116,4,124,0,124,4,131,
+    2,114,52,124,0,106,5,155,0,116,6,155,0,124,4,155,
+    0,157,3,125,5,116,1,106,7,124,1,100,1,100,3,100,
+    4,141,3,125,6,124,6,106,8,160,9,124,5,161,1,1,
+    0,124,6,83,0,100,1,83,0,41,5,122,107,67,114,101,
+    97,116,101,32,97,32,77,111,100,117,108,101,83,112,101,99,
+    32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,
+    101,100,32,109,111,100,117,108,101,46,10,10,32,32,32,32,
+    32,32,32,32,82,101,116,117,114,110,115,32,78,111,110,101,
+    32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,99,
+    97,110,110,111,116,32,98,101,32,102,111,117,110,100,46,10,
+    32,32,32,32,32,32,32,32,78,41,1,218,10,105,115,95,
+    112,97,99,107,97,103,101,84,41,3,218,4,110,97,109,101,
+    90,6,108,111,97,100,101,114,114,46,0,0,0,41,10,114,
+    38,0,0,0,218,10,95,98,111,111,116,115,116,114,97,112,
+    90,16,115,112,101,99,95,102,114,111,109,95,108,111,97,100,
+    101,114,114,39,0,0,0,114,40,0,0,0,114,29,0,0,
+    0,114,20,0,0,0,90,10,77,111,100,117,108,101,83,112,
+    101,99,90,26,115,117,98,109,111,100,117,108,101,95,115,101,
+    97,114,99,104,95,108,111,99,97,116,105,111,110,115,114,24,
+    0,0,0,41,7,114,32,0,0,0,114,41,0,0,0,90,
+    6,116,97,114,103,101,116,90,11,109,111,100,117,108,101,95,
+    105,110,102,111,114,43,0,0,0,114,13,0,0,0,90,4,
+    115,112,101,99,114,9,0,0,0,114,9,0,0,0,114,10,
+    0,0,0,218,9,102,105,110,100,95,115,112,101,99,163,0,
+    0,0,115,24,0,0,0,10,5,8,1,16,1,10,7,10,
+    1,18,4,8,1,2,1,6,255,12,2,4,1,4,2,122,
+    21,122,105,112,105,109,112,111,114,116,101,114,46,102,105,110,
+    100,95,115,112,101,99,99,2,0,0,0,0,0,0,0,0,
+    0,0,0,5,0,0,0,3,0,0,0,67,0,0,0,115,
+    20,0,0,0,116,0,124,0,124,1,131,2,92,3,125,2,
+    125,3,125,4,124,2,83,0,41,1,122,166,103,101,116,95,
+    99,111,100,101,40,102,117,108,108,110,97,109,101,41,32,45,
+    62,32,99,111,100,101,32,111,98,106,101,99,116,46,10,10,
+    32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,116,
+    104,101,32,99,111,100,101,32,111,98,106,101,99,116,32,102,
+    111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
+    32,109,111,100,117,108,101,46,32,82,97,105,115,101,32,90,
+    105,112,73,109,112,111,114,116,69,114,114,111,114,10,32,32,
+    32,32,32,32,32,32,105,102,32,116,104,101,32,109,111,100,
+    117,108,101,32,99,111,117,108,100,110,39,116,32,98,101,32,
+    105,109,112,111,114,116,101,100,46,10,32,32,32,32,32,32,
+    32,32,169,1,218,16,95,103,101,116,95,109,111,100,117,108,
+    101,95,99,111,100,101,169,5,114,32,0,0,0,114,41,0,
+    0,0,218,4,99,111,100,101,218,9,105,115,112,97,99,107,
+    97,103,101,114,43,0,0,0,114,9,0,0,0,114,9,0,
+    0,0,114,10,0,0,0,218,8,103,101,116,95,99,111,100,
+    101,190,0,0,0,115,4,0,0,0,16,6,4,1,122,20,
+    122,105,112,105,109,112,111,114,116,101,114,46,103,101,116,95,
+    99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,
+    0,4,0,0,0,8,0,0,0,67,0,0,0,115,112,0,
+    0,0,116,0,114,8,124,1,160,1,116,0,116,2,161,2,
+    125,1,124,1,125,2,124,1,160,3,124,0,106,4,116,2,
+    23,0,161,1,114,29,124,1,116,5,124,0,106,4,116,2,
+    23,0,131,1,100,1,133,2,25,0,125,2,122,7,124,0,
+    106,6,124,2,25,0,125,3,87,0,110,13,4,0,116,7,
+    121,49,1,0,1,0,1,0,116,8,100,2,100,3,124,2,
+    131,3,130,1,119,0,116,9,124,0,106,4,124,3,131,2,
+    83,0,41,4,122,154,103,101,116,95,100,97,116,97,40,112,
+    97,116,104,110,97,109,101,41,32,45,62,32,115,116,114,105,
+    110,103,32,119,105,116,104,32,102,105,108,101,32,100,97,116,
+    97,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117,
+    114,110,32,116,104,101,32,100,97,116,97,32,97,115,115,111,
+    99,105,97,116,101,100,32,119,105,116,104,32,39,112,97,116,
+    104,110,97,109,101,39,46,32,82,97,105,115,101,32,79,83,
+    69,114,114,111,114,32,105,102,10,32,32,32,32,32,32,32,
+    32,116,104,101,32,102,105,108,101,32,119,97,115,110,39,116,
+    32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,
+    78,114,0,0,0,0,218,0,41,10,114,18,0,0,0,114,
+    19,0,0,0,114,20,0,0,0,218,10,115,116,97,114,116,
+    115,119,105,116,104,114,29,0,0,0,218,3,108,101,110,114,
+    28,0,0,0,114,26,0,0,0,114,22,0,0,0,218,9,
+    95,103,101,116,95,100,97,116,97,41,4,114,32,0,0,0,
+    218,8,112,97,116,104,110,97,109,101,90,3,107,101,121,218,
+    9,116,111,99,95,101,110,116,114,121,114,9,0,0,0,114,
+    9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,100,
+    97,116,97,200,0,0,0,115,22,0,0,0,4,6,12,1,
+    4,2,16,1,22,1,2,2,14,1,12,1,12,1,2,255,
+    12,2,122,20,122,105,112,105,109,112,111,114,116,101,114,46,
+    103,101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,
+    0,0,0,0,0,5,0,0,0,3,0,0,0,67,0,0,
+    0,115,20,0,0,0,116,0,124,0,124,1,131,2,92,3,
+    125,2,125,3,125,4,124,4,83,0,41,1,122,165,103,101,
+    116,95,102,105,108,101,110,97,109,101,40,102,117,108,108,110,
+    97,109,101,41,32,45,62,32,102,105,108,101,110,97,109,101,
+    32,115,116,114,105,110,103,46,10,10,32,32,32,32,32,32,
+    32,32,82,101,116,117,114,110,32,116,104,101,32,102,105,108,
+    101,110,97,109,101,32,102,111,114,32,116,104,101,32,115,112,
+    101,99,105,102,105,101,100,32,109,111,100,117,108,101,32,111,
+    114,32,114,97,105,115,101,32,90,105,112,73,109,112,111,114,
+    116,69,114,114,111,114,10,32,32,32,32,32,32,32,32,105,
+    102,32,105,116,32,99,111,117,108,100,110,39,116,32,98,101,
     32,105,109,112,111,114,116,101,100,46,10,32,32,32,32,32,
-    32,32,32,78,169,1,218,16,95,103,101,116,95,109,111,100,
-    117,108,101,95,99,111,100,101,169,5,114,32,0,0,0,114,
-    41,0,0,0,218,4,99,111,100,101,218,9,105,115,112,97,
-    99,107,97,103,101,114,43,0,0,0,114,9,0,0,0,114,
-    9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,99,
-    111,100,101,190,0,0,0,115,4,0,0,0,16,6,4,1,
-    122,20,122,105,112,105,109,112,111,114,116,101,114,46,103,101,
-    116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,
-    0,0,0,4,0,0,0,8,0,0,0,67,0,0,0,115,
-    112,0,0,0,116,0,114,8,124,1,160,1,116,0,116,2,
-    161,2,125,1,124,1,125,2,124,1,160,3,124,0,106,4,
-    116,2,23,0,161,1,114,29,124,1,116,5,124,0,106,4,
-    116,2,23,0,131,1,100,1,133,2,25,0,125,2,122,7,
-    124,0,106,6,124,2,25,0,125,3,87,0,110,13,4,0,
-    116,7,121,49,1,0,1,0,1,0,116,8,100,2,100,3,
-    124,2,131,3,130,1,119,0,116,9,124,0,106,4,124,3,
-    131,2,83,0,41,4,122,154,103,101,116,95,100,97,116,97,
-    40,112,97,116,104,110,97,109,101,41,32,45,62,32,115,116,
-    114,105,110,103,32,119,105,116,104,32,102,105,108,101,32,100,
-    97,116,97,46,10,10,32,32,32,32,32,32,32,32,82,101,
-    116,117,114,110,32,116,104,101,32,100,97,116,97,32,97,115,
-    115,111,99,105,97,116,101,100,32,119,105,116,104,32,39,112,
-    97,116,104,110,97,109,101,39,46,32,82,97,105,115,101,32,
-    79,83,69,114,114,111,114,32,105,102,10,32,32,32,32,32,
-    32,32,32,116,104,101,32,102,105,108,101,32,119,97,115,110,
-    39,116,32,102,111,117,110,100,46,10,32,32,32,32,32,32,
-    32,32,78,114,0,0,0,0,218,0,41,10,114,18,0,0,
-    0,114,19,0,0,0,114,20,0,0,0,218,10,115,116,97,
-    114,116,115,119,105,116,104,114,29,0,0,0,218,3,108,101,
-    110,114,28,0,0,0,114,26,0,0,0,114,22,0,0,0,
-    218,9,95,103,101,116,95,100,97,116,97,41,4,114,32,0,
-    0,0,218,8,112,97,116,104,110,97,109,101,90,3,107,101,
-    121,218,9,116,111,99,95,101,110,116,114,121,114,9,0,0,
-    0,114,9,0,0,0,114,10,0,0,0,218,8,103,101,116,
-    95,100,97,116,97,200,0,0,0,115,22,0,0,0,4,6,
-    12,1,4,2,16,1,22,1,2,2,14,1,12,1,12,1,
-    2,255,12,2,122,20,122,105,112,105,109,112,111,114,116,101,
-    114,46,103,101,116,95,100,97,116,97,99,2,0,0,0,0,
-    0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,67,
-    0,0,0,115,20,0,0,0,116,0,124,0,124,1,131,2,
-    92,3,125,2,125,3,125,4,124,4,83,0,41,2,122,165,
-    103,101,116,95,102,105,108,101,110,97,109,101,40,102,117,108,
-    108,110,97,109,101,41,32,45,62,32,102,105,108,101,110,97,
-    109,101,32,115,116,114,105,110,103,46,10,10,32,32,32,32,
-    32,32,32,32,82,101,116,117,114,110,32,116,104,101,32,102,
-    105,108,101,110,97,109,101,32,102,111,114,32,116,104,101,32,
-    115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,
-    32,111,114,32,114,97,105,115,101,32,90,105,112,73,109,112,
-    111,114,116,69,114,114,111,114,10,32,32,32,32,32,32,32,
-    32,105,102,32,105,116,32,99,111,117,108,100,110,39,116,32,
-    98,101,32,105,109,112,111,114,116,101,100,46,10,32,32,32,
-    32,32,32,32,32,78,114,50,0,0,0,114,52,0,0,0,
-    114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,
-    12,103,101,116,95,102,105,108,101,110,97,109,101,221,0,0,
-    0,115,4,0,0,0,16,8,4,1,122,24,122,105,112,105,
-    109,112,111,114,116,101,114,46,103,101,116,95,102,105,108,101,
-    110,97,109,101,99,2,0,0,0,0,0,0,0,0,0,0,
-    0,6,0,0,0,8,0,0,0,67,0,0,0,115,126,0,
-    0,0,116,0,124,0,124,1,131,2,125,2,124,2,100,1,
-    117,0,114,18,116,1,100,2,124,1,155,2,157,2,124,1,
-    100,3,141,2,130,1,116,2,124,0,124,1,131,2,125,3,
-    124,2,114,32,116,3,160,4,124,3,100,4,161,2,125,4,
-    110,5,124,3,155,0,100,5,157,2,125,4,122,7,124,0,
-    106,5,124,4,25,0,125,5,87,0,110,10,4,0,116,6,
-    121,54,1,0,1,0,1,0,89,0,100,1,83,0,119,0,
-    116,7,124,0,106,8,124,5,131,2,160,9,161,0,83,0,
-    41,6,122,253,103,101,116,95,115,111,117,114,99,101,40,102,
-    117,108,108,110,97,109,101,41,32,45,62,32,115,111,117,114,
-    99,101,32,115,116,114,105,110,103,46,10,10,32,32,32,32,
-    32,32,32,32,82,101,116,117,114,110,32,116,104,101,32,115,
-    111,117,114,99,101,32,99,111,100,101,32,102,111,114,32,116,
-    104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,
-    117,108,101,46,32,82,97,105,115,101,32,90,105,112,73,109,
-    112,111,114,116,69,114,114,111,114,10,32,32,32,32,32,32,
-    32,32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,
-    99,111,117,108,100,110,39,116,32,98,101,32,102,111,117,110,
-    100,44,32,114,101,116,117,114,110,32,78,111,110,101,32,105,
-    102,32,116,104,101,32,97,114,99,104,105,118,101,32,100,111,
-    101,115,10,32,32,32,32,32,32,32,32,99,111,110,116,97,
-    105,110,32,116,104,101,32,109,111,100,117,108,101,44,32,98,
-    117,116,32,104,97,115,32,110,111,32,115,111,117,114,99,101,
-    32,102,111,114,32,105,116,46,10,32,32,32,32,32,32,32,
-    32,78,250,18,99,97,110,39,116,32,102,105,110,100,32,109,
-    111,100,117,108,101,32,169,1,114,47,0,0,0,250,11,95,
-    95,105,110,105,116,95,95,46,112,121,250,3,46,112,121,41,
-    10,114,38,0,0,0,114,3,0,0,0,114,39,0,0,0,
-    114,21,0,0,0,114,30,0,0,0,114,28,0,0,0,114,
-    26,0,0,0,114,59,0,0,0,114,29,0,0,0,218,6,
-    100,101,99,111,100,101,41,6,114,32,0,0,0,114,41,0,
-    0,0,114,42,0,0,0,114,13,0,0,0,218,8,102,117,
-    108,108,112,97,116,104,114,61,0,0,0,114,9,0,0,0,
-    114,9,0,0,0,114,10,0,0,0,218,10,103,101,116,95,
-    115,111,117,114,99,101,233,0,0,0,115,26,0,0,0,10,
-    7,8,1,18,1,10,2,4,1,14,1,10,2,2,2,14,
-    1,12,1,6,2,2,254,16,3,122,22,122,105,112,105,109,
-    112,111,114,116,101,114,46,103,101,116,95,115,111,117,114,99,
-    101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
-    0,0,4,0,0,0,67,0,0,0,115,40,0,0,0,116,
+    32,32,32,114,50,0,0,0,114,52,0,0,0,114,9,0,
+    0,0,114,9,0,0,0,114,10,0,0,0,218,12,103,101,
+    116,95,102,105,108,101,110,97,109,101,221,0,0,0,115,4,
+    0,0,0,16,8,4,1,122,24,122,105,112,105,109,112,111,
+    114,116,101,114,46,103,101,116,95,102,105,108,101,110,97,109,
+    101,99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,
+    0,0,8,0,0,0,67,0,0,0,115,126,0,0,0,116,
     0,124,0,124,1,131,2,125,2,124,2,100,1,117,0,114,
     18,116,1,100,2,124,1,155,2,157,2,124,1,100,3,141,
-    2,130,1,124,2,83,0,41,4,122,171,105,115,95,112,97,
-    99,107,97,103,101,40,102,117,108,108,110,97,109,101,41,32,
-    45,62,32,98,111,111,108,46,10,10,32,32,32,32,32,32,
-    32,32,82,101,116,117,114,110,32,84,114,117,101,32,105,102,
-    32,116,104,101,32,109,111,100,117,108,101,32,115,112,101,99,
-    105,102,105,101,100,32,98,121,32,102,117,108,108,110,97,109,
-    101,32,105,115,32,97,32,112,97,99,107,97,103,101,46,10,
-    32,32,32,32,32,32,32,32,82,97,105,115,101,32,90,105,
-    112,73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,
-    116,104,101,32,109,111,100,117,108,101,32,99,111,117,108,100,
-    110,39,116,32,98,101,32,102,111,117,110,100,46,10,32,32,
-    32,32,32,32,32,32,78,114,64,0,0,0,114,65,0,0,
-    0,41,2,114,38,0,0,0,114,3,0,0,0,41,3,114,
-    32,0,0,0,114,41,0,0,0,114,42,0,0,0,114,9,
-    0,0,0,114,9,0,0,0,114,10,0,0,0,114,46,0,
-    0,0,3,1,0,0,115,8,0,0,0,10,6,8,1,18,
-    1,4,1,122,22,122,105,112,105,109,112,111,114,116,101,114,
-    46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,0,
-    0,0,0,0,0,0,0,0,9,0,0,0,8,0,0,0,
-    67,0,0,0,115,252,0,0,0,100,1,125,2,116,0,160,
-    1,124,2,116,2,161,2,1,0,116,3,124,0,124,1,131,
-    2,92,3,125,3,125,4,125,5,116,4,106,5,160,6,124,
-    1,161,1,125,6,124,6,100,2,117,0,115,31,116,7,124,
-    6,116,8,131,2,115,40,116,8,124,1,131,1,125,6,124,
-    6,116,4,106,5,124,1,60,0,124,0,124,6,95,9,122,
-    42,124,4,114,62,116,10,124,0,124,1,131,2,125,7,116,
-    11,160,12,124,0,106,13,124,7,161,2,125,8,124,8,103,
-    1,124,6,95,14,116,15,124,6,100,3,131,2,115,70,116,
-    16,124,6,95,16,116,11,160,17,124,6,106,18,124,1,124,
-    5,161,3,1,0,116,19,124,3,124,6,106,18,131,2,1,
-    0,87,0,110,8,1,0,1,0,1,0,116,4,106,5,124,
-    1,61,0,130,0,122,7,116,4,106,5,124,1,25,0,125,
-    6,87,0,110,15,4,0,116,20,121,116,1,0,1,0,1,
-    0,116,21,100,4,124,1,155,2,100,5,157,3,131,1,130,
-    1,119,0,116,22,160,23,100,6,124,1,124,5,161,3,1,
-    0,124,6,83,0,41,7,97,64,1,0,0,108,111,97,100,
-    95,109,111,100,117,108,101,40,102,117,108,108,110,97,109,101,
-    41,32,45,62,32,109,111,100,117,108,101,46,10,10,32,32,
-    32,32,32,32,32,32,76,111,97,100,32,116,104,101,32,109,
-    111,100,117,108,101,32,115,112,101,99,105,102,105,101,100,32,
-    98,121,32,39,102,117,108,108,110,97,109,101,39,46,32,39,
-    102,117,108,108,110,97,109,101,39,32,109,117,115,116,32,98,
-    101,32,116,104,101,10,32,32,32,32,32,32,32,32,102,117,
-    108,108,121,32,113,117,97,108,105,102,105,101,100,32,40,100,
-    111,116,116,101,100,41,32,109,111,100,117,108,101,32,110,97,
-    109,101,46,32,73,116,32,114,101,116,117,114,110,115,32,116,
-    104,101,32,105,109,112,111,114,116,101,100,10,32,32,32,32,
-    32,32,32,32,109,111,100,117,108,101,44,32,111,114,32,114,
-    97,105,115,101,115,32,90,105,112,73,109,112,111,114,116,69,
-    114,114,111,114,32,105,102,32,105,116,32,99,111,117,108,100,
-    32,110,111,116,32,98,101,32,105,109,112,111,114,116,101,100,
-    46,10,10,32,32,32,32,32,32,32,32,68,101,112,114,101,
-    99,97,116,101,100,32,115,105,110,99,101,32,80,121,116,104,
-    111,110,32,51,46,49,48,46,32,85,115,101,32,101,120,101,
-    99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,
-    97,100,46,10,32,32,32,32,32,32,32,32,122,114,122,105,
-    112,105,109,112,111,114,116,46,122,105,112,105,109,112,111,114,
-    116,101,114,46,108,111,97,100,95,109,111,100,117,108,101,40,
-    41,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,
-    97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,
-    101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,
-    32,51,46,49,50,59,32,117,115,101,32,101,120,101,99,95,
-    109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,
-    78,218,12,95,95,98,117,105,108,116,105,110,115,95,95,122,
-    14,76,111,97,100,101,100,32,109,111,100,117,108,101,32,122,
-    25,32,110,111,116,32,102,111,117,110,100,32,105,110,32,115,
-    121,115,46,109,111,100,117,108,101,115,122,30,105,109,112,111,
-    114,116,32,123,125,32,35,32,108,111,97,100,101,100,32,102,
-    114,111,109,32,90,105,112,32,123,125,41,24,114,35,0,0,
-    0,114,36,0,0,0,114,37,0,0,0,114,51,0,0,0,
-    218,3,115,121,115,218,7,109,111,100,117,108,101,115,218,3,
-    103,101,116,114,15,0,0,0,218,12,95,109,111,100,117,108,
-    101,95,116,121,112,101,218,10,95,95,108,111,97,100,101,114,
-    95,95,114,39,0,0,0,114,21,0,0,0,114,30,0,0,
-    0,114,29,0,0,0,90,8,95,95,112,97,116,104,95,95,
-    218,7,104,97,115,97,116,116,114,114,71,0,0,0,90,14,
-    95,102,105,120,95,117,112,95,109,111,100,117,108,101,218,8,
-    95,95,100,105,99,116,95,95,218,4,101,120,101,99,114,26,
-    0,0,0,218,11,73,109,112,111,114,116,69,114,114,111,114,
-    114,48,0,0,0,218,16,95,118,101,114,98,111,115,101,95,
-    109,101,115,115,97,103,101,41,9,114,32,0,0,0,114,41,
-    0,0,0,218,3,109,115,103,114,53,0,0,0,114,54,0,
-    0,0,114,43,0,0,0,90,3,109,111,100,114,13,0,0,
-    0,114,69,0,0,0,114,9,0,0,0,114,9,0,0,0,
-    114,10,0,0,0,218,11,108,111,97,100,95,109,111,100,117,
-    108,101,16,1,0,0,115,54,0,0,0,4,9,12,2,16,
-    1,12,1,18,1,8,1,10,1,6,1,2,2,4,1,10,
-    3,14,1,8,1,10,2,6,1,16,1,16,1,6,1,8,
-    1,2,1,2,2,14,1,12,1,16,1,2,255,14,2,4,
-    1,122,23,122,105,112,105,109,112,111,114,116,101,114,46,108,
-    111,97,100,95,109,111,100,117,108,101,99,2,0,0,0,0,
-    0,0,0,0,0,0,0,3,0,0,0,8,0,0,0,67,
-    0,0,0,115,64,0,0,0,122,10,124,0,160,0,124,1,
-    161,1,115,9,87,0,100,1,83,0,87,0,110,10,4,0,
-    116,1,121,20,1,0,1,0,1,0,89,0,100,1,83,0,
-    119,0,100,2,100,3,108,2,109,3,125,2,1,0,124,2,
-    124,0,124,1,131,2,83,0,41,4,122,204,82,101,116,117,
-    114,110,32,116,104,101,32,82,101,115,111,117,114,99,101,82,
-    101,97,100,101,114,32,102,111,114,32,97,32,112,97,99,107,
-    97,103,101,32,105,110,32,97,32,122,105,112,32,102,105,108,
-    101,46,10,10,32,32,32,32,32,32,32,32,73,102,32,39,
-    102,117,108,108,110,97,109,101,39,32,105,115,32,97,32,112,
-    97,99,107,97,103,101,32,119,105,116,104,105,110,32,116,104,
-    101,32,122,105,112,32,102,105,108,101,44,32,114,101,116,117,
-    114,110,32,116,104,101,10,32,32,32,32,32,32,32,32,39,
-    82,101,115,111,117,114,99,101,82,101,97,100,101,114,39,32,
-    111,98,106,101,99,116,32,102,111,114,32,116,104,101,32,112,
-    97,99,107,97,103,101,46,32,32,79,116,104,101,114,119,105,
-    115,101,32,114,101,116,117,114,110,32,78,111,110,101,46,10,
-    32,32,32,32,32,32,32,32,78,114,0,0,0,0,41,1,
-    218,9,90,105,112,82,101,97,100,101,114,41,4,114,46,0,
-    0,0,114,3,0,0,0,90,17,105,109,112,111,114,116,108,
-    105,98,46,114,101,97,100,101,114,115,114,84,0,0,0,41,
-    3,114,32,0,0,0,114,41,0,0,0,114,84,0,0,0,
-    114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,
-    19,103,101,116,95,114,101,115,111,117,114,99,101,95,114,101,
-    97,100,101,114,59,1,0,0,115,18,0,0,0,2,6,10,
-    1,6,1,4,255,12,2,6,1,2,255,12,2,10,1,122,
-    31,122,105,112,105,109,112,111,114,116,101,114,46,103,101,116,
-    95,114,101,115,111,117,114,99,101,95,114,101,97,100,101,114,
+    2,130,1,116,2,124,0,124,1,131,2,125,3,124,2,114,
+    32,116,3,160,4,124,3,100,4,161,2,125,4,110,5,124,
+    3,155,0,100,5,157,2,125,4,122,7,124,0,106,5,124,
+    4,25,0,125,5,87,0,110,10,4,0,116,6,121,54,1,
+    0,1,0,1,0,89,0,100,1,83,0,119,0,116,7,124,
+    0,106,8,124,5,131,2,160,9,161,0,83,0,41,6,122,
+    253,103,101,116,95,115,111,117,114,99,101,40,102,117,108,108,
+    110,97,109,101,41,32,45,62,32,115,111,117,114,99,101,32,
+    115,116,114,105,110,103,46,10,10,32,32,32,32,32,32,32,
+    32,82,101,116,117,114,110,32,116,104,101,32,115,111,117,114,
+    99,101,32,99,111,100,101,32,102,111,114,32,116,104,101,32,
+    115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,
+    46,32,82,97,105,115,101,32,90,105,112,73,109,112,111,114,
+    116,69,114,114,111,114,10,32,32,32,32,32,32,32,32,105,
+    102,32,116,104,101,32,109,111,100,117,108,101,32,99,111,117,
+    108,100,110,39,116,32,98,101,32,102,111,117,110,100,44,32,
+    114,101,116,117,114,110,32,78,111,110,101,32,105,102,32,116,
+    104,101,32,97,114,99,104,105,118,101,32,100,111,101,115,10,
+    32,32,32,32,32,32,32,32,99,111,110,116,97,105,110,32,
+    116,104,101,32,109,111,100,117,108,101,44,32,98,117,116,32,
+    104,97,115,32,110,111,32,115,111,117,114,99,101,32,102,111,
+    114,32,105,116,46,10,32,32,32,32,32,32,32,32,78,250,
+    18,99,97,110,39,116,32,102,105,110,100,32,109,111,100,117,
+    108,101,32,169,1,114,47,0,0,0,250,11,95,95,105,110,
+    105,116,95,95,46,112,121,250,3,46,112,121,41,10,114,38,
+    0,0,0,114,3,0,0,0,114,39,0,0,0,114,21,0,
+    0,0,114,30,0,0,0,114,28,0,0,0,114,26,0,0,
+    0,114,59,0,0,0,114,29,0,0,0,218,6,100,101,99,
+    111,100,101,41,6,114,32,0,0,0,114,41,0,0,0,114,
+    42,0,0,0,114,13,0,0,0,218,8,102,117,108,108,112,
+    97,116,104,114,61,0,0,0,114,9,0,0,0,114,9,0,
+    0,0,114,10,0,0,0,218,10,103,101,116,95,115,111,117,
+    114,99,101,233,0,0,0,115,26,0,0,0,10,7,8,1,
+    18,1,10,2,4,1,14,1,10,2,2,2,14,1,12,1,
+    6,2,2,254,16,3,122,22,122,105,112,105,109,112,111,114,
+    116,101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,
+    0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,
+    0,0,0,67,0,0,0,115,40,0,0,0,116,0,124,0,
+    124,1,131,2,125,2,124,2,100,1,117,0,114,18,116,1,
+    100,2,124,1,155,2,157,2,124,1,100,3,141,2,130,1,
+    124,2,83,0,41,4,122,171,105,115,95,112,97,99,107,97,
+    103,101,40,102,117,108,108,110,97,109,101,41,32,45,62,32,
+    98,111,111,108,46,10,10,32,32,32,32,32,32,32,32,82,
+    101,116,117,114,110,32,84,114,117,101,32,105,102,32,116,104,
+    101,32,109,111,100,117,108,101,32,115,112,101,99,105,102,105,
+    101,100,32,98,121,32,102,117,108,108,110,97,109,101,32,105,
+    115,32,97,32,112,97,99,107,97,103,101,46,10,32,32,32,
+    32,32,32,32,32,82,97,105,115,101,32,90,105,112,73,109,
+    112,111,114,116,69,114,114,111,114,32,105,102,32,116,104,101,
+    32,109,111,100,117,108,101,32,99,111,117,108,100,110,39,116,
+    32,98,101,32,102,111,117,110,100,46,10,32,32,32,32,32,
+    32,32,32,78,114,64,0,0,0,114,65,0,0,0,41,2,
+    114,38,0,0,0,114,3,0,0,0,41,3,114,32,0,0,
+    0,114,41,0,0,0,114,42,0,0,0,114,9,0,0,0,
+    114,9,0,0,0,114,10,0,0,0,114,46,0,0,0,3,
+    1,0,0,115,8,0,0,0,10,6,8,1,18,1,4,1,
+    122,22,122,105,112,105,109,112,111,114,116,101,114,46,105,115,
+    95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,
+    0,0,0,0,0,9,0,0,0,8,0,0,0,67,0,0,
+    0,115,252,0,0,0,100,1,125,2,116,0,160,1,124,2,
+    116,2,161,2,1,0,116,3,124,0,124,1,131,2,92,3,
+    125,3,125,4,125,5,116,4,106,5,160,6,124,1,161,1,
+    125,6,124,6,100,2,117,0,115,31,116,7,124,6,116,8,
+    131,2,115,40,116,8,124,1,131,1,125,6,124,6,116,4,
+    106,5,124,1,60,0,124,0,124,6,95,9,122,42,124,4,
+    114,62,116,10,124,0,124,1,131,2,125,7,116,11,160,12,
+    124,0,106,13,124,7,161,2,125,8,124,8,103,1,124,6,
+    95,14,116,15,124,6,100,3,131,2,115,70,116,16,124,6,
+    95,16,116,11,160,17,124,6,106,18,124,1,124,5,161,3,
+    1,0,116,19,124,3,124,6,106,18,131,2,1,0,87,0,
+    110,8,1,0,1,0,1,0,116,4,106,5,124,1,61,0,
+    130,0,122,7,116,4,106,5,124,1,25,0,125,6,87,0,
+    110,15,4,0,116,20,121,116,1,0,1,0,1,0,116,21,
+    100,4,124,1,155,2,100,5,157,3,131,1,130,1,119,0,
+    116,22,160,23,100,6,124,1,124,5,161,3,1,0,124,6,
+    83,0,41,7,97,64,1,0,0,108,111,97,100,95,109,111,
+    100,117,108,101,40,102,117,108,108,110,97,109,101,41,32,45,
+    62,32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,
+    32,32,32,76,111,97,100,32,116,104,101,32,109,111,100,117,
+    108,101,32,115,112,101,99,105,102,105,101,100,32,98,121,32,
+    39,102,117,108,108,110,97,109,101,39,46,32,39,102,117,108,
+    108,110,97,109,101,39,32,109,117,115,116,32,98,101,32,116,
+    104,101,10,32,32,32,32,32,32,32,32,102,117,108,108,121,
+    32,113,117,97,108,105,102,105,101,100,32,40,100,111,116,116,
+    101,100,41,32,109,111,100,117,108,101,32,110,97,109,101,46,
+    32,73,116,32,114,101,116,117,114,110,115,32,116,104,101,32,
+    105,109,112,111,114,116,101,100,10,32,32,32,32,32,32,32,
+    32,109,111,100,117,108,101,44,32,111,114,32,114,97,105,115,
+    101,115,32,90,105,112,73,109,112,111,114,116,69,114,114,111,
+    114,32,105,102,32,105,116,32,99,111,117,108,100,32,110,111,
+    116,32,98,101,32,105,109,112,111,114,116,101,100,46,10,10,
+    32,32,32,32,32,32,32,32,68,101,112,114,101,99,97,116,
+    101,100,32,115,105,110,99,101,32,80,121,116,104,111,110,32,
+    51,46,49,48,46,32,85,115,101,32,101,120,101,99,95,109,
+    111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,
+    10,32,32,32,32,32,32,32,32,122,114,122,105,112,105,109,
+    112,111,114,116,46,122,105,112,105,109,112,111,114,116,101,114,
+    46,108,111,97,100,95,109,111,100,117,108,101,40,41,32,105,
+    115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100,
+    32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111,
+    118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46,
+    49,50,59,32,117,115,101,32,101,120,101,99,95,109,111,100,
+    117,108,101,40,41,32,105,110,115,116,101,97,100,78,218,12,
+    95,95,98,117,105,108,116,105,110,115,95,95,122,14,76,111,
+    97,100,101,100,32,109,111,100,117,108,101,32,122,25,32,110,
+    111,116,32,102,111,117,110,100,32,105,110,32,115,121,115,46,
+    109,111,100,117,108,101,115,122,30,105,109,112,111,114,116,32,
+    123,125,32,35,32,108,111,97,100,101,100,32,102,114,111,109,
+    32,90,105,112,32,123,125,41,24,114,35,0,0,0,114,36,
+    0,0,0,114,37,0,0,0,114,51,0,0,0,218,3,115,
+    121,115,218,7,109,111,100,117,108,101,115,218,3,103,101,116,
+    114,15,0,0,0,218,12,95,109,111,100,117,108,101,95,116,
+    121,112,101,218,10,95,95,108,111,97,100,101,114,95,95,114,
+    39,0,0,0,114,21,0,0,0,114,30,0,0,0,114,29,
+    0,0,0,90,8,95,95,112,97,116,104,95,95,218,7,104,
+    97,115,97,116,116,114,114,71,0,0,0,90,14,95,102,105,
+    120,95,117,112,95,109,111,100,117,108,101,218,8,95,95,100,
+    105,99,116,95,95,218,4,101,120,101,99,114,26,0,0,0,
+    218,11,73,109,112,111,114,116,69,114,114,111,114,114,48,0,
+    0,0,218,16,95,118,101,114,98,111,115,101,95,109,101,115,
+    115,97,103,101,41,9,114,32,0,0,0,114,41,0,0,0,
+    218,3,109,115,103,114,53,0,0,0,114,54,0,0,0,114,
+    43,0,0,0,90,3,109,111,100,114,13,0,0,0,114,69,
+    0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,
+    0,0,218,11,108,111,97,100,95,109,111,100,117,108,101,16,
+    1,0,0,115,54,0,0,0,4,9,12,2,16,1,12,1,
+    18,1,8,1,10,1,6,1,2,2,4,1,10,3,14,1,
+    8,1,10,2,6,1,16,1,16,1,6,1,8,1,2,1,
+    2,2,14,1,12,1,16,1,2,255,14,2,4,1,122,23,
+    122,105,112,105,109,112,111,114,116,101,114,46,108,111,97,100,
+    95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
+    0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,
+    115,64,0,0,0,122,10,124,0,160,0,124,1,161,1,115,
+    9,87,0,100,1,83,0,87,0,110,10,4,0,116,1,121,
+    20,1,0,1,0,1,0,89,0,100,1,83,0,119,0,100,
+    2,100,3,108,2,109,3,125,2,1,0,124,2,124,0,124,
+    1,131,2,83,0,41,4,122,204,82,101,116,117,114,110,32,
+    116,104,101,32,82,101,115,111,117,114,99,101,82,101,97,100,
+    101,114,32,102,111,114,32,97,32,112,97,99,107,97,103,101,
+    32,105,110,32,97,32,122,105,112,32,102,105,108,101,46,10,
+    10,32,32,32,32,32,32,32,32,73,102,32,39,102,117,108,
+    108,110,97,109,101,39,32,105,115,32,97,32,112,97,99,107,
+    97,103,101,32,119,105,116,104,105,110,32,116,104,101,32,122,
+    105,112,32,102,105,108,101,44,32,114,101,116,117,114,110,32,
+    116,104,101,10,32,32,32,32,32,32,32,32,39,82,101,115,
+    111,117,114,99,101,82,101,97,100,101,114,39,32,111,98,106,
+    101,99,116,32,102,111,114,32,116,104,101,32,112,97,99,107,
+    97,103,101,46,32,32,79,116,104,101,114,119,105,115,101,32,
+    114,101,116,117,114,110,32,78,111,110,101,46,10,32,32,32,
+    32,32,32,32,32,78,114,0,0,0,0,41,1,218,9,90,
+    105,112,82,101,97,100,101,114,41,4,114,46,0,0,0,114,
+    3,0,0,0,90,17,105,109,112,111,114,116,108,105,98,46,
+    114,101,97,100,101,114,115,114,84,0,0,0,41,3,114,32,
+    0,0,0,114,41,0,0,0,114,84,0,0,0,114,9,0,
+    0,0,114,9,0,0,0,114,10,0,0,0,218,19,103,101,
+    116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,101,
+    114,59,1,0,0,115,18,0,0,0,2,6,10,1,6,1,
+    4,255,12,2,6,1,2,255,12,2,10,1,122,31,122,105,
+    112,105,109,112,111,114,116,101,114,46,103,101,116,95,114,101,
+    115,111,117,114,99,101,95,114,101,97,100,101,114,99,1,0,
+    0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,
+    0,0,67,0,0,0,115,72,0,0,0,122,15,116,0,124,
+    0,106,1,131,1,124,0,95,2,124,0,106,2,116,3,124,
+    0,106,1,60,0,87,0,100,1,83,0,4,0,116,4,121,
+    35,1,0,1,0,1,0,116,3,160,5,124,0,106,1,100,
+    1,161,2,1,0,105,0,124,0,95,2,89,0,100,1,83,
+    0,119,0,41,2,122,41,82,101,108,111,97,100,32,116,104,
+    101,32,102,105,108,101,32,100,97,116,97,32,111,102,32,116,
+    104,101,32,97,114,99,104,105,118,101,32,112,97,116,104,46,
+    78,41,6,114,27,0,0,0,114,29,0,0,0,114,28,0,
+    0,0,114,25,0,0,0,114,3,0,0,0,218,3,112,111,
+    112,169,1,114,32,0,0,0,114,9,0,0,0,114,9,0,
+    0,0,114,10,0,0,0,218,17,105,110,118,97,108,105,100,
+    97,116,101,95,99,97,99,104,101,115,74,1,0,0,115,14,
+    0,0,0,2,2,12,1,18,1,12,1,14,1,12,1,2,
+    254,122,29,122,105,112,105,109,112,111,114,116,101,114,46,105,
+    110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,
     99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
-    0,8,0,0,0,67,0,0,0,115,72,0,0,0,122,15,
-    116,0,124,0,106,1,131,1,124,0,95,2,124,0,106,2,
-    116,3,124,0,106,1,60,0,87,0,100,1,83,0,4,0,
-    116,4,121,35,1,0,1,0,1,0,116,3,160,5,124,0,
-    106,1,100,1,161,2,1,0,100,1,124,0,95,2,89,0,
-    100,1,83,0,119,0,41,2,122,41,82,101,108,111,97,100,
-    32,116,104,101,32,102,105,108,101,32,100,97,116,97,32,111,
-    102,32,116,104,101,32,97,114,99,104,105,118,101,32,112,97,
-    116,104,46,78,41,6,114,27,0,0,0,114,29,0,0,0,
-    114,28,0,0,0,114,25,0,0,0,114,3,0,0,0,218,
-    3,112,111,112,169,1,114,32,0,0,0,114,9,0,0,0,
-    114,9,0,0,0,114,10,0,0,0,218,17,105,110,118,97,
-    108,105,100,97,116,101,95,99,97,99,104,101,115,74,1,0,
-    0,115,14,0,0,0,2,2,12,1,18,1,12,1,14,1,
-    12,1,2,254,122,29,122,105,112,105,109,112,111,114,116,101,
-    114,46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,
-    104,101,115,99,1,0,0,0,0,0,0,0,0,0,0,0,
-    1,0,0,0,5,0,0,0,67,0,0,0,115,24,0,0,
-    0,100,1,124,0,106,0,155,0,116,1,155,0,124,0,106,
-    2,155,0,100,2,157,5,83,0,41,3,78,122,21,60,122,
-    105,112,105,109,112,111,114,116,101,114,32,111,98,106,101,99,
-    116,32,34,122,2,34,62,41,3,114,29,0,0,0,114,20,
-    0,0,0,114,31,0,0,0,114,87,0,0,0,114,9,0,
-    0,0,114,9,0,0,0,114,10,0,0,0,218,8,95,95,
-    114,101,112,114,95,95,84,1,0,0,115,2,0,0,0,24,
-    1,122,20,122,105,112,105,109,112,111,114,116,101,114,46,95,
-    95,114,101,112,114,95,95,169,1,78,41,17,114,6,0,0,
-    0,114,7,0,0,0,114,8,0,0,0,218,7,95,95,100,
-    111,99,95,95,114,34,0,0,0,114,44,0,0,0,114,45,
-    0,0,0,114,49,0,0,0,114,55,0,0,0,114,62,0,
-    0,0,114,63,0,0,0,114,70,0,0,0,114,46,0,0,
-    0,114,83,0,0,0,114,85,0,0,0,114,88,0,0,0,
-    114,89,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
-    9,0,0,0,114,10,0,0,0,114,4,0,0,0,46,0,
-    0,0,115,30,0,0,0,8,0,4,1,8,17,10,46,10,
-    37,10,16,8,27,8,10,8,21,8,12,8,26,8,13,8,
-    43,8,15,12,10,122,12,95,95,105,110,105,116,95,95,46,
-    112,121,99,84,114,66,0,0,0,70,41,3,122,4,46,112,
-    121,99,84,70,41,3,114,67,0,0,0,70,70,99,2,0,
-    0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,
-    0,0,67,0,0,0,115,20,0,0,0,124,0,106,0,124,
-    1,160,1,100,1,161,1,100,2,25,0,23,0,83,0,41,
-    3,78,218,1,46,233,2,0,0,0,41,2,114,31,0,0,
-    0,218,10,114,112,97,114,116,105,116,105,111,110,41,2,114,
-    32,0,0,0,114,41,0,0,0,114,9,0,0,0,114,9,
-    0,0,0,114,10,0,0,0,114,39,0,0,0,102,1,0,
-    0,115,2,0,0,0,20,1,114,39,0,0,0,99,2,0,
-    0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,
-    0,0,67,0,0,0,115,18,0,0,0,124,1,116,0,23,
-    0,125,2,124,2,124,0,106,1,118,0,83,0,114,90,0,
-    0,0,41,2,114,20,0,0,0,114,28,0,0,0,41,3,
-    114,32,0,0,0,114,13,0,0,0,90,7,100,105,114,112,
-    97,116,104,114,9,0,0,0,114,9,0,0,0,114,10,0,
-    0,0,114,40,0,0,0,106,1,0,0,115,4,0,0,0,
-    8,4,10,2,114,40,0,0,0,99,2,0,0,0,0,0,
-    0,0,0,0,0,0,7,0,0,0,4,0,0,0,67,0,
-    0,0,115,56,0,0,0,116,0,124,0,124,1,131,2,125,
-    2,116,1,68,0,93,18,92,3,125,3,125,4,125,5,124,
-    2,124,3,23,0,125,6,124,6,124,0,106,2,118,0,114,
-    25,124,5,2,0,1,0,83,0,113,7,100,0,83,0,114,
-    90,0,0,0,41,3,114,39,0,0,0,218,16,95,122,105,
-    112,95,115,101,97,114,99,104,111,114,100,101,114,114,28,0,
-    0,0,41,7,114,32,0,0,0,114,41,0,0,0,114,13,
-    0,0,0,218,6,115,117,102,102,105,120,218,10,105,115,98,
-    121,116,101,99,111,100,101,114,54,0,0,0,114,69,0,0,
-    0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
-    114,38,0,0,0,115,1,0,0,115,14,0,0,0,10,1,
-    14,1,8,1,10,1,8,1,2,255,4,2,114,38,0,0,
-    0,99,1,0,0,0,0,0,0,0,0,0,0,0,26,0,
-    0,0,9,0,0,0,67,0,0,0,115,220,4,0,0,122,
-    7,116,0,160,1,124,0,161,1,125,1,87,0,110,16,4,
-    0,116,2,121,23,1,0,1,0,1,0,116,3,100,1,124,
-    0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,124,
-    1,144,2,143,65,1,0,122,18,124,1,160,4,116,5,11,
-    0,100,3,161,2,1,0,124,1,160,6,161,0,125,2,124,
-    1,160,7,116,5,161,1,125,3,87,0,110,16,4,0,116,
-    2,121,62,1,0,1,0,1,0,116,3,100,4,124,0,155,
-    2,157,2,124,0,100,2,141,2,130,1,119,0,116,8,124,
-    3,131,1,116,5,107,3,114,78,116,3,100,4,124,0,155,
-    2,157,2,124,0,100,2,141,2,130,1,124,3,100,0,100,
-    5,133,2,25,0,116,9,107,3,114,201,122,12,124,1,160,
-    4,100,6,100,3,161,2,1,0,124,1,160,6,161,0,125,
-    4,87,0,110,16,4,0,116,2,121,114,1,0,1,0,1,
-    0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,
-    2,130,1,119,0,116,10,124,4,116,11,24,0,116,5,24,
-    0,100,6,131,2,125,5,122,11,124,1,160,4,124,5,161,
-    1,1,0,124,1,160,7,161,0,125,6,87,0,110,16,4,
-    0,116,2,121,151,1,0,1,0,1,0,116,3,100,4,124,
-    0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,124,
-    6,160,12,116,9,161,1,125,7,124,7,100,6,107,0,114,
-    170,116,3,100,7,124,0,155,2,157,2,124,0,100,2,141,
-    2,130,1,124,6,124,7,124,7,116,5,23,0,133,2,25,
-    0,125,3,116,8,124,3,131,1,116,5,107,3,114,193,116,
-    3,100,8,124,0,155,2,157,2,124,0,100,2,141,2,130,
-    1,124,4,116,8,124,6,131,1,24,0,124,7,23,0,125,
-    2,116,13,124,3,100,9,100,10,133,2,25,0,131,1,125,
-    8,116,13,124,3,100,10,100,11,133,2,25,0,131,1,125,
-    9,124,2,124,8,107,0,114,230,116,3,100,12,124,0,155,
-    2,157,2,124,0,100,2,141,2,130,1,124,2,124,9,107,
-    0,114,243,116,3,100,13,124,0,155,2,157,2,124,0,100,
-    2,141,2,130,1,124,2,124,8,56,0,125,2,124,2,124,
-    9,24,0,125,10,124,10,100,6,107,0,144,1,114,9,116,
-    3,100,14,124,0,155,2,157,2,124,0,100,2,141,2,130,
-    1,105,0,125,11,100,6,125,12,122,7,124,1,160,4,124,
-    2,161,1,1,0,87,0,110,17,4,0,116,2,144,1,121,
-    37,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157,
-    2,124,0,100,2,141,2,130,1,119,0,9,0,124,1,160,
-    7,100,16,161,1,125,3,116,8,124,3,131,1,100,5,107,
-    0,144,1,114,55,116,14,100,17,131,1,130,1,124,3,100,
-    0,100,5,133,2,25,0,100,18,107,3,144,1,114,66,144,
-    2,113,85,116,8,124,3,131,1,100,16,107,3,144,1,114,
-    77,116,14,100,17,131,1,130,1,116,15,124,3,100,19,100,
-    20,133,2,25,0,131,1,125,13,116,15,124,3,100,20,100,
-    9,133,2,25,0,131,1,125,14,116,15,124,3,100,9,100,
-    21,133,2,25,0,131,1,125,15,116,15,124,3,100,21,100,
-    10,133,2,25,0,131,1,125,16,116,13,124,3,100,10,100,
-    11,133,2,25,0,131,1,125,17,116,13,124,3,100,11,100,
-    22,133,2,25,0,131,1,125,18,116,13,124,3,100,22,100,
-    23,133,2,25,0,131,1,125,4,116,15,124,3,100,23,100,
-    24,133,2,25,0,131,1,125,19,116,15,124,3,100,24,100,
-    25,133,2,25,0,131,1,125,20,116,15,124,3,100,25,100,
-    26,133,2,25,0,131,1,125,21,116,13,124,3,100,27,100,
-    16,133,2,25,0,131,1,125,22,124,19,124,20,23,0,124,
-    21,23,0,125,8,124,22,124,9,107,4,144,1,114,185,116,
-    3,100,28,124,0,155,2,157,2,124,0,100,2,141,2,130,
-    1,124,22,124,10,55,0,125,22,122,7,124,1,160,7,124,
-    19,161,1,125,23,87,0,110,17,4,0,116,2,144,1,121,
-    213,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157,
-    2,124,0,100,2,141,2,130,1,119,0,116,8,124,23,131,
-    1,124,19,107,3,144,1,114,230,116,3,100,4,124,0,155,
-    2,157,2,124,0,100,2,141,2,130,1,122,25,116,8,124,
-    1,160,7,124,8,124,19,24,0,161,1,131,1,124,8,124,
-    19,24,0,107,3,144,1,114,254,116,3,100,4,124,0,155,
-    2,157,2,124,0,100,2,141,2,130,1,87,0,110,17,4,
-    0,116,2,144,2,121,16,1,0,1,0,1,0,116,3,100,
-    4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,119,
-    0,124,13,100,29,64,0,144,2,114,27,124,23,160,16,161,
-    0,125,23,110,26,122,7,124,23,160,16,100,30,161,1,125,
-    23,87,0,110,18,4,0,116,17,144,2,121,52,1,0,1,
-    0,1,0,124,23,160,16,100,31,161,1,160,18,116,19,161,
-    1,125,23,89,0,110,1,119,0,124,23,160,20,100,32,116,
-    21,161,2,125,23,116,22,160,23,124,0,124,23,161,2,125,
-    24,124,24,124,14,124,18,124,4,124,22,124,15,124,16,124,
-    17,102,8,125,25,124,25,124,11,124,23,60,0,124,12,100,
-    33,55,0,125,12,144,1,113,39,87,0,100,0,4,0,4,
-    0,131,3,1,0,110,9,49,0,144,2,115,96,119,1,1,
-    0,1,0,1,0,89,0,1,0,116,24,160,25,100,34,124,
-    12,124,0,161,3,1,0,124,11,83,0,41,35,78,122,21,
-    99,97,110,39,116,32,111,112,101,110,32,90,105,112,32,102,
-    105,108,101,58,32,114,12,0,0,0,114,93,0,0,0,250,
-    21,99,97,110,39,116,32,114,101,97,100,32,90,105,112,32,
-    102,105,108,101,58,32,233,4,0,0,0,114,0,0,0,0,
-    122,16,110,111,116,32,97,32,90,105,112,32,102,105,108,101,
-    58,32,122,18,99,111,114,114,117,112,116,32,90,105,112,32,
-    102,105,108,101,58,32,233,12,0,0,0,233,16,0,0,0,
-    233,20,0,0,0,122,28,98,97,100,32,99,101,110,116,114,
-    97,108,32,100,105,114,101,99,116,111,114,121,32,115,105,122,
-    101,58,32,122,30,98,97,100,32,99,101,110,116,114,97,108,
-    32,100,105,114,101,99,116,111,114,121,32,111,102,102,115,101,
-    116,58,32,122,38,98,97,100,32,99,101,110,116,114,97,108,
-    32,100,105,114,101,99,116,111,114,121,32,115,105,122,101,32,
-    111,114,32,111,102,102,115,101,116,58,32,84,233,46,0,0,
-    0,250,27,69,79,70,32,114,101,97,100,32,119,104,101,114,
-    101,32,110,111,116,32,101,120,112,101,99,116,101,100,115,4,
-    0,0,0,80,75,1,2,233,8,0,0,0,233,10,0,0,
-    0,233,14,0,0,0,233,24,0,0,0,233,28,0,0,0,
-    233,30,0,0,0,233,32,0,0,0,233,34,0,0,0,233,
-    42,0,0,0,122,25,98,97,100,32,108,111,99,97,108,32,
-    104,101,97,100,101,114,32,111,102,102,115,101,116,58,32,105,
-    0,8,0,0,218,5,97,115,99,105,105,90,6,108,97,116,
-    105,110,49,250,1,47,114,5,0,0,0,122,33,122,105,112,
-    105,109,112,111,114,116,58,32,102,111,117,110,100,32,123,125,
-    32,110,97,109,101,115,32,105,110,32,123,33,114,125,41,26,
-    218,3,95,105,111,218,9,111,112,101,110,95,99,111,100,101,
-    114,22,0,0,0,114,3,0,0,0,218,4,115,101,101,107,
-    218,20,69,78,68,95,67,69,78,84,82,65,76,95,68,73,
-    82,95,83,73,90,69,90,4,116,101,108,108,218,4,114,101,
-    97,100,114,58,0,0,0,218,18,83,84,82,73,78,71,95,
-    69,78,68,95,65,82,67,72,73,86,69,218,3,109,97,120,
-    218,15,77,65,88,95,67,79,77,77,69,78,84,95,76,69,
-    78,218,5,114,102,105,110,100,114,2,0,0,0,218,8,69,
-    79,70,69,114,114,111,114,114,1,0,0,0,114,68,0,0,
-    0,218,18,85,110,105,99,111,100,101,68,101,99,111,100,101,
-    69,114,114,111,114,218,9,116,114,97,110,115,108,97,116,101,
-    218,11,99,112,52,51,55,95,116,97,98,108,101,114,19,0,
-    0,0,114,20,0,0,0,114,21,0,0,0,114,30,0,0,
-    0,114,48,0,0,0,114,81,0,0,0,41,26,114,29,0,
-    0,0,218,2,102,112,90,15,104,101,97,100,101,114,95,112,
-    111,115,105,116,105,111,110,218,6,98,117,102,102,101,114,218,
-    9,102,105,108,101,95,115,105,122,101,90,17,109,97,120,95,
-    99,111,109,109,101,110,116,95,115,116,97,114,116,218,4,100,
-    97,116,97,90,3,112,111,115,218,11,104,101,97,100,101,114,
-    95,115,105,122,101,90,13,104,101,97,100,101,114,95,111,102,
-    102,115,101,116,90,10,97,114,99,95,111,102,102,115,101,116,
-    114,33,0,0,0,218,5,99,111,117,110,116,218,5,102,108,
-    97,103,115,218,8,99,111,109,112,114,101,115,115,218,4,116,
-    105,109,101,218,4,100,97,116,101,218,3,99,114,99,218,9,
-    100,97,116,97,95,115,105,122,101,218,9,110,97,109,101,95,
-    115,105,122,101,218,10,101,120,116,114,97,95,115,105,122,101,
-    90,12,99,111,109,109,101,110,116,95,115,105,122,101,218,11,
-    102,105,108,101,95,111,102,102,115,101,116,114,47,0,0,0,
-    114,13,0,0,0,218,1,116,114,9,0,0,0,114,9,0,
-    0,0,114,10,0,0,0,114,27,0,0,0,146,1,0,0,
-    115,238,0,0,0,2,1,14,1,12,1,18,1,2,255,8,
-    3,2,1,14,1,8,1,14,1,12,1,18,1,2,255,12,
-    2,18,1,16,1,2,3,12,1,12,1,12,1,10,1,2,
-    1,6,255,2,255,8,3,2,1,2,255,2,1,4,255,2,
-    2,10,1,12,1,12,1,10,1,2,1,6,255,2,255,10,
-    3,8,1,10,1,2,1,6,255,16,2,12,1,10,1,2,
-    1,6,255,16,2,16,2,16,1,8,1,18,1,8,1,18,
-    1,8,1,8,1,10,1,18,1,4,2,4,2,2,1,14,
-    1,14,1,18,1,2,255,2,2,10,1,14,1,8,1,18,
-    2,4,1,14,1,8,1,16,1,16,1,16,1,16,1,16,
-    1,16,1,16,1,16,1,16,1,16,1,16,1,12,1,10,
-    1,18,1,8,1,2,2,14,1,14,1,18,1,2,255,14,
-    2,18,1,2,4,28,1,18,1,4,255,14,2,18,1,2,
-    255,10,3,10,2,2,3,14,1,14,1,20,1,2,255,12,
-    3,12,1,20,1,8,1,8,1,4,202,2,6,30,196,14,
-    109,4,1,114,27,0,0,0,117,190,1,0,0,0,1,2,
-    3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,
-    19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,
-    35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
-    51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,
-    67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,
-    83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,
-    99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
-    115,116,117,118,119,120,121,122,123,124,125,126,127,195,135,195,
-    188,195,169,195,162,195,164,195,160,195,165,195,167,195,170,195,
-    171,195,168,195,175,195,174,195,172,195,132,195,133,195,137,195,
-    166,195,134,195,180,195,182,195,178,195,187,195,185,195,191,195,
-    150,195,156,194,162,194,163,194,165,226,130,167,198,146,195,161,
-    195,173,195,179,195,186,195,177,195,145,194,170,194,186,194,191,
-    226,140,144,194,172,194,189,194,188,194,161,194,171,194,187,226,
-    150,145,226,150,146,226,150,147,226,148,130,226,148,164,226,149,
-    161,226,149,162,226,149,150,226,149,149,226,149,163,226,149,145,
-    226,149,151,226,149,157,226,149,156,226,149,155,226,148,144,226,
-    148,148,226,148,180,226,148,172,226,148,156,226,148,128,226,148,
-    188,226,149,158,226,149,159,226,149,154,226,149,148,226,149,169,
-    226,149,166,226,149,160,226,149,144,226,149,172,226,149,167,226,
-    149,168,226,149,164,226,149,165,226,149,153,226,149,152,226,149,
-    146,226,149,147,226,149,171,226,149,170,226,148,152,226,148,140,
-    226,150,136,226,150,132,226,150,140,226,150,144,226,150,128,206,
-    177,195,159,206,147,207,128,206,163,207,131,194,181,207,132,206,
-    166,206,152,206,169,206,180,226,136,158,207,134,206,181,226,136,
-    169,226,137,161,194,177,226,137,165,226,137,164,226,140,160,226,
-    140,161,195,183,226,137,136,194,176,226,136,153,194,183,226,136,
-    154,226,129,191,194,178,226,150,160,194,160,99,0,0,0,0,
-    0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,
-    67,0,0,0,115,106,0,0,0,116,0,114,11,116,1,160,
-    2,100,1,161,1,1,0,116,3,100,2,131,1,130,1,100,
-    3,97,0,122,29,122,8,100,4,100,5,108,4,109,5,125,
-    0,1,0,87,0,110,16,4,0,116,6,121,38,1,0,1,
-    0,1,0,116,1,160,2,100,1,161,1,1,0,116,3,100,
-    2,131,1,130,1,119,0,87,0,100,6,97,0,110,3,100,
-    6,97,0,119,0,116,1,160,2,100,7,161,1,1,0,124,
-    0,83,0,41,8,78,122,27,122,105,112,105,109,112,111,114,
-    116,58,32,122,108,105,98,32,85,78,65,86,65,73,76,65,
-    66,76,69,250,41,99,97,110,39,116,32,100,101,99,111,109,
-    112,114,101,115,115,32,100,97,116,97,59,32,122,108,105,98,
-    32,110,111,116,32,97,118,97,105,108,97,98,108,101,84,114,
-    0,0,0,0,169,1,218,10,100,101,99,111,109,112,114,101,
-    115,115,70,122,25,122,105,112,105,109,112,111,114,116,58,32,
-    122,108,105,98,32,97,118,97,105,108,97,98,108,101,41,7,
-    218,15,95,105,109,112,111,114,116,105,110,103,95,122,108,105,
-    98,114,48,0,0,0,114,81,0,0,0,114,3,0,0,0,
-    90,4,122,108,105,98,114,147,0,0,0,218,9,69,120,99,
-    101,112,116,105,111,110,114,146,0,0,0,114,9,0,0,0,
-    114,9,0,0,0,114,10,0,0,0,218,20,95,103,101,116,
-    95,100,101,99,111,109,112,114,101,115,115,95,102,117,110,99,
-    48,2,0,0,115,28,0,0,0,4,2,10,3,8,1,4,
-    2,4,1,16,1,12,1,10,1,8,1,2,254,2,255,12,
-    5,10,2,4,1,114,150,0,0,0,99,2,0,0,0,0,
-    0,0,0,0,0,0,0,17,0,0,0,9,0,0,0,67,
-    0,0,0,115,120,1,0,0,124,1,92,8,125,2,125,3,
-    125,4,125,5,125,6,125,7,125,8,125,9,124,4,100,1,
-    107,0,114,18,116,0,100,2,131,1,130,1,116,1,160,2,
-    124,0,161,1,143,129,125,10,122,7,124,10,160,3,124,6,
-    161,1,1,0,87,0,110,16,4,0,116,4,121,47,1,0,
-    1,0,1,0,116,0,100,3,124,0,155,2,157,2,124,0,
-    100,4,141,2,130,1,119,0,124,10,160,5,100,5,161,1,
-    125,11,116,6,124,11,131,1,100,5,107,3,114,63,116,7,
-    100,6,131,1,130,1,124,11,100,0,100,7,133,2,25,0,
-    100,8,107,3,114,80,116,0,100,9,124,0,155,2,157,2,
-    124,0,100,4,141,2,130,1,116,8,124,11,100,10,100,11,
-    133,2,25,0,131,1,125,12,116,8,124,11,100,11,100,5,
-    133,2,25,0,131,1,125,13,100,5,124,12,23,0,124,13,
-    23,0,125,14,124,6,124,14,55,0,125,6,122,7,124,10,
-    160,3,124,6,161,1,1,0,87,0,110,16,4,0,116,4,
-    121,129,1,0,1,0,1,0,116,0,100,3,124,0,155,2,
-    157,2,124,0,100,4,141,2,130,1,119,0,124,10,160,5,
-    124,4,161,1,125,15,116,6,124,15,131,1,124,4,107,3,
-    114,145,116,4,100,12,131,1,130,1,87,0,100,0,4,0,
-    4,0,131,3,1,0,110,8,49,0,115,155,119,1,1,0,
-    1,0,1,0,89,0,1,0,124,3,100,1,107,2,114,166,
-    124,15,83,0,122,5,116,9,131,0,125,16,87,0,110,11,
-    4,0,116,10,121,182,1,0,1,0,1,0,116,0,100,13,
-    131,1,130,1,119,0,124,16,124,15,100,14,131,2,83,0,
-    41,15,78,114,0,0,0,0,122,18,110,101,103,97,116,105,
-    118,101,32,100,97,116,97,32,115,105,122,101,114,98,0,0,
-    0,114,12,0,0,0,114,110,0,0,0,114,104,0,0,0,
-    114,99,0,0,0,115,4,0,0,0,80,75,3,4,122,23,
-    98,97,100,32,108,111,99,97,108,32,102,105,108,101,32,104,
-    101,97,100,101,114,58,32,233,26,0,0,0,114,109,0,0,
-    0,122,26,122,105,112,105,109,112,111,114,116,58,32,99,97,
-    110,39,116,32,114,101,97,100,32,100,97,116,97,114,145,0,
-    0,0,105,241,255,255,255,41,11,114,3,0,0,0,114,116,
-    0,0,0,114,117,0,0,0,114,118,0,0,0,114,22,0,
-    0,0,114,120,0,0,0,114,58,0,0,0,114,125,0,0,
-    0,114,1,0,0,0,114,150,0,0,0,114,149,0,0,0,
-    41,17,114,29,0,0,0,114,61,0,0,0,90,8,100,97,
-    116,97,112,97,116,104,114,136,0,0,0,114,140,0,0,0,
-    114,131,0,0,0,114,143,0,0,0,114,137,0,0,0,114,
-    138,0,0,0,114,139,0,0,0,114,129,0,0,0,114,130,
-    0,0,0,114,141,0,0,0,114,142,0,0,0,114,133,0,
-    0,0,90,8,114,97,119,95,100,97,116,97,114,147,0,0,
-    0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
-    114,59,0,0,0,69,2,0,0,115,72,0,0,0,20,1,
-    8,1,8,1,12,2,2,2,14,1,12,1,18,1,2,255,
-    10,2,12,1,8,1,16,2,18,2,16,2,16,1,12,1,
-    8,1,2,1,14,1,12,1,18,1,2,255,10,2,12,1,
-    8,1,2,255,28,233,8,26,4,2,2,3,10,1,12,1,
-    8,1,2,255,10,2,114,59,0,0,0,99,2,0,0,0,
-    0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
-    67,0,0,0,115,16,0,0,0,116,0,124,0,124,1,24,
-    0,131,1,100,1,107,1,83,0,41,2,78,114,5,0,0,
-    0,41,1,218,3,97,98,115,41,2,90,2,116,49,90,2,
-    116,50,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
-    0,218,9,95,101,113,95,109,116,105,109,101,115,2,0,0,
-    115,2,0,0,0,16,2,114,153,0,0,0,99,5,0,0,
-    0,0,0,0,0,0,0,0,0,14,0,0,0,6,0,0,
-    0,67,0,0,0,115,254,0,0,0,124,3,124,2,100,1,
-    156,2,125,5,116,0,160,1,124,4,124,3,124,5,161,3,
-    125,6,124,6,100,2,64,0,100,3,107,3,125,7,124,7,
-    114,63,124,6,100,4,64,0,100,3,107,3,125,8,116,2,
-    106,3,100,5,107,3,114,62,124,8,115,38,116,2,106,3,
-    100,6,107,2,114,62,116,4,124,0,124,2,131,2,125,9,
-    124,9,100,0,117,1,114,62,116,2,160,5,116,0,106,6,
-    124,9,161,2,125,10,116,0,160,7,124,4,124,10,124,3,
-    124,5,161,4,1,0,110,40,116,8,124,0,124,2,131,2,
-    92,2,125,11,125,12,124,11,114,103,116,9,116,10,124,4,
-    100,7,100,8,133,2,25,0,131,1,124,11,131,2,114,93,
-    116,10,124,4,100,8,100,9,133,2,25,0,131,1,124,12,
-    107,3,114,103,116,11,160,12,100,10,124,3,155,2,157,2,
-    161,1,1,0,100,0,83,0,116,13,160,14,124,4,100,9,
-    100,0,133,2,25,0,161,1,125,13,116,15,124,13,116,16,
-    131,2,115,125,116,17,100,11,124,1,155,2,100,12,157,3,
-    131,1,130,1,124,13,83,0,41,13,78,41,2,114,47,0,
-    0,0,114,13,0,0,0,114,5,0,0,0,114,0,0,0,
-    0,114,93,0,0,0,90,5,110,101,118,101,114,90,6,97,
-    108,119,97,121,115,114,105,0,0,0,114,100,0,0,0,114,
-    101,0,0,0,122,22,98,121,116,101,99,111,100,101,32,105,
-    115,32,115,116,97,108,101,32,102,111,114,32,122,16,99,111,
-    109,112,105,108,101,100,32,109,111,100,117,108,101,32,122,21,
-    32,105,115,32,110,111,116,32,97,32,99,111,100,101,32,111,
-    98,106,101,99,116,41,18,114,21,0,0,0,90,13,95,99,
-    108,97,115,115,105,102,121,95,112,121,99,218,4,95,105,109,
-    112,90,21,99,104,101,99,107,95,104,97,115,104,95,98,97,
-    115,101,100,95,112,121,99,115,218,15,95,103,101,116,95,112,
-    121,99,95,115,111,117,114,99,101,218,11,115,111,117,114,99,
-    101,95,104,97,115,104,90,17,95,82,65,87,95,77,65,71,
-    73,67,95,78,85,77,66,69,82,90,18,95,118,97,108,105,
-    100,97,116,101,95,104,97,115,104,95,112,121,99,218,29,95,
-    103,101,116,95,109,116,105,109,101,95,97,110,100,95,115,105,
-    122,101,95,111,102,95,115,111,117,114,99,101,114,153,0,0,
-    0,114,2,0,0,0,114,48,0,0,0,114,81,0,0,0,
-    218,7,109,97,114,115,104,97,108,90,5,108,111,97,100,115,
-    114,15,0,0,0,218,10,95,99,111,100,101,95,116,121,112,
-    101,218,9,84,121,112,101,69,114,114,111,114,41,14,114,32,
-    0,0,0,114,60,0,0,0,114,69,0,0,0,114,41,0,
-    0,0,114,132,0,0,0,90,11,101,120,99,95,100,101,116,
-    97,105,108,115,114,135,0,0,0,90,10,104,97,115,104,95,
-    98,97,115,101,100,90,12,99,104,101,99,107,95,115,111,117,
-    114,99,101,90,12,115,111,117,114,99,101,95,98,121,116,101,
-    115,114,156,0,0,0,90,12,115,111,117,114,99,101,95,109,
-    116,105,109,101,90,11,115,111,117,114,99,101,95,115,105,122,
-    101,114,53,0,0,0,114,9,0,0,0,114,9,0,0,0,
-    114,10,0,0,0,218,15,95,117,110,109,97,114,115,104,97,
-    108,95,99,111,100,101,123,2,0,0,115,72,0,0,0,2,
-    2,2,1,6,254,14,5,12,2,4,1,12,1,10,1,2,
-    1,2,255,8,1,2,255,10,2,8,1,4,1,4,1,2,
-    1,4,254,4,5,8,1,4,255,2,128,8,4,6,255,4,
-    3,22,3,18,1,2,255,4,2,8,1,4,255,4,2,18,
-    2,10,1,16,1,4,1,114,161,0,0,0,99,1,0,0,
-    0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,
-    0,67,0,0,0,115,28,0,0,0,124,0,160,0,100,1,
-    100,2,161,2,125,0,124,0,160,0,100,3,100,2,161,2,
-    125,0,124,0,83,0,41,4,78,115,2,0,0,0,13,10,
-    243,1,0,0,0,10,243,1,0,0,0,13,41,1,114,19,
-    0,0,0,41,1,218,6,115,111,117,114,99,101,114,9,0,
-    0,0,114,9,0,0,0,114,10,0,0,0,218,23,95,110,
-    111,114,109,97,108,105,122,101,95,108,105,110,101,95,101,110,
-    100,105,110,103,115,168,2,0,0,115,6,0,0,0,12,1,
-    12,1,4,1,114,165,0,0,0,99,2,0,0,0,0,0,
-    0,0,0,0,0,0,2,0,0,0,6,0,0,0,67,0,
-    0,0,115,24,0,0,0,116,0,124,1,131,1,125,1,116,
-    1,124,1,124,0,100,1,100,2,100,3,141,4,83,0,41,
-    4,78,114,79,0,0,0,84,41,1,90,12,100,111,110,116,
-    95,105,110,104,101,114,105,116,41,2,114,165,0,0,0,218,
-    7,99,111,109,112,105,108,101,41,2,114,60,0,0,0,114,
-    164,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,
-    0,0,0,218,15,95,99,111,109,112,105,108,101,95,115,111,
-    117,114,99,101,175,2,0,0,115,4,0,0,0,8,1,16,
-    1,114,167,0,0,0,99,2,0,0,0,0,0,0,0,0,
-    0,0,0,2,0,0,0,11,0,0,0,67,0,0,0,115,
-    68,0,0,0,116,0,160,1,124,0,100,1,63,0,100,2,
-    23,0,124,0,100,3,63,0,100,4,64,0,124,0,100,5,
-    64,0,124,1,100,6,63,0,124,1,100,3,63,0,100,7,
-    64,0,124,1,100,5,64,0,100,8,20,0,100,9,100,9,
-    100,9,102,9,161,1,83,0,41,10,78,233,9,0,0,0,
-    105,188,7,0,0,233,5,0,0,0,233,15,0,0,0,233,
-    31,0,0,0,233,11,0,0,0,233,63,0,0,0,114,93,
-    0,0,0,114,14,0,0,0,41,2,114,137,0,0,0,90,
-    6,109,107,116,105,109,101,41,2,218,1,100,114,144,0,0,
-    0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
-    218,14,95,112,97,114,115,101,95,100,111,115,116,105,109,101,
-    181,2,0,0,115,18,0,0,0,4,1,10,1,10,1,6,
-    1,6,1,10,1,10,1,6,1,6,249,114,175,0,0,0,
-    99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
-    0,10,0,0,0,67,0,0,0,115,110,0,0,0,122,41,
-    124,1,100,1,100,0,133,2,25,0,100,2,118,0,115,11,
-    74,0,130,1,124,1,100,0,100,1,133,2,25,0,125,1,
-    124,0,106,0,124,1,25,0,125,2,124,2,100,3,25,0,
-    125,3,124,2,100,4,25,0,125,4,124,2,100,5,25,0,
-    125,5,116,1,124,4,124,3,131,2,124,5,102,2,87,0,
-    83,0,4,0,116,2,116,3,116,4,102,3,121,54,1,0,
-    1,0,1,0,89,0,100,6,83,0,119,0,41,7,78,114,
-    14,0,0,0,169,2,218,1,99,218,1,111,114,169,0,0,
-    0,233,6,0,0,0,233,3,0,0,0,41,2,114,0,0,
-    0,0,114,0,0,0,0,41,5,114,28,0,0,0,114,175,
-    0,0,0,114,26,0,0,0,218,10,73,110,100,101,120,69,
-    114,114,111,114,114,160,0,0,0,41,6,114,32,0,0,0,
-    114,13,0,0,0,114,61,0,0,0,114,137,0,0,0,114,
-    138,0,0,0,90,17,117,110,99,111,109,112,114,101,115,115,
-    101,100,95,115,105,122,101,114,9,0,0,0,114,9,0,0,
-    0,114,10,0,0,0,114,157,0,0,0,194,2,0,0,115,
-    22,0,0,0,2,1,20,2,12,1,10,1,8,3,8,1,
-    8,1,16,1,18,1,6,1,2,255,114,157,0,0,0,99,
-    2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
-    8,0,0,0,67,0,0,0,115,80,0,0,0,124,1,100,
-    1,100,0,133,2,25,0,100,2,118,0,115,10,74,0,130,
-    1,124,1,100,0,100,1,133,2,25,0,125,1,122,7,124,
-    0,106,0,124,1,25,0,125,2,87,0,110,10,4,0,116,
-    1,121,33,1,0,1,0,1,0,89,0,100,0,83,0,119,
-    0,116,2,124,0,106,3,124,2,131,2,83,0,41,3,78,
-    114,14,0,0,0,114,176,0,0,0,41,4,114,28,0,0,
-    0,114,26,0,0,0,114,59,0,0,0,114,29,0,0,0,
-    41,3,114,32,0,0,0,114,13,0,0,0,114,61,0,0,
+    0,5,0,0,0,67,0,0,0,115,24,0,0,0,100,1,
+    124,0,106,0,155,0,116,1,155,0,124,0,106,2,155,0,
+    100,2,157,5,83,0,41,3,78,122,21,60,122,105,112,105,
+    109,112,111,114,116,101,114,32,111,98,106,101,99,116,32,34,
+    122,2,34,62,41,3,114,29,0,0,0,114,20,0,0,0,
+    114,31,0,0,0,114,87,0,0,0,114,9,0,0,0,114,
+    9,0,0,0,114,10,0,0,0,218,8,95,95,114,101,112,
+    114,95,95,84,1,0,0,115,2,0,0,0,24,1,122,20,
+    122,105,112,105,109,112,111,114,116,101,114,46,95,95,114,101,
+    112,114,95,95,169,1,78,41,17,114,6,0,0,0,114,7,
+    0,0,0,114,8,0,0,0,218,7,95,95,100,111,99,95,
+    95,114,34,0,0,0,114,44,0,0,0,114,45,0,0,0,
+    114,49,0,0,0,114,55,0,0,0,114,62,0,0,0,114,
+    63,0,0,0,114,70,0,0,0,114,46,0,0,0,114,83,
+    0,0,0,114,85,0,0,0,114,88,0,0,0,114,89,0,
+    0,0,114,9,0,0,0,114,9,0,0,0,114,9,0,0,
+    0,114,10,0,0,0,114,4,0,0,0,46,0,0,0,115,
+    30,0,0,0,8,0,4,1,8,17,10,46,10,37,10,16,
+    8,27,8,10,8,21,8,12,8,26,8,13,8,43,8,15,
+    12,10,122,12,95,95,105,110,105,116,95,95,46,112,121,99,
+    84,114,66,0,0,0,70,41,3,122,4,46,112,121,99,84,
+    70,41,3,114,67,0,0,0,70,70,99,2,0,0,0,0,
+    0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,
+    0,0,0,115,20,0,0,0,124,0,106,0,124,1,160,1,
+    100,1,161,1,100,2,25,0,23,0,83,0,41,3,78,218,
+    1,46,233,2,0,0,0,41,2,114,31,0,0,0,218,10,
+    114,112,97,114,116,105,116,105,111,110,41,2,114,32,0,0,
+    0,114,41,0,0,0,114,9,0,0,0,114,9,0,0,0,
+    114,10,0,0,0,114,39,0,0,0,102,1,0,0,115,2,
+    0,0,0,20,1,114,39,0,0,0,99,2,0,0,0,0,
+    0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,67,
+    0,0,0,115,18,0,0,0,124,1,116,0,23,0,125,2,
+    124,2,124,0,106,1,118,0,83,0,114,90,0,0,0,41,
+    2,114,20,0,0,0,114,28,0,0,0,41,3,114,32,0,
+    0,0,114,13,0,0,0,90,7,100,105,114,112,97,116,104,
+    114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,114,
+    40,0,0,0,106,1,0,0,115,4,0,0,0,8,4,10,
+    2,114,40,0,0,0,99,2,0,0,0,0,0,0,0,0,
+    0,0,0,7,0,0,0,4,0,0,0,67,0,0,0,115,
+    56,0,0,0,116,0,124,0,124,1,131,2,125,2,116,1,
+    68,0,93,18,92,3,125,3,125,4,125,5,124,2,124,3,
+    23,0,125,6,124,6,124,0,106,2,118,0,114,25,124,5,
+    2,0,1,0,83,0,113,7,100,0,83,0,114,90,0,0,
+    0,41,3,114,39,0,0,0,218,16,95,122,105,112,95,115,
+    101,97,114,99,104,111,114,100,101,114,114,28,0,0,0,41,
+    7,114,32,0,0,0,114,41,0,0,0,114,13,0,0,0,
+    218,6,115,117,102,102,105,120,218,10,105,115,98,121,116,101,
+    99,111,100,101,114,54,0,0,0,114,69,0,0,0,114,9,
+    0,0,0,114,9,0,0,0,114,10,0,0,0,114,38,0,
+    0,0,115,1,0,0,115,14,0,0,0,10,1,14,1,8,
+    1,10,1,8,1,2,255,4,2,114,38,0,0,0,99,1,
+    0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,9,
+    0,0,0,67,0,0,0,115,220,4,0,0,122,7,116,0,
+    160,1,124,0,161,1,125,1,87,0,110,16,4,0,116,2,
+    121,23,1,0,1,0,1,0,116,3,100,1,124,0,155,2,
+    157,2,124,0,100,2,141,2,130,1,119,0,124,1,144,2,
+    143,65,1,0,122,18,124,1,160,4,116,5,11,0,100,3,
+    161,2,1,0,124,1,160,6,161,0,125,2,124,1,160,7,
+    116,5,161,1,125,3,87,0,110,16,4,0,116,2,121,62,
+    1,0,1,0,1,0,116,3,100,4,124,0,155,2,157,2,
+    124,0,100,2,141,2,130,1,119,0,116,8,124,3,131,1,
+    116,5,107,3,114,78,116,3,100,4,124,0,155,2,157,2,
+    124,0,100,2,141,2,130,1,124,3,100,0,100,5,133,2,
+    25,0,116,9,107,3,114,201,122,12,124,1,160,4,100,6,
+    100,3,161,2,1,0,124,1,160,6,161,0,125,4,87,0,
+    110,16,4,0,116,2,121,114,1,0,1,0,1,0,116,3,
+    100,4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,
+    119,0,116,10,124,4,116,11,24,0,116,5,24,0,100,6,
+    131,2,125,5,122,11,124,1,160,4,124,5,161,1,1,0,
+    124,1,160,7,161,0,125,6,87,0,110,16,4,0,116,2,
+    121,151,1,0,1,0,1,0,116,3,100,4,124,0,155,2,
+    157,2,124,0,100,2,141,2,130,1,119,0,124,6,160,12,
+    116,9,161,1,125,7,124,7,100,6,107,0,114,170,116,3,
+    100,7,124,0,155,2,157,2,124,0,100,2,141,2,130,1,
+    124,6,124,7,124,7,116,5,23,0,133,2,25,0,125,3,
+    116,8,124,3,131,1,116,5,107,3,114,193,116,3,100,8,
+    124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,4,
+    116,8,124,6,131,1,24,0,124,7,23,0,125,2,116,13,
+    124,3,100,9,100,10,133,2,25,0,131,1,125,8,116,13,
+    124,3,100,10,100,11,133,2,25,0,131,1,125,9,124,2,
+    124,8,107,0,114,230,116,3,100,12,124,0,155,2,157,2,
+    124,0,100,2,141,2,130,1,124,2,124,9,107,0,114,243,
+    116,3,100,13,124,0,155,2,157,2,124,0,100,2,141,2,
+    130,1,124,2,124,8,56,0,125,2,124,2,124,9,24,0,
+    125,10,124,10,100,6,107,0,144,1,114,9,116,3,100,14,
+    124,0,155,2,157,2,124,0,100,2,141,2,130,1,105,0,
+    125,11,100,6,125,12,122,7,124,1,160,4,124,2,161,1,
+    1,0,87,0,110,17,4,0,116,2,144,1,121,37,1,0,
+    1,0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,
+    100,2,141,2,130,1,119,0,9,0,124,1,160,7,100,16,
+    161,1,125,3,116,8,124,3,131,1,100,5,107,0,144,1,
+    114,55,116,14,100,17,131,1,130,1,124,3,100,0,100,5,
+    133,2,25,0,100,18,107,3,144,1,114,66,144,2,113,85,
+    116,8,124,3,131,1,100,16,107,3,144,1,114,77,116,14,
+    100,17,131,1,130,1,116,15,124,3,100,19,100,20,133,2,
+    25,0,131,1,125,13,116,15,124,3,100,20,100,9,133,2,
+    25,0,131,1,125,14,116,15,124,3,100,9,100,21,133,2,
+    25,0,131,1,125,15,116,15,124,3,100,21,100,10,133,2,
+    25,0,131,1,125,16,116,13,124,3,100,10,100,11,133,2,
+    25,0,131,1,125,17,116,13,124,3,100,11,100,22,133,2,
+    25,0,131,1,125,18,116,13,124,3,100,22,100,23,133,2,
+    25,0,131,1,125,4,116,15,124,3,100,23,100,24,133,2,
+    25,0,131,1,125,19,116,15,124,3,100,24,100,25,133,2,
+    25,0,131,1,125,20,116,15,124,3,100,25,100,26,133,2,
+    25,0,131,1,125,21,116,13,124,3,100,27,100,16,133,2,
+    25,0,131,1,125,22,124,19,124,20,23,0,124,21,23,0,
+    125,8,124,22,124,9,107,4,144,1,114,185,116,3,100,28,
+    124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,22,
+    124,10,55,0,125,22,122,7,124,1,160,7,124,19,161,1,
+    125,23,87,0,110,17,4,0,116,2,144,1,121,213,1,0,
+    1,0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,
+    100,2,141,2,130,1,119,0,116,8,124,23,131,1,124,19,
+    107,3,144,1,114,230,116,3,100,4,124,0,155,2,157,2,
+    124,0,100,2,141,2,130,1,122,25,116,8,124,1,160,7,
+    124,8,124,19,24,0,161,1,131,1,124,8,124,19,24,0,
+    107,3,144,1,114,254,116,3,100,4,124,0,155,2,157,2,
+    124,0,100,2,141,2,130,1,87,0,110,17,4,0,116,2,
+    144,2,121,16,1,0,1,0,1,0,116,3,100,4,124,0,
+    155,2,157,2,124,0,100,2,141,2,130,1,119,0,124,13,
+    100,29,64,0,144,2,114,27,124,23,160,16,161,0,125,23,
+    110,26,122,7,124,23,160,16,100,30,161,1,125,23,87,0,
+    110,18,4,0,116,17,144,2,121,52,1,0,1,0,1,0,
+    124,23,160,16,100,31,161,1,160,18,116,19,161,1,125,23,
+    89,0,110,1,119,0,124,23,160,20,100,32,116,21,161,2,
+    125,23,116,22,160,23,124,0,124,23,161,2,125,24,124,24,
+    124,14,124,18,124,4,124,22,124,15,124,16,124,17,102,8,
+    125,25,124,25,124,11,124,23,60,0,124,12,100,33,55,0,
+    125,12,144,1,113,39,87,0,100,0,4,0,4,0,131,3,
+    1,0,110,9,49,0,144,2,115,96,119,1,1,0,1,0,
+    1,0,89,0,1,0,116,24,160,25,100,34,124,12,124,0,
+    161,3,1,0,124,11,83,0,41,35,78,122,21,99,97,110,
+    39,116,32,111,112,101,110,32,90,105,112,32,102,105,108,101,
+    58,32,114,12,0,0,0,114,93,0,0,0,250,21,99,97,
+    110,39,116,32,114,101,97,100,32,90,105,112,32,102,105,108,
+    101,58,32,233,4,0,0,0,114,0,0,0,0,122,16,110,
+    111,116,32,97,32,90,105,112,32,102,105,108,101,58,32,122,
+    18,99,111,114,114,117,112,116,32,90,105,112,32,102,105,108,
+    101,58,32,233,12,0,0,0,233,16,0,0,0,233,20,0,
+    0,0,122,28,98,97,100,32,99,101,110,116,114,97,108,32,
+    100,105,114,101,99,116,111,114,121,32,115,105,122,101,58,32,
+    122,30,98,97,100,32,99,101,110,116,114,97,108,32,100,105,
+    114,101,99,116,111,114,121,32,111,102,102,115,101,116,58,32,
+    122,38,98,97,100,32,99,101,110,116,114,97,108,32,100,105,
+    114,101,99,116,111,114,121,32,115,105,122,101,32,111,114,32,
+    111,102,102,115,101,116,58,32,84,233,46,0,0,0,250,27,
+    69,79,70,32,114,101,97,100,32,119,104,101,114,101,32,110,
+    111,116,32,101,120,112,101,99,116,101,100,115,4,0,0,0,
+    80,75,1,2,233,8,0,0,0,233,10,0,0,0,233,14,
+    0,0,0,233,24,0,0,0,233,28,0,0,0,233,30,0,
+    0,0,233,32,0,0,0,233,34,0,0,0,233,42,0,0,
+    0,122,25,98,97,100,32,108,111,99,97,108,32,104,101,97,
+    100,101,114,32,111,102,102,115,101,116,58,32,105,0,8,0,
+    0,218,5,97,115,99,105,105,90,6,108,97,116,105,110,49,
+    250,1,47,114,5,0,0,0,122,33,122,105,112,105,109,112,
+    111,114,116,58,32,102,111,117,110,100,32,123,125,32,110,97,
+    109,101,115,32,105,110,32,123,33,114,125,41,26,218,3,95,
+    105,111,218,9,111,112,101,110,95,99,111,100,101,114,22,0,
+    0,0,114,3,0,0,0,218,4,115,101,101,107,218,20,69,
+    78,68,95,67,69,78,84,82,65,76,95,68,73,82,95,83,
+    73,90,69,90,4,116,101,108,108,218,4,114,101,97,100,114,
+    58,0,0,0,218,18,83,84,82,73,78,71,95,69,78,68,
+    95,65,82,67,72,73,86,69,218,3,109,97,120,218,15,77,
+    65,88,95,67,79,77,77,69,78,84,95,76,69,78,218,5,
+    114,102,105,110,100,114,2,0,0,0,218,8,69,79,70,69,
+    114,114,111,114,114,1,0,0,0,114,68,0,0,0,218,18,
+    85,110,105,99,111,100,101,68,101,99,111,100,101,69,114,114,
+    111,114,218,9,116,114,97,110,115,108,97,116,101,218,11,99,
+    112,52,51,55,95,116,97,98,108,101,114,19,0,0,0,114,
+    20,0,0,0,114,21,0,0,0,114,30,0,0,0,114,48,
+    0,0,0,114,81,0,0,0,41,26,114,29,0,0,0,218,
+    2,102,112,90,15,104,101,97,100,101,114,95,112,111,115,105,
+    116,105,111,110,218,6,98,117,102,102,101,114,218,9,102,105,
+    108,101,95,115,105,122,101,90,17,109,97,120,95,99,111,109,
+    109,101,110,116,95,115,116,97,114,116,218,4,100,97,116,97,
+    90,3,112,111,115,218,11,104,101,97,100,101,114,95,115,105,
+    122,101,90,13,104,101,97,100,101,114,95,111,102,102,115,101,
+    116,90,10,97,114,99,95,111,102,102,115,101,116,114,33,0,
+    0,0,218,5,99,111,117,110,116,218,5,102,108,97,103,115,
+    218,8,99,111,109,112,114,101,115,115,218,4,116,105,109,101,
+    218,4,100,97,116,101,218,3,99,114,99,218,9,100,97,116,
+    97,95,115,105,122,101,218,9,110,97,109,101,95,115,105,122,
+    101,218,10,101,120,116,114,97,95,115,105,122,101,90,12,99,
+    111,109,109,101,110,116,95,115,105,122,101,218,11,102,105,108,
+    101,95,111,102,102,115,101,116,114,47,0,0,0,114,13,0,
+    0,0,218,1,116,114,9,0,0,0,114,9,0,0,0,114,
+    10,0,0,0,114,27,0,0,0,146,1,0,0,115,238,0,
+    0,0,2,1,14,1,12,1,18,1,2,255,8,3,2,1,
+    14,1,8,1,14,1,12,1,18,1,2,255,12,2,18,1,
+    16,1,2,3,12,1,12,1,12,1,10,1,2,1,6,255,
+    2,255,8,3,2,1,2,255,2,1,4,255,2,2,10,1,
+    12,1,12,1,10,1,2,1,6,255,2,255,10,3,8,1,
+    10,1,2,1,6,255,16,2,12,1,10,1,2,1,6,255,
+    16,2,16,2,16,1,8,1,18,1,8,1,18,1,8,1,
+    8,1,10,1,18,1,4,2,4,2,2,1,14,1,14,1,
+    18,1,2,255,2,2,10,1,14,1,8,1,18,2,4,1,
+    14,1,8,1,16,1,16,1,16,1,16,1,16,1,16,1,
+    16,1,16,1,16,1,16,1,16,1,12,1,10,1,18,1,
+    8,1,2,2,14,1,14,1,18,1,2,255,14,2,18,1,
+    2,4,28,1,18,1,4,255,14,2,18,1,2,255,10,3,
+    10,2,2,3,14,1,14,1,20,1,2,255,12,3,12,1,
+    20,1,8,1,8,1,4,202,2,6,30,196,14,109,4,1,
+    114,27,0,0,0,117,190,1,0,0,0,1,2,3,4,5,
+    6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,
+    22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,
+    38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,
+    54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,
+    70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,
+    86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,
+    102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,
+    118,119,120,121,122,123,124,125,126,127,195,135,195,188,195,169,
+    195,162,195,164,195,160,195,165,195,167,195,170,195,171,195,168,
+    195,175,195,174,195,172,195,132,195,133,195,137,195,166,195,134,
+    195,180,195,182,195,178,195,187,195,185,195,191,195,150,195,156,
+    194,162,194,163,194,165,226,130,167,198,146,195,161,195,173,195,
+    179,195,186,195,177,195,145,194,170,194,186,194,191,226,140,144,
+    194,172,194,189,194,188,194,161,194,171,194,187,226,150,145,226,
+    150,146,226,150,147,226,148,130,226,148,164,226,149,161,226,149,
+    162,226,149,150,226,149,149,226,149,163,226,149,145,226,149,151,
+    226,149,157,226,149,156,226,149,155,226,148,144,226,148,148,226,
+    148,180,226,148,172,226,148,156,226,148,128,226,148,188,226,149,
+    158,226,149,159,226,149,154,226,149,148,226,149,169,226,149,166,
+    226,149,160,226,149,144,226,149,172,226,149,167,226,149,168,226,
+    149,164,226,149,165,226,149,153,226,149,152,226,149,146,226,149,
+    147,226,149,171,226,149,170,226,148,152,226,148,140,226,150,136,
+    226,150,132,226,150,140,226,150,144,226,150,128,206,177,195,159,
+    206,147,207,128,206,163,207,131,194,181,207,132,206,166,206,152,
+    206,169,206,180,226,136,158,207,134,206,181,226,136,169,226,137,
+    161,194,177,226,137,165,226,137,164,226,140,160,226,140,161,195,
+    183,226,137,136,194,176,226,136,153,194,183,226,136,154,226,129,
+    191,194,178,226,150,160,194,160,99,0,0,0,0,0,0,0,
+    0,0,0,0,0,1,0,0,0,8,0,0,0,67,0,0,
+    0,115,106,0,0,0,116,0,114,11,116,1,160,2,100,1,
+    161,1,1,0,116,3,100,2,131,1,130,1,100,3,97,0,
+    122,29,122,8,100,4,100,5,108,4,109,5,125,0,1,0,
+    87,0,110,16,4,0,116,6,121,38,1,0,1,0,1,0,
+    116,1,160,2,100,1,161,1,1,0,116,3,100,2,131,1,
+    130,1,119,0,87,0,100,6,97,0,110,3,100,6,97,0,
+    119,0,116,1,160,2,100,7,161,1,1,0,124,0,83,0,
+    41,8,78,122,27,122,105,112,105,109,112,111,114,116,58,32,
+    122,108,105,98,32,85,78,65,86,65,73,76,65,66,76,69,
+    250,41,99,97,110,39,116,32,100,101,99,111,109,112,114,101,
+    115,115,32,100,97,116,97,59,32,122,108,105,98,32,110,111,
+    116,32,97,118,97,105,108,97,98,108,101,84,114,0,0,0,
+    0,169,1,218,10,100,101,99,111,109,112,114,101,115,115,70,
+    122,25,122,105,112,105,109,112,111,114,116,58,32,122,108,105,
+    98,32,97,118,97,105,108,97,98,108,101,41,7,218,15,95,
+    105,109,112,111,114,116,105,110,103,95,122,108,105,98,114,48,
+    0,0,0,114,81,0,0,0,114,3,0,0,0,90,4,122,
+    108,105,98,114,147,0,0,0,218,9,69,120,99,101,112,116,
+    105,111,110,114,146,0,0,0,114,9,0,0,0,114,9,0,
+    0,0,114,10,0,0,0,218,20,95,103,101,116,95,100,101,
+    99,111,109,112,114,101,115,115,95,102,117,110,99,48,2,0,
+    0,115,28,0,0,0,4,2,10,3,8,1,4,2,4,1,
+    16,1,12,1,10,1,8,1,2,254,2,255,12,5,10,2,
+    4,1,114,150,0,0,0,99,2,0,0,0,0,0,0,0,
+    0,0,0,0,17,0,0,0,9,0,0,0,67,0,0,0,
+    115,120,1,0,0,124,1,92,8,125,2,125,3,125,4,125,
+    5,125,6,125,7,125,8,125,9,124,4,100,1,107,0,114,
+    18,116,0,100,2,131,1,130,1,116,1,160,2,124,0,161,
+    1,143,129,125,10,122,7,124,10,160,3,124,6,161,1,1,
+    0,87,0,110,16,4,0,116,4,121,47,1,0,1,0,1,
+    0,116,0,100,3,124,0,155,2,157,2,124,0,100,4,141,
+    2,130,1,119,0,124,10,160,5,100,5,161,1,125,11,116,
+    6,124,11,131,1,100,5,107,3,114,63,116,7,100,6,131,
+    1,130,1,124,11,100,0,100,7,133,2,25,0,100,8,107,
+    3,114,80,116,0,100,9,124,0,155,2,157,2,124,0,100,
+    4,141,2,130,1,116,8,124,11,100,10,100,11,133,2,25,
+    0,131,1,125,12,116,8,124,11,100,11,100,5,133,2,25,
+    0,131,1,125,13,100,5,124,12,23,0,124,13,23,0,125,
+    14,124,6,124,14,55,0,125,6,122,7,124,10,160,3,124,
+    6,161,1,1,0,87,0,110,16,4,0,116,4,121,129,1,
+    0,1,0,1,0,116,0,100,3,124,0,155,2,157,2,124,
+    0,100,4,141,2,130,1,119,0,124,10,160,5,124,4,161,
+    1,125,15,116,6,124,15,131,1,124,4,107,3,114,145,116,
+    4,100,12,131,1,130,1,87,0,100,0,4,0,4,0,131,
+    3,1,0,110,8,49,0,115,155,119,1,1,0,1,0,1,
+    0,89,0,1,0,124,3,100,1,107,2,114,166,124,15,83,
+    0,122,5,116,9,131,0,125,16,87,0,110,11,4,0,116,
+    10,121,182,1,0,1,0,1,0,116,0,100,13,131,1,130,
+    1,119,0,124,16,124,15,100,14,131,2,83,0,41,15,78,
+    114,0,0,0,0,122,18,110,101,103,97,116,105,118,101,32,
+    100,97,116,97,32,115,105,122,101,114,98,0,0,0,114,12,
+    0,0,0,114,110,0,0,0,114,104,0,0,0,114,99,0,
+    0,0,115,4,0,0,0,80,75,3,4,122,23,98,97,100,
+    32,108,111,99,97,108,32,102,105,108,101,32,104,101,97,100,
+    101,114,58,32,233,26,0,0,0,114,109,0,0,0,122,26,
+    122,105,112,105,109,112,111,114,116,58,32,99,97,110,39,116,
+    32,114,101,97,100,32,100,97,116,97,114,145,0,0,0,105,
+    241,255,255,255,41,11,114,3,0,0,0,114,116,0,0,0,
+    114,117,0,0,0,114,118,0,0,0,114,22,0,0,0,114,
+    120,0,0,0,114,58,0,0,0,114,125,0,0,0,114,1,
+    0,0,0,114,150,0,0,0,114,149,0,0,0,41,17,114,
+    29,0,0,0,114,61,0,0,0,90,8,100,97,116,97,112,
+    97,116,104,114,136,0,0,0,114,140,0,0,0,114,131,0,
+    0,0,114,143,0,0,0,114,137,0,0,0,114,138,0,0,
+    0,114,139,0,0,0,114,129,0,0,0,114,130,0,0,0,
+    114,141,0,0,0,114,142,0,0,0,114,133,0,0,0,90,
+    8,114,97,119,95,100,97,116,97,114,147,0,0,0,114,9,
+    0,0,0,114,9,0,0,0,114,10,0,0,0,114,59,0,
+    0,0,69,2,0,0,115,72,0,0,0,20,1,8,1,8,
+    1,12,2,2,2,14,1,12,1,18,1,2,255,10,2,12,
+    1,8,1,16,2,18,2,16,2,16,1,12,1,8,1,2,
+    1,14,1,12,1,18,1,2,255,10,2,12,1,8,1,2,
+    255,28,233,8,26,4,2,2,3,10,1,12,1,8,1,2,
+    255,10,2,114,59,0,0,0,99,2,0,0,0,0,0,0,
+    0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,
+    0,115,16,0,0,0,116,0,124,0,124,1,24,0,131,1,
+    100,1,107,1,83,0,41,2,78,114,5,0,0,0,41,1,
+    218,3,97,98,115,41,2,90,2,116,49,90,2,116,50,114,
+    9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,9,
+    95,101,113,95,109,116,105,109,101,115,2,0,0,115,2,0,
+    0,0,16,2,114,153,0,0,0,99,5,0,0,0,0,0,
+    0,0,0,0,0,0,14,0,0,0,6,0,0,0,67,0,
+    0,0,115,254,0,0,0,124,3,124,2,100,1,156,2,125,
+    5,116,0,160,1,124,4,124,3,124,5,161,3,125,6,124,
+    6,100,2,64,0,100,3,107,3,125,7,124,7,114,63,124,
+    6,100,4,64,0,100,3,107,3,125,8,116,2,106,3,100,
+    5,107,3,114,62,124,8,115,38,116,2,106,3,100,6,107,
+    2,114,62,116,4,124,0,124,2,131,2,125,9,124,9,100,
+    0,117,1,114,62,116,2,160,5,116,0,106,6,124,9,161,
+    2,125,10,116,0,160,7,124,4,124,10,124,3,124,5,161,
+    4,1,0,110,40,116,8,124,0,124,2,131,2,92,2,125,
+    11,125,12,124,11,114,103,116,9,116,10,124,4,100,7,100,
+    8,133,2,25,0,131,1,124,11,131,2,114,93,116,10,124,
+    4,100,8,100,9,133,2,25,0,131,1,124,12,107,3,114,
+    103,116,11,160,12,100,10,124,3,155,2,157,2,161,1,1,
+    0,100,0,83,0,116,13,160,14,124,4,100,9,100,0,133,
+    2,25,0,161,1,125,13,116,15,124,13,116,16,131,2,115,
+    125,116,17,100,11,124,1,155,2,100,12,157,3,131,1,130,
+    1,124,13,83,0,41,13,78,41,2,114,47,0,0,0,114,
+    13,0,0,0,114,5,0,0,0,114,0,0,0,0,114,93,
+    0,0,0,90,5,110,101,118,101,114,90,6,97,108,119,97,
+    121,115,114,105,0,0,0,114,100,0,0,0,114,101,0,0,
+    0,122,22,98,121,116,101,99,111,100,101,32,105,115,32,115,
+    116,97,108,101,32,102,111,114,32,122,16,99,111,109,112,105,
+    108,101,100,32,109,111,100,117,108,101,32,122,21,32,105,115,
+    32,110,111,116,32,97,32,99,111,100,101,32,111,98,106,101,
+    99,116,41,18,114,21,0,0,0,90,13,95,99,108,97,115,
+    115,105,102,121,95,112,121,99,218,4,95,105,109,112,90,21,
+    99,104,101,99,107,95,104,97,115,104,95,98,97,115,101,100,
+    95,112,121,99,115,218,15,95,103,101,116,95,112,121,99,95,
+    115,111,117,114,99,101,218,11,115,111,117,114,99,101,95,104,
+    97,115,104,90,17,95,82,65,87,95,77,65,71,73,67,95,
+    78,85,77,66,69,82,90,18,95,118,97,108,105,100,97,116,
+    101,95,104,97,115,104,95,112,121,99,218,29,95,103,101,116,
+    95,109,116,105,109,101,95,97,110,100,95,115,105,122,101,95,
+    111,102,95,115,111,117,114,99,101,114,153,0,0,0,114,2,
+    0,0,0,114,48,0,0,0,114,81,0,0,0,218,7,109,
+    97,114,115,104,97,108,90,5,108,111,97,100,115,114,15,0,
+    0,0,218,10,95,99,111,100,101,95,116,121,112,101,218,9,
+    84,121,112,101,69,114,114,111,114,41,14,114,32,0,0,0,
+    114,60,0,0,0,114,69,0,0,0,114,41,0,0,0,114,
+    132,0,0,0,90,11,101,120,99,95,100,101,116,97,105,108,
+    115,114,135,0,0,0,90,10,104,97,115,104,95,98,97,115,
+    101,100,90,12,99,104,101,99,107,95,115,111,117,114,99,101,
+    90,12,115,111,117,114,99,101,95,98,121,116,101,115,114,156,
+    0,0,0,90,12,115,111,117,114,99,101,95,109,116,105,109,
+    101,90,11,115,111,117,114,99,101,95,115,105,122,101,114,53,
+    0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,
+    0,0,218,15,95,117,110,109,97,114,115,104,97,108,95,99,
+    111,100,101,123,2,0,0,115,72,0,0,0,2,2,2,1,
+    6,254,14,5,12,2,4,1,12,1,10,1,2,1,2,255,
+    8,1,2,255,10,2,8,1,4,1,4,1,2,1,4,254,
+    4,5,8,1,4,255,2,128,8,4,6,255,4,3,22,3,
+    18,1,2,255,4,2,8,1,4,255,4,2,18,2,10,1,
+    16,1,4,1,114,161,0,0,0,99,1,0,0,0,0,0,
+    0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,
+    0,0,115,28,0,0,0,124,0,160,0,100,1,100,2,161,
+    2,125,0,124,0,160,0,100,3,100,2,161,2,125,0,124,
+    0,83,0,41,4,78,115,2,0,0,0,13,10,243,1,0,
+    0,0,10,243,1,0,0,0,13,41,1,114,19,0,0,0,
+    41,1,218,6,115,111,117,114,99,101,114,9,0,0,0,114,
+    9,0,0,0,114,10,0,0,0,218,23,95,110,111,114,109,
+    97,108,105,122,101,95,108,105,110,101,95,101,110,100,105,110,
+    103,115,168,2,0,0,115,6,0,0,0,12,1,12,1,4,
+    1,114,165,0,0,0,99,2,0,0,0,0,0,0,0,0,
+    0,0,0,2,0,0,0,6,0,0,0,67,0,0,0,115,
+    24,0,0,0,116,0,124,1,131,1,125,1,116,1,124,1,
+    124,0,100,1,100,2,100,3,141,4,83,0,41,4,78,114,
+    79,0,0,0,84,41,1,90,12,100,111,110,116,95,105,110,
+    104,101,114,105,116,41,2,114,165,0,0,0,218,7,99,111,
+    109,112,105,108,101,41,2,114,60,0,0,0,114,164,0,0,
     0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
-    114,155,0,0,0,213,2,0,0,115,16,0,0,0,20,2,
-    12,1,2,2,14,1,12,1,6,1,2,255,12,3,114,155,
+    218,15,95,99,111,109,112,105,108,101,95,115,111,117,114,99,
+    101,175,2,0,0,115,4,0,0,0,8,1,16,1,114,167,
     0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,
-    14,0,0,0,11,0,0,0,67,0,0,0,115,14,1,0,
-    0,116,0,124,0,124,1,131,2,125,2,100,0,125,3,116,
-    1,68,0,93,102,92,3,125,4,125,5,125,6,124,2,124,
-    4,23,0,125,7,116,2,106,3,100,1,124,0,106,4,116,
-    5,124,7,100,2,100,3,141,5,1,0,122,7,124,0,106,
-    6,124,7,25,0,125,8,87,0,110,9,4,0,116,7,121,
-    45,1,0,1,0,1,0,89,0,113,9,119,0,124,8,100,
-    4,25,0,125,9,116,8,124,0,106,4,124,8,131,2,125,
-    10,100,0,125,11,124,5,114,91,122,10,116,9,124,0,124,
-    9,124,7,124,1,124,10,131,5,125,11,87,0,110,25,4,
-    0,116,10,121,90,1,0,125,12,1,0,122,8,124,12,125,
-    3,87,0,89,0,100,0,125,12,126,12,110,10,100,0,125,
-    12,126,12,119,1,119,0,116,11,124,9,124,10,131,2,125,
-    11,124,11,100,0,117,0,114,101,113,9,124,8,100,4,25,
-    0,125,9,124,11,124,6,124,9,102,3,2,0,1,0,83,
-    0,124,3,114,126,100,5,124,3,155,0,157,2,125,13,116,
-    12,124,13,124,1,100,6,141,2,124,3,130,2,116,12,100,
-    7,124,1,155,2,157,2,124,1,100,6,141,2,130,1,41,
-    8,78,122,13,116,114,121,105,110,103,32,123,125,123,125,123,
-    125,114,93,0,0,0,41,1,90,9,118,101,114,98,111,115,
-    105,116,121,114,0,0,0,0,122,20,109,111,100,117,108,101,
-    32,108,111,97,100,32,102,97,105,108,101,100,58,32,114,65,
-    0,0,0,114,64,0,0,0,41,13,114,39,0,0,0,114,
-    95,0,0,0,114,48,0,0,0,114,81,0,0,0,114,29,
-    0,0,0,114,20,0,0,0,114,28,0,0,0,114,26,0,
-    0,0,114,59,0,0,0,114,161,0,0,0,114,80,0,0,
-    0,114,167,0,0,0,114,3,0,0,0,41,14,114,32,0,
-    0,0,114,41,0,0,0,114,13,0,0,0,90,12,105,109,
-    112,111,114,116,95,101,114,114,111,114,114,96,0,0,0,114,
-    97,0,0,0,114,54,0,0,0,114,69,0,0,0,114,61,
-    0,0,0,114,43,0,0,0,114,132,0,0,0,114,53,0,
-    0,0,90,3,101,120,99,114,82,0,0,0,114,9,0,0,
-    0,114,9,0,0,0,114,10,0,0,0,114,51,0,0,0,
-    228,2,0,0,115,58,0,0,0,10,1,4,1,14,1,8,
-    1,22,1,2,1,14,1,12,1,4,1,2,255,8,3,12,
-    1,4,1,4,1,2,1,20,1,14,1,16,1,8,128,2,
-    255,10,3,8,1,2,3,8,1,14,1,4,2,10,1,14,
-    1,18,2,114,51,0,0,0,41,46,114,91,0,0,0,90,
-    26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,108,
-    105,98,95,101,120,116,101,114,110,97,108,114,21,0,0,0,
-    114,1,0,0,0,114,2,0,0,0,90,17,95,102,114,111,
-    122,101,110,95,105,109,112,111,114,116,108,105,98,114,48,0,
-    0,0,114,154,0,0,0,114,116,0,0,0,114,158,0,0,
-    0,114,72,0,0,0,114,137,0,0,0,114,35,0,0,0,
-    90,7,95,95,97,108,108,95,95,114,20,0,0,0,90,15,
-    112,97,116,104,95,115,101,112,97,114,97,116,111,114,115,114,
-    18,0,0,0,114,80,0,0,0,114,3,0,0,0,114,25,
-    0,0,0,218,4,116,121,112,101,114,75,0,0,0,114,119,
-    0,0,0,114,121,0,0,0,114,123,0,0,0,90,13,95,
-    76,111,97,100,101,114,66,97,115,105,99,115,114,4,0,0,
-    0,114,95,0,0,0,114,39,0,0,0,114,40,0,0,0,
-    114,38,0,0,0,114,27,0,0,0,114,128,0,0,0,114,
-    148,0,0,0,114,150,0,0,0,114,59,0,0,0,114,153,
-    0,0,0,114,161,0,0,0,218,8,95,95,99,111,100,101,
-    95,95,114,159,0,0,0,114,165,0,0,0,114,167,0,0,
-    0,114,175,0,0,0,114,157,0,0,0,114,155,0,0,0,
-    114,51,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
-    9,0,0,0,114,10,0,0,0,218,8,60,109,111,100,117,
-    108,101,62,1,0,0,0,115,90,0,0,0,4,0,8,16,
-    16,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,
-    8,2,6,3,14,1,16,3,4,4,8,2,4,2,4,1,
-    4,1,18,2,0,127,0,127,12,50,12,1,2,1,2,1,
-    4,252,8,9,8,4,8,9,8,31,2,126,2,254,4,29,
-    8,5,8,21,8,46,8,8,10,40,8,5,8,7,8,6,
-    8,13,8,19,12,15,
+    2,0,0,0,11,0,0,0,67,0,0,0,115,68,0,0,
+    0,116,0,160,1,124,0,100,1,63,0,100,2,23,0,124,
+    0,100,3,63,0,100,4,64,0,124,0,100,5,64,0,124,
+    1,100,6,63,0,124,1,100,3,63,0,100,7,64,0,124,
+    1,100,5,64,0,100,8,20,0,100,9,100,9,100,9,102,
+    9,161,1,83,0,41,10,78,233,9,0,0,0,105,188,7,
+    0,0,233,5,0,0,0,233,15,0,0,0,233,31,0,0,
+    0,233,11,0,0,0,233,63,0,0,0,114,93,0,0,0,
+    114,14,0,0,0,41,2,114,137,0,0,0,90,6,109,107,
+    116,105,109,101,41,2,218,1,100,114,144,0,0,0,114,9,
+    0,0,0,114,9,0,0,0,114,10,0,0,0,218,14,95,
+    112,97,114,115,101,95,100,111,115,116,105,109,101,181,2,0,
+    0,115,18,0,0,0,4,1,10,1,10,1,6,1,6,1,
+    10,1,10,1,6,1,6,249,114,175,0,0,0,99,2,0,
+    0,0,0,0,0,0,0,0,0,0,6,0,0,0,10,0,
+    0,0,67,0,0,0,115,110,0,0,0,122,41,124,1,100,
+    1,100,0,133,2,25,0,100,2,118,0,115,11,74,0,130,
+    1,124,1,100,0,100,1,133,2,25,0,125,1,124,0,106,
+    0,124,1,25,0,125,2,124,2,100,3,25,0,125,3,124,
+    2,100,4,25,0,125,4,124,2,100,5,25,0,125,5,116,
+    1,124,4,124,3,131,2,124,5,102,2,87,0,83,0,4,
+    0,116,2,116,3,116,4,102,3,121,54,1,0,1,0,1,
+    0,89,0,100,6,83,0,119,0,41,7,78,114,14,0,0,
+    0,169,2,218,1,99,218,1,111,114,169,0,0,0,233,6,
+    0,0,0,233,3,0,0,0,41,2,114,0,0,0,0,114,
+    0,0,0,0,41,5,114,28,0,0,0,114,175,0,0,0,
+    114,26,0,0,0,218,10,73,110,100,101,120,69,114,114,111,
+    114,114,160,0,0,0,41,6,114,32,0,0,0,114,13,0,
+    0,0,114,61,0,0,0,114,137,0,0,0,114,138,0,0,
+    0,90,17,117,110,99,111,109,112,114,101,115,115,101,100,95,
+    115,105,122,101,114,9,0,0,0,114,9,0,0,0,114,10,
+    0,0,0,114,157,0,0,0,194,2,0,0,115,22,0,0,
+    0,2,1,20,2,12,1,10,1,8,3,8,1,8,1,16,
+    1,18,1,6,1,2,255,114,157,0,0,0,99,2,0,0,
+    0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,
+    0,67,0,0,0,115,80,0,0,0,124,1,100,1,100,0,
+    133,2,25,0,100,2,118,0,115,10,74,0,130,1,124,1,
+    100,0,100,1,133,2,25,0,125,1,122,7,124,0,106,0,
+    124,1,25,0,125,2,87,0,110,10,4,0,116,1,121,33,
+    1,0,1,0,1,0,89,0,100,0,83,0,119,0,116,2,
+    124,0,106,3,124,2,131,2,83,0,41,3,78,114,14,0,
+    0,0,114,176,0,0,0,41,4,114,28,0,0,0,114,26,
+    0,0,0,114,59,0,0,0,114,29,0,0,0,41,3,114,
+    32,0,0,0,114,13,0,0,0,114,61,0,0,0,114,9,
+    0,0,0,114,9,0,0,0,114,10,0,0,0,114,155,0,
+    0,0,213,2,0,0,115,16,0,0,0,20,2,12,1,2,
+    2,14,1,12,1,6,1,2,255,12,3,114,155,0,0,0,
+    99,2,0,0,0,0,0,0,0,0,0,0,0,14,0,0,
+    0,11,0,0,0,67,0,0,0,115,14,1,0,0,116,0,
+    124,0,124,1,131,2,125,2,100,0,125,3,116,1,68,0,
+    93,102,92,3,125,4,125,5,125,6,124,2,124,4,23,0,
+    125,7,116,2,106,3,100,1,124,0,106,4,116,5,124,7,
+    100,2,100,3,141,5,1,0,122,7,124,0,106,6,124,7,
+    25,0,125,8,87,0,110,9,4,0,116,7,121,45,1,0,
+    1,0,1,0,89,0,113,9,119,0,124,8,100,4,25,0,
+    125,9,116,8,124,0,106,4,124,8,131,2,125,10,100,0,
+    125,11,124,5,114,91,122,10,116,9,124,0,124,9,124,7,
+    124,1,124,10,131,5,125,11,87,0,113,96,4,0,116,10,
+    121,90,1,0,125,12,1,0,122,8,124,12,125,3,87,0,
+    89,0,100,0,125,12,126,12,113,96,100,0,125,12,126,12,
+    119,1,119,0,116,11,124,9,124,10,131,2,125,11,124,11,
+    100,0,117,0,114,101,113,9,124,8,100,4,25,0,125,9,
+    124,11,124,6,124,9,102,3,2,0,1,0,83,0,124,3,
+    114,126,100,5,124,3,155,0,157,2,125,13,116,12,124,13,
+    124,1,100,6,141,2,124,3,130,2,116,12,100,7,124,1,
+    155,2,157,2,124,1,100,6,141,2,130,1,41,8,78,122,
+    13,116,114,121,105,110,103,32,123,125,123,125,123,125,114,93,
+    0,0,0,41,1,90,9,118,101,114,98,111,115,105,116,121,
+    114,0,0,0,0,122,20,109,111,100,117,108,101,32,108,111,
+    97,100,32,102,97,105,108,101,100,58,32,114,65,0,0,0,
+    114,64,0,0,0,41,13,114,39,0,0,0,114,95,0,0,
+    0,114,48,0,0,0,114,81,0,0,0,114,29,0,0,0,
+    114,20,0,0,0,114,28,0,0,0,114,26,0,0,0,114,
+    59,0,0,0,114,161,0,0,0,114,80,0,0,0,114,167,
+    0,0,0,114,3,0,0,0,41,14,114,32,0,0,0,114,
+    41,0,0,0,114,13,0,0,0,90,12,105,109,112,111,114,
+    116,95,101,114,114,111,114,114,96,0,0,0,114,97,0,0,
+    0,114,54,0,0,0,114,69,0,0,0,114,61,0,0,0,
+    114,43,0,0,0,114,132,0,0,0,114,53,0,0,0,90,
+    3,101,120,99,114,82,0,0,0,114,9,0,0,0,114,9,
+    0,0,0,114,10,0,0,0,114,51,0,0,0,228,2,0,
+    0,115,58,0,0,0,10,1,4,1,14,1,8,1,22,1,
+    2,1,14,1,12,1,4,1,2,255,8,3,12,1,4,1,
+    4,1,2,1,20,1,14,1,16,1,8,128,2,255,10,3,
+    8,1,2,3,8,1,14,1,4,2,10,1,14,1,18,2,
+    114,51,0,0,0,41,46,114,91,0,0,0,90,26,95,102,
+    114,111,122,101,110,95,105,109,112,111,114,116,108,105,98,95,
+    101,120,116,101,114,110,97,108,114,21,0,0,0,114,1,0,
+    0,0,114,2,0,0,0,90,17,95,102,114,111,122,101,110,
+    95,105,109,112,111,114,116,108,105,98,114,48,0,0,0,114,
+    154,0,0,0,114,116,0,0,0,114,158,0,0,0,114,72,
+    0,0,0,114,137,0,0,0,114,35,0,0,0,90,7,95,
+    95,97,108,108,95,95,114,20,0,0,0,90,15,112,97,116,
+    104,95,115,101,112,97,114,97,116,111,114,115,114,18,0,0,
+    0,114,80,0,0,0,114,3,0,0,0,114,25,0,0,0,
+    218,4,116,121,112,101,114,75,0,0,0,114,119,0,0,0,
+    114,121,0,0,0,114,123,0,0,0,90,13,95,76,111,97,
+    100,101,114,66,97,115,105,99,115,114,4,0,0,0,114,95,
+    0,0,0,114,39,0,0,0,114,40,0,0,0,114,38,0,
+    0,0,114,27,0,0,0,114,128,0,0,0,114,148,0,0,
+    0,114,150,0,0,0,114,59,0,0,0,114,153,0,0,0,
+    114,161,0,0,0,218,8,95,95,99,111,100,101,95,95,114,
+    159,0,0,0,114,165,0,0,0,114,167,0,0,0,114,175,
+    0,0,0,114,157,0,0,0,114,155,0,0,0,114,51,0,
+    0,0,114,9,0,0,0,114,9,0,0,0,114,9,0,0,
+    0,114,10,0,0,0,218,8,60,109,111,100,117,108,101,62,
+    1,0,0,0,115,90,0,0,0,4,0,8,16,16,1,8,
+    1,8,1,8,1,8,1,8,1,8,1,8,1,8,2,6,
+    3,14,1,16,3,4,4,8,2,4,2,4,1,4,1,18,
+    2,0,127,0,127,12,50,12,1,2,1,2,1,4,252,8,
+    9,8,4,8,9,8,31,2,126,2,254,4,29,8,5,8,
+    21,8,46,8,8,10,40,8,5,8,7,8,6,8,13,8,
+    19,12,15,
 };
index 27ae48dd3c97c84d1f2e6b7c3fc8b576d5f4907f..b2986116fdc350a1eb43f95335860872659e9984 100644 (file)
@@ -2464,7 +2464,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 470aba75bea969081b42c758fb89c712689e81cd..1017a571f2b8298492b7b0b47529e15cc6faae63 100644 (file)
@@ -405,7 +405,7 @@ config_init_pathconfig(PyConfig *config, int compute_path_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 aeebd6f61c6d7f747ab1254ccfcc257a6804d78c..df98eb11bb0a49d72ecbae7b3fd6e2e2b2c429e0 100644 (file)
@@ -147,12 +147,15 @@ _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime)
     _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
 
     int reinit_interp = _PyThread_at_fork_reinit(&runtime->interpreters.mutex);
-    int reinit_main_id = _PyThread_at_fork_reinit(&runtime->interpreters.main->id_mutex);
     int reinit_xidregistry = _PyThread_at_fork_reinit(&runtime->xidregistry.mutex);
     int reinit_unicode_ids = _PyThread_at_fork_reinit(&runtime->unicode_ids.lock);
 
     PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
 
+    /* bpo-42540: id_mutex is freed by _PyInterpreterState_Delete, which does
+     * not force the default allocator. */
+    int reinit_main_id = _PyThread_at_fork_reinit(&runtime->interpreters.main->id_mutex);
+
     if (reinit_interp < 0
         || reinit_main_id < 0
         || reinit_xidregistry < 0
index f00e3eb0de803f86c90101c36b57be44b0ee8fb3..0f1794acec73ae980096b748afbd61528ec4ffaa 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)
  */
 
@@ -13,7 +13,8 @@
 #include "pycore_ast.h"           // PyAST_mod2obj
 #include "pycore_compile.h"       // _PyAST_Compile()
 #include "pycore_interp.h"        // PyInterpreterState.importlib
-#include "pycore_object.h"        // _PyDebug_PrintTotalRefs()
+#include "pycore_object.h"        // _PyDebug_PrintTotalRefs(),
+                                  // _PyType_GetQualName()
 #include "pycore_parser.h"        // _PyParser_ASTFromString()
 #include "pycore_pyerrors.h"      // _PyErr_Fetch, _Py_Offer_Suggestions
 #include "pycore_pylifecycle.h"   // _Py_UnhandledKeyboardInterrupt
@@ -942,7 +943,7 @@ print_exception(PyObject *f, PyObject *value)
                 if (end_lineno > lineno) {
                     end_offset = (error_line != NULL) ? line_size : -1;
                 }
-                // Limit the ammount of '^' that we can display to
+                // Limit the amount of '^' that we can display to
                 // the size of the text in the source line.
                 if (error_line != NULL && end_offset > line_size + 1) {
                     end_offset = line_size + 1;
@@ -961,36 +962,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);
-            err = PyFile_WriteString("<unknown>", f);
+            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 b09b8dc7a394ae5037ac18147110022485702ff0..50cf340e543b407cd8e1e10d29f327cc09bd3ebe 100644 (file)
@@ -61,6 +61,7 @@ static const char* _Py_stdlib_module_names[] = {
 "_pyio",
 "_queue",
 "_random",
+"_scproxy",
 "_sha1",
 "_sha256",
 "_sha3",
index 7fd62fbfabf6425744d468031e0085c2685c81fb..4e2f9055779b277221d92123cca8bda12b73095e 100644 (file)
@@ -200,13 +200,21 @@ offer_suggestions_for_name_error(PyNameErrorObject *exc)
     PyTracebackObject *traceback = (PyTracebackObject *) exc->traceback; // borrowed reference
     // Abort if we don't have a variable name or we have an invalid one
     // or if we don't have a traceback to work with
-    if (name == NULL || traceback == NULL || !PyUnicode_CheckExact(name)) {
+    if (name == NULL || !PyUnicode_CheckExact(name) ||
+        traceback == NULL || !Py_IS_TYPE(traceback, &PyTraceBack_Type)
+    ) {
         return NULL;
     }
 
     // Move to the traceback of the exception
-    while (traceback->tb_next != NULL) {
-        traceback = traceback->tb_next;
+    while (1) {
+        PyTracebackObject *next = traceback->tb_next;
+        if (next == NULL || !Py_IS_TYPE(next, &PyTraceBack_Type)) {
+            break;
+        }
+        else {
+            traceback = next;
+        }
     }
 
     PyFrameObject *frame = traceback->tb_frame;
index ec7d737518b68c6a3c668399cf01bb00de2d8164..35b9810aa377f25dfedf505400e5cba916d0423f 100644 (file)
 #define THREAD_STACK_SIZE       0       /* use default stack size */
 #endif
 
-/* The default stack size for new threads on OSX and BSD is small enough that
+/* The default stack size for new threads on BSD is small enough that
  * we'll get hard crashes instead of 'maximum recursion depth exceeded'
  * exceptions.
  *
- * The default stack sizes below are the empirically determined minimal stack
+ * The default stack size below is the empirically determined minimal stack
  * sizes where a simple recursive function doesn't cause a hard crash.
+ *
+ * For macOS the value of THREAD_STACK_SIZE is determined in configure.ac
+ * as it also depends on the other configure options like chosen sanitizer
+ * runtimes.
  */
-#if defined(__APPLE__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
-#undef  THREAD_STACK_SIZE
-/* Note: This matches the value of -Wl,-stack_size in configure.ac */
-#define THREAD_STACK_SIZE       0x1000000
-#endif
 #if defined(__FreeBSD__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
 #undef  THREAD_STACK_SIZE
 #define THREAD_STACK_SIZE       0x400000
  * 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
@@ -124,16 +128,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;
 
@@ -155,16 +166,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
@@ -435,7 +443,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",
@@ -446,6 +456,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) {
@@ -454,11 +467,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));
@@ -473,6 +492,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();
@@ -494,13 +516,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 9b23f45ba5bb8928e56d571da459c19f86224a62..7d6f7f435a6ba6972300059c1db22a513a27a860 100644 (file)
@@ -234,7 +234,7 @@ _PyTraceBack_FromFrame(PyObject *tb_next, PyFrameObject *frame)
     assert(tb_next == NULL || PyTraceBack_Check(tb_next));
     assert(frame != NULL);
 
-    return tb_create_raw((PyTracebackObject *)tb_next, frame, frame->f_lasti*2,
+    return tb_create_raw((PyTracebackObject *)tb_next, frame, frame->f_lasti*sizeof(_Py_CODEUNIT),
                          PyFrame_GetLineNumber(frame));
 }
 
@@ -717,6 +717,26 @@ _Py_DumpASCII(int fd, PyObject *text)
         truncated = 0;
     }
 
+    // Is an ASCII string?
+    if (ascii->state.ascii) {
+        assert(kind == PyUnicode_1BYTE_KIND);
+        char *str = data;
+
+        int need_escape = 0;
+        for (i=0; i < size; i++) {
+            ch = str[i];
+            if (!(' ' <= ch && ch <= 126)) {
+                need_escape = 1;
+                break;
+            }
+        }
+        if (!need_escape) {
+            // The string can be written with a single write() syscall
+            _Py_write_noraise(fd, str, size);
+            goto done;
+        }
+    }
+
     for (i=0; i < size; i++) {
         if (kind != PyUnicode_WCHAR_KIND)
             ch = PyUnicode_READ(kind, data, i);
@@ -740,6 +760,8 @@ _Py_DumpASCII(int fd, PyObject *text)
             _Py_DumpHexadecimal(fd, ch, 8);
         }
     }
+
+done:
     if (truncated) {
         PUTS(fd, "...");
     }
index 74e7629eb4037ab7be421e7f002aece5e08a647e..d2189e5c361e6667ff79eb91c431f5af3586043c 100644 (file)
@@ -1,4 +1,4 @@
-This is Python version 3.10.0
+This is Python version 3.10.1
 =============================
 
 .. image:: https://travis-ci.com/python/cpython.svg?branch=master
index 24fc6cd182656bedd3cdff35c84794a4bbe7bc2f..5d89b29adf899e46ac491d13126d5f560f7473bd 100644 (file)
@@ -482,7 +482,7 @@ COMMANDS = {
         cmd_analyze,
     ),
     'data': (
-        'check/manage local data (e.g. knwon types, ignored vars, caches)',
+        'check/manage local data (e.g. known types, ignored vars, caches)',
         [_cli_data],
         cmd_data,
     ),
index b75918e5e7a68744eea736dacf9589ff699df235..27c3a5a4ee76f2990760c243d1cc3956dac64fac 100644 (file)
@@ -230,11 +230,11 @@ class Analyzed:
         return self
 
     def as_rowdata(self, columns=None):
-        # XXX finsih!
+        # XXX finish!
         return self.item.as_rowdata(columns)
 
     def render_rowdata(self, columns=None):
-        # XXX finsih!
+        # XXX finish!
         return self.item.render_rowdata(columns)
 
     def render(self, fmt='line', *, itemonly=False):
index 12398f7e385fdbc98ad625c6249a29eb4faa47c3..10af852ec3c5e618602478918a61af86ac27fa05 100644 (file)
@@ -41,7 +41,7 @@ def configure_logger(logger, verbosity=VERBOSITY, *,
 def hide_emit_errors():
     """Ignore errors while emitting log entries.
 
-    Rather than printing a message desribing the error, we show nothing.
+    Rather than printing a message describing the error, we show nothing.
     """
     # For now we simply ignore all exceptions.  If we wanted to ignore
     # specific ones (e.g. BrokenPipeError) then we would need to use
index e7535d45bbba23d7c37c82321deff5994b0c5588..07193c091e4c3f515ae2a24abb42945d6731cc53 100644 (file)
@@ -26,7 +26,7 @@ def parse_entries(entries, *, ignoresep=None):
                     # We read the entire file here to ensure the file
                     # gets closed sooner rather than later.  Note that
                     # the file would stay open if this iterator is never
-                    # exchausted.
+                    # exhausted.
                     lines = infile.read().splitlines()
                 for line in _iter_significant_lines(lines):
                     yield line, filename
index 85b501925715d37e29bf192107009831590e4040..130be6beba5f81579a7c169ba999fc28fbda6fb1 100644 (file)
@@ -236,12 +236,12 @@ def build_table(specs, *, sep=' ', defaultwidth=None):
 _COLSPEC_RE = re.compile(textwrap.dedent(r'''
     ^
     (?:
-        [[]
+        \[
         (
             (?: [^\s\]] [^\]]* )?
             [^\s\]]
         )  # <label>
-        []]
+        ]
     )?
     ( \w+ )  # <field>
     (?:
index 98ff511cfe64a025fb251909788247606e8e3253..697b1f26dc21519974315a51a50a21029287b1d5 100644 (file)
@@ -1029,7 +1029,7 @@ class Function(Declaration):
 
     @classmethod
     def _raw_data(self, data):
-        # XXX finsh!
+        # XXX finish!
         return data
 
     @classmethod
@@ -1255,7 +1255,7 @@ class Enum(TypeDeclaration):
 
     @classmethod
     def _raw_data(self, data):
-        # XXX finsih!
+        # XXX finish!
         return data
 
     @classmethod
@@ -1296,12 +1296,12 @@ class Statement(HighlevelParsedItem):
 
     @classmethod
     def _resolve_data(cls, data):
-        # XXX finsih!
+        # XXX finish!
         return data, None
 
     @classmethod
     def _raw_data(self, data):
-        # XXX finsih!
+        # XXX finish!
         return data
 
     @classmethod
index 39056099f5e918a8268ab1fdda1a1c13db4faae1..df70aae66b77606247d898c95dba025e417f936b 100644 (file)
@@ -7,7 +7,7 @@ valid C code.
 
 Furthermore, the grammar rules for the C syntax (particularly as
 described in the K&R book) actually describe a superset, of which the
-full C langage is a proper subset.  Here are some of the extra
+full C language is a proper subset.  Here are some of the extra
 conditions that must be applied when parsing C code:
 
 * ...
@@ -90,7 +90,7 @@ Here are the cases where we've taken shortcuts or made assumptions:
 * no "inline" type declarations (struct, union, enum) in function
   parameters ~(including function pointers)~
 * no "inline" type decls in function return types
-* no superflous parentheses in declarators
+* no superfluous parentheses in declarators
 * var decls in for loops are always "simple" (e.g. no inline types)
 * only inline struct/union/enum decls may be anonymouns (without a name)
 * no function pointers in function pointer parameters
index 8da4d8cadf7d0eecc32819457ecdd4815cf2613f..e38176fee31fac7bee0b3c20681f0a24c1943cff 100644 (file)
@@ -19,7 +19,7 @@ from . import (
 logger = logging.getLogger(__name__)
 
 
-# Supprted "source":
+# Supported "source":
 #  * filename (string)
 #  * lines (iterable)
 #  * text (string)
@@ -156,7 +156,7 @@ def handling_errors(ignore_exc=None, *, log_err=None):
 # tools
 
 _COMPILERS = {
-    # matching disutils.ccompiler.compiler_class:
+    # matching distutils.ccompiler.compiler_class:
     'unix': _gcc.preprocess,
     'msvc': None,
     'cygwin': None,
index a11b687214d2f473f9cc5b5561b5b3ef186465cc..06ec871ba75e35df24861a6f948b6bb0476268bf 100644 (file)
@@ -342,7 +342,7 @@ COMMANDS = {
         cmd_parse,
     ),
     'data': (
-        'check/manage local data (e.g. knwon types, ignored vars, caches)',
+        'check/manage local data (e.g. known types, ignored vars, caches)',
         [_cli_data],
         cmd_data,
     ),
index e5d93782076c3d938efdf9c11da588230d5bab03..91867cae8d1e0ad0e5d47a1e1f68184e672acd87 100644 (file)
@@ -2128,7 +2128,7 @@ Python/import.c   import_find_and_load    header  -
 #-----------------------
 # runtime state
 
-# (look at the bottome of the file)
+# (look at the bottom of the file)
 
 #-----------------------
 # modules
index c1ab5e0ded17804a5910ff357dc89d0a883ee623..3c3baef7286c752b6905f7bf99f2325587db48ce 100644 (file)
@@ -1,5 +1,6 @@
 import ast
 from dataclasses import field, dataclass
+import os.path
 import re
 from typing import Any, Dict, IO, Optional, List, Text, Tuple, Set
 from enum import Enum
@@ -88,7 +89,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:
             if self.assigned_variable_type:
                 parts = ["(", self.assigned_variable, " = ", '(', self.assigned_variable_type, ')', *parts, ")"]
@@ -405,7 +406,8 @@ class CParserGenerator(ParserGenerator, GrammarVisitor):
 
     def generate(self, filename: str) -> None:
         self.collect_todo()
-        self.print(f"// @generated by pegen.py from {filename}")
+        basename = os.path.basename(filename)
+        self.print(f"// @generated by pegen.py from {basename}")
         header = self.grammar.metas.get("header", EXTENSION_PREFIX)
         if header:
             self.print(header.rstrip("\n"))
@@ -723,7 +725,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 70fa5b001b5c1cf1abe98adbf3b261a1719331d6..892df5cf8ccca153871c694819f21890b01f76d4 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3.8
-# @generated by pegen from ./Tools/peg_generator/pegen/metagrammar.gram
+# @generated by pegen from metagrammar.gram
 
 import ast
 from typing import Optional, Any
index b500e3e204a5d4f35b567752ae0774f7fb1e270f..4b270aa1e97416a9553c871b76f562e15683c036 100644 (file)
@@ -1,3 +1,4 @@
+import os.path
 import token
 from typing import Any, Dict, Optional, IO, Text, Tuple
 
@@ -139,7 +140,8 @@ class PythonParserGenerator(ParserGenerator, GrammarVisitor):
     def generate(self, filename: str) -> None:
         header = self.grammar.metas.get("header", MODULE_PREFIX)
         if header is not None:
-            self.print(header.rstrip("\n").format(filename=filename))
+            basename = os.path.basename(filename)
+            self.print(header.rstrip("\n").format(filename=basename))
         subheader = self.grammar.metas.get("subheader", "")
         if subheader:
             self.print(subheader.format(filename=filename))
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 716a6d4b7a07f3b154ea680aa87a63588db83d2b..dc6a074274715ef77d3caaa0adebafd8ae10e743 100644 (file)
@@ -51,6 +51,10 @@ WINDOWS_MODULES = (
     'winsound'
 )
 
+# macOS extension modules
+MACOS_MODULES = (
+    '_scproxy',
+)
 
 # Pure Python modules (Lib/*.py)
 def list_python_modules(names):
@@ -123,7 +127,7 @@ def list_frozen(names):
 
 
 def list_modules():
-    names = set(sys.builtin_module_names) | set(WINDOWS_MODULES)
+    names = set(sys.builtin_module_names) | set(WINDOWS_MODULES) | set(MACOS_MODULES)
     list_modules_setup_extensions(names)
     list_setup_extensions(names)
     list_packages(names)
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 fb01660dea33ae9fc1008e5cdc1c365687925bc0..276a5ab2cc84c664e202d1343ba6c75cf3feed64 100755 (executable)
@@ -108,8 +108,11 @@ def check_library(library, dynamic=False):
 
 def check_extensions():
     print(__file__)
-    srcdir = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
-    filename = os.path.join(srcdir, "pybuilddir.txt")
+    # This assumes pybuilddir.txt is in same directory as pyconfig.h.
+    # In the case of out-of-tree builds, we can't assume pybuilddir.txt is
+    # in the source folder.
+    config_dir = os.path.dirname(sysconfig.get_config_h_filename())
+    filename = os.path.join(config_dir, "pybuilddir.txt")
     try:
         with open(filename, encoding="utf-8") as fp:
             pybuilddir = fp.readline()
@@ -118,7 +121,7 @@ def check_extensions():
         return True
 
     print(f"Check extension modules from {pybuilddir} directory")
-    builddir = os.path.join(srcdir, pybuilddir)
+    builddir = os.path.join(config_dir, pybuilddir)
     nsymbol = 0
     for name in os.listdir(builddir):
         if not name.endswith(".so"):
index b7fd2c8583ba70f829839c9517bf5b6b8f6382c6..6d7034090f8819480d3c4ab0d62dd952954cf378 100755 (executable)
@@ -67,7 +67,7 @@ class Manifest:
     def add(self, item):
         if item.name in self.contents:
             # We assume that stable ABI items do not share names,
-            # even if they're diferent kinds (e.g. function vs. macro).
+            # even if they're different kinds (e.g. function vs. macro).
             raise ValueError(f'duplicate ABI item {item.name}')
         self.contents[item.name] = item
 
@@ -295,7 +295,7 @@ def do_unixy_check(manifest, args):
     present_macros = gcc_get_limited_api_macros(['Include/Python.h'])
     feature_defines = manifest.feature_defines & present_macros
 
-    # Check that we have all neded macros
+    # Check that we have all needed macros
     expected_macros = set(
         item.name for item in manifest.select({'macro'})
     )
@@ -412,7 +412,7 @@ def binutils_check_library(manifest, library, expected_symbols, dynamic):
 def gcc_get_limited_api_macros(headers):
     """Get all limited API macros from headers.
 
-    Runs the preprocesor over all the header files in "Include" setting
+    Runs the preprocessor over all the header files in "Include" setting
     "-DPy_LIMITED_API" to the correct value for the running version of the
     interpreter and extracting all macro definitions (via adding -dM to the
     compiler arguments).
@@ -449,7 +449,7 @@ def gcc_get_limited_api_macros(headers):
 def gcc_get_limited_api_definitions(headers):
     """Get all limited API definitions from headers.
 
-    Run the preprocesor over all the header files in "Include" setting
+    Run the preprocessor over all the header files in "Include" setting
     "-DPy_LIMITED_API" to the correct value for the running version of the
     interpreter.
 
index 9b46c8c7c09d5c9923e4dbb2b8488cf4af0cf9e3..ba2663e9a399beaec98317b524354bc29a5814be 100755 (executable)
@@ -48,7 +48,7 @@ OPENSSL_OLD_VERSIONS = [
 
 OPENSSL_RECENT_VERSIONS = [
     "1.1.1l",
-    "3.0.0-beta1"
+    "3.0.0"
 ]
 
 LIBRESSL_OLD_VERSIONS = [
@@ -153,8 +153,10 @@ class AbstractBuilder(object):
     install_target = 'install'
     jobs = os.cpu_count()
 
-    module_files = ("Modules/_ssl.c",
-                    "Modules/_hashopenssl.c")
+    module_files = (
+        os.path.join(PYTHONROOT, "Modules/_ssl.c"),
+        os.path.join(PYTHONROOT, "Modules/_hashopenssl.c"),
+    )
     module_libs = ("_ssl", "_hashlib")
 
     def __init__(self, version, args):
@@ -357,7 +359,7 @@ class AbstractBuilder(object):
         env["LD_RUN_PATH"] = self.lib_dir
 
         log.info("Rebuilding Python modules")
-        cmd = [sys.executable, "setup.py", "build"]
+        cmd = [sys.executable, os.path.join(PYTHONROOT, "setup.py"), "build"]
         self._subprocess_call(cmd, env=env)
         self.check_imports()
 
@@ -372,7 +374,11 @@ class AbstractBuilder(object):
 
     def run_python_tests(self, tests, network=True):
         if not tests:
-            cmd = [sys.executable, 'Lib/test/ssltests.py', '-j0']
+            cmd = [
+                sys.executable,
+                os.path.join(PYTHONROOT, 'Lib/test/ssltests.py'),
+                '-j0'
+            ]
         elif sys.version_info < (3, 3):
             cmd = [sys.executable, '-m', 'test.regrtest']
         else:
@@ -412,6 +418,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 987bfdf215ccb4cfad31e8faa5d663f44d196c4d..2f1bd37528c85d1e87b25c614a76842646bcf9ce 100644 (file)
@@ -275,3 +275,347 @@ AC_DEFUN([AX_CHECK_OPENSSL], [
     AC_SUBST([OPENSSL_LDFLAGS])
 ])
 
+# pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
+# serial 11 (pkg-config-0.29.1)
+
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29.1])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=m4_default([$1], [0.9.0])
+       AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               AC_MSG_RESULT([yes])
+       else
+               AC_MSG_RESULT([no])
+               PKG_CONFIG=""
+       fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_default([$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes ],
+                    [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+       AC_MSG_RESULT([no])
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+               $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else 
+               $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+       m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+        ])
+elif test $pkg_failed = untried; then
+       AC_MSG_RESULT([no])
+       m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
+else
+       $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+       $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+       $3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
+
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl   [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------
+dnl
+dnl Prepare a "--with-" configure option using the lowercase
+dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
+dnl PKG_CHECK_MODULES in a single macro.
+AC_DEFUN([PKG_WITH_MODULES],
+[
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+           [m4_default([$5], [build with ]with_arg[ support])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
+
+m4_case(def_arg,
+            [yes],[m4_pushdef([with_without], [--without-]with_arg)],
+            [m4_pushdef([with_without],[--with-]with_arg)])
+
+AC_ARG_WITH(with_arg,
+     AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+    [AS_TR_SH([with_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([with_]with_arg)],
+            [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+            [auto],[PKG_CHECK_MODULES([$1],[$2],
+                                        [m4_n([def_action_if_found]) $3],
+                                        [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+])dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [DESCRIPTION], [DEFAULT])
+dnl -----------------------------------------------
+dnl
+dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
+dnl check._[VARIABLE-PREFIX] is exported as make variable.
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+               [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])dnl PKG_HAVE_WITH_MODULES
+
+dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------------------
+dnl
+dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
+dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
+dnl and preprocessor variable.
+AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
+[
+PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
+
+AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
+        [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
+])dnl PKG_HAVE_DEFINE_WITH_MODULES
+
index 256083a70d35921d544b15f4f51749af89d18b89..e81d3ae7c210ba487bc74ef7ef1af6024c6f0df8 100755 (executable)
@@ -1,8 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2018 Free Software Foundation, Inc.
+#   Copyright 1992-2021 Free Software Foundation, Inc.
 
-timestamp='2018-03-08'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2021-06-03'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,11 +29,19 @@ timestamp='2018-03-08'
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
 #
 # Please send patches to <config-patches@gnu.org>.
 
 
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX.  However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
@@ -50,7 +60,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2021 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -84,7 +94,8 @@ if test $# != 0; then
   exit 1
 fi
 
-trap 'exit 1' 1 2 15
+# Just in case it came from the environment.
+GUESS=
 
 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
 # compiler to aid in system detection is discouraged as it requires
@@ -96,73 +107,90 @@ trap 'exit 1' 1 2 15
 
 # Portable tmp directory creation inspired by the Autoconf team.
 
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > "$dummy.c" ;
-       for c in cc gcc c89 c99 ; do
-         if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
-            CC_FOR_BUILD="$c"; break ;
-         fi ;
-       done ;
-       if test x"$CC_FOR_BUILD" = x ; then
-         CC_FOR_BUILD=no_compiler_found ;
-       fi
-       ;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+    # prevent multiple calls if $tmp is already set
+    test "$tmp" && return 0
+    : "${TMPDIR=/tmp}"
+    # shellcheck disable=SC2039,SC3028
+    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+       { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+       { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+       { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+    dummy=$tmp/dummy
+    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+       ,,)    echo "int x;" > "$dummy.c"
+              for driver in cc gcc c89 c99 ; do
+                  if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+                      CC_FOR_BUILD=$driver
+                      break
+                  fi
+              done
+              if test x"$CC_FOR_BUILD" = x ; then
+                  CC_FOR_BUILD=no_compiler_found
+              fi
+              ;;
+       ,,*)   CC_FOR_BUILD=$CC ;;
+       ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+    esac
+}
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
        PATH=$PATH:/.attbin ; export PATH
 fi
 
 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-case "$UNAME_SYSTEM" in
+case $UNAME_SYSTEM in
 Linux|GNU|GNU/*)
-       # If the system lacks a compiler, then just pick glibc.
-       # We could probably try harder.
-       LIBC=gnu
+       LIBC=unknown
 
-       eval "$set_cc_for_build"
+       set_cc_for_build
        cat <<-EOF > "$dummy.c"
        #include <features.h>
        #if defined(__UCLIBC__)
        LIBC=uclibc
        #elif defined(__dietlibc__)
        LIBC=dietlibc
-       #else
+       #elif defined(__GLIBC__)
        LIBC=gnu
+       #else
+       #include <stdarg.h>
+       /* First heuristic to detect musl libc.  */
+       #ifdef __DEFINED_va_list
+       LIBC=musl
+       #endif
        #endif
        EOF
-       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+       cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+       eval "$cc_set_libc"
 
-       # If ldd exists, use it to detect musl libc.
-       if command -v ldd >/dev/null && \
-               ldd --version 2>&1 | grep -q ^musl
-       then
-           LIBC=musl
+       # Second heuristic to detect musl libc.
+       if [ "$LIBC" = unknown ] &&
+          command -v ldd >/dev/null &&
+          ldd --version 2>&1 | grep -q ^musl; then
+               LIBC=musl
+       fi
+
+       # If the system lacks a compiler, then just pick glibc.
+       # We could probably try harder.
+       if [ "$LIBC" = unknown ]; then
+               LIBC=gnu
        fi
        ;;
 esac
 
 # Note: order is significant - the case branches are not exclusive.
 
-case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
     *:NetBSD:*:*)
        # NetBSD (nbsd) targets should (where applicable) match one or
        # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -174,12 +202,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        #
        # Note: NetBSD doesn't particularly care about the vendor
        # portion of the name.  We always set it to "unknown".
-       sysctl="sysctl -n hw.machine_arch"
        UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
-           "/sbin/$sysctl" 2>/dev/null || \
-           "/usr/sbin/$sysctl" 2>/dev/null || \
+           /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+           /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
            echo unknown)`
-       case "$UNAME_MACHINE_ARCH" in
+       case $UNAME_MACHINE_ARCH in
+           aarch64eb) machine=aarch64_be-unknown ;;
            armeb) machine=armeb-unknown ;;
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
@@ -188,18 +216,18 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
            earmv*)
                arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
                endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
-               machine="${arch}${endian}"-unknown
+               machine=${arch}${endian}-unknown
                ;;
-           *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
+           *) machine=$UNAME_MACHINE_ARCH-unknown ;;
        esac
        # The Operating System including object format, if it has switched
        # to ELF recently (or will in the future) and ABI.
-       case "$UNAME_MACHINE_ARCH" in
+       case $UNAME_MACHINE_ARCH in
            earm*)
                os=netbsdelf
                ;;
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval "$set_cc_for_build"
+               set_cc_for_build
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
                        | grep -q __ELF__
                then
@@ -215,7 +243,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
                ;;
        esac
        # Determine ABI tags.
-       case "$UNAME_MACHINE_ARCH" in
+       case $UNAME_MACHINE_ARCH in
            earm*)
                expr='s/^earmv[0-9]/-eabi/;s/eb$//'
                abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
@@ -226,7 +254,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        # thus, need a distinct triplet. However, they do not need
        # kernel version information, so it can be replaced with a
        # suitable tag, in the style of linux-gnu.
-       case "$UNAME_VERSION" in
+       case $UNAME_VERSION in
            Debian*)
                release='-gnu'
                ;;
@@ -237,45 +265,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "$machine-${os}${release}${abi}"
-       exit ;;
+       GUESS=$machine-${os}${release}${abi-}
+       ;;
     *:Bitrig:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-       echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+       ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+       ;;
+    *:SecBSD:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+       GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+       ;;
     *:LibertyBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
-       echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+       ;;
     *:MidnightBSD:*:*)
-       echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+       ;;
     *:ekkoBSD:*:*)
-       echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+       ;;
     *:SolidBSD:*:*)
-       echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+       ;;
+    *:OS108:*:*)
+       GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+       ;;
     macppc:MirBSD:*:*)
-       echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+       ;;
     *:MirBSD:*:*)
-       echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+       ;;
     *:Sortix:*:*)
-       echo "$UNAME_MACHINE"-unknown-sortix
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-sortix
+       ;;
+    *:Twizzler:*:*)
+       GUESS=$UNAME_MACHINE-unknown-twizzler
+       ;;
     *:Redox:*:*)
-       echo "$UNAME_MACHINE"-unknown-redox
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-redox
+       ;;
     mips:OSF1:*.*)
-        echo mips-dec-osf1
-        exit ;;
+       GUESS=mips-dec-osf1
+       ;;
     alpha:OSF1:*:*)
+       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+       trap '' 0
        case $UNAME_RELEASE in
        *4.0)
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -289,7 +329,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        # covers most systems running today.  This code pipes the CPU
        # types through head -n 1, so we only detect the type of CPU 0.
        ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-       case "$ALPHA_CPU_TYPE" in
+       case $ALPHA_CPU_TYPE in
            "EV4 (21064)")
                UNAME_MACHINE=alpha ;;
            "EV4.5 (21064)")
@@ -326,75 +366,76 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
-       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-       exitcode=$?
-       trap '' 0
-       exit $exitcode ;;
+       OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+       GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+       ;;
     Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-unknown-sysv4
-       exit ;;
+       GUESS=m68k-unknown-sysv4
+       ;;
     *:[Aa]miga[Oo][Ss]:*:*)
-       echo "$UNAME_MACHINE"-unknown-amigaos
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-amigaos
+       ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-       echo "$UNAME_MACHINE"-unknown-morphos
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-morphos
+       ;;
     *:OS/390:*:*)
-       echo i370-ibm-openedition
-       exit ;;
+       GUESS=i370-ibm-openedition
+       ;;
     *:z/VM:*:*)
-       echo s390-ibm-zvmoe
-       exit ;;
+       GUESS=s390-ibm-zvmoe
+       ;;
     *:OS400:*:*)
-       echo powerpc-ibm-os400
-       exit ;;
+       GUESS=powerpc-ibm-os400
+       ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix"$UNAME_RELEASE"
-       exit ;;
+       GUESS=arm-acorn-riscix$UNAME_RELEASE
+       ;;
     arm*:riscos:*:*|arm*:RISCOS:*:*)
-       echo arm-unknown-riscos
-       exit ;;
+       GUESS=arm-unknown-riscos
+       ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-       echo hppa1.1-hitachi-hiuxmpp
-       exit ;;
+       GUESS=hppa1.1-hitachi-hiuxmpp
+       ;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-       if test "`(/bin/universe) 2>/dev/null`" = att ; then
-               echo pyramid-pyramid-sysv3
-       else
-               echo pyramid-pyramid-bsd
-       fi
-       exit ;;
+       case `(/bin/universe) 2>/dev/null` in
+           att) GUESS=pyramid-pyramid-sysv3 ;;
+           *)   GUESS=pyramid-pyramid-bsd   ;;
+       esac
+       ;;
     NILE*:*:*:dcosx)
-       echo pyramid-pyramid-svr4
-       exit ;;
+       GUESS=pyramid-pyramid-svr4
+       ;;
     DRS?6000:unix:4.0:6*)
-       echo sparc-icl-nx6
-       exit ;;
+       GUESS=sparc-icl-nx6
+       ;;
     DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
        case `/usr/bin/uname -p` in
-           sparc) echo sparc-icl-nx7; exit ;;
-       esac ;;
+           sparc) GUESS=sparc-icl-nx7 ;;
+       esac
+       ;;
     s390x:SunOS:*:*)
-       echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+       ;;
     sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=sparc-hal-solaris2$SUN_REL
+       ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=sparc-sun-solaris2$SUN_REL
+       ;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-       echo i386-pc-auroraux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=i386-pc-auroraux$UNAME_RELEASE
+       ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-       eval "$set_cc_for_build"
+       set_cc_for_build
        SUN_ARCH=i386
        # If there is a compiler, see if it is configured for 64-bit objects.
        # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
        # This test works for both compilers.
-       if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
            if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
                (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
                grep IS_64BIT_ARCH >/dev/null
@@ -402,41 +443,44 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
                SUN_ARCH=x86_64
            fi
        fi
-       echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+       ;;
     sun4*:SunOS:6*:*)
        # According to config.sub, this is the proper way to canonicalize
        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
        # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=sparc-sun-solaris3$SUN_REL
+       ;;
     sun4*:SunOS:*:*)
-       case "`/usr/bin/arch -k`" in
+       case `/usr/bin/arch -k` in
            Series*|S4*)
                UNAME_RELEASE=`uname -v`
                ;;
        esac
        # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+       GUESS=sparc-sun-sunos$SUN_REL
+       ;;
     sun3*:SunOS:*:*)
-       echo m68k-sun-sunos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-sun-sunos$UNAME_RELEASE
+       ;;
     sun*:*:4.2BSD:*)
        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
        test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
-       case "`/bin/arch`" in
+       case `/bin/arch` in
            sun3)
-               echo m68k-sun-sunos"$UNAME_RELEASE"
+               GUESS=m68k-sun-sunos$UNAME_RELEASE
                ;;
            sun4)
-               echo sparc-sun-sunos"$UNAME_RELEASE"
+               GUESS=sparc-sun-sunos$UNAME_RELEASE
                ;;
        esac
-       exit ;;
+       ;;
     aushp:SunOS:*:*)
-       echo sparc-auspex-sunos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sparc-auspex-sunos$UNAME_RELEASE
+       ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -446,43 +490,43 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-atari-mint$UNAME_RELEASE
+       ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-atari-mint$UNAME_RELEASE
+       ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-       echo m68k-atari-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-atari-mint$UNAME_RELEASE
+       ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-       echo m68k-milan-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-milan-mint$UNAME_RELEASE
+       ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-       echo m68k-hades-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-hades-mint$UNAME_RELEASE
+       ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-       echo m68k-unknown-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-unknown-mint$UNAME_RELEASE
+       ;;
     m68k:machten:*:*)
-       echo m68k-apple-machten"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-apple-machten$UNAME_RELEASE
+       ;;
     powerpc:machten:*:*)
-       echo powerpc-apple-machten"$UNAME_RELEASE"
-       exit ;;
+       GUESS=powerpc-apple-machten$UNAME_RELEASE
+       ;;
     RISC*:Mach:*:*)
-       echo mips-dec-mach_bsd4.3
-       exit ;;
+       GUESS=mips-dec-mach_bsd4.3
+       ;;
     RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix"$UNAME_RELEASE"
-       exit ;;
+       GUESS=mips-dec-ultrix$UNAME_RELEASE
+       ;;
     VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix"$UNAME_RELEASE"
-       exit ;;
+       GUESS=vax-dec-ultrix$UNAME_RELEASE
+       ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix"$UNAME_RELEASE"
-       exit ;;
+       GUESS=clipper-intergraph-clix$UNAME_RELEASE
+       ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-       eval "$set_cc_for_build"
+       set_cc_for_build
        sed 's/^        //' << EOF > "$dummy.c"
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
@@ -508,78 +552,79 @@ EOF
          dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
          SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
            { echo "$SYSTEM_NAME"; exit; }
-       echo mips-mips-riscos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=mips-mips-riscos$UNAME_RELEASE
+       ;;
     Motorola:PowerMAX_OS:*:*)
-       echo powerpc-motorola-powermax
-       exit ;;
+       GUESS=powerpc-motorola-powermax
+       ;;
     Motorola:*:4.3:PL8-*)
-       echo powerpc-harris-powermax
-       exit ;;
+       GUESS=powerpc-harris-powermax
+       ;;
     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-       echo powerpc-harris-powermax
-       exit ;;
+       GUESS=powerpc-harris-powermax
+       ;;
     Night_Hawk:Power_UNIX:*:*)
-       echo powerpc-harris-powerunix
-       exit ;;
+       GUESS=powerpc-harris-powerunix
+       ;;
     m88k:CX/UX:7*:*)
-       echo m88k-harris-cxux7
-       exit ;;
+       GUESS=m88k-harris-cxux7
+       ;;
     m88k:*:4*:R4*)
-       echo m88k-motorola-sysv4
-       exit ;;
+       GUESS=m88k-motorola-sysv4
+       ;;
     m88k:*:3*:R3*)
-       echo m88k-motorola-sysv3
-       exit ;;
+       GUESS=m88k-motorola-sysv3
+       ;;
     AViiON:dgux:*:*)
        # DG/UX returns AViiON for all architectures
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+       if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
        then
-           if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
-              [ "$TARGET_BINARY_INTERFACE"x = x ]
+           if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+              test "$TARGET_BINARY_INTERFACE"x = x
            then
-               echo m88k-dg-dgux"$UNAME_RELEASE"
+               GUESS=m88k-dg-dgux$UNAME_RELEASE
            else
-               echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+               GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
            fi
        else
-           echo i586-dg-dgux"$UNAME_RELEASE"
+           GUESS=i586-dg-dgux$UNAME_RELEASE
        fi
-       exit ;;
+       ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
-       echo m88k-dolphin-sysv3
-       exit ;;
+       GUESS=m88k-dolphin-sysv3
+       ;;
     M88*:*:R3*:*)
        # Delta 88k system running SVR3
-       echo m88k-motorola-sysv3
-       exit ;;
+       GUESS=m88k-motorola-sysv3
+       ;;
     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-       echo m88k-tektronix-sysv3
-       exit ;;
+       GUESS=m88k-tektronix-sysv3
+       ;;
     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-       echo m68k-tektronix-bsd
-       exit ;;
+       GUESS=m68k-tektronix-bsd
+       ;;
     *:IRIX*:*:*)
-       echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
-       exit ;;
+       IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+       GUESS=mips-sgi-irix$IRIX_REL
+       ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+       GUESS=romp-ibm-aix    # uname -m gives an 8 hex-code CPU id
+       ;;                    # Note that: echo "'`uname -s`'" gives 'AIX '
     i*86:AIX:*:*)
-       echo i386-ibm-aix
-       exit ;;
+       GUESS=i386-ibm-aix
+       ;;
     ia64:AIX:*:*)
-       if [ -x /usr/bin/oslevel ] ; then
+       if test -x /usr/bin/oslevel ; then
                IBM_REV=`/usr/bin/oslevel`
        else
-               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+               IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
        fi
-       echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
-       exit ;;
+       GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+       ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               eval "$set_cc_for_build"
+               set_cc_for_build
                sed 's/^                //' << EOF > "$dummy.c"
                #include <sys/systemcfg.h>
 
@@ -593,16 +638,16 @@ EOF
 EOF
                if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
                then
-                       echo "$SYSTEM_NAME"
+                       GUESS=$SYSTEM_NAME
                else
-                       echo rs6000-ibm-aix3.2.5
+                       GUESS=rs6000-ibm-aix3.2.5
                fi
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-               echo rs6000-ibm-aix3.2.4
+               GUESS=rs6000-ibm-aix3.2.4
        else
-               echo rs6000-ibm-aix3.2
+               GUESS=rs6000-ibm-aix3.2
        fi
-       exit ;;
+       ;;
     *:AIX:*:[4567])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
@@ -610,57 +655,57 @@ EOF
        else
                IBM_ARCH=powerpc
        fi
-       if [ -x /usr/bin/lslpp ] ; then
-               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+       if test -x /usr/bin/lslpp ; then
+               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
                           awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
-               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+               IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
        fi
-       echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
-       exit ;;
+       GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+       ;;
     *:AIX:*:*)
-       echo rs6000-ibm-aix
-       exit ;;
+       GUESS=rs6000-ibm-aix
+       ;;
     ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
-       echo romp-ibm-bsd4.4
-       exit ;;
+       GUESS=romp-ibm-bsd4.4
+       ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-       echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
-       exit ;;                             # report: romp-ibm BSD 4.3
+       GUESS=romp-ibm-bsd$UNAME_RELEASE    # 4.3 with uname added to
+       ;;                                  # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
-       echo rs6000-bull-bosx
-       exit ;;
+       GUESS=rs6000-bull-bosx
+       ;;
     DPX/2?00:B.O.S.:*:*)
-       echo m68k-bull-sysv3
-       exit ;;
+       GUESS=m68k-bull-sysv3
+       ;;
     9000/[34]??:4.3bsd:1.*:*)
-       echo m68k-hp-bsd
-       exit ;;
+       GUESS=m68k-hp-bsd
+       ;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-       echo m68k-hp-bsd4.4
-       exit ;;
+       GUESS=m68k-hp-bsd4.4
+       ;;
     9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
-       case "$UNAME_MACHINE" in
+       HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+       case $UNAME_MACHINE in
            9000/31?)            HP_ARCH=m68000 ;;
            9000/[34]??)         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
-               if [ -x /usr/bin/getconf ]; then
+               if test -x /usr/bin/getconf; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                   case "$sc_cpu_version" in
+                   case $sc_cpu_version in
                      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
                      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
                      532)                      # CPU_PA_RISC2_0
-                       case "$sc_kernel_bits" in
+                       case $sc_kernel_bits in
                          32) HP_ARCH=hppa2.0n ;;
                          64) HP_ARCH=hppa2.0w ;;
                          '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
                        esac ;;
                    esac
                fi
-               if [ "$HP_ARCH" = "" ]; then
-                   eval "$set_cc_for_build"
+               if test "$HP_ARCH" = ""; then
+                   set_cc_for_build
                    sed 's/^            //' << EOF > "$dummy.c"
 
                #define _HPUX_SOURCE
@@ -698,9 +743,9 @@ EOF
                    test -z "$HP_ARCH" && HP_ARCH=hppa
                fi ;;
        esac
-       if [ "$HP_ARCH" = hppa2.0w ]
+       if test "$HP_ARCH" = hppa2.0w
        then
-           eval "$set_cc_for_build"
+           set_cc_for_build
 
            # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
            # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
@@ -719,14 +764,14 @@ EOF
                HP_ARCH=hppa64
            fi
        fi
-       echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
-       exit ;;
+       GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+       ;;
     ia64:HP-UX:*:*)
-       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
-       echo ia64-hp-hpux"$HPUX_REV"
-       exit ;;
+       HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+       GUESS=ia64-hp-hpux$HPUX_REV
+       ;;
     3050*:HI-UX:*:*)
-       eval "$set_cc_for_build"
+       set_cc_for_build
        sed 's/^        //' << EOF > "$dummy.c"
        #include <unistd.h>
        int
@@ -754,36 +799,36 @@ EOF
 EOF
        $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
                { echo "$SYSTEM_NAME"; exit; }
-       echo unknown-hitachi-hiuxwe2
-       exit ;;
+       GUESS=unknown-hitachi-hiuxwe2
+       ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
-       echo hppa1.1-hp-bsd
-       exit ;;
+       GUESS=hppa1.1-hp-bsd
+       ;;
     9000/8??:4.3bsd:*:*)
-       echo hppa1.0-hp-bsd
-       exit ;;
+       GUESS=hppa1.0-hp-bsd
+       ;;
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-       echo hppa1.0-hp-mpeix
-       exit ;;
+       GUESS=hppa1.0-hp-mpeix
+       ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
-       echo hppa1.1-hp-osf
-       exit ;;
+       GUESS=hppa1.1-hp-osf
+       ;;
     hp8??:OSF1:*:*)
-       echo hppa1.0-hp-osf
-       exit ;;
+       GUESS=hppa1.0-hp-osf
+       ;;
     i*86:OSF1:*:*)
-       if [ -x /usr/sbin/sysversion ] ; then
-           echo "$UNAME_MACHINE"-unknown-osf1mk
+       if test -x /usr/sbin/sysversion ; then
+           GUESS=$UNAME_MACHINE-unknown-osf1mk
        else
-           echo "$UNAME_MACHINE"-unknown-osf1
+           GUESS=$UNAME_MACHINE-unknown-osf1
        fi
-       exit ;;
+       ;;
     parisc*:Lites*:*:*)
-       echo hppa1.1-hp-lites
-       exit ;;
+       GUESS=hppa1.1-hp-lites
+       ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-       echo c1-convex-bsd
-       exit ;;
+       GUESS=c1-convex-bsd
+       ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
@@ -791,17 +836,18 @@ EOF
        fi
        exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-       echo c34-convex-bsd
-       exit ;;
+       GUESS=c34-convex-bsd
+       ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-       echo c38-convex-bsd
-       exit ;;
+       GUESS=c38-convex-bsd
+       ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-       echo c4-convex-bsd
-       exit ;;
+       GUESS=c4-convex-bsd
+       ;;
     CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=ymp-cray-unicos$CRAY_REL
+       ;;
     CRAY*[A-Z]90:*:*:*)
        echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
@@ -809,103 +855,126 @@ EOF
              -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*TS:*:*:*)
-       echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=t90-cray-unicos$CRAY_REL
+       ;;
     CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=alphaev5-cray-unicosmk$CRAY_REL
+       ;;
     CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=sv1-cray-unicos$CRAY_REL
+       ;;
     *:UNICOS/mp:*:*)
-       echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=craynv-cray-unicosmp$CRAY_REL
+       ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
        FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
        FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
-       echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
+       GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+       ;;
     5000:UNIX_System_V:4.*:*)
        FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
        FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
-       echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
+       GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+       ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+       ;;
     sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+       ;;
     *:BSD/OS:*:*)
-       echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+       ;;
+    arm:FreeBSD:*:*)
+       UNAME_PROCESSOR=`uname -p`
+       set_cc_for_build
+       if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+           | grep -q __ARM_PCS_VFP
+       then
+           FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+           GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
+       else
+           FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+           GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
+       fi
+       ;;
     *:FreeBSD:*:*)
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       case "$UNAME_PROCESSOR" in
+       case $UNAME_PROCESSOR in
            amd64)
                UNAME_PROCESSOR=x86_64 ;;
            i386)
                UNAME_PROCESSOR=i586 ;;
        esac
-       echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
-       exit ;;
+       FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+       GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+       ;;
     i*:CYGWIN*:*)
-       echo "$UNAME_MACHINE"-pc-cygwin
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-cygwin
+       ;;
     *:MINGW64*:*)
-       echo "$UNAME_MACHINE"-pc-mingw64
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-mingw64
+       ;;
     *:MINGW*:*)
-       echo "$UNAME_MACHINE"-pc-mingw32
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-mingw32
+       ;;
     *:MSYS*:*)
-       echo "$UNAME_MACHINE"-pc-msys
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-msys
+       ;;
     i*:PW*:*)
-       echo "$UNAME_MACHINE"-pc-pw32
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-pw32
+       ;;
     *:Interix*:*)
-       case "$UNAME_MACHINE" in
+       case $UNAME_MACHINE in
            x86)
-               echo i586-pc-interix"$UNAME_RELEASE"
-               exit ;;
+               GUESS=i586-pc-interix$UNAME_RELEASE
+               ;;
            authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix"$UNAME_RELEASE"
-               exit ;;
+               GUESS=x86_64-unknown-interix$UNAME_RELEASE
+               ;;
            IA64)
-               echo ia64-unknown-interix"$UNAME_RELEASE"
-               exit ;;
+               GUESS=ia64-unknown-interix$UNAME_RELEASE
+               ;;
        esac ;;
     i*:UWIN*:*)
-       echo "$UNAME_MACHINE"-pc-uwin
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-uwin
+       ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-       echo x86_64-unknown-cygwin
-       exit ;;
+       GUESS=x86_64-pc-cygwin
+       ;;
     prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=powerpcle-unknown-solaris2$SUN_REL
+       ;;
     *:GNU:*:*)
        # the GNU system
-       echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
-       exit ;;
+       GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+       GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+       GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+       ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
-       exit ;;
-    i*86:Minix:*:*)
-       echo "$UNAME_MACHINE"-pc-minix
-       exit ;;
+       GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+       GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+       GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+       ;;
+    *:Minix:*:*)
+       GUESS=$UNAME_MACHINE-unknown-minix
+       ;;
     aarch64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     alpha:Linux:*:*)
-       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
          EV5)   UNAME_MACHINE=alphaev5 ;;
          EV56)  UNAME_MACHINE=alphaev56 ;;
          PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -916,183 +985,225 @@ EOF
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
-    arc:Linux:*:* | arceb:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
+    arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     arm*:Linux:*:*)
-       eval "$set_cc_for_build"
+       set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+           GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+               GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
            else
-               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+               GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
            fi
        fi
-       exit ;;
+       ;;
     avr32*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     cris:Linux:*:*)
-       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+       ;;
     crisv32:Linux:*:*)
-       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+       ;;
     e2k:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     frv:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     hexagon:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     i*86:Linux:*:*)
-       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+       ;;
     ia64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     k1om:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
+    loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     m32r*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     m68*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     mips:Linux:*:* | mips64:Linux:*:*)
-       eval "$set_cc_for_build"
+       set_cc_for_build
+       IS_GLIBC=0
+       test x"${LIBC}" = xgnu && IS_GLIBC=1
        sed 's/^        //' << EOF > "$dummy.c"
        #undef CPU
-       #undef ${UNAME_MACHINE}
-       #undef ${UNAME_MACHINE}el
+       #undef mips
+       #undef mipsel
+       #undef mips64
+       #undef mips64el
+       #if ${IS_GLIBC} && defined(_ABI64)
+       LIBCABI=gnuabi64
+       #else
+       #if ${IS_GLIBC} && defined(_ABIN32)
+       LIBCABI=gnuabin32
+       #else
+       LIBCABI=${LIBC}
+       #endif
+       #endif
+
+       #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+       CPU=mipsisa64r6
+       #else
+       #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+       CPU=mipsisa32r6
+       #else
+       #if defined(__mips64)
+       CPU=mips64
+       #else
+       CPU=mips
+       #endif
+       #endif
+       #endif
+
        #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=${UNAME_MACHINE}el
+       MIPS_ENDIAN=el
        #else
        #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=${UNAME_MACHINE}
+       MIPS_ENDIAN=
        #else
-       CPU=
+       MIPS_ENDIAN=
        #endif
        #endif
 EOF
-       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
-       test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
+       cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+       eval "$cc_set_vars"
+       test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
        ;;
     mips64el:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     openrisc*:Linux:*:*)
-       echo or1k-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=or1k-unknown-linux-$LIBC
+       ;;
     or32:Linux:*:* | or1k*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=sparc-unknown-linux-$LIBC
+       ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=hppa64-unknown-linux-$LIBC
+       ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
-         PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
-         *)    echo hppa-unknown-linux-"$LIBC" ;;
+         PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+         PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+         *)    GUESS=hppa-unknown-linux-$LIBC ;;
        esac
-       exit ;;
+       ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=powerpc64-unknown-linux-$LIBC
+       ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=powerpc-unknown-linux-$LIBC
+       ;;
     ppc64le:Linux:*:*)
-       echo powerpc64le-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=powerpc64le-unknown-linux-$LIBC
+       ;;
     ppcle:Linux:*:*)
-       echo powerpcle-unknown-linux-"$LIBC"
-       exit ;;
-    riscv32:Linux:*:* | riscv64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=powerpcle-unknown-linux-$LIBC
+       ;;
+    riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+       ;;
     sh64*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     sh*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     tile*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     vax:Linux:*:*)
-       echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+       ;;
     x86_64:Linux:*:*)
-       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
-       exit ;;
+       set_cc_for_build
+       LIBCABI=$LIBC
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
+           if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
+               (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_X32 >/dev/null
+           then
+               LIBCABI=${LIBC}x32
+           fi
+       fi
+       GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+       ;;
     xtensa*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
        # earlier versions are messed up and put the nodename in both
        # sysname and nodename.
-       echo i386-sequent-sysv4
-       exit ;;
+       GUESS=i386-sequent-sysv4
+       ;;
     i*86:UNIX_SV:4.2MP:2.*)
        # Unixware is an offshoot of SVR4, but it has its own version
        # number series starting with 2...
        # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
        # Use sysv4.2uw... so that sysv4* matches it.
-       echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+       ;;
     i*86:OS/2:*:*)
        # If we were able to find `uname', then EMX Unix compatibility
        # is probably installed.
-       echo "$UNAME_MACHINE"-pc-os2-emx
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-os2-emx
+       ;;
     i*86:XTS-300:*:STOP)
-       echo "$UNAME_MACHINE"-unknown-stop
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-stop
+       ;;
     i*86:atheos:*:*)
-       echo "$UNAME_MACHINE"-unknown-atheos
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-atheos
+       ;;
     i*86:syllable:*:*)
-       echo "$UNAME_MACHINE"-pc-syllable
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-syllable
+       ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-       echo i386-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=i386-unknown-lynxos$UNAME_RELEASE
+       ;;
     i*86:*DOS:*:*)
-       echo "$UNAME_MACHINE"-pc-msdosdjgpp
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+       ;;
     i*86:*:4.*:*)
        UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+               GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
        else
-               echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+               GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
        fi
-       exit ;;
+       ;;
     i*86:*:5:[678]*)
        # UnixWare 7.x, OpenUNIX and OpenServer 6.
        case `/bin/uname -X | grep "^Machine"` in
@@ -1100,12 +1211,12 @@ EOF
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
-       echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       ;;
     i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
+               GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
        elif /bin/uname -X 2>/dev/null >/dev/null ; then
                UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
                (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1115,11 +1226,11 @@ EOF
                        && UNAME_MACHINE=i686
                (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
                        && UNAME_MACHINE=i686
-               echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+               GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
        else
-               echo "$UNAME_MACHINE"-pc-sysv32
+               GUESS=$UNAME_MACHINE-pc-sysv32
        fi
-       exit ;;
+       ;;
     pc:*:*:*)
        # Left here for compatibility:
        # uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1127,31 +1238,31 @@ EOF
        # Note: whatever this is, it MUST be the same as what config.sub
        # prints for the "djgpp" host, or else GDB configure will decide that
        # this is a cross-build.
-       echo i586-pc-msdosdjgpp
-       exit ;;
+       GUESS=i586-pc-msdosdjgpp
+       ;;
     Intel:Mach:3*:*)
-       echo i386-pc-mach3
-       exit ;;
+       GUESS=i386-pc-mach3
+       ;;
     paragon:*:*:*)
-       echo i860-intel-osf1
-       exit ;;
+       GUESS=i860-intel-osf1
+       ;;
     i860:*:4.*:*) # i860-SVR4
        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
+         GUESS=i860-stardent-sysv$UNAME_RELEASE    # Stardent Vistra i860-SVR4
        else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
+         GUESS=i860-unknown-sysv$UNAME_RELEASE     # Unknown i860-SVR4
        fi
-       exit ;;
+       ;;
     mini*:CTIX:SYS*5:*)
        # "miniframe"
-       echo m68010-convergent-sysv
-       exit ;;
+       GUESS=m68010-convergent-sysv
+       ;;
     mc68k:UNIX:SYSTEM5:3.51m)
-       echo m68k-convergent-sysv
-       exit ;;
+       GUESS=m68k-convergent-sysv
+       ;;
     M680?0:D-NIX:5.3:*)
-       echo m68k-diab-dnix
-       exit ;;
+       GUESS=m68k-diab-dnix
+       ;;
     M68*:*:R3V[5678]*:*)
        test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1176,249 +1287,401 @@ EOF
        /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
            && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+       ;;
     mc68030:UNIX_System_V:4.*:*)
-       echo m68k-atari-sysv4
-       exit ;;
+       GUESS=m68k-atari-sysv4
+       ;;
     TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+       ;;
     rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+       ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+       ;;
     SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv"$UNAME_RELEASE"
-       exit ;;
+       GUESS=mips-dde-sysv$UNAME_RELEASE
+       ;;
     RM*:ReliantUNIX-*:*:*)
-       echo mips-sni-sysv4
-       exit ;;
+       GUESS=mips-sni-sysv4
+       ;;
     RM*:SINIX-*:*:*)
-       echo mips-sni-sysv4
-       exit ;;
+       GUESS=mips-sni-sysv4
+       ;;
     *:SINIX-*:*:*)
        if uname -p 2>/dev/null >/dev/null ; then
                UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo "$UNAME_MACHINE"-sni-sysv4
+               GUESS=$UNAME_MACHINE-sni-sysv4
        else
-               echo ns32k-sni-sysv
+               GUESS=ns32k-sni-sysv
        fi
-       exit ;;
+       ;;
     PENTIUM:*:4.0*:*)  # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
                        # says <Richard.M.Bartel@ccMail.Census.GOV>
-       echo i586-unisys-sysv4
-       exit ;;
+       GUESS=i586-unisys-sysv4
+       ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
-       echo hppa1.1-stratus-sysv4
-       exit ;;
+       GUESS=hppa1.1-stratus-sysv4
+       ;;
     *:*:*:FTX*)
        # From seanf@swdc.stratus.com.
-       echo i860-stratus-sysv4
-       exit ;;
+       GUESS=i860-stratus-sysv4
+       ;;
     i*86:VOS:*:*)
        # From Paul.Green@stratus.com.
-       echo "$UNAME_MACHINE"-stratus-vos
-       exit ;;
+       GUESS=$UNAME_MACHINE-stratus-vos
+       ;;
     *:VOS:*:*)
        # From Paul.Green@stratus.com.
-       echo hppa1.1-stratus-vos
-       exit ;;
+       GUESS=hppa1.1-stratus-vos
+       ;;
     mc68*:A/UX:*:*)
-       echo m68k-apple-aux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-apple-aux$UNAME_RELEASE
+       ;;
     news*:NEWS-OS:6*:*)
-       echo mips-sony-newsos6
-       exit ;;
+       GUESS=mips-sony-newsos6
+       ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
-               echo mips-nec-sysv"$UNAME_RELEASE"
+       if test -d /usr/nec; then
+               GUESS=mips-nec-sysv$UNAME_RELEASE
        else
-               echo mips-unknown-sysv"$UNAME_RELEASE"
+               GUESS=mips-unknown-sysv$UNAME_RELEASE
        fi
-       exit ;;
+       ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
-       echo powerpc-be-beos
-       exit ;;
+       GUESS=powerpc-be-beos
+       ;;
     BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
-       echo powerpc-apple-beos
-       exit ;;
+       GUESS=powerpc-apple-beos
+       ;;
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
-       echo i586-pc-beos
-       exit ;;
+       GUESS=i586-pc-beos
+       ;;
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
-       echo i586-pc-haiku
-       exit ;;
+       GUESS=i586-pc-haiku
+       ;;
     x86_64:Haiku:*:*)
-       echo x86_64-unknown-haiku
-       exit ;;
+       GUESS=x86_64-unknown-haiku
+       ;;
     SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx4-nec-superux$UNAME_RELEASE
+       ;;
     SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx5-nec-superux$UNAME_RELEASE
+       ;;
     SX-6:SUPER-UX:*:*)
-       echo sx6-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx6-nec-superux$UNAME_RELEASE
+       ;;
     SX-7:SUPER-UX:*:*)
-       echo sx7-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx7-nec-superux$UNAME_RELEASE
+       ;;
     SX-8:SUPER-UX:*:*)
-       echo sx8-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx8-nec-superux$UNAME_RELEASE
+       ;;
     SX-8R:SUPER-UX:*:*)
-       echo sx8r-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx8r-nec-superux$UNAME_RELEASE
+       ;;
     SX-ACE:SUPER-UX:*:*)
-       echo sxace-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sxace-nec-superux$UNAME_RELEASE
+       ;;
     Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody"$UNAME_RELEASE"
-       exit ;;
+       GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+       ;;
     *:Rhapsody:*:*)
-       echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+       ;;
+    arm64:Darwin:*:*)
+       GUESS=aarch64-apple-darwin$UNAME_RELEASE
+       ;;
     *:Darwin:*:*)
-       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       eval "$set_cc_for_build"
-       if test "$UNAME_PROCESSOR" = unknown ; then
-           UNAME_PROCESSOR=powerpc
+       UNAME_PROCESSOR=`uname -p`
+       case $UNAME_PROCESSOR in
+           unknown) UNAME_PROCESSOR=powerpc ;;
+       esac
+       if command -v xcode-select > /dev/null 2> /dev/null && \
+               ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+           # Avoid executing cc if there is no toolchain installed as
+           # cc will be a stub that puts up a graphical alert
+           # prompting the user to install developer tools.
+           CC_FOR_BUILD=no_compiler_found
+       else
+           set_cc_for_build
        fi
-       if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
-           if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
-               if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-                      (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-                      grep IS_64BIT_ARCH >/dev/null
-               then
-                   case $UNAME_PROCESSOR in
-                       i386) UNAME_PROCESSOR=x86_64 ;;
-                       powerpc) UNAME_PROCESSOR=powerpc64 ;;
-                   esac
-               fi
-               # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
-               if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
-                      (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-                      grep IS_PPC >/dev/null
-               then
-                   UNAME_PROCESSOR=powerpc
-               fi
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
+           if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+                  (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                  grep IS_64BIT_ARCH >/dev/null
+           then
+               case $UNAME_PROCESSOR in
+                   i386) UNAME_PROCESSOR=x86_64 ;;
+                   powerpc) UNAME_PROCESSOR=powerpc64 ;;
+               esac
+           fi
+           # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+           if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+                  (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                  grep IS_PPC >/dev/null
+           then
+               UNAME_PROCESSOR=powerpc
            fi
        elif test "$UNAME_PROCESSOR" = i386 ; then
-           # Avoid executing cc on OS X 10.9, as it ships with a stub
-           # that puts up a graphical alert prompting to install
-           # developer tools.  Any system running Mac OS X 10.7 or
-           # later (Darwin 11 and later) is required to have a 64-bit
-           # processor. This is not true of the ARM version of Darwin
-           # that Apple uses in portable devices.
-           UNAME_PROCESSOR=x86_64
+           # uname -m returns i386 or x86_64
+           UNAME_PROCESSOR=$UNAME_MACHINE
        fi
-       echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+       ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
        if test "$UNAME_PROCESSOR" = x86; then
                UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
        fi
-       echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+       ;;
     *:QNX:*:4*)
-       echo i386-pc-qnx
-       exit ;;
+       GUESS=i386-pc-qnx
+       ;;
     NEO-*:NONSTOP_KERNEL:*:*)
-       echo neo-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=neo-tandem-nsk$UNAME_RELEASE
+       ;;
     NSE-*:NONSTOP_KERNEL:*:*)
-       echo nse-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=nse-tandem-nsk$UNAME_RELEASE
+       ;;
     NSR-*:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=nsr-tandem-nsk$UNAME_RELEASE
+       ;;
     NSV-*:NONSTOP_KERNEL:*:*)
-       echo nsv-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=nsv-tandem-nsk$UNAME_RELEASE
+       ;;
     NSX-*:NONSTOP_KERNEL:*:*)
-       echo nsx-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=nsx-tandem-nsk$UNAME_RELEASE
+       ;;
     *:NonStop-UX:*:*)
-       echo mips-compaq-nonstopux
-       exit ;;
+       GUESS=mips-compaq-nonstopux
+       ;;
     BS2000:POSIX*:*:*)
-       echo bs2000-siemens-sysv
-       exit ;;
+       GUESS=bs2000-siemens-sysv
+       ;;
     DS/*:UNIX_System_V:*:*)
-       echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+       ;;
     *:Plan9:*:*)
        # "uname -m" is not consistent, so use $cputype instead. 386
        # is converted to i386 for consistency with other x86
        # operating systems.
-       if test "$cputype" = 386; then
+       if test "${cputype-}" = 386; then
            UNAME_MACHINE=i386
-       else
-           UNAME_MACHINE="$cputype"
+       elif test "x${cputype-}" != x; then
+           UNAME_MACHINE=$cputype
        fi
-       echo "$UNAME_MACHINE"-unknown-plan9
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-plan9
+       ;;
     *:TOPS-10:*:*)
-       echo pdp10-unknown-tops10
-       exit ;;
+       GUESS=pdp10-unknown-tops10
+       ;;
     *:TENEX:*:*)
-       echo pdp10-unknown-tenex
-       exit ;;
+       GUESS=pdp10-unknown-tenex
+       ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-       echo pdp10-dec-tops20
-       exit ;;
+       GUESS=pdp10-dec-tops20
+       ;;
     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-       echo pdp10-xkl-tops20
-       exit ;;
+       GUESS=pdp10-xkl-tops20
+       ;;
     *:TOPS-20:*:*)
-       echo pdp10-unknown-tops20
-       exit ;;
+       GUESS=pdp10-unknown-tops20
+       ;;
     *:ITS:*:*)
-       echo pdp10-unknown-its
-       exit ;;
+       GUESS=pdp10-unknown-its
+       ;;
     SEI:*:*:SEIUX)
-       echo mips-sei-seiux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=mips-sei-seiux$UNAME_RELEASE
+       ;;
     *:DragonFly:*:*)
-       echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
-       exit ;;
+       DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+       GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+       ;;
     *:*VMS:*:*)
        UNAME_MACHINE=`(uname -p) 2>/dev/null`
-       case "$UNAME_MACHINE" in
-           A*) echo alpha-dec-vms ; exit ;;
-           I*) echo ia64-dec-vms ; exit ;;
-           V*) echo vax-dec-vms ; exit ;;
+       case $UNAME_MACHINE in
+           A*) GUESS=alpha-dec-vms ;;
+           I*) GUESS=ia64-dec-vms ;;
+           V*) GUESS=vax-dec-vms ;;
        esac ;;
     *:XENIX:*:SysV)
-       echo i386-pc-xenix
-       exit ;;
+       GUESS=i386-pc-xenix
+       ;;
     i*86:skyos:*:*)
-       echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
-       exit ;;
+       SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+       GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+       ;;
     i*86:rdos:*:*)
-       echo "$UNAME_MACHINE"-pc-rdos
-       exit ;;
-    i*86:AROS:*:*)
-       echo "$UNAME_MACHINE"-pc-aros
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-rdos
+       ;;
+    *:AROS:*:*)
+       GUESS=$UNAME_MACHINE-unknown-aros
+       ;;
     x86_64:VMkernel:*:*)
-       echo "$UNAME_MACHINE"-unknown-esx
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-esx
+       ;;
     amd64:Isilon\ OneFS:*:*)
-       echo x86_64-unknown-onefs
-       exit ;;
+       GUESS=x86_64-unknown-onefs
+       ;;
+    *:Unleashed:*:*)
+       GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+       ;;
 esac
 
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+    echo "$GUESS"
+    exit
+fi
+
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+  "4"
+#else
+  ""
+#endif
+  ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+  struct utsname un;
+
+  uname(&un);
+  if (strncmp(un.version, "V2", 2) == 0) {
+    printf ("i386-sequent-ptx2\n"); exit (0);
+  }
+  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+    printf ("i386-sequent-ptx1\n"); exit (0);
+  }
+  printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+  printf ("vax-dec-bsd4.3\n"); exit (0);
+#else
+#if BSD == 199006
+  printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#else
+  printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#endif
+#else
+  printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+  struct utsname un;
+  uname (&un);
+  printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+  printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+  struct utsname *un;
+  uname (&un);
+  printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+  printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
+       { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
 echo "$0: unable to guess system type" >&2
 
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+case $UNAME_MACHINE:$UNAME_SYSTEM in
     mips:Linux | mips64:Linux)
        # If we got here on MIPS GNU/Linux, output extra information.
        cat >&2 <<EOF
@@ -1435,9 +1698,17 @@ This script (version $timestamp), has failed to recognize the
 operating system you are using. If your script is old, overwrite *all*
 copies of config.guess and config.sub with the latest versions from:
 
-  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+  https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
 and
-  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+  https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
+
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+   cat >&2 <<EOF
 
 If $0 has already been updated, send the following data and any
 information you think might be pertinent to config-patches@gnu.org to
@@ -1465,6 +1736,7 @@ UNAME_RELEASE = "$UNAME_RELEASE"
 UNAME_SYSTEM  = "$UNAME_SYSTEM"
 UNAME_VERSION = "$UNAME_VERSION"
 EOF
+fi
 
 exit 1
 
index ba37cf99e26b9dbb70683696a42545bc548418a6..d74fb6deac942a4e21f49fa752c3280e66c196a0 100755 (executable)
@@ -1,8 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2018 Free Software Foundation, Inc.
+#   Copyright 1992-2021 Free Software Foundation, Inc.
 
-timestamp='2018-04-24'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2021-08-14'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -33,7 +35,7 @@ timestamp='2018-04-24'
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -50,6 +52,13 @@ timestamp='2018-04-24'
 #      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
 # It is wrong to echo any other type of specification.
 
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX.  However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
@@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2021 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -89,7 +98,7 @@ while test $# -gt 0 ; do
     - )        # Use stdin as input.
        break ;;
     -* )
-       echo "$me: invalid option $1$help"
+       echo "$me: invalid option $1$help" >&2
        exit 1 ;;
 
     *local*)
@@ -110,1227 +119,1181 @@ case $# in
     exit 1;;
 esac
 
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
-  kopensolaris*-gnu* | cloudabi*-eabi* | \
-  storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  android-linux)
-    os=-linux-android
-    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-    ;;
-  *)
-    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
-    if [ "$basic_machine" != "$1" ]
-    then os=`echo "$1" | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
+# Split fields of configuration type
+# shellcheck disable=SC2162
+saved_IFS=$IFS
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
+IFS=$saved_IFS
 
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-       -sun*os*)
-               # Prevent following clause from handling this invalid input.
-               ;;
-       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis | -knuth | -cray | -microblaze*)
-               os=
-               basic_machine=$1
-               ;;
-       -bluegene*)
-               os=-cnk
-               ;;
-       -sim | -cisco | -oki | -wec | -winbond)
-               os=
-               basic_machine=$1
-               ;;
-       -scout)
-               ;;
-       -wrs)
-               os=-vxworks
-               basic_machine=$1
-               ;;
-       -chorusos*)
-               os=-chorusos
-               basic_machine=$1
-               ;;
-       -chorusrdb)
-               os=-chorusrdb
-               basic_machine=$1
-               ;;
-       -hiux*)
-               os=-hiuxwe2
-               ;;
-       -sco6)
-               os=-sco5v6
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco5)
-               os=-sco3.2v5
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco4)
-               os=-sco3.2v4
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2v[4-9]*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco5v6*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco*)
-               os=-sco3.2v2
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -udk*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -isc)
-               os=-isc2.2
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -clix*)
-               basic_machine=clipper-intergraph
-               ;;
-       -isc*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -lynx*178)
-               os=-lynxos178
-               ;;
-       -lynx*5)
-               os=-lynxos5
+# Separate into logical components for further validation
+case $1 in
+       *-*-*-*-*)
+               echo Invalid configuration \`"$1"\': more than four components >&2
+               exit 1
                ;;
-       -lynx*)
-               os=-lynxos
+       *-*-*-*)
+               basic_machine=$field1-$field2
+               basic_os=$field3-$field4
                ;;
-       -ptx*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
+       *-*-*)
+               # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+               # parts
+               maybe_os=$field2-$field3
+               case $maybe_os in
+                       nto-qnx* | linux-* | uclinux-uclibc* \
+                       | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+                       | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+                       | storm-chaos* | os2-emx* | rtmk-nova*)
+                               basic_machine=$field1
+                               basic_os=$maybe_os
+                               ;;
+                       android-linux)
+                               basic_machine=$field1-unknown
+                               basic_os=linux-android
+                               ;;
+                       *)
+                               basic_machine=$field1-$field2
+                               basic_os=$field3
+                               ;;
+               esac
                ;;
-       -psos*)
-               os=-psos
+       *-*)
+               # A lone config we happen to match not fitting any pattern
+               case $field1-$field2 in
+                       decstation-3100)
+                               basic_machine=mips-dec
+                               basic_os=
+                               ;;
+                       *-*)
+                               # Second component is usually, but not always the OS
+                               case $field2 in
+                                       # Prevent following clause from handling this valid os
+                                       sun*os*)
+                                               basic_machine=$field1
+                                               basic_os=$field2
+                                               ;;
+                                       zephyr*)
+                                               basic_machine=$field1-unknown
+                                               basic_os=$field2
+                                               ;;
+                                       # Manufacturers
+                                       dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+                                       | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+                                       | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+                                       | convergent* | ncr* | news | 32* | 3600* | 3100* \
+                                       | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+                                       | ultra | tti* | harris | dolphin | highlevel | gould \
+                                       | cbm | ns | masscomp | apple | axis | knuth | cray \
+                                       | microblaze* | sim | cisco \
+                                       | oki | wec | wrs | winbond)
+                                               basic_machine=$field1-$field2
+                                               basic_os=
+                                               ;;
+                                       *)
+                                               basic_machine=$field1
+                                               basic_os=$field2
+                                               ;;
+                               esac
+                       ;;
+               esac
                ;;
-       -mint | -mint[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
+       *)
+               # Convert single-component short-hands not valid as part of
+               # multi-component configurations.
+               case $field1 in
+                       386bsd)
+                               basic_machine=i386-pc
+                               basic_os=bsd
+                               ;;
+                       a29khif)
+                               basic_machine=a29k-amd
+                               basic_os=udi
+                               ;;
+                       adobe68k)
+                               basic_machine=m68010-adobe
+                               basic_os=scout
+                               ;;
+                       alliant)
+                               basic_machine=fx80-alliant
+                               basic_os=
+                               ;;
+                       altos | altos3068)
+                               basic_machine=m68k-altos
+                               basic_os=
+                               ;;
+                       am29k)
+                               basic_machine=a29k-none
+                               basic_os=bsd
+                               ;;
+                       amdahl)
+                               basic_machine=580-amdahl
+                               basic_os=sysv
+                               ;;
+                       amiga)
+                               basic_machine=m68k-unknown
+                               basic_os=
+                               ;;
+                       amigaos | amigados)
+                               basic_machine=m68k-unknown
+                               basic_os=amigaos
+                               ;;
+                       amigaunix | amix)
+                               basic_machine=m68k-unknown
+                               basic_os=sysv4
+                               ;;
+                       apollo68)
+                               basic_machine=m68k-apollo
+                               basic_os=sysv
+                               ;;
+                       apollo68bsd)
+                               basic_machine=m68k-apollo
+                               basic_os=bsd
+                               ;;
+                       aros)
+                               basic_machine=i386-pc
+                               basic_os=aros
+                               ;;
+                       aux)
+                               basic_machine=m68k-apple
+                               basic_os=aux
+                               ;;
+                       balance)
+                               basic_machine=ns32k-sequent
+                               basic_os=dynix
+                               ;;
+                       blackfin)
+                               basic_machine=bfin-unknown
+                               basic_os=linux
+                               ;;
+                       cegcc)
+                               basic_machine=arm-unknown
+                               basic_os=cegcc
+                               ;;
+                       convex-c1)
+                               basic_machine=c1-convex
+                               basic_os=bsd
+                               ;;
+                       convex-c2)
+                               basic_machine=c2-convex
+                               basic_os=bsd
+                               ;;
+                       convex-c32)
+                               basic_machine=c32-convex
+                               basic_os=bsd
+                               ;;
+                       convex-c34)
+                               basic_machine=c34-convex
+                               basic_os=bsd
+                               ;;
+                       convex-c38)
+                               basic_machine=c38-convex
+                               basic_os=bsd
+                               ;;
+                       cray)
+                               basic_machine=j90-cray
+                               basic_os=unicos
+                               ;;
+                       crds | unos)
+                               basic_machine=m68k-crds
+                               basic_os=
+                               ;;
+                       da30)
+                               basic_machine=m68k-da30
+                               basic_os=
+                               ;;
+                       decstation | pmax | pmin | dec3100 | decstatn)
+                               basic_machine=mips-dec
+                               basic_os=
+                               ;;
+                       delta88)
+                               basic_machine=m88k-motorola
+                               basic_os=sysv3
+                               ;;
+                       dicos)
+                               basic_machine=i686-pc
+                               basic_os=dicos
+                               ;;
+                       djgpp)
+                               basic_machine=i586-pc
+                               basic_os=msdosdjgpp
+                               ;;
+                       ebmon29k)
+                               basic_machine=a29k-amd
+                               basic_os=ebmon
+                               ;;
+                       es1800 | OSE68k | ose68k | ose | OSE)
+                               basic_machine=m68k-ericsson
+                               basic_os=ose
+                               ;;
+                       gmicro)
+                               basic_machine=tron-gmicro
+                               basic_os=sysv
+                               ;;
+                       go32)
+                               basic_machine=i386-pc
+                               basic_os=go32
+                               ;;
+                       h8300hms)
+                               basic_machine=h8300-hitachi
+                               basic_os=hms
+                               ;;
+                       h8300xray)
+                               basic_machine=h8300-hitachi
+                               basic_os=xray
+                               ;;
+                       h8500hms)
+                               basic_machine=h8500-hitachi
+                               basic_os=hms
+                               ;;
+                       harris)
+                               basic_machine=m88k-harris
+                               basic_os=sysv3
+                               ;;
+                       hp300 | hp300hpux)
+                               basic_machine=m68k-hp
+                               basic_os=hpux
+                               ;;
+                       hp300bsd)
+                               basic_machine=m68k-hp
+                               basic_os=bsd
+                               ;;
+                       hppaosf)
+                               basic_machine=hppa1.1-hp
+                               basic_os=osf
+                               ;;
+                       hppro)
+                               basic_machine=hppa1.1-hp
+                               basic_os=proelf
+                               ;;
+                       i386mach)
+                               basic_machine=i386-mach
+                               basic_os=mach
+                               ;;
+                       isi68 | isi)
+                               basic_machine=m68k-isi
+                               basic_os=sysv
+                               ;;
+                       m68knommu)
+                               basic_machine=m68k-unknown
+                               basic_os=linux
+                               ;;
+                       magnum | m3230)
+                               basic_machine=mips-mips
+                               basic_os=sysv
+                               ;;
+                       merlin)
+                               basic_machine=ns32k-utek
+                               basic_os=sysv
+                               ;;
+                       mingw64)
+                               basic_machine=x86_64-pc
+                               basic_os=mingw64
+                               ;;
+                       mingw32)
+                               basic_machine=i686-pc
+                               basic_os=mingw32
+                               ;;
+                       mingw32ce)
+                               basic_machine=arm-unknown
+                               basic_os=mingw32ce
+                               ;;
+                       monitor)
+                               basic_machine=m68k-rom68k
+                               basic_os=coff
+                               ;;
+                       morphos)
+                               basic_machine=powerpc-unknown
+                               basic_os=morphos
+                               ;;
+                       moxiebox)
+                               basic_machine=moxie-unknown
+                               basic_os=moxiebox
+                               ;;
+                       msdos)
+                               basic_machine=i386-pc
+                               basic_os=msdos
+                               ;;
+                       msys)
+                               basic_machine=i686-pc
+                               basic_os=msys
+                               ;;
+                       mvs)
+                               basic_machine=i370-ibm
+                               basic_os=mvs
+                               ;;
+                       nacl)
+                               basic_machine=le32-unknown
+                               basic_os=nacl
+                               ;;
+                       ncr3000)
+                               basic_machine=i486-ncr
+                               basic_os=sysv4
+                               ;;
+                       netbsd386)
+                               basic_machine=i386-pc
+                               basic_os=netbsd
+                               ;;
+                       netwinder)
+                               basic_machine=armv4l-rebel
+                               basic_os=linux
+                               ;;
+                       news | news700 | news800 | news900)
+                               basic_machine=m68k-sony
+                               basic_os=newsos
+                               ;;
+                       news1000)
+                               basic_machine=m68030-sony
+                               basic_os=newsos
+                               ;;
+                       necv70)
+                               basic_machine=v70-nec
+                               basic_os=sysv
+                               ;;
+                       nh3000)
+                               basic_machine=m68k-harris
+                               basic_os=cxux
+                               ;;
+                       nh[45]000)
+                               basic_machine=m88k-harris
+                               basic_os=cxux
+                               ;;
+                       nindy960)
+                               basic_machine=i960-intel
+                               basic_os=nindy
+                               ;;
+                       mon960)
+                               basic_machine=i960-intel
+                               basic_os=mon960
+                               ;;
+                       nonstopux)
+                               basic_machine=mips-compaq
+                               basic_os=nonstopux
+                               ;;
+                       os400)
+                               basic_machine=powerpc-ibm
+                               basic_os=os400
+                               ;;
+                       OSE68000 | ose68000)
+                               basic_machine=m68000-ericsson
+                               basic_os=ose
+                               ;;
+                       os68k)
+                               basic_machine=m68k-none
+                               basic_os=os68k
+                               ;;
+                       paragon)
+                               basic_machine=i860-intel
+                               basic_os=osf
+                               ;;
+                       parisc)
+                               basic_machine=hppa-unknown
+                               basic_os=linux
+                               ;;
+                       psp)
+                               basic_machine=mipsallegrexel-sony
+                               basic_os=psp
+                               ;;
+                       pw32)
+                               basic_machine=i586-unknown
+                               basic_os=pw32
+                               ;;
+                       rdos | rdos64)
+                               basic_machine=x86_64-pc
+                               basic_os=rdos
+                               ;;
+                       rdos32)
+                               basic_machine=i386-pc
+                               basic_os=rdos
+                               ;;
+                       rom68k)
+                               basic_machine=m68k-rom68k
+                               basic_os=coff
+                               ;;
+                       sa29200)
+                               basic_machine=a29k-amd
+                               basic_os=udi
+                               ;;
+                       sei)
+                               basic_machine=mips-sei
+                               basic_os=seiux
+                               ;;
+                       sequent)
+                               basic_machine=i386-sequent
+                               basic_os=
+                               ;;
+                       sps7)
+                               basic_machine=m68k-bull
+                               basic_os=sysv2
+                               ;;
+                       st2000)
+                               basic_machine=m68k-tandem
+                               basic_os=
+                               ;;
+                       stratus)
+                               basic_machine=i860-stratus
+                               basic_os=sysv4
+                               ;;
+                       sun2)
+                               basic_machine=m68000-sun
+                               basic_os=
+                               ;;
+                       sun2os3)
+                               basic_machine=m68000-sun
+                               basic_os=sunos3
+                               ;;
+                       sun2os4)
+                               basic_machine=m68000-sun
+                               basic_os=sunos4
+                               ;;
+                       sun3)
+                               basic_machine=m68k-sun
+                               basic_os=
+                               ;;
+                       sun3os3)
+                               basic_machine=m68k-sun
+                               basic_os=sunos3
+                               ;;
+                       sun3os4)
+                               basic_machine=m68k-sun
+                               basic_os=sunos4
+                               ;;
+                       sun4)
+                               basic_machine=sparc-sun
+                               basic_os=
+                               ;;
+                       sun4os3)
+                               basic_machine=sparc-sun
+                               basic_os=sunos3
+                               ;;
+                       sun4os4)
+                               basic_machine=sparc-sun
+                               basic_os=sunos4
+                               ;;
+                       sun4sol2)
+                               basic_machine=sparc-sun
+                               basic_os=solaris2
+                               ;;
+                       sun386 | sun386i | roadrunner)
+                               basic_machine=i386-sun
+                               basic_os=
+                               ;;
+                       sv1)
+                               basic_machine=sv1-cray
+                               basic_os=unicos
+                               ;;
+                       symmetry)
+                               basic_machine=i386-sequent
+                               basic_os=dynix
+                               ;;
+                       t3e)
+                               basic_machine=alphaev5-cray
+                               basic_os=unicos
+                               ;;
+                       t90)
+                               basic_machine=t90-cray
+                               basic_os=unicos
+                               ;;
+                       toad1)
+                               basic_machine=pdp10-xkl
+                               basic_os=tops20
+                               ;;
+                       tpf)
+                               basic_machine=s390x-ibm
+                               basic_os=tpf
+                               ;;
+                       udi29k)
+                               basic_machine=a29k-amd
+                               basic_os=udi
+                               ;;
+                       ultra3)
+                               basic_machine=a29k-nyu
+                               basic_os=sym1
+                               ;;
+                       v810 | necv810)
+                               basic_machine=v810-nec
+                               basic_os=none
+                               ;;
+                       vaxv)
+                               basic_machine=vax-dec
+                               basic_os=sysv
+                               ;;
+                       vms)
+                               basic_machine=vax-dec
+                               basic_os=vms
+                               ;;
+                       vsta)
+                               basic_machine=i386-pc
+                               basic_os=vsta
+                               ;;
+                       vxworks960)
+                               basic_machine=i960-wrs
+                               basic_os=vxworks
+                               ;;
+                       vxworks68)
+                               basic_machine=m68k-wrs
+                               basic_os=vxworks
+                               ;;
+                       vxworks29k)
+                               basic_machine=a29k-wrs
+                               basic_os=vxworks
+                               ;;
+                       xbox)
+                               basic_machine=i686-pc
+                               basic_os=mingw32
+                               ;;
+                       ymp)
+                               basic_machine=ymp-cray
+                               basic_os=unicos
+                               ;;
+                       *)
+                               basic_machine=$1
+                               basic_os=
+                               ;;
+               esac
                ;;
 esac
 
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
 case $basic_machine in
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       1750a | 580 \
-       | a29k \
-       | aarch64 | aarch64_be \
-       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-       | am33_2.0 \
-       | arc | arceb \
-       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
-       | avr | avr32 \
-       | ba \
-       | be32 | be64 \
-       | bfin \
-       | c4x | c8051 | clipper | csky \
-       | d10v | d30v | dlx | dsp16xx \
-       | e2k | epiphany \
-       | fido | fr30 | frv | ft32 \
-       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-       | hexagon \
-       | i370 | i860 | i960 | ia16 | ia64 \
-       | ip2k | iq2000 \
-       | k1om \
-       | le32 | le64 \
-       | lm32 \
-       | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
-       | mips | mipsbe | mipseb | mipsel | mipsle \
-       | mips16 \
-       | mips64 | mips64el \
-       | mips64octeon | mips64octeonel \
-       | mips64orion | mips64orionel \
-       | mips64r5900 | mips64r5900el \
-       | mips64vr | mips64vrel \
-       | mips64vr4100 | mips64vr4100el \
-       | mips64vr4300 | mips64vr4300el \
-       | mips64vr5000 | mips64vr5000el \
-       | mips64vr5900 | mips64vr5900el \
-       | mipsisa32 | mipsisa32el \
-       | mipsisa32r2 | mipsisa32r2el \
-       | mipsisa32r6 | mipsisa32r6el \
-       | mipsisa64 | mipsisa64el \
-       | mipsisa64r2 | mipsisa64r2el \
-       | mipsisa64r6 | mipsisa64r6el \
-       | mipsisa64sb1 | mipsisa64sb1el \
-       | mipsisa64sr71k | mipsisa64sr71kel \
-       | mipsr5900 | mipsr5900el \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-       | moxie \
-       | mt \
-       | msp430 \
-       | nds32 | nds32le | nds32be \
-       | nios | nios2 | nios2eb | nios2el \
-       | ns16k | ns32k \
-       | open8 | or1k | or1knd | or32 \
-       | pdp10 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle \
-       | pru \
-       | pyramid \
-       | riscv32 | riscv64 \
-       | rl78 | rx \
-       | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-       | sh64 | sh64le \
-       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu \
-       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-       | ubicom32 \
-       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-       | visium \
-       | wasm32 \
-       | x86 | xc16x | xstormy16 | xtensa \
-       | z8k | z80)
-               basic_machine=$basic_machine-unknown
-               ;;
-       c54x)
-               basic_machine=tic54x-unknown
-               ;;
-       c55x)
-               basic_machine=tic55x-unknown
-               ;;
-       c6x)
-               basic_machine=tic6x-unknown
-               ;;
-       leon|leon[3-9])
-               basic_machine=sparc-$basic_machine
-               ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
-               basic_machine=$basic_machine-unknown
-               os=-none
-               ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
+       # Here we handle the default manufacturer of certain CPU types.  It is in
+       # some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               cpu=hppa1.1
+               vendor=winbond
                ;;
-       m9s12z | m68hcs12z | hcs12z | s12z)
-               basic_machine=s12z-unknown
-               os=-none
+       op50n)
+               cpu=hppa1.1
+               vendor=oki
                ;;
-       ms1)
-               basic_machine=mt-unknown
+       op60c)
+               cpu=hppa1.1
+               vendor=oki
                ;;
-
-       strongarm | thumb | xscale)
-               basic_machine=arm-unknown
+       ibm*)
+               cpu=i370
+               vendor=ibm
                ;;
-       xgate)
-               basic_machine=$basic_machine-unknown
-               os=-none
+       orion105)
+               cpu=clipper
+               vendor=highlevel
                ;;
-       xscaleeb)
-               basic_machine=armeb-unknown
+       mac | mpw | mac-mpw)
+               cpu=m68k
+               vendor=apple
                ;;
-
-       xscaleel)
-               basic_machine=armel-unknown
+       pmac | pmac-mpw)
+               cpu=powerpc
+               vendor=apple
                ;;
 
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i*86 | x86_64)
-         basic_machine=$basic_machine-pc
-         ;;
-       # Object if more than one company name word.
-       *-*-*)
-               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
-               exit 1
-               ;;
-       # Recognize the basic CPU types with company name.
-       580-* \
-       | a29k-* \
-       | aarch64-* | aarch64_be-* \
-       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
-       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-       | avr-* | avr32-* \
-       | ba-* \
-       | be32-* | be64-* \
-       | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
-       | d10v-* | d30v-* | dlx-* \
-       | e2k-* | elxsi-* \
-       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-       | h8300-* | h8500-* \
-       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-       | hexagon-* \
-       | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
-       | ip2k-* | iq2000-* \
-       | k1om-* \
-       | le32-* | le64-* \
-       | lm32-* \
-       | m32c-* | m32r-* | m32rle-* \
-       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
-       | microblaze-* | microblazeel-* \
-       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mips16-* \
-       | mips64-* | mips64el-* \
-       | mips64octeon-* | mips64octeonel-* \
-       | mips64orion-* | mips64orionel-* \
-       | mips64r5900-* | mips64r5900el-* \
-       | mips64vr-* | mips64vrel-* \
-       | mips64vr4100-* | mips64vr4100el-* \
-       | mips64vr4300-* | mips64vr4300el-* \
-       | mips64vr5000-* | mips64vr5000el-* \
-       | mips64vr5900-* | mips64vr5900el-* \
-       | mipsisa32-* | mipsisa32el-* \
-       | mipsisa32r2-* | mipsisa32r2el-* \
-       | mipsisa32r6-* | mipsisa32r6el-* \
-       | mipsisa64-* | mipsisa64el-* \
-       | mipsisa64r2-* | mipsisa64r2el-* \
-       | mipsisa64r6-* | mipsisa64r6el-* \
-       | mipsisa64sb1-* | mipsisa64sb1el-* \
-       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
-       | mipsr5900-* | mipsr5900el-* \
-       | mipstx39-* | mipstx39el-* \
-       | mmix-* \
-       | mt-* \
-       | msp430-* \
-       | nds32-* | nds32le-* | nds32be-* \
-       | nios-* | nios2-* | nios2eb-* | nios2el-* \
-       | none-* | np1-* | ns16k-* | ns32k-* \
-       | open8-* \
-       | or1k*-* \
-       | orion-* \
-       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-       | pru-* \
-       | pyramid-* \
-       | riscv32-* | riscv64-* \
-       | rl78-* | romp-* | rs6000-* | rx-* \
-       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-       | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
-       | tahoe-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tile*-* \
-       | tron-* \
-       | ubicom32-* \
-       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-       | vax-* \
-       | visium-* \
-       | wasm32-* \
-       | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* \
-       | xstormy16-* | xtensa*-* \
-       | ymp-* \
-       | z8k-* | z80-*)
-               ;;
-       # Recognize the basic CPU types without company name, with glob match.
-       xtensa*)
-               basic_machine=$basic_machine-unknown
-               ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
-       386bsd)
-               basic_machine=i386-pc
-               os=-bsd
-               ;;
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
+               cpu=m68000
+               vendor=att
                ;;
        3b*)
-               basic_machine=we32k-att
-               ;;
-       a29khif)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       abacus)
-               basic_machine=abacus-unknown
-               ;;
-       adobe68k)
-               basic_machine=m68010-adobe
-               os=-scout
-               ;;
-       alliant | fx80)
-               basic_machine=fx80-alliant
-               ;;
-       altos | altos3068)
-               basic_machine=m68k-altos
-               ;;
-       am29k)
-               basic_machine=a29k-none
-               os=-bsd
-               ;;
-       amd64)
-               basic_machine=x86_64-pc
-               ;;
-       amd64-*)
-               basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       amdahl)
-               basic_machine=580-amdahl
-               os=-sysv
-               ;;
-       amiga | amiga-*)
-               basic_machine=m68k-unknown
-               ;;
-       amigaos | amigados)
-               basic_machine=m68k-unknown
-               os=-amigaos
-               ;;
-       amigaunix | amix)
-               basic_machine=m68k-unknown
-               os=-sysv4
-               ;;
-       apollo68)
-               basic_machine=m68k-apollo
-               os=-sysv
-               ;;
-       apollo68bsd)
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-       aros)
-               basic_machine=i386-pc
-               os=-aros
-               ;;
-       asmjs)
-               basic_machine=asmjs-unknown
-               ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
-       balance)
-               basic_machine=ns32k-sequent
-               os=-dynix
-               ;;
-       blackfin)
-               basic_machine=bfin-unknown
-               os=-linux
-               ;;
-       blackfin-*)
-               basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=-linux
+               cpu=we32k
+               vendor=att
                ;;
        bluegene*)
-               basic_machine=powerpc-ibm
-               os=-cnk
-               ;;
-       c54x-*)
-               basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c55x-*)
-               basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c6x-*)
-               basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c90)
-               basic_machine=c90-cray
-               os=-unicos
-               ;;
-       cegcc)
-               basic_machine=arm-unknown
-               os=-cegcc
-               ;;
-       convex-c1)
-               basic_machine=c1-convex
-               os=-bsd
-               ;;
-       convex-c2)
-               basic_machine=c2-convex
-               os=-bsd
-               ;;
-       convex-c32)
-               basic_machine=c32-convex
-               os=-bsd
-               ;;
-       convex-c34)
-               basic_machine=c34-convex
-               os=-bsd
-               ;;
-       convex-c38)
-               basic_machine=c38-convex
-               os=-bsd
-               ;;
-       cray | j90)
-               basic_machine=j90-cray
-               os=-unicos
-               ;;
-       craynv)
-               basic_machine=craynv-cray
-               os=-unicosmp
-               ;;
-       cr16 | cr16-*)
-               basic_machine=cr16-unknown
-               os=-elf
-               ;;
-       crds | unos)
-               basic_machine=m68k-crds
-               ;;
-       crisv32 | crisv32-* | etraxfs*)
-               basic_machine=crisv32-axis
-               ;;
-       cris | cris-* | etrax*)
-               basic_machine=cris-axis
-               ;;
-       crx)
-               basic_machine=crx-unknown
-               os=-elf
-               ;;
-       da30 | da30-*)
-               basic_machine=m68k-da30
-               ;;
-       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-               basic_machine=mips-dec
+               cpu=powerpc
+               vendor=ibm
+               basic_os=cnk
                ;;
        decsystem10* | dec10*)
-               basic_machine=pdp10-dec
-               os=-tops10
+               cpu=pdp10
+               vendor=dec
+               basic_os=tops10
                ;;
        decsystem20* | dec20*)
-               basic_machine=pdp10-dec
-               os=-tops20
+               cpu=pdp10
+               vendor=dec
+               basic_os=tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       delta88)
-               basic_machine=m88k-motorola
-               os=-sysv3
-               ;;
-       dicos)
-               basic_machine=i686-pc
-               os=-dicos
-               ;;
-       djgpp)
-               basic_machine=i586-pc
-               os=-msdosdjgpp
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=-bosx
+               cpu=m68k
+               vendor=motorola
                ;;
        dpx2*)
-               basic_machine=m68k-bull
-               os=-sysv3
-               ;;
-       e500v[12])
-               basic_machine=powerpc-unknown
-               os=$os"spe"
-               ;;
-       e500v[12]-*)
-               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=$os"spe"
-               ;;
-       ebmon29k)
-               basic_machine=a29k-amd
-               os=-ebmon
-               ;;
-       elxsi)
-               basic_machine=elxsi-elxsi
-               os=-bsd
+               cpu=m68k
+               vendor=bull
+               basic_os=sysv3
                ;;
        encore | umax | mmax)
-               basic_machine=ns32k-encore
+               cpu=ns32k
+               vendor=encore
                ;;
-       es1800 | OSE68k | ose68k | ose | OSE)
-               basic_machine=m68k-ericsson
-               os=-ose
+       elxsi)
+               cpu=elxsi
+               vendor=elxsi
+               basic_os=${basic_os:-bsd}
                ;;
        fx2800)
-               basic_machine=i860-alliant
+               cpu=i860
+               vendor=alliant
                ;;
        genix)
-               basic_machine=ns32k-ns
-               ;;
-       gmicro)
-               basic_machine=tron-gmicro
-               os=-sysv
-               ;;
-       go32)
-               basic_machine=i386-pc
-               os=-go32
+               cpu=ns32k
+               vendor=ns
                ;;
        h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       h8300hms)
-               basic_machine=h8300-hitachi
-               os=-hms
-               ;;
-       h8300xray)
-               basic_machine=h8300-hitachi
-               os=-xray
-               ;;
-       h8500hms)
-               basic_machine=h8500-hitachi
-               os=-hms
-               ;;
-       harris)
-               basic_machine=m88k-harris
-               os=-sysv3
-               ;;
-       hp300-*)
-               basic_machine=m68k-hp
-               ;;
-       hp300bsd)
-               basic_machine=m68k-hp
-               os=-bsd
-               ;;
-       hp300hpux)
-               basic_machine=m68k-hp
-               os=-hpux
+               cpu=hppa1.1
+               vendor=hitachi
+               basic_os=hiuxwe2
                ;;
        hp3k9[0-9][0-9] | hp9[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
+               cpu=m68000
+               vendor=hp
                ;;
        hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
+               cpu=m68k
+               vendor=hp
                ;;
        hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k78[0-9] | hp78[0-9])
                # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
                # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[0-9][13679] | hp8[0-9][13679])
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hppaosf)
-               basic_machine=hppa1.1-hp
-               os=-osf
-               ;;
-       hppro)
-               basic_machine=hppa1.1-hp
-               os=-proelf
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
+               cpu=hppa1.0
+               vendor=hp
                ;;
        i*86v32)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-               os=-sysv32
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
+               basic_os=sysv32
                ;;
        i*86v4*)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-               os=-sysv4
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
+               basic_os=sysv4
                ;;
        i*86v)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-               os=-sysv
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
+               basic_os=sysv
                ;;
        i*86sol2)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-               os=-solaris2
-               ;;
-       i386mach)
-               basic_machine=i386-mach
-               os=-mach
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
+               basic_os=solaris2
                ;;
-       vsta)
-               basic_machine=i386-unknown
-               os=-vsta
+       j90 | j90-cray)
+               cpu=j90
+               vendor=cray
+               basic_os=${basic_os:-unicos}
                ;;
        iris | iris4d)
-               basic_machine=mips-sgi
-               case $os in
-                   -irix*)
+               cpu=mips
+               vendor=sgi
+               case $basic_os in
+                   irix*)
                        ;;
                    *)
-                       os=-irix4
+                       basic_os=irix4
                        ;;
                esac
                ;;
-       isi68 | isi)
-               basic_machine=m68k-isi
-               os=-sysv
-               ;;
-       leon-*|leon[3-9]-*)
-               basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
-               ;;
-       m68knommu)
-               basic_machine=m68k-unknown
-               os=-linux
-               ;;
-       m68knommu-*)
-               basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       magnum | m3230)
-               basic_machine=mips-mips
-               os=-sysv
-               ;;
-       merlin)
-               basic_machine=ns32k-utek
-               os=-sysv
-               ;;
-       microblaze*)
-               basic_machine=microblaze-xilinx
-               ;;
-       mingw64)
-               basic_machine=x86_64-pc
-               os=-mingw64
-               ;;
-       mingw32)
-               basic_machine=i686-pc
-               os=-mingw32
-               ;;
-       mingw32ce)
-               basic_machine=arm-unknown
-               os=-mingw32ce
-               ;;
        miniframe)
-               basic_machine=m68000-convergent
-               ;;
-       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-       mips3*-*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
-               ;;
-       monitor)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       morphos)
-               basic_machine=powerpc-unknown
-               os=-morphos
-               ;;
-       moxiebox)
-               basic_machine=moxie-unknown
-               os=-moxiebox
+               cpu=m68000
+               vendor=convergent
                ;;
-       msdos)
-               basic_machine=i386-pc
-               os=-msdos
-               ;;
-       ms1-*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
-               ;;
-       msys)
-               basic_machine=i686-pc
-               os=-msys
-               ;;
-       mvs)
-               basic_machine=i370-ibm
-               os=-mvs
-               ;;
-       nacl)
-               basic_machine=le32-unknown
-               os=-nacl
-               ;;
-       ncr3000)
-               basic_machine=i486-ncr
-               os=-sysv4
-               ;;
-       netbsd386)
-               basic_machine=i386-unknown
-               os=-netbsd
-               ;;
-       netwinder)
-               basic_machine=armv4l-rebel
-               os=-linux
-               ;;
-       news | news700 | news800 | news900)
-               basic_machine=m68k-sony
-               os=-newsos
-               ;;
-       news1000)
-               basic_machine=m68030-sony
-               os=-newsos
+       *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               cpu=m68k
+               vendor=atari
+               basic_os=mint
                ;;
        news-3600 | risc-news)
-               basic_machine=mips-sony
-               os=-newsos
-               ;;
-       necv70)
-               basic_machine=v70-nec
-               os=-sysv
+               cpu=mips
+               vendor=sony
+               basic_os=newsos
                ;;
        next | m*-next)
-               basic_machine=m68k-next
-               case $os in
-                   -nextstep* )
+               cpu=m68k
+               vendor=next
+               case $basic_os in
+                   openstep*)
+                       ;;
+                   nextstep*)
                        ;;
-                   -ns2*)
-                     os=-nextstep2
+                   ns2*)
+                     basic_os=nextstep2
                        ;;
                    *)
-                     os=-nextstep3
+                     basic_os=nextstep3
                        ;;
                esac
                ;;
-       nh3000)
-               basic_machine=m68k-harris
-               os=-cxux
-               ;;
-       nh[45]000)
-               basic_machine=m88k-harris
-               os=-cxux
-               ;;
-       nindy960)
-               basic_machine=i960-intel
-               os=-nindy
-               ;;
-       mon960)
-               basic_machine=i960-intel
-               os=-mon960
-               ;;
-       nonstopux)
-               basic_machine=mips-compaq
-               os=-nonstopux
-               ;;
        np1)
-               basic_machine=np1-gould
-               ;;
-       neo-tandem)
-               basic_machine=neo-tandem
-               ;;
-       nse-tandem)
-               basic_machine=nse-tandem
-               ;;
-       nsr-tandem)
-               basic_machine=nsr-tandem
-               ;;
-       nsv-tandem)
-               basic_machine=nsv-tandem
-               ;;
-       nsx-tandem)
-               basic_machine=nsx-tandem
+               cpu=np1
+               vendor=gould
                ;;
        op50n-* | op60c-*)
-               basic_machine=hppa1.1-oki
-               os=-proelf
-               ;;
-       openrisc | openrisc-*)
-               basic_machine=or32-unknown
-               ;;
-       os400)
-               basic_machine=powerpc-ibm
-               os=-os400
-               ;;
-       OSE68000 | ose68000)
-               basic_machine=m68000-ericsson
-               os=-ose
-               ;;
-       os68k)
-               basic_machine=m68k-none
-               os=-os68k
+               cpu=hppa1.1
+               vendor=oki
+               basic_os=proelf
                ;;
        pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       paragon)
-               basic_machine=i860-intel
-               os=-osf
-               ;;
-       parisc)
-               basic_machine=hppa-unknown
-               os=-linux
-               ;;
-       parisc-*)
-               basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=-linux
+               cpu=hppa1.1
+               vendor=hitachi
+               basic_os=hiuxwe2
                ;;
        pbd)
-               basic_machine=sparc-tti
+               cpu=sparc
+               vendor=tti
                ;;
        pbb)
-               basic_machine=m68k-tti
-               ;;
-       pc532 | pc532-*)
-               basic_machine=ns32k-pc532
-               ;;
-       pc98)
-               basic_machine=i386-pc
+               cpu=m68k
+               vendor=tti
                ;;
-       pc98-*)
-               basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       pentium | p5 | k5 | k6 | nexgen | viac3)
-               basic_machine=i586-pc
-               ;;
-       pentiumpro | p6 | 6x86 | athlon | athlon_*)
-               basic_machine=i686-pc
-               ;;
-       pentiumii | pentium2 | pentiumiii | pentium3)
-               basic_machine=i686-pc
-               ;;
-       pentium4)
-               basic_machine=i786-pc
-               ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       pentium4-*)
-               basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       pc532)
+               cpu=ns32k
+               vendor=pc532
                ;;
        pn)
-               basic_machine=pn-gould
-               ;;
-       power)  basic_machine=power-ibm
-               ;;
-       ppc | ppcbe)    basic_machine=powerpc-unknown
+               cpu=pn
+               vendor=gould
                ;;
-       ppc-* | ppcbe-*)
-               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       ppcle | powerpclittle)
-               basic_machine=powerpcle-unknown
-               ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       power)
+               cpu=power
+               vendor=ibm
                ;;
-       ppc64)  basic_machine=powerpc64-unknown
+       ps2)
+               cpu=i386
+               vendor=ibm
                ;;
-       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       rm[46]00)
+               cpu=mips
+               vendor=siemens
                ;;
-       ppc64le | powerpc64little)
-               basic_machine=powerpc64le-unknown
+       rtpc | rtpc-*)
+               cpu=romp
+               vendor=ibm
                ;;
-       ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       sde)
+               cpu=mipsisa32
+               vendor=sde
+               basic_os=${basic_os:-elf}
                ;;
-       ps2)
-               basic_machine=i386-ibm
+       simso-wrs)
+               cpu=sparclite
+               vendor=wrs
+               basic_os=vxworks
                ;;
-       pw32)
-               basic_machine=i586-unknown
-               os=-pw32
+       tower | tower-32)
+               cpu=m68k
+               vendor=ncr
                ;;
-       rdos | rdos64)
-               basic_machine=x86_64-pc
-               os=-rdos
+       vpp*|vx|vx-*)
+               cpu=f301
+               vendor=fujitsu
                ;;
-       rdos32)
-               basic_machine=i386-pc
-               os=-rdos
+       w65)
+               cpu=w65
+               vendor=wdc
                ;;
-       rom68k)
-               basic_machine=m68k-rom68k
-               os=-coff
+       w89k-*)
+               cpu=hppa1.1
+               vendor=winbond
+               basic_os=proelf
                ;;
-       rm[46]00)
-               basic_machine=mips-siemens
+       none)
+               cpu=none
+               vendor=none
                ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
+       leon|leon[3-9])
+               cpu=sparc
+               vendor=$basic_machine
                ;;
-       s390 | s390-*)
-               basic_machine=s390-ibm
+       leon-*|leon[3-9]-*)
+               cpu=sparc
+               vendor=`echo "$basic_machine" | sed 's/-.*//'`
                ;;
-       s390x | s390x-*)
-               basic_machine=s390x-ibm
+
+       *-*)
+               # shellcheck disable=SC2162
+               saved_IFS=$IFS
+               IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
+               IFS=$saved_IFS
                ;;
-       sa29200)
-               basic_machine=a29k-amd
-               os=-udi
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+               cpu=$basic_machine
+               vendor=pc
                ;;
-       sb1)
-               basic_machine=mipsisa64sb1-unknown
+       # These rules are duplicated from below for sake of the special case above;
+       # i.e. things that normalized to x86 arches should also default to "pc"
+       pc98)
+               cpu=i386
+               vendor=pc
                ;;
-       sb1el)
-               basic_machine=mipsisa64sb1el-unknown
+       x64 | amd64)
+               cpu=x86_64
+               vendor=pc
                ;;
-       sde)
-               basic_machine=mipsisa32-sde
-               os=-elf
+       # Recognize the basic CPU types without company name.
+       *)
+               cpu=$basic_machine
+               vendor=unknown
                ;;
-       sei)
-               basic_machine=mips-sei
-               os=-seiux
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+       # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+       # some cases the only manufacturer, in others, it is the most popular.
+       craynv-unknown)
+               vendor=cray
+               basic_os=${basic_os:-unicosmp}
                ;;
-       sequent)
-               basic_machine=i386-sequent
+       c90-unknown | c90-cray)
+               vendor=cray
+               basic_os=${Basic_os:-unicos}
                ;;
-       sh5el)
-               basic_machine=sh5le-unknown
+       fx80-unknown)
+               vendor=alliant
                ;;
-       simso-wrs)
-               basic_machine=sparclite-wrs
-               os=-vxworks
+       romp-unknown)
+               vendor=ibm
                ;;
-       sps7)
-               basic_machine=m68k-bull
-               os=-sysv2
+       mmix-unknown)
+               vendor=knuth
                ;;
-       spur)
-               basic_machine=spur-unknown
+       microblaze-unknown | microblazeel-unknown)
+               vendor=xilinx
                ;;
-       st2000)
-               basic_machine=m68k-tandem
+       rs6000-unknown)
+               vendor=ibm
                ;;
-       stratus)
-               basic_machine=i860-stratus
-               os=-sysv4
+       vax-unknown)
+               vendor=dec
                ;;
-       strongarm-* | thumb-*)
-               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       pdp11-unknown)
+               vendor=dec
                ;;
-       sun2)
-               basic_machine=m68000-sun
+       we32k-unknown)
+               vendor=att
                ;;
-       sun2os3)
-               basic_machine=m68000-sun
-               os=-sunos3
+       cydra-unknown)
+               vendor=cydrome
                ;;
-       sun2os4)
-               basic_machine=m68000-sun
-               os=-sunos4
+       i370-ibm*)
+               vendor=ibm
                ;;
-       sun3os3)
-               basic_machine=m68k-sun
-               os=-sunos3
+       orion-unknown)
+               vendor=highlevel
                ;;
-       sun3os4)
-               basic_machine=m68k-sun
-               os=-sunos4
+       xps-unknown | xps100-unknown)
+               cpu=xps100
+               vendor=honeywell
                ;;
-       sun4os3)
-               basic_machine=sparc-sun
-               os=-sunos3
+
+       # Here we normalize CPU types with a missing or matching vendor
+       dpx20-unknown | dpx20-bull)
+               cpu=rs6000
+               vendor=bull
+               basic_os=${basic_os:-bosx}
                ;;
-       sun4os4)
-               basic_machine=sparc-sun
-               os=-sunos4
+
+       # Here we normalize CPU types irrespective of the vendor
+       amd64-*)
+               cpu=x86_64
                ;;
-       sun4sol2)
-               basic_machine=sparc-sun
-               os=-solaris2
+       blackfin-*)
+               cpu=bfin
+               basic_os=linux
                ;;
-       sun3 | sun3-*)
-               basic_machine=m68k-sun
+       c54x-*)
+               cpu=tic54x
                ;;
-       sun4)
-               basic_machine=sparc-sun
+       c55x-*)
+               cpu=tic55x
                ;;
-       sun386 | sun386i | roadrunner)
-               basic_machine=i386-sun
+       c6x-*)
+               cpu=tic6x
                ;;
-       sv1)
-               basic_machine=sv1-cray
-               os=-unicos
+       e500v[12]-*)
+               cpu=powerpc
+               basic_os=${basic_os}"spe"
                ;;
-       symmetry)
-               basic_machine=i386-sequent
-               os=-dynix
+       mips3*-*)
+               cpu=mips64
                ;;
-       t3e)
-               basic_machine=alphaev5-cray
-               os=-unicos
+       ms1-*)
+               cpu=mt
                ;;
-       t90)
-               basic_machine=t90-cray
-               os=-unicos
+       m68knommu-*)
+               cpu=m68k
+               basic_os=linux
                ;;
-       tile*)
-               basic_machine=$basic_machine-unknown
-               os=-linux-gnu
+       m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+               cpu=s12z
                ;;
-       tx39)
-               basic_machine=mipstx39-unknown
+       openrisc-*)
+               cpu=or32
                ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
+       parisc-*)
+               cpu=hppa
+               basic_os=linux
                ;;
-       toad1)
-               basic_machine=pdp10-xkl
-               os=-tops20
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               cpu=i586
                ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
+       pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+               cpu=i686
                ;;
-       tpf)
-               basic_machine=s390x-ibm
-               os=-tpf
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               cpu=i686
                ;;
-       udi29k)
-               basic_machine=a29k-amd
-               os=-udi
+       pentium4-*)
+               cpu=i786
                ;;
-       ultra3)
-               basic_machine=a29k-nyu
-               os=-sym1
+       pc98-*)
+               cpu=i386
                ;;
-       v810 | necv810)
-               basic_machine=v810-nec
-               os=-none
+       ppc-* | ppcbe-*)
+               cpu=powerpc
                ;;
-       vaxv)
-               basic_machine=vax-dec
-               os=-sysv
+       ppcle-* | powerpclittle-*)
+               cpu=powerpcle
                ;;
-       vms)
-               basic_machine=vax-dec
-               os=-vms
+       ppc64-*)
+               cpu=powerpc64
                ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
+       ppc64le-* | powerpc64little-*)
+               cpu=powerpc64le
                ;;
-       vxworks960)
-               basic_machine=i960-wrs
-               os=-vxworks
+       sb1-*)
+               cpu=mipsisa64sb1
                ;;
-       vxworks68)
-               basic_machine=m68k-wrs
-               os=-vxworks
+       sb1el-*)
+               cpu=mipsisa64sb1el
                ;;
-       vxworks29k)
-               basic_machine=a29k-wrs
-               os=-vxworks
+       sh5e[lb]-*)
+               cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
                ;;
-       w65*)
-               basic_machine=w65-wdc
-               os=-none
+       spur-*)
+               cpu=spur
                ;;
-       w89k-*)
-               basic_machine=hppa1.1-winbond
-               os=-proelf
+       strongarm-* | thumb-*)
+               cpu=arm
                ;;
-       x64)
-               basic_machine=x86_64-pc
+       tx39-*)
+               cpu=mipstx39
                ;;
-       xbox)
-               basic_machine=i686-pc
-               os=-mingw32
+       tx39el-*)
+               cpu=mipstx39el
                ;;
-       xps | xps100)
-               basic_machine=xps100-honeywell
+       x64-*)
+               cpu=x86_64
                ;;
        xscale-* | xscalee[bl]-*)
-               basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
-               ;;
-       ymp)
-               basic_machine=ymp-cray
-               os=-unicos
+               cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
                ;;
-       none)
-               basic_machine=none-none
-               os=-none
+       arm64-*)
+               cpu=aarch64
                ;;
 
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-       w89k)
-               basic_machine=hppa1.1-winbond
-               ;;
-       op50n)
-               basic_machine=hppa1.1-oki
-               ;;
-       op60c)
-               basic_machine=hppa1.1-oki
-               ;;
-       romp)
-               basic_machine=romp-ibm
-               ;;
-       mmix)
-               basic_machine=mmix-knuth
+       # Recognize the canonical CPU Types that limit and/or modify the
+       # company names they are paired with.
+       cr16-*)
+               basic_os=${basic_os:-elf}
                ;;
-       rs6000)
-               basic_machine=rs6000-ibm
+       crisv32-* | etraxfs*-*)
+               cpu=crisv32
+               vendor=axis
                ;;
-       vax)
-               basic_machine=vax-dec
+       cris-* | etrax*-*)
+               cpu=cris
+               vendor=axis
                ;;
-       pdp11)
-               basic_machine=pdp11-dec
+       crx-*)
+               basic_os=${basic_os:-elf}
                ;;
-       we32k)
-               basic_machine=we32k-att
+       neo-tandem)
+               cpu=neo
+               vendor=tandem
                ;;
-       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
-               basic_machine=sh-unknown
+       nse-tandem)
+               cpu=nse
+               vendor=tandem
                ;;
-       cydra)
-               basic_machine=cydra-cydrome
+       nsr-tandem)
+               cpu=nsr
+               vendor=tandem
                ;;
-       orion)
-               basic_machine=orion-highlevel
+       nsv-tandem)
+               cpu=nsv
+               vendor=tandem
                ;;
-       orion105)
-               basic_machine=clipper-highlevel
+       nsx-tandem)
+               cpu=nsx
+               vendor=tandem
                ;;
-       mac | mpw | mac-mpw)
-               basic_machine=m68k-apple
+       mipsallegrexel-sony)
+               cpu=mipsallegrexel
+               vendor=sony
                ;;
-       pmac | pmac-mpw)
-               basic_machine=powerpc-apple
-               ;;
-       *-unknown)
-               # Make sure to match an already-canonicalized machine name.
+       tile*-*)
+               basic_os=${basic_os:-linux-gnu}
                ;;
+
        *)
-               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
-               exit 1
+               # Recognize the canonical CPU types that are allowed with any
+               # company name.
+               case $cpu in
+                       1750a | 580 \
+                       | a29k \
+                       | aarch64 | aarch64_be \
+                       | abacus \
+                       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+                       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+                       | alphapca5[67] | alpha64pca5[67] \
+                       | am33_2.0 \
+                       | amdgcn \
+                       | arc | arceb | arc32 | arc64 \
+                       | arm | arm[lb]e | arme[lb] | armv* \
+                       | avr | avr32 \
+                       | asmjs \
+                       | ba \
+                       | be32 | be64 \
+                       | bfin | bpf | bs2000 \
+                       | c[123]* | c30 | [cjt]90 | c4x \
+                       | c8051 | clipper | craynv | csky | cydra \
+                       | d10v | d30v | dlx | dsp16xx \
+                       | e2k | elxsi | epiphany \
+                       | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+                       | h8300 | h8500 \
+                       | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+                       | hexagon \
+                       | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+                       | ip2k | iq2000 \
+                       | k1om \
+                       | le32 | le64 \
+                       | lm32 \
+                       | loongarch32 | loongarch64 | loongarchx32 \
+                       | m32c | m32r | m32rle \
+                       | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+                       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+                       | m88110 | m88k | maxq | mb | mcore | mep | metag \
+                       | microblaze | microblazeel \
+                       | mips | mipsbe | mipseb | mipsel | mipsle \
+                       | mips16 \
+                       | mips64 | mips64eb | mips64el \
+                       | mips64octeon | mips64octeonel \
+                       | mips64orion | mips64orionel \
+                       | mips64r5900 | mips64r5900el \
+                       | mips64vr | mips64vrel \
+                       | mips64vr4100 | mips64vr4100el \
+                       | mips64vr4300 | mips64vr4300el \
+                       | mips64vr5000 | mips64vr5000el \
+                       | mips64vr5900 | mips64vr5900el \
+                       | mipsisa32 | mipsisa32el \
+                       | mipsisa32r2 | mipsisa32r2el \
+                       | mipsisa32r3 | mipsisa32r3el \
+                       | mipsisa32r5 | mipsisa32r5el \
+                       | mipsisa32r6 | mipsisa32r6el \
+                       | mipsisa64 | mipsisa64el \
+                       | mipsisa64r2 | mipsisa64r2el \
+                       | mipsisa64r3 | mipsisa64r3el \
+                       | mipsisa64r5 | mipsisa64r5el \
+                       | mipsisa64r6 | mipsisa64r6el \
+                       | mipsisa64sb1 | mipsisa64sb1el \
+                       | mipsisa64sr71k | mipsisa64sr71kel \
+                       | mipsr5900 | mipsr5900el \
+                       | mipstx39 | mipstx39el \
+                       | mmix \
+                       | mn10200 | mn10300 \
+                       | moxie \
+                       | mt \
+                       | msp430 \
+                       | nds32 | nds32le | nds32be \
+                       | nfp \
+                       | nios | nios2 | nios2eb | nios2el \
+                       | none | np1 | ns16k | ns32k | nvptx \
+                       | open8 \
+                       | or1k* \
+                       | or32 \
+                       | orion \
+                       | picochip \
+                       | pdp10 | pdp11 | pj | pjl | pn | power \
+                       | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+                       | pru \
+                       | pyramid \
+                       | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+                       | rl78 | romp | rs6000 | rx \
+                       | s390 | s390x \
+                       | score \
+                       | sh | shl \
+                       | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+                       | sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+                       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+                       | sparclite \
+                       | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+                       | spu \
+                       | tahoe \
+                       | thumbv7* \
+                       | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+                       | tron \
+                       | ubicom32 \
+                       | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+                       | vax \
+                       | visium \
+                       | w65 \
+                       | wasm32 | wasm64 \
+                       | we32k \
+                       | x86 | x86_64 | xc16x | xgate | xps100 \
+                       | xstormy16 | xtensa* \
+                       | ymp \
+                       | z8k | z80)
+                               ;;
+
+                       *)
+                               echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+                               exit 1
+                               ;;
+               esac
                ;;
 esac
 
 # Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
+case $vendor in
+       digital*)
+               vendor=dec
                ;;
-       *-commodore*)
-               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
+       commodore*)
+               vendor=cbm
                ;;
        *)
                ;;
@@ -1338,203 +1301,215 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if [ x"$os" != x"" ]
+if test x$basic_os != x
 then
+
+# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
+# set os.
+case $basic_os in
+       gnu/linux*)
+               kernel=linux
+               os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
+               ;;
+       os2-emx)
+               kernel=os2
+               os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
+               ;;
+       nto-qnx*)
+               kernel=nto
+               os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
+               ;;
+       *-*)
+               # shellcheck disable=SC2162
+               saved_IFS=$IFS
+               IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+               IFS=$saved_IFS
+               ;;
+       # Default OS when just kernel was specified
+       nto*)
+               kernel=nto
+               os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+               ;;
+       linux*)
+               kernel=linux
+               os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
+               ;;
+       *)
+               kernel=
+               os=$basic_os
+               ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
 case $os in
        # First match some system type aliases that might get confused
        # with valid system types.
-       # -solaris* is a basic system type, with this one exception.
-       -auroraux)
-               os=-auroraux
+       # solaris* is a basic system type, with this one exception.
+       auroraux)
+               os=auroraux
                ;;
-       -solaris1 | -solaris1.*)
-               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+       bluegene*)
+               os=cnk
                ;;
-       -solaris)
-               os=-solaris2
+       solaris1 | solaris1.*)
+               os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
                ;;
-       -unixware*)
-               os=-sysv4.2uw
+       solaris)
+               os=solaris2
                ;;
-       -gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+       unixware*)
+               os=sysv4.2uw
                ;;
        # es1800 is here to avoid being matched by es* (a different OS)
-       -es1800*)
-               os=-ose
+       es1800*)
+               os=ose
                ;;
-       # Now accept the basic system types.
-       # The portable systems comes first.
-       # Each alternative MUST end in a * to match a version number.
-       # -sysv* is not here because it comes later, after sysvr4.
-       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-             | -sym* | -kopensolaris* | -plan9* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* | -cloudabi* | -sortix* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
-             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
-             | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
-             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
-             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
-             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-             | -morphos* | -superux* | -rtmk* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
-             | -midnightbsd*)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
-       -qnx*)
-               case $basic_machine in
-                   x86-* | i*86-*)
-                       ;;
-                   *)
-                       os=-nto$os
-                       ;;
-               esac
+       # Some version numbers need modification
+       chorusos*)
+               os=chorusos
                ;;
-       -nto-qnx*)
+       isc)
+               os=isc2.2
                ;;
-       -nto*)
-               os=`echo $os | sed -e 's|nto|nto-qnx|'`
+       sco6)
+               os=sco5v6
                ;;
-       -sim | -xray | -os68k* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* \
-             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+       sco5)
+               os=sco3.2v5
                ;;
-       -mac*)
-               os=`echo "$os" | sed -e 's|mac|macos|'`
+       sco4)
+               os=sco3.2v4
                ;;
-       -linux-dietlibc)
-               os=-linux-dietlibc
+       sco3.2.[4-9]*)
+               os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
                ;;
-       -linux*)
-               os=`echo $os | sed -e 's|linux|linux-gnu|'`
+       sco*v* | scout)
+               # Don't match below
                ;;
-       -sunos5*)
-               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+       sco*)
+               os=sco3.2v2
                ;;
-       -sunos6*)
-               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+       psos*)
+               os=psos
                ;;
-       -opened*)
-               os=-openedition
+       qnx*)
+               os=qnx
                ;;
-       -os400*)
-               os=-os400
+       hiux*)
+               os=hiuxwe2
                ;;
-       -wince*)
-               os=-wince
+       lynx*178)
+               os=lynxos178
                ;;
-       -utek*)
-               os=-bsd
+       lynx*5)
+               os=lynxos5
                ;;
-       -dynix*)
-               os=-bsd
+       lynxos*)
+               # don't get caught up in next wildcard
                ;;
-       -acis*)
-               os=-aos
+       lynx*)
+               os=lynxos
                ;;
-       -atheos*)
-               os=-atheos
+       mac[0-9]*)
+               os=`echo "$os" | sed -e 's|mac|macos|'`
                ;;
-       -syllable*)
-               os=-syllable
+       opened*)
+               os=openedition
                ;;
-       -386bsd)
-               os=-bsd
+       os400*)
+               os=os400
                ;;
-       -ctix* | -uts*)
-               os=-sysv
+       sunos5*)
+               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
                ;;
-       -nova*)
-               os=-rtmk-nova
+       sunos6*)
+               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
                ;;
-       -ns2)
-               os=-nextstep2
+       wince*)
+               os=wince
                ;;
-       -nsk*)
-               os=-nsk
+       utek*)
+               os=bsd
                ;;
-       # Preserve the version number of sinix5.
-       -sinix5.*)
-               os=`echo $os | sed -e 's|sinix|sysv|'`
+       dynix*)
+               os=bsd
                ;;
-       -sinix*)
-               os=-sysv4
+       acis*)
+               os=aos
                ;;
-       -tpf*)
-               os=-tpf
+       atheos*)
+               os=atheos
                ;;
-       -triton*)
-               os=-sysv3
+       syllable*)
+               os=syllable
+               ;;
+       386bsd)
+               os=bsd
+               ;;
+       ctix* | uts*)
+               os=sysv
+               ;;
+       nova*)
+               os=rtmk-nova
+               ;;
+       ns2)
+               os=nextstep2
+               ;;
+       # Preserve the version number of sinix5.
+       sinix5.*)
+               os=`echo "$os" | sed -e 's|sinix|sysv|'`
                ;;
-       -oss*)
-               os=-sysv3
+       sinix*)
+               os=sysv4
                ;;
-       -svr4*)
-               os=-sysv4
+       tpf*)
+               os=tpf
                ;;
-       -svr3)
-               os=-sysv3
+       triton*)
+               os=sysv3
                ;;
-       -sysvr4)
-               os=-sysv4
+       oss*)
+               os=sysv3
                ;;
-       # This must come after -sysvr4.
-       -sysv*)
+       svr4*)
+               os=sysv4
                ;;
-       -ose*)
-               os=-ose
+       svr3)
+               os=sysv3
                ;;
-       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-               os=-mint
+       sysvr4)
+               os=sysv4
                ;;
-       -zvmoe)
-               os=-zvmoe
+       ose*)
+               os=ose
                ;;
-       -dicos*)
-               os=-dicos
+       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+               os=mint
                ;;
-       -pikeos*)
+       dicos*)
+               os=dicos
+               ;;
+       pikeos*)
                # Until real need of OS specific support for
                # particular features comes up, bare metal
                # configurations are quite functional.
-               case $basic_machine in
+               case $cpu in
                    arm*)
-                       os=-eabi
+                       os=eabi
                        ;;
                    *)
-                       os=-elf
+                       os=elf
                        ;;
                esac
                ;;
-       -nacl*)
-               ;;
-       -ios)
-               ;;
-       -none)
-               ;;
        *)
-               # Get rid of the `-' at the beginning of $os.
-               os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
-               exit 1
+               # No normalization, but not necessarily accepted, that comes below.
                ;;
 esac
+
 else
 
 # Here we handle the default operating systems that come with various machines.
@@ -1547,254 +1522,358 @@ else
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
-case $basic_machine in
+kernel=
+case $cpu-$vendor in
        score-*)
-               os=-elf
+               os=elf
                ;;
        spu-*)
-               os=-elf
+               os=elf
                ;;
        *-acorn)
-               os=-riscix1.2
+               os=riscix1.2
                ;;
        arm*-rebel)
-               os=-linux
+               kernel=linux
+               os=gnu
                ;;
        arm*-semi)
-               os=-aout
+               os=aout
                ;;
        c4x-* | tic4x-*)
-               os=-coff
+               os=coff
                ;;
        c8051-*)
-               os=-elf
+               os=elf
+               ;;
+       clipper-intergraph)
+               os=clix
                ;;
        hexagon-*)
-               os=-elf
+               os=elf
                ;;
        tic54x-*)
-               os=-coff
+               os=coff
                ;;
        tic55x-*)
-               os=-coff
+               os=coff
                ;;
        tic6x-*)
-               os=-coff
+               os=coff
                ;;
        # This must come before the *-dec entry.
        pdp10-*)
-               os=-tops20
+               os=tops20
                ;;
        pdp11-*)
-               os=-none
+               os=none
                ;;
        *-dec | vax-*)
-               os=-ultrix4.2
+               os=ultrix4.2
                ;;
        m68*-apollo)
-               os=-domain
+               os=domain
                ;;
        i386-sun)
-               os=-sunos4.0.2
+               os=sunos4.0.2
                ;;
        m68000-sun)
-               os=-sunos3
+               os=sunos3
                ;;
        m68*-cisco)
-               os=-aout
+               os=aout
                ;;
        mep-*)
-               os=-elf
+               os=elf
                ;;
        mips*-cisco)
-               os=-elf
+               os=elf
                ;;
        mips*-*)
-               os=-elf
+               os=elf
                ;;
        or32-*)
-               os=-coff
+               os=coff
                ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
-               os=-sysv3
+               os=sysv3
                ;;
        sparc-* | *-sun)
-               os=-sunos4.1.1
+               os=sunos4.1.1
                ;;
        pru-*)
-               os=-elf
+               os=elf
                ;;
        *-be)
-               os=-beos
+               os=beos
                ;;
        *-ibm)
-               os=-aix
+               os=aix
                ;;
        *-knuth)
-               os=-mmixware
+               os=mmixware
                ;;
        *-wec)
-               os=-proelf
+               os=proelf
                ;;
        *-winbond)
-               os=-proelf
+               os=proelf
                ;;
        *-oki)
-               os=-proelf
+               os=proelf
                ;;
        *-hp)
-               os=-hpux
+               os=hpux
                ;;
        *-hitachi)
-               os=-hiux
+               os=hiux
                ;;
        i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=-sysv
+               os=sysv
                ;;
        *-cbm)
-               os=-amigaos
+               os=amigaos
                ;;
        *-dg)
-               os=-dgux
+               os=dgux
                ;;
        *-dolphin)
-               os=-sysv3
+               os=sysv3
                ;;
        m68k-ccur)
-               os=-rtu
+               os=rtu
                ;;
        m88k-omron*)
-               os=-luna
+               os=luna
                ;;
        *-next)
-               os=-nextstep
+               os=nextstep
                ;;
        *-sequent)
-               os=-ptx
+               os=ptx
                ;;
        *-crds)
-               os=-unos
+               os=unos
                ;;
        *-ns)
-               os=-genix
+               os=genix
                ;;
        i370-*)
-               os=-mvs
+               os=mvs
                ;;
        *-gould)
-               os=-sysv
+               os=sysv
                ;;
        *-highlevel)
-               os=-bsd
+               os=bsd
                ;;
        *-encore)
-               os=-bsd
+               os=bsd
                ;;
        *-sgi)
-               os=-irix
+               os=irix
                ;;
        *-siemens)
-               os=-sysv4
+               os=sysv4
                ;;
        *-masscomp)
-               os=-rtu
+               os=rtu
                ;;
        f30[01]-fujitsu | f700-fujitsu)
-               os=-uxpv
+               os=uxpv
                ;;
        *-rom68k)
-               os=-coff
+               os=coff
                ;;
        *-*bug)
-               os=-coff
+               os=coff
                ;;
        *-apple)
-               os=-macos
+               os=macos
                ;;
        *-atari*)
-               os=-mint
+               os=mint
+               ;;
+       *-wrs)
+               os=vxworks
                ;;
        *)
-               os=-none
+               os=none
                ;;
 esac
+
 fi
 
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+       # Sometimes we do "kernel-libc", so those need to count as OSes.
+       musl* | newlib* | relibc* | uclibc*)
+               ;;
+       # Likewise for "kernel-abi"
+       eabi* | gnueabi*)
+               ;;
+       # VxWorks passes extra cpu info in the 4th filed.
+       simlinux | simwindows | spe)
+               ;;
+       # Now accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST end in a * to match a version number.
+       gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+            | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+            | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+            | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
+            | hiux* | abug | nacl* | netware* | windows* \
+            | os9* | macos* | osx* | ios* \
+            | mpw* | magic* | mmixware* | mon960* | lnews* \
+            | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+            | aos* | aros* | cloudabi* | sortix* | twizzler* \
+            | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+            | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+            | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+            | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+            | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+            | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+            | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+            | udi* | lites* | ieee* | go32* | aux* | hcos* \
+            | chorusrdb* | cegcc* | glidix* | serenity* \
+            | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+            | midipix* | mingw32* | mingw64* | mint* \
+            | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+            | interix* | uwin* | mks* | rhapsody* | darwin* \
+            | openstep* | oskit* | conix* | pw32* | nonstopux* \
+            | storm-chaos* | tops10* | tenex* | tops20* | its* \
+            | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+            | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+            | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+            | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+            | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+            | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+            | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
+               ;;
+       # This one is extra strict with allowed versions
+       sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               ;;
+       none)
+               ;;
+       *)
+               echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+       linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+                  | linux-musl* | linux-relibc* | linux-uclibc* )
+               ;;
+       uclinux-uclibc* )
+               ;;
+       -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
+               # These are just libc implementations, not actual OSes, and thus
+               # require a kernel.
+               echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+               exit 1
+               ;;
+       kfreebsd*-gnu* | kopensolaris*-gnu*)
+               ;;
+       vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+               ;;
+       nto-qnx*)
+               ;;
+       os2-emx)
+               ;;
+       *-eabi* | *-gnueabi*)
+               ;;
+       -*)
+               # Blank kernel with real OS is always fine.
+               ;;
+       *-*)
+               echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+               exit 1
+               ;;
+esac
+
 # Here we handle the case where we know the os, and the CPU type, but not the
 # manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
-               case $os in
-                       -riscix*)
+case $vendor in
+       unknown)
+               case $cpu-$os in
+                       *-riscix*)
                                vendor=acorn
                                ;;
-                       -sunos*)
+                       *-sunos*)
                                vendor=sun
                                ;;
-                       -cnk*|-aix*)
+                       *-cnk* | *-aix*)
                                vendor=ibm
                                ;;
-                       -beos*)
+                       *-beos*)
                                vendor=be
                                ;;
-                       -hpux*)
+                       *-hpux*)
                                vendor=hp
                                ;;
-                       -mpeix*)
+                       *-mpeix*)
                                vendor=hp
                                ;;
-                       -hiux*)
+                       *-hiux*)
                                vendor=hitachi
                                ;;
-                       -unos*)
+                       *-unos*)
                                vendor=crds
                                ;;
-                       -dgux*)
+                       *-dgux*)
                                vendor=dg
                                ;;
-                       -luna*)
+                       *-luna*)
                                vendor=omron
                                ;;
-                       -genix*)
+                       *-genix*)
                                vendor=ns
                                ;;
-                       -mvs* | -opened*)
+                       *-clix*)
+                               vendor=intergraph
+                               ;;
+                       *-mvs* | *-opened*)
+                               vendor=ibm
+                               ;;
+                       *-os400*)
                                vendor=ibm
                                ;;
-                       -os400*)
+                       s390-* | s390x-*)
                                vendor=ibm
                                ;;
-                       -ptx*)
+                       *-ptx*)
                                vendor=sequent
                                ;;
-                       -tpf*)
+                       *-tpf*)
                                vendor=ibm
                                ;;
-                       -vxsim* | -vxworks* | -windiss*)
+                       *-vxsim* | *-vxworks* | *-windiss*)
                                vendor=wrs
                                ;;
-                       -aux*)
+                       *-aux*)
                                vendor=apple
                                ;;
-                       -hms*)
+                       *-hms*)
                                vendor=hitachi
                                ;;
-                       -mpw* | -macos*)
+                       *-mpw* | *-macos*)
                                vendor=apple
                                ;;
-                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                       *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
                                vendor=atari
                                ;;
-                       -vos*)
+                       *-vos*)
                                vendor=stratus
                                ;;
                esac
-               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
                ;;
 esac
 
-echo "$basic_machine$os"
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
 exit
 
 # Local variables:
index 1baa145e3ed4d66f28ebf361919f22d591290ace..2e7e0b7e0a75eed84a73bace34bd7e1d99f68b61 100755 (executable)
--- a/configure
+++ b/configure
@@ -630,7 +630,6 @@ OPENSSL_RPATH
 OPENSSL_LDFLAGS
 OPENSSL_LIBS
 OPENSSL_INCLUDES
-PKG_CONFIG
 ENSUREPIP
 SRCDIRS
 THREADHEADERS
@@ -662,6 +661,9 @@ DTRACE
 TCLTK_LIBS
 TCLTK_INCLUDES
 LIBFFI_INCLUDEDIR
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
 TZPATH
 SHLIBS
 CFLAGSFORSHARED
@@ -827,11 +829,11 @@ with_trace_refs
 with_assertions
 enable_optimizations
 with_lto
-with_hash_algorithm
-with_tzpath
 with_address_sanitizer
 with_memory_sanitizer
 with_undefined_behavior_sanitizer
+with_hash_algorithm
+with_tzpath
 with_libs
 with_system_expat
 with_system_ffi
@@ -873,7 +875,10 @@ LDFLAGS
 LIBS
 CPPFLAGS
 CPP
-PROFILE_TASK'
+PROFILE_TASK
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR'
 
 
 # Initialize some variables set by options.
@@ -1547,12 +1552,6 @@ Optional Packages:
   --with-assertions       build with C assertions enabled (default is no)
   --with-lto              enable Link-Time-Optimization in any build (default
                           is no)
-  --with-hash-algorithm=[fnv|siphash24]
-                          select hash algorithm for use in Python/pyhash.c
-                          (default is SipHash24)
-  --with-tzpath=<list of absolute paths separated by pathsep>
-                           Select the default time zone search path for zoneinfo.TZPATH
-
   --with-address-sanitizer
                           enable AddressSanitizer memory error detector,
                           'asan' (default is no)
@@ -1561,6 +1560,12 @@ Optional Packages:
   --with-undefined-behavior-sanitizer
                           enable UndefinedBehaviorSanitizer undefined
                           behaviour detector, 'ubsan' (default is no)
+  --with-hash-algorithm=[fnv|siphash24]
+                          select hash algorithm for use in Python/pyhash.c
+                          (default is SipHash24)
+  --with-tzpath=<list of absolute paths separated by pathsep>
+                           Select the default time zone search path for zoneinfo.TZPATH
+
   --with-libs='lib1 ...'  link against additional libs (default is no)
   --with-system-expat     build pyexpat module using an installed expat
                           library, see Doc/library/pyexpat.rst (default is no)
@@ -1637,6 +1642,11 @@ Some influential environment variables:
   CPP         C preprocessor
   PROFILE_TASK
               Python args for PGO generation task
+  PKG_CONFIG  path to pkg-config utility
+  PKG_CONFIG_PATH
+              directories to add to pkg-config's search path
+  PKG_CONFIG_LIBDIR
+              path overriding pkg-config's built-in search path
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -5216,9 +5226,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
@@ -5377,6 +5384,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
@@ -9566,6 +9578,101 @@ $as_echo "no" >&6; }
        ;;
 esac
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5
+$as_echo_n "checking for --with-address-sanitizer... " >&6; }
+
+# Check whether --with-address_sanitizer was given.
+if test "${with_address_sanitizer+set}" = set; then :
+  withval=$with_address_sanitizer;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
+$as_echo "$withval" >&6; }
+BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
+LDFLAGS="-fsanitize=address $LDFLAGS"
+# ASan works by controlling memory allocation, our own malloc interferes.
+with_pymalloc="no"
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5
+$as_echo_n "checking for --with-memory-sanitizer... " >&6; }
+
+# Check whether --with-memory_sanitizer was given.
+if test "${with_memory_sanitizer+set}" = set; then :
+  withval=$with_memory_sanitizer;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
+$as_echo "$withval" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fsanitize=memory" >&5
+$as_echo_n "checking whether C compiler accepts -fsanitize=memory... " >&6; }
+if ${ax_cv_check_cflags___fsanitize_memory+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$CFLAGS
+  CFLAGS="$CFLAGS  -fsanitize=memory"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ax_cv_check_cflags___fsanitize_memory=yes
+else
+  ax_cv_check_cflags___fsanitize_memory=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_memory" >&5
+$as_echo "$ax_cv_check_cflags___fsanitize_memory" >&6; }
+if test "x$ax_cv_check_cflags___fsanitize_memory" = xyes; then :
+
+BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS"
+LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS"
+
+else
+  as_fn_error $? "The selected compiler doesn't support memory sanitizer" "$LINENO" 5
+fi
+
+# MSan works by controlling memory allocation, our own malloc interferes.
+with_pymalloc="no"
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-undefined-behavior-sanitizer" >&5
+$as_echo_n "checking for --with-undefined-behavior-sanitizer... " >&6; }
+
+# Check whether --with-undefined_behavior_sanitizer was given.
+if test "${with_undefined_behavior_sanitizer+set}" = set; then :
+  withval=$with_undefined_behavior_sanitizer;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
+$as_echo "$withval" >&6; }
+BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
+LDFLAGS="-fsanitize=undefined $LDFLAGS"
+with_ubsan="yes"
+
+else
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+with_ubsan="no"
+
+fi
+
+
 # Set info about shared libraries.
 
 
@@ -9776,9 +9883,20 @@ then
                # Issue #18075: the default maximum stack size (8MBytes) is too
                # small for the default recursion limit. Increase the stack size
                # to ensure that tests don't crash
-               # Note: This matches the value of THREAD_STACK_SIZE in
-               # thread_pthread.h
-               LINKFORSHARED="-Wl,-stack_size,1000000 $LINKFORSHARED"
+    stack_size="1000000"  # 16 MB
+    if test "$with_ubsan" == "yes"
+    then
+        # Undefined behavior sanitizer requires an even deeper stack
+        stack_size="4000000"  # 64 MB
+    fi
+
+    LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED"
+
+
+cat >>confdefs.h <<_ACEOF
+#define THREAD_STACK_SIZE 0x$stack_size
+_ACEOF
+
 
                if test "$enable_framework"
                then
@@ -10038,8 +10156,57 @@ $as_echo "no" >&6; }
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+# check for libuuid from util-linux
+save_LIBS=$LIBS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time in -luuid" >&5
+$as_echo_n "checking for uuid_generate_time in -luuid... " >&6; }
+if ${ac_cv_lib_uuid_uuid_generate_time+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-luuid  $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 ();
+int
+main ()
+{
+return uuid_generate_time ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_uuid_uuid_generate_time=yes
+else
+  ac_cv_lib_uuid_uuid_generate_time=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate_time" >&5
+$as_echo "$ac_cv_lib_uuid_uuid_generate_time" >&6; }
+if test "x$ac_cv_lib_uuid_uuid_generate_time" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBUUID 1
+_ACEOF
+
+  LIBS="-luuid $LIBS"
+
+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
+# FreeBSD and OpenBSD provides support in libc as well.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_create" >&5
 $as_echo_n "checking for uuid_create... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5
-$as_echo_n "checking for --with-address-sanitizer... " >&6; }
-
-# Check whether --with-address_sanitizer was given.
-if test "${with_address_sanitizer+set}" = set; then :
-  withval=$with_address_sanitizer;
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
-$as_echo "$withval" >&6; }
-BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
-LDFLAGS="-fsanitize=address $LDFLAGS"
-# ASan works by controlling memory allocation, our own malloc interferes.
-with_pymalloc="no"
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5
-$as_echo_n "checking for --with-memory-sanitizer... " >&6; }
-
-# Check whether --with-memory_sanitizer was given.
-if test "${with_memory_sanitizer+set}" = set; then :
-  withval=$with_memory_sanitizer;
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
-$as_echo "$withval" >&6; }
-BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS"
-LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS"
-# MSan works by controlling memory allocation, our own malloc interferes.
-with_pymalloc="no"
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-undefined-behavior-sanitizer" >&5
-$as_echo_n "checking for --with-undefined-behavior-sanitizer... " >&6; }
-
-# Check whether --with-undefined_behavior_sanitizer was given.
-if test "${with_undefined_behavior_sanitizer+set}" = set; then :
-  withval=$with_undefined_behavior_sanitizer;
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
-$as_echo "$withval" >&6; }
-BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
-LDFLAGS="-fsanitize=undefined $LDFLAGS"
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for t_open in -lnsl" >&5
 $as_echo_n "checking for t_open in -lnsl... " >&6; }
@@ -10527,7 +10639,126 @@ $as_echo "no" >&6; }
 fi
 
 
-PKG_PROG_PKG_CONFIG
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=0.9.0
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               { $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; }
+               PKG_CONFIG=""
+       fi
+fi
 
 # Check for use of the system expat library
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-expat" >&5
@@ -11723,7 +11954,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 \
@@ -17632,6 +17863,66 @@ esac
 $as_echo "$OPENSSL_RPATH" >&6; }
 
 
+# check if OpenSSL libraries work as expected
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL provides required APIs" >&5
+$as_echo_n "checking whether OpenSSL provides required APIs... " >&6; }
+save_LIBS="$LIBS"
+save_CFLAGS="$CFLAGS"
+save_LDFLAGS="$LDFLAGS"
+LIBS="$LIBS $OPENSSL_LIBS"
+CFLAGS="$CFLAGS_NODIST $OPENSSL_INCLUDES"
+LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <openssl/opensslv.h>
+#include <openssl/evp.h>
+#include <openssl/ssl.h>
+
+#if OPENSSL_VERSION_NUMBER < 0x10101000L
+#error "OpenSSL >= 1.1.1 is required"
+#endif
+
+static void keylog_cb(const SSL *ssl, const char *line) {}
+
+int
+main ()
+{
+
+/* SSL APIs */
+SSL_CTX *ctx = SSL_CTX_new(TLS_client_method());
+SSL_CTX_set_keylog_callback(ctx, keylog_cb);
+SSL *ssl = SSL_new(ctx);
+X509_VERIFY_PARAM *param = SSL_get0_param(ssl);
+X509_VERIFY_PARAM_set1_host(param, "python.org", 0);
+SSL_free(ssl);
+SSL_CTX_free(ctx);
+
+/* hashlib APIs */
+OBJ_nid2sn(NID_md5);
+OBJ_nid2sn(NID_sha1);
+OBJ_nid2sn(NID_sha3_512);
+OBJ_nid2sn(NID_blake2b512);
+EVP_PBE_scrypt(NULL, 0, NULL, 0, 2, 8, 1, 0, NULL, 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  { $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
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS="$save_LIBS"
+CFLAGS="$save_CFLAGS"
+LDFLAGS="$save_LDFLAGS"
+
 # ssl module default cipher suite string
 
 
index 3e6c07c2793ab212aca84018df8b22267d2765b0..0c06914147854d807d654d8c00fad76e340ffdf8 100644 (file)
@@ -717,9 +717,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
@@ -875,6 +872,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])
@@ -2562,6 +2564,49 @@ case $ac_sys_system/$ac_sys_release in
        ;;
 esac
 
+AC_MSG_CHECKING(for --with-address-sanitizer)
+AC_ARG_WITH(address_sanitizer,
+            AS_HELP_STRING([--with-address-sanitizer],
+                           [enable AddressSanitizer memory error detector, 'asan' (default is no)]),
+[
+AC_MSG_RESULT($withval)
+BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
+LDFLAGS="-fsanitize=address $LDFLAGS"
+# ASan works by controlling memory allocation, our own malloc interferes.
+with_pymalloc="no"
+],
+[AC_MSG_RESULT(no)])
+
+AC_MSG_CHECKING(for --with-memory-sanitizer)
+AC_ARG_WITH(memory_sanitizer,
+            AS_HELP_STRING([--with-memory-sanitizer],
+                           [enable MemorySanitizer allocation error detector, 'msan' (default is no)]),
+[
+AC_MSG_RESULT($withval)
+AX_CHECK_COMPILE_FLAG([-fsanitize=memory],[
+BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS"
+LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS"
+],[AC_MSG_ERROR([The selected compiler doesn't support memory sanitizer])])
+# MSan works by controlling memory allocation, our own malloc interferes.
+with_pymalloc="no"
+],
+[AC_MSG_RESULT(no)])
+
+AC_MSG_CHECKING(for --with-undefined-behavior-sanitizer)
+AC_ARG_WITH(undefined_behavior_sanitizer,
+            AS_HELP_STRING([--with-undefined-behavior-sanitizer],
+                           [enable UndefinedBehaviorSanitizer undefined behaviour detector, 'ubsan' (default is no)]),
+[
+AC_MSG_RESULT($withval)
+BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
+LDFLAGS="-fsanitize=undefined $LDFLAGS"
+with_ubsan="yes"
+],
+[
+AC_MSG_RESULT(no)
+with_ubsan="no"
+])
+
 # Set info about shared libraries.
 AC_SUBST(SHLIB_SUFFIX)
 AC_SUBST(LDSHARED)
@@ -2765,9 +2810,18 @@ then
                # Issue #18075: the default maximum stack size (8MBytes) is too
                # small for the default recursion limit. Increase the stack size
                # to ensure that tests don't crash
-               # Note: This matches the value of THREAD_STACK_SIZE in
-               # thread_pthread.h
-               LINKFORSHARED="-Wl,-stack_size,1000000 $LINKFORSHARED"
+    stack_size="1000000"  # 16 MB
+    if test "$with_ubsan" == "yes"
+    then
+        # Undefined behavior sanitizer requires an even deeper stack
+        stack_size="4000000"  # 64 MB
+    fi
+
+    LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED"
+
+    AC_DEFINE_UNQUOTED(THREAD_STACK_SIZE,
+        0x$stack_size,
+        [Custom thread stack size depending on chosen sanitizer runtimes.])
 
                if test "$enable_framework"
                then
@@ -2859,8 +2913,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
@@ -3011,43 +3070,6 @@ esac
  AC_MSG_RESULT("$TZPATH")])
 AC_SUBST(TZPATH)
 
-AC_MSG_CHECKING(for --with-address-sanitizer)
-AC_ARG_WITH(address_sanitizer,
-            AS_HELP_STRING([--with-address-sanitizer],
-                           [enable AddressSanitizer memory error detector, 'asan' (default is no)]),
-[
-AC_MSG_RESULT($withval)
-BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
-LDFLAGS="-fsanitize=address $LDFLAGS"
-# ASan works by controlling memory allocation, our own malloc interferes.
-with_pymalloc="no"
-],
-[AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for --with-memory-sanitizer)
-AC_ARG_WITH(memory_sanitizer,
-            AS_HELP_STRING([--with-memory-sanitizer],
-                           [enable MemorySanitizer allocation error detector, 'msan' (default is no)]),
-[
-AC_MSG_RESULT($withval)
-BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS"
-LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS"
-# MSan works by controlling memory allocation, our own malloc interferes.
-with_pymalloc="no"
-],
-[AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for --with-undefined-behavior-sanitizer)
-AC_ARG_WITH(undefined_behavior_sanitizer,
-            AS_HELP_STRING([--with-undefined-behavior-sanitizer],
-                           [enable UndefinedBehaviorSanitizer undefined behaviour detector, 'ubsan' (default is no)]),
-[
-AC_MSG_RESULT($withval)
-BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
-LDFLAGS="-fsanitize=undefined $LDFLAGS"
-],
-[AC_MSG_RESULT(no)])
-
 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
@@ -3694,7 +3716,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 \
@@ -5816,6 +5838,48 @@ AS_CASE($with_openssl_rpath,
 AC_MSG_RESULT($OPENSSL_RPATH)
 AC_SUBST([OPENSSL_RPATH])
 
+# check if OpenSSL libraries work as expected
+AC_MSG_CHECKING(whether OpenSSL provides required APIs)
+save_LIBS="$LIBS"
+save_CFLAGS="$CFLAGS"
+save_LDFLAGS="$LDFLAGS"
+LIBS="$LIBS $OPENSSL_LIBS"
+CFLAGS="$CFLAGS_NODIST $OPENSSL_INCLUDES"
+LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
+
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <openssl/opensslv.h>
+#include <openssl/evp.h>
+#include <openssl/ssl.h>
+
+#if OPENSSL_VERSION_NUMBER < 0x10101000L
+#error "OpenSSL >= 1.1.1 is required"
+#endif
+
+static void keylog_cb(const SSL *ssl, const char *line) {}
+]], [[
+/* SSL APIs */
+SSL_CTX *ctx = SSL_CTX_new(TLS_client_method());
+SSL_CTX_set_keylog_callback(ctx, keylog_cb);
+SSL *ssl = SSL_new(ctx);
+X509_VERIFY_PARAM *param = SSL_get0_param(ssl);
+X509_VERIFY_PARAM_set1_host(param, "python.org", 0);
+SSL_free(ssl);
+SSL_CTX_free(ctx);
+
+/* hashlib APIs */
+OBJ_nid2sn(NID_md5);
+OBJ_nid2sn(NID_sha1);
+OBJ_nid2sn(NID_sha3_512);
+OBJ_nid2sn(NID_blake2b512);
+EVP_PBE_scrypt(NULL, 0, NULL, 0, 2, 8, 1, 0, NULL, 0);
+]])],
+  [AC_MSG_RESULT(yes)],
+  [AC_MSG_RESULT(no)])
+LIBS="$save_LIBS"
+CFLAGS="$save_CFLAGS"
+LDFLAGS="$save_LDFLAGS"
+
 # ssl module default cipher suite string
 AH_TEMPLATE(PY_SSL_DEFAULT_CIPHERS,
   [Default cipher suites list for ssl module.
index 63438d857a070ce2720df3024626f560cce6477e..b97b8f8bf8b4ac3430141848cf1e14e69cc57542 100644 (file)
 /* Define to 1 if you have the <libutil.h> header file. */
 #undef HAVE_LIBUTIL_H
 
+/* Define to 1 if you have the `uuid' library (-luuid). */
+#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
 
    (which you can't on SCO ODT 3.0). */
 #undef SYS_SELECT_WITH_SYS_TIME
 
+/* Custom thread stack size depending on chosen sanitizer runtimes. */
+#undef THREAD_STACK_SIZE
+
 /* Library needed by timemodule.c: librt may be needed for clock_gettime() */
 #undef TIMEMODULE_LIB
 
index 3d250e7249d7040215d4c8b2287f14ea5e11f6f2..43e807f20d98957fdc31bd5a457280948dbf8f0b 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -86,6 +86,9 @@ CYGWIN = (HOST_PLATFORM == 'cygwin')
 MACOS = (HOST_PLATFORM == 'darwin')
 AIX = (HOST_PLATFORM.startswith('aix'))
 VXWORKS = ('vxworks' in HOST_PLATFORM)
+CC = os.environ.get("CC")
+if not CC:
+    CC = sysconfig.get_config_var("CC")
 
 
 SUMMARY = """
@@ -467,6 +470,9 @@ class PyBuildExt(build_ext):
 
     def build_extensions(self):
         self.set_srcdir()
+        self.set_compiler_executables()
+        self.configure_compiler()
+        self.init_inc_lib_dirs()
 
         # Detect which modules should be compiled
         self.detect_modules()
@@ -476,7 +482,6 @@ class PyBuildExt(build_ext):
 
         self.update_sources_depends()
         mods_built, mods_disabled = self.remove_configured_extensions()
-        self.set_compiler_executables()
 
         if LIST_MODULE_NAMES:
             for ext in self.extensions:
@@ -662,12 +667,11 @@ class PyBuildExt(build_ext):
     def add_multiarch_paths(self):
         # Debian/Ubuntu multiarch support.
         # https://wiki.ubuntu.com/MultiarchSpec
-        cc = sysconfig.get_config_var('CC')
         tmpfile = os.path.join(self.build_temp, 'multiarch')
         if not os.path.exists(self.build_temp):
             os.makedirs(self.build_temp)
         ret = run_command(
-            '%s -print-multiarch > %s 2> /dev/null' % (cc, tmpfile))
+            '%s -print-multiarch > %s 2> /dev/null' % (CC, tmpfile))
         multiarch_path_component = ''
         try:
             if ret == 0:
@@ -729,11 +733,10 @@ class PyBuildExt(build_ext):
                 d = os.path.normpath(d)
                 add_dir_to_list(self.compiler.library_dirs, d)
 
-        cc = sysconfig.get_config_var('CC')
         tmpfile = os.path.join(self.build_temp, 'wrccpaths')
         os.makedirs(self.build_temp, exist_ok=True)
         try:
-            ret = run_command('%s --print-search-dirs >%s' % (cc, tmpfile))
+            ret = run_command('%s --print-search-dirs >%s' % (CC, tmpfile))
             if ret:
                 return
             with open(tmpfile) as fp:
@@ -751,11 +754,10 @@ class PyBuildExt(build_ext):
                 pass
 
     def add_cross_compiling_paths(self):
-        cc = sysconfig.get_config_var('CC')
         tmpfile = os.path.join(self.build_temp, 'ccpaths')
         if not os.path.exists(self.build_temp):
             os.makedirs(self.build_temp)
-        ret = run_command('%s -E -v - </dev/null 2>%s 1>/dev/null' % (cc, tmpfile))
+        ret = run_command('%s -E -v - </dev/null 2>%s 1>/dev/null' % (CC, tmpfile))
         is_gcc = False
         is_clang = False
         in_incdirs = False
@@ -801,6 +803,18 @@ class PyBuildExt(build_ext):
             if env_val:
                 parser = argparse.ArgumentParser()
                 parser.add_argument(arg_name, dest="dirs", action="append")
+
+                # To prevent argparse from raising an exception about any
+                # options in env_val that it mistakes for known option, we
+                # strip out all double dashes and any dashes followed by a
+                # character that is not for the option we are dealing with.
+                #
+                # Please note that order of the regex is important!  We must
+                # strip out double-dashes first so that we don't end up with
+                # substituting "--Long" to "-Long" and thus lead to "ong" being
+                # used for a library directory.
+                env_val = re.sub(r'(^|\s+)-(-|(?!%s))' % arg_name[1],
+                                 ' ', env_val)
                 options, _ = parser.parse_known_args(env_val.split())
                 if options.dirs:
                     for directory in reversed(options.dirs):
@@ -1765,7 +1779,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']
@@ -1849,22 +1865,19 @@ 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')
 
     def detect_modules(self):
-        self.configure_compiler()
-        self.init_inc_lib_dirs()
-
         self.detect_simple_extensions()
         if TEST_EXTENSIONS:
             self.detect_test_extensions()