[Python-checkins] [3.12] gh-104812: Run Pending Calls in any Thread (gh-104813) (gh-105752)

ericsnowcurrently webhook-mailer at python.org
Tue Jun 13 20:50:15 EDT 2023


https://github.com/python/cpython/commit/33d3069c45bda38f52053a115e3c0810cd631dd6
commit: 33d3069c45bda38f52053a115e3c0810cd631dd6
branch: 3.12
author: Eric Snow <ericsnowcurrently at gmail.com>
committer: ericsnowcurrently <ericsnowcurrently at gmail.com>
date: 2023-06-14T00:50:08Z
summary:

[3.12] gh-104812: Run Pending Calls in any Thread (gh-104813) (gh-105752)

For a while now, pending calls only run in the main thread (in the main interpreter).  This PR changes things to allow any thread run a pending call, unless the pending call was explicitly added for the main thread to run.
(cherry picked from commit 757b402)

files:
A Misc/NEWS.d/next/Core and Builtins/2023-06-02-15-15-41.gh-issue-104812.dfZiG5.rst
M Doc/data/python3.12.abi
M Include/cpython/ceval.h
M Include/internal/pycore_ceval.h
M Include/internal/pycore_ceval_state.h
M Include/internal/pycore_pystate.h
M Lib/test/support/threading_helper.py
M Lib/test/test_capi/test_misc.py
M Modules/_queuemodule.c
M Modules/_testinternalcapi.c
M Modules/_threadmodule.c
M Modules/signalmodule.c
M Python/ceval.c
M Python/ceval_gil.c
M Python/pylifecycle.c
M Python/pystate.c
M Tools/c-analyzer/cpython/ignored.tsv

diff --git a/Doc/data/python3.12.abi b/Doc/data/python3.12.abi
index 0615923c38b66..b58ee3744ba3f 100644
--- a/Doc/data/python3.12.abi
+++ b/Doc/data/python3.12.abi
@@ -1079,6 +1079,7 @@
     <elf-symbol name='_PyEval_GetBuiltin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyEval_GetBuiltinId' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyEval_GetSwitchInterval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_PyEval_MakePendingCalls' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyEval_SetProfile' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyEval_SetSwitchInterval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyEval_SetTrace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1702,7 +1703,7 @@
     <elf-symbol name='_PyNotImplemented_Type' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyOS_ReadlineTState' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyParser_TokenNames' size='552' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='_PyRuntime' size='459568' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_PyRuntime' size='460112' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PySet_Dummy' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyWeakref_CallableProxyType' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyWeakref_ProxyType' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -2512,22 +2513,22 @@
     <pointer-type-def type-id='type-id-129' size-in-bits='64' id='type-id-176'/>
     <class-decl name='__dirstream' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-65'/>
     <class-decl name='__spawn_action' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-66'/>
-    <function-decl name='_PyEval_ReInitThreads' filepath='./Include/internal/pycore_ceval.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_ReInitThreads' filepath='./Include/internal/pycore_ceval.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='_PyPerfTrampoline_AfterFork_Child' filepath='./Include/internal/pycore_ceval.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyPerfTrampoline_AfterFork_Child' filepath='./Include/internal/pycore_ceval.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-54'/>
     </function-decl>
     <function-decl name='_PyImport_ReInitLock' filepath='./Include/internal/pycore_import.h' line='157' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-20'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_DeleteExceptMain' filepath='./Include/internal/pycore_pystate.h' line='154' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyInterpreterState_DeleteExceptMain' filepath='./Include/internal/pycore_pystate.h' line='146' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-178'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='_PySignal_AfterFork' filepath='./Include/internal/pycore_pystate.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PySignal_AfterFork' filepath='./Include/internal/pycore_pystate.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-46'/>
     </function-decl>
     <function-decl name='_PyRuntimeState_ReInitThreads' filepath='./Include/internal/pycore_runtime.h' line='186' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -3442,23 +3443,23 @@
     <pointer-type-def type-id='type-id-197' size-in-bits='64' id='type-id-203'/>
     <qualified-type-def type-id='type-id-203' restrict='yes' id='type-id-204'/>
     <qualified-type-def type-id='type-id-189' restrict='yes' id='type-id-205'/>
-    <function-decl name='_PyErr_CheckSignals' mangled-name='_PyErr_CheckSignals' filepath='./Modules/signalmodule.c' line='1872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_CheckSignals'>
+    <function-decl name='_PyErr_CheckSignals' mangled-name='_PyErr_CheckSignals' filepath='./Modules/signalmodule.c' line='1874' 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_SetInterruptEx' mangled-name='PyErr_SetInterruptEx' filepath='./Modules/signalmodule.c' line='1884' 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='1884' column='1'/>
+    <function-decl name='PyErr_SetInterruptEx' mangled-name='PyErr_SetInterruptEx' filepath='./Modules/signalmodule.c' line='1886' 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='1886' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyErr_SetInterrupt' mangled-name='PyErr_SetInterrupt' filepath='./Modules/signalmodule.c' line='1900' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetInterrupt'>
+    <function-decl name='PyErr_SetInterrupt' mangled-name='PyErr_SetInterrupt' filepath='./Modules/signalmodule.c' line='1902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetInterrupt'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_Py_RestoreSignals' mangled-name='_Py_RestoreSignals' filepath='./Modules/signalmodule.c' line='1938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_RestoreSignals'>
+    <function-decl name='_Py_RestoreSignals' mangled-name='_Py_RestoreSignals' filepath='./Modules/signalmodule.c' line='1940' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_RestoreSignals'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyOS_InterruptOccurred' mangled-name='PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='2010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_InterruptOccurred'>
+    <function-decl name='PyOS_InterruptOccurred' mangled-name='PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='2012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_InterruptOccurred'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyOS_IsMainThread' mangled-name='_PyOS_IsMainThread' filepath='./Modules/signalmodule.c' line='2043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_IsMainThread'>
+    <function-decl name='_PyOS_IsMainThread' mangled-name='_PyOS_IsMainThread' filepath='./Modules/signalmodule.c' line='2045' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_IsMainThread'>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='sigismember' filepath='/usr/include/signal.h' line='211' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -3635,37 +3636,37 @@
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='./Python/sysmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
-    <function-decl name='_PyEval_CallTracing' filepath='./Include/internal/pycore_ceval.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_CallTracing' filepath='./Include/internal/pycore_ceval.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-2'/>
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyEval_GetAsyncGenFirstiter' filepath='./Include/internal/pycore_ceval.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_GetAsyncGenFirstiter' filepath='./Include/internal/pycore_ceval.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyEval_GetAsyncGenFinalizer' filepath='./Include/internal/pycore_ceval.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_GetAsyncGenFinalizer' filepath='./Include/internal/pycore_ceval.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyEval_SetAsyncGenFirstiter' filepath='./Include/internal/pycore_ceval.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_SetAsyncGenFirstiter' filepath='./Include/internal/pycore_ceval.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyEval_SetAsyncGenFinalizer' filepath='./Include/internal/pycore_ceval.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_SetAsyncGenFinalizer' filepath='./Include/internal/pycore_ceval.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyEval_GetCoroutineOriginTrackingDepth' filepath='./Include/internal/pycore_ceval.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_GetCoroutineOriginTrackingDepth' filepath='./Include/internal/pycore_ceval.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyEval_SetCoroutineOriginTrackingDepth' filepath='./Include/internal/pycore_ceval.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_SetCoroutineOriginTrackingDepth' filepath='./Include/internal/pycore_ceval.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyPerfTrampoline_GetCallbacks' filepath='./Include/internal/pycore_ceval.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyPerfTrampoline_GetCallbacks' filepath='./Include/internal/pycore_ceval.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-231'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyIsPerfTrampolineActive' filepath='./Include/internal/pycore_ceval.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyIsPerfTrampolineActive' filepath='./Include/internal/pycore_ceval.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='_PyImport_GetDLOpenFlags' filepath='./Include/internal/pycore_import.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -3737,38 +3738,38 @@
     <function-decl name='PySys_HasWarnOptions' mangled-name='PySys_HasWarnOptions' filepath='./Python/sysmodule.c' line='2671' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_HasWarnOptions'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PySys_AddXOption' mangled-name='PySys_AddXOption' filepath='./Python/sysmodule.c' line='2744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddXOption'>
-      <parameter type-id='type-id-16' name='s' filepath='./Python/sysmodule.c' line='2744' column='1'/>
+    <function-decl name='PySys_AddXOption' mangled-name='PySys_AddXOption' filepath='./Python/sysmodule.c' line='2750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddXOption'>
+      <parameter type-id='type-id-16' name='s' filepath='./Python/sysmodule.c' line='2750' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PySys_GetXOptions' mangled-name='PySys_GetXOptions' filepath='./Python/sysmodule.c' line='2758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_GetXOptions'>
+    <function-decl name='PySys_GetXOptions' mangled-name='PySys_GetXOptions' filepath='./Python/sysmodule.c' line='2764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_GetXOptions'>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_Py_CreateMonitoringObject' filepath='./Python/sysmodule.c' line='3525' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_Py_CreateMonitoringObject' filepath='./Python/sysmodule.c' line='3537' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PySys_SetPath' mangled-name='PySys_SetPath' filepath='./Python/sysmodule.c' line='3647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetPath'>
-      <parameter type-id='type-id-16' name='path' filepath='./Python/sysmodule.c' line='3647' column='1'/>
+    <function-decl name='PySys_SetPath' mangled-name='PySys_SetPath' filepath='./Python/sysmodule.c' line='3659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetPath'>
+      <parameter type-id='type-id-16' name='path' filepath='./Python/sysmodule.c' line='3659' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PySys_SetArgvEx' mangled-name='PySys_SetArgvEx' filepath='./Python/sysmodule.c' line='3679' 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='3679' column='1'/>
-      <parameter type-id='type-id-235' name='argv' filepath='./Python/sysmodule.c' line='3679' column='1'/>
-      <parameter type-id='type-id-8' name='updatepath' filepath='./Python/sysmodule.c' line='3679' column='1'/>
+    <function-decl name='PySys_SetArgvEx' mangled-name='PySys_SetArgvEx' filepath='./Python/sysmodule.c' line='3691' 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='3691' column='1'/>
+      <parameter type-id='type-id-235' name='argv' filepath='./Python/sysmodule.c' line='3691' column='1'/>
+      <parameter type-id='type-id-8' name='updatepath' filepath='./Python/sysmodule.c' line='3691' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PySys_SetArgv' mangled-name='PySys_SetArgv' filepath='./Python/sysmodule.c' line='3723' 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='3723' column='1'/>
-      <parameter type-id='type-id-235' name='argv' filepath='./Python/sysmodule.c' line='3723' column='1'/>
+    <function-decl name='PySys_SetArgv' mangled-name='PySys_SetArgv' filepath='./Python/sysmodule.c' line='3735' 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='3735' column='1'/>
+      <parameter type-id='type-id-235' name='argv' filepath='./Python/sysmodule.c' line='3735' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PySys_WriteStdout' mangled-name='PySys_WriteStdout' filepath='./Python/sysmodule.c' line='3818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_WriteStdout'>
-      <parameter type-id='type-id-12' name='format' filepath='./Python/sysmodule.c' line='3818' column='1'/>
+    <function-decl name='PySys_WriteStdout' mangled-name='PySys_WriteStdout' filepath='./Python/sysmodule.c' line='3830' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_WriteStdout'>
+      <parameter type-id='type-id-12' name='format' filepath='./Python/sysmodule.c' line='3830' column='1'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PySys_FormatStdout' mangled-name='PySys_FormatStdout' filepath='./Python/sysmodule.c' line='3860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_FormatStdout'>
-      <parameter type-id='type-id-12' name='format' filepath='./Python/sysmodule.c' line='3860' column='1'/>
+    <function-decl name='PySys_FormatStdout' mangled-name='PySys_FormatStdout' filepath='./Python/sysmodule.c' line='3872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_FormatStdout'>
+      <parameter type-id='type-id-12' name='format' filepath='./Python/sysmodule.c' line='3872' column='1'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-46'/>
     </function-decl>
@@ -4024,7 +4025,7 @@
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_Py_CheckRecursiveCall' mangled-name='_Py_CheckRecursiveCall' filepath='./Include/internal/pycore_ceval.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CheckRecursiveCall'>
+    <function-decl name='_Py_CheckRecursiveCall' mangled-name='_Py_CheckRecursiveCall' filepath='./Include/internal/pycore_ceval.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CheckRecursiveCall'>
       <parameter type-id='type-id-177'/>
       <parameter type-id='type-id-12'/>
       <return type-id='type-id-8'/>
@@ -5091,7 +5092,7 @@
     <array-type-def dimensions='1' type-id='type-id-50' size-in-bits='infinite' id='type-id-299'>
       <subrange length='infinite' id='type-id-225'/>
     </array-type-def>
-    <function-decl name='_PyEval_SliceIndex' mangled-name='_PyEval_SliceIndex' filepath='./Include/cpython/ceval.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndex'>
+    <function-decl name='_PyEval_SliceIndex' mangled-name='_PyEval_SliceIndex' filepath='./Include/cpython/ceval.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndex'>
       <parameter type-id='type-id-2'/>
       <parameter type-id='type-id-13'/>
       <return type-id='type-id-8'/>
@@ -5373,7 +5374,7 @@
       <parameter type-id='type-id-233'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyEval_Vector' filepath='./Include/internal/pycore_ceval.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_Vector' filepath='./Include/internal/pycore_ceval.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <parameter type-id='type-id-310'/>
       <parameter type-id='type-id-2'/>
@@ -7217,7 +7218,7 @@
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyEval_GetBuiltins' filepath='./Include/internal/pycore_ceval.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_GetBuiltins' filepath='./Include/internal/pycore_ceval.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-2'/>
     </function-decl>
@@ -7317,7 +7318,7 @@
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyEval_BuiltinsFromGlobals' filepath='./Include/internal/pycore_ceval.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_BuiltinsFromGlobals' filepath='./Include/internal/pycore_ceval.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-2'/>
@@ -7493,7 +7494,7 @@
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyEval_GetFrame' filepath='./Include/internal/pycore_ceval.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_GetFrame' filepath='./Include/internal/pycore_ceval.h' line='151' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-375'/>
     </function-decl>
     <function-decl name='_PyFrame_Copy' filepath='./Include/internal/pycore_frame.h' line='110' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -7644,7 +7645,7 @@
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='Objects/listobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
-    <function-decl name='_PyEval_SliceIndexNotNone' mangled-name='_PyEval_SliceIndexNotNone' filepath='./Include/cpython/ceval.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndexNotNone'>
+    <function-decl name='_PyEval_SliceIndexNotNone' mangled-name='_PyEval_SliceIndexNotNone' filepath='./Include/cpython/ceval.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndexNotNone'>
       <parameter type-id='type-id-2'/>
       <parameter type-id='type-id-13'/>
       <return type-id='type-id-8'/>
@@ -8230,8 +8231,8 @@
       <parameter type-id='type-id-20'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <var-decl name='_Py_NoneStruct' type-id='type-id-345' mangled-name='_Py_NoneStruct' visibility='default' filepath='./Include/object.h' line='820' column='1' elf-symbol-id='_Py_NoneStruct'/>
-    <var-decl name='_Py_NotImplementedStruct' type-id='type-id-345' mangled-name='_Py_NotImplementedStruct' visibility='default' filepath='./Include/object.h' line='834' column='1' elf-symbol-id='_Py_NotImplementedStruct'/>
+    <var-decl name='_Py_NoneStruct' type-id='type-id-345' mangled-name='_Py_NoneStruct' visibility='default' filepath='./Include/object.h' line='832' column='1' elf-symbol-id='_Py_NoneStruct'/>
+    <var-decl name='_Py_NotImplementedStruct' type-id='type-id-345' mangled-name='_Py_NotImplementedStruct' visibility='default' filepath='./Include/object.h' line='846' column='1' elf-symbol-id='_Py_NotImplementedStruct'/>
     <function-decl name='PyThreadState_GetDict' mangled-name='PyThreadState_GetDict' filepath='./Include/pystate.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetDict'>
       <return type-id='type-id-2'/>
     </function-decl>
@@ -9502,185 +9503,185 @@
       <parameter type-id='type-id-2' name='string' filepath='Objects/unicodeobject.c' line='7883' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EncodeCharmap' mangled-name='_PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='8290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeCharmap'>
-      <parameter type-id='type-id-2' name='unicode' filepath='Objects/unicodeobject.c' line='8290' column='1'/>
-      <parameter type-id='type-id-2' name='mapping' filepath='Objects/unicodeobject.c' line='8291' column='1'/>
-      <parameter type-id='type-id-12' name='errors' filepath='Objects/unicodeobject.c' line='8292' column='1'/>
+    <function-decl name='_PyUnicode_EncodeCharmap' mangled-name='_PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='8295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeCharmap'>
+      <parameter type-id='type-id-2' name='unicode' filepath='Objects/unicodeobject.c' line='8295' column='1'/>
+      <parameter type-id='type-id-2' name='mapping' filepath='Objects/unicodeobject.c' line='8296' column='1'/>
+      <parameter type-id='type-id-12' name='errors' filepath='Objects/unicodeobject.c' line='8297' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsCharmapString' mangled-name='PyUnicode_AsCharmapString' filepath='Objects/unicodeobject.c' line='8359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsCharmapString'>
-      <parameter type-id='type-id-2' name='unicode' filepath='Objects/unicodeobject.c' line='8359' column='1'/>
-      <parameter type-id='type-id-2' name='mapping' filepath='Objects/unicodeobject.c' line='8360' column='1'/>
+    <function-decl name='PyUnicode_AsCharmapString' mangled-name='PyUnicode_AsCharmapString' filepath='Objects/unicodeobject.c' line='8364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsCharmapString'>
+      <parameter type-id='type-id-2' name='unicode' filepath='Objects/unicodeobject.c' line='8364' column='1'/>
+      <parameter type-id='type-id-2' name='mapping' filepath='Objects/unicodeobject.c' line='8365' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_Translate' mangled-name='PyUnicode_Translate' filepath='Objects/unicodeobject.c' line='8775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Translate'>
-      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='8775' column='1'/>
-      <parameter type-id='type-id-2' name='mapping' filepath='Objects/unicodeobject.c' line='8776' column='1'/>
-      <parameter type-id='type-id-12' name='errors' filepath='Objects/unicodeobject.c' line='8777' column='1'/>
+    <function-decl name='PyUnicode_Translate' mangled-name='PyUnicode_Translate' filepath='Objects/unicodeobject.c' line='8780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Translate'>
+      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='8780' column='1'/>
+      <parameter type-id='type-id-2' name='mapping' filepath='Objects/unicodeobject.c' line='8781' column='1'/>
+      <parameter type-id='type-id-12' name='errors' filepath='Objects/unicodeobject.c' line='8782' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyUnicode_InsertThousandsGrouping' mangled-name='_PyUnicode_InsertThousandsGrouping' filepath='Objects/unicodeobject.c' line='8957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_InsertThousandsGrouping'>
-      <parameter type-id='type-id-332' name='writer' filepath='Objects/unicodeobject.c' line='8958' column='1'/>
-      <parameter type-id='type-id-14' name='n_buffer' filepath='Objects/unicodeobject.c' line='8959' column='1'/>
-      <parameter type-id='type-id-2' name='digits' filepath='Objects/unicodeobject.c' line='8960' column='1'/>
-      <parameter type-id='type-id-14' name='d_pos' filepath='Objects/unicodeobject.c' line='8961' column='1'/>
-      <parameter type-id='type-id-14' name='n_digits' filepath='Objects/unicodeobject.c' line='8962' column='1'/>
-      <parameter type-id='type-id-14' name='min_width' filepath='Objects/unicodeobject.c' line='8963' column='1'/>
-      <parameter type-id='type-id-12' name='grouping' filepath='Objects/unicodeobject.c' line='8964' column='1'/>
-      <parameter type-id='type-id-2' name='thousands_sep' filepath='Objects/unicodeobject.c' line='8965' column='1'/>
-      <parameter type-id='type-id-440' name='maxchar' filepath='Objects/unicodeobject.c' line='8966' column='1'/>
+    <function-decl name='_PyUnicode_InsertThousandsGrouping' mangled-name='_PyUnicode_InsertThousandsGrouping' filepath='Objects/unicodeobject.c' line='8962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_InsertThousandsGrouping'>
+      <parameter type-id='type-id-332' name='writer' filepath='Objects/unicodeobject.c' line='8963' column='1'/>
+      <parameter type-id='type-id-14' name='n_buffer' filepath='Objects/unicodeobject.c' line='8964' column='1'/>
+      <parameter type-id='type-id-2' name='digits' filepath='Objects/unicodeobject.c' line='8965' column='1'/>
+      <parameter type-id='type-id-14' name='d_pos' filepath='Objects/unicodeobject.c' line='8966' column='1'/>
+      <parameter type-id='type-id-14' name='n_digits' filepath='Objects/unicodeobject.c' line='8967' column='1'/>
+      <parameter type-id='type-id-14' name='min_width' filepath='Objects/unicodeobject.c' line='8968' column='1'/>
+      <parameter type-id='type-id-12' name='grouping' filepath='Objects/unicodeobject.c' line='8969' column='1'/>
+      <parameter type-id='type-id-2' name='thousands_sep' filepath='Objects/unicodeobject.c' line='8970' column='1'/>
+      <parameter type-id='type-id-440' name='maxchar' filepath='Objects/unicodeobject.c' line='8971' column='1'/>
       <return type-id='type-id-14'/>
     </function-decl>
-    <function-decl name='PyUnicode_Count' mangled-name='PyUnicode_Count' filepath='Objects/unicodeobject.c' line='9136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Count'>
-      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='9136' column='1'/>
-      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='9137' column='1'/>
-      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9138' column='1'/>
-      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='9139' column='1'/>
+    <function-decl name='PyUnicode_Count' mangled-name='PyUnicode_Count' filepath='Objects/unicodeobject.c' line='9141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Count'>
+      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='9141' column='1'/>
+      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='9142' column='1'/>
+      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9143' column='1'/>
+      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='9144' column='1'/>
       <return type-id='type-id-14'/>
     </function-decl>
-    <function-decl name='PyUnicode_Find' mangled-name='PyUnicode_Find' filepath='Objects/unicodeobject.c' line='9148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Find'>
-      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='9148' column='1'/>
-      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='9149' column='1'/>
-      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9150' column='1'/>
-      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='9151' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9152' column='1'/>
+    <function-decl name='PyUnicode_Find' mangled-name='PyUnicode_Find' filepath='Objects/unicodeobject.c' line='9153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Find'>
+      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='9153' column='1'/>
+      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='9154' column='1'/>
+      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9155' column='1'/>
+      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='9156' column='1'/>
+      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9157' column='1'/>
       <return type-id='type-id-14'/>
     </function-decl>
-    <function-decl name='PyUnicode_FindChar' mangled-name='PyUnicode_FindChar' filepath='Objects/unicodeobject.c' line='9161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FindChar'>
-      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='9161' column='1'/>
-      <parameter type-id='type-id-250' name='ch' filepath='Objects/unicodeobject.c' line='9161' column='1'/>
-      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9162' column='1'/>
-      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='9162' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9163' column='1'/>
+    <function-decl name='PyUnicode_FindChar' mangled-name='PyUnicode_FindChar' filepath='Objects/unicodeobject.c' line='9166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FindChar'>
+      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='9166' column='1'/>
+      <parameter type-id='type-id-250' name='ch' filepath='Objects/unicodeobject.c' line='9166' column='1'/>
+      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9167' column='1'/>
+      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='9167' column='1'/>
+      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9168' column='1'/>
       <return type-id='type-id-14'/>
     </function-decl>
-    <function-decl name='PyUnicode_Tailmatch' mangled-name='PyUnicode_Tailmatch' filepath='Objects/unicodeobject.c' line='9244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Tailmatch'>
-      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='9244' column='1'/>
-      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='9245' column='1'/>
-      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9246' column='1'/>
-      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='9247' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9248' column='1'/>
+    <function-decl name='PyUnicode_Tailmatch' mangled-name='PyUnicode_Tailmatch' filepath='Objects/unicodeobject.c' line='9249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Tailmatch'>
+      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='9249' column='1'/>
+      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='9250' column='1'/>
+      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9251' column='1'/>
+      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='9252' column='1'/>
+      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9253' column='1'/>
       <return type-id='type-id-14'/>
     </function-decl>
-    <function-decl name='_PyUnicode_JoinArray' mangled-name='_PyUnicode_JoinArray' filepath='Objects/unicodeobject.c' line='9513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_JoinArray'>
-      <parameter type-id='type-id-2' name='separator' filepath='Objects/unicodeobject.c' line='9513' column='1'/>
-      <parameter type-id='type-id-248' name='items' filepath='Objects/unicodeobject.c' line='9513' column='1'/>
-      <parameter type-id='type-id-14' name='seqlen' filepath='Objects/unicodeobject.c' line='9513' column='1'/>
+    <function-decl name='_PyUnicode_JoinArray' mangled-name='_PyUnicode_JoinArray' filepath='Objects/unicodeobject.c' line='9518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_JoinArray'>
+      <parameter type-id='type-id-2' name='separator' filepath='Objects/unicodeobject.c' line='9518' column='1'/>
+      <parameter type-id='type-id-248' name='items' filepath='Objects/unicodeobject.c' line='9518' column='1'/>
+      <parameter type-id='type-id-14' name='seqlen' filepath='Objects/unicodeobject.c' line='9518' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyUnicode_FastFill' mangled-name='_PyUnicode_FastFill' filepath='Objects/unicodeobject.c' line='9680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastFill'>
-      <parameter type-id='type-id-2' name='unicode' filepath='Objects/unicodeobject.c' line='9680' column='1'/>
-      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9680' column='1'/>
-      <parameter type-id='type-id-14' name='length' filepath='Objects/unicodeobject.c' line='9680' column='1'/>
-      <parameter type-id='type-id-250' name='fill_char' filepath='Objects/unicodeobject.c' line='9681' column='1'/>
+    <function-decl name='_PyUnicode_FastFill' mangled-name='_PyUnicode_FastFill' filepath='Objects/unicodeobject.c' line='9685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastFill'>
+      <parameter type-id='type-id-2' name='unicode' filepath='Objects/unicodeobject.c' line='9685' column='1'/>
+      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9685' column='1'/>
+      <parameter type-id='type-id-14' name='length' filepath='Objects/unicodeobject.c' line='9685' column='1'/>
+      <parameter type-id='type-id-250' name='fill_char' filepath='Objects/unicodeobject.c' line='9686' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyUnicode_Fill' mangled-name='PyUnicode_Fill' filepath='Objects/unicodeobject.c' line='9693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Fill'>
-      <parameter type-id='type-id-2' name='unicode' filepath='Objects/unicodeobject.c' line='9693' column='1'/>
-      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9693' column='1'/>
-      <parameter type-id='type-id-14' name='length' filepath='Objects/unicodeobject.c' line='9693' column='1'/>
-      <parameter type-id='type-id-250' name='fill_char' filepath='Objects/unicodeobject.c' line='9694' column='1'/>
+    <function-decl name='PyUnicode_Fill' mangled-name='PyUnicode_Fill' filepath='Objects/unicodeobject.c' line='9698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Fill'>
+      <parameter type-id='type-id-2' name='unicode' filepath='Objects/unicodeobject.c' line='9698' column='1'/>
+      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='9698' column='1'/>
+      <parameter type-id='type-id-14' name='length' filepath='Objects/unicodeobject.c' line='9698' column='1'/>
+      <parameter type-id='type-id-250' name='fill_char' filepath='Objects/unicodeobject.c' line='9699' column='1'/>
       <return type-id='type-id-14'/>
     </function-decl>
-    <function-decl name='PyUnicode_Splitlines' mangled-name='PyUnicode_Splitlines' filepath='Objects/unicodeobject.c' line='9767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Splitlines'>
-      <parameter type-id='type-id-2' name='string' filepath='Objects/unicodeobject.c' line='9767' column='1'/>
-      <parameter type-id='type-id-8' name='keepends' filepath='Objects/unicodeobject.c' line='9767' column='1'/>
+    <function-decl name='PyUnicode_Splitlines' mangled-name='PyUnicode_Splitlines' filepath='Objects/unicodeobject.c' line='9772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Splitlines'>
+      <parameter type-id='type-id-2' name='string' filepath='Objects/unicodeobject.c' line='9772' column='1'/>
+      <parameter type-id='type-id-8' name='keepends' filepath='Objects/unicodeobject.c' line='9772' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EqualToASCIIId' mangled-name='_PyUnicode_EqualToASCIIId' filepath='Objects/unicodeobject.c' line='10655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIId'>
-      <parameter type-id='type-id-2' name='left' filepath='Objects/unicodeobject.c' line='10655' column='1'/>
-      <parameter type-id='type-id-309' name='right' filepath='Objects/unicodeobject.c' line='10655' column='1'/>
+    <function-decl name='_PyUnicode_EqualToASCIIId' mangled-name='_PyUnicode_EqualToASCIIId' filepath='Objects/unicodeobject.c' line='10660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIId'>
+      <parameter type-id='type-id-2' name='left' filepath='Objects/unicodeobject.c' line='10660' column='1'/>
+      <parameter type-id='type-id-309' name='right' filepath='Objects/unicodeobject.c' line='10660' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_RichCompare' mangled-name='PyUnicode_RichCompare' filepath='Objects/unicodeobject.c' line='10693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RichCompare'>
-      <parameter type-id='type-id-2' name='left' filepath='Objects/unicodeobject.c' line='10693' column='1'/>
-      <parameter type-id='type-id-2' name='right' filepath='Objects/unicodeobject.c' line='10693' column='1'/>
-      <parameter type-id='type-id-8' name='op' filepath='Objects/unicodeobject.c' line='10693' column='1'/>
+    <function-decl name='PyUnicode_RichCompare' mangled-name='PyUnicode_RichCompare' filepath='Objects/unicodeobject.c' line='10698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RichCompare'>
+      <parameter type-id='type-id-2' name='left' filepath='Objects/unicodeobject.c' line='10698' column='1'/>
+      <parameter type-id='type-id-2' name='right' filepath='Objects/unicodeobject.c' line='10698' column='1'/>
+      <parameter type-id='type-id-8' name='op' filepath='Objects/unicodeobject.c' line='10698' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_Contains' mangled-name='PyUnicode_Contains' filepath='Objects/unicodeobject.c' line='10734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Contains'>
-      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='10734' column='1'/>
-      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='10734' column='1'/>
+    <function-decl name='PyUnicode_Contains' mangled-name='PyUnicode_Contains' filepath='Objects/unicodeobject.c' line='10739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Contains'>
+      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='10739' column='1'/>
+      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='10739' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_Concat' mangled-name='PyUnicode_Concat' filepath='Objects/unicodeobject.c' line='10795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Concat'>
-      <parameter type-id='type-id-2' name='left' filepath='Objects/unicodeobject.c' line='10795' column='1'/>
-      <parameter type-id='type-id-2' name='right' filepath='Objects/unicodeobject.c' line='10795' column='1'/>
+    <function-decl name='PyUnicode_Concat' mangled-name='PyUnicode_Concat' filepath='Objects/unicodeobject.c' line='10800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Concat'>
+      <parameter type-id='type-id-2' name='left' filepath='Objects/unicodeobject.c' line='10800' column='1'/>
+      <parameter type-id='type-id-2' name='right' filepath='Objects/unicodeobject.c' line='10800' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_Append' mangled-name='PyUnicode_Append' filepath='Objects/unicodeobject.c' line='10844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Append'>
-      <parameter type-id='type-id-233' name='p_left' filepath='Objects/unicodeobject.c' line='10844' column='1'/>
-      <parameter type-id='type-id-2' name='right' filepath='Objects/unicodeobject.c' line='10844' column='1'/>
+    <function-decl name='PyUnicode_Append' mangled-name='PyUnicode_Append' filepath='Objects/unicodeobject.c' line='10849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Append'>
+      <parameter type-id='type-id-233' name='p_left' filepath='Objects/unicodeobject.c' line='10849' column='1'/>
+      <parameter type-id='type-id-2' name='right' filepath='Objects/unicodeobject.c' line='10849' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyUnicode_AppendAndDel' mangled-name='PyUnicode_AppendAndDel' filepath='Objects/unicodeobject.c' line='10921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AppendAndDel'>
-      <parameter type-id='type-id-233' name='pleft' filepath='Objects/unicodeobject.c' line='10921' column='1'/>
-      <parameter type-id='type-id-2' name='right' filepath='Objects/unicodeobject.c' line='10921' column='1'/>
+    <function-decl name='PyUnicode_AppendAndDel' mangled-name='PyUnicode_AppendAndDel' filepath='Objects/unicodeobject.c' line='10926' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AppendAndDel'>
+      <parameter type-id='type-id-233' name='pleft' filepath='Objects/unicodeobject.c' line='10926' column='1'/>
+      <parameter type-id='type-id-2' name='right' filepath='Objects/unicodeobject.c' line='10926' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyUnicode_XStrip' mangled-name='_PyUnicode_XStrip' filepath='Objects/unicodeobject.c' line='11733' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_XStrip'>
-      <parameter type-id='type-id-2' name='self' filepath='Objects/unicodeobject.c' line='11733' column='1'/>
-      <parameter type-id='type-id-8' name='striptype' filepath='Objects/unicodeobject.c' line='11733' column='1'/>
-      <parameter type-id='type-id-2' name='sepobj' filepath='Objects/unicodeobject.c' line='11733' column='1'/>
+    <function-decl name='_PyUnicode_XStrip' mangled-name='_PyUnicode_XStrip' filepath='Objects/unicodeobject.c' line='11738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_XStrip'>
+      <parameter type-id='type-id-2' name='self' filepath='Objects/unicodeobject.c' line='11738' column='1'/>
+      <parameter type-id='type-id-8' name='striptype' filepath='Objects/unicodeobject.c' line='11738' column='1'/>
+      <parameter type-id='type-id-2' name='sepobj' filepath='Objects/unicodeobject.c' line='11738' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_Replace' mangled-name='PyUnicode_Replace' filepath='Objects/unicodeobject.c' line='12006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Replace'>
-      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='12006' column='1'/>
-      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='12007' column='1'/>
-      <parameter type-id='type-id-2' name='replstr' filepath='Objects/unicodeobject.c' line='12008' column='1'/>
-      <parameter type-id='type-id-14' name='maxcount' filepath='Objects/unicodeobject.c' line='12009' column='1'/>
+    <function-decl name='PyUnicode_Replace' mangled-name='PyUnicode_Replace' filepath='Objects/unicodeobject.c' line='12011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Replace'>
+      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='12011' column='1'/>
+      <parameter type-id='type-id-2' name='substr' filepath='Objects/unicodeobject.c' line='12012' column='1'/>
+      <parameter type-id='type-id-2' name='replstr' filepath='Objects/unicodeobject.c' line='12013' column='1'/>
+      <parameter type-id='type-id-14' name='maxcount' filepath='Objects/unicodeobject.c' line='12014' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_Split' mangled-name='PyUnicode_Split' filepath='Objects/unicodeobject.c' line='12344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Split'>
-      <parameter type-id='type-id-2' name='s' filepath='Objects/unicodeobject.c' line='12344' column='1'/>
-      <parameter type-id='type-id-2' name='sep' filepath='Objects/unicodeobject.c' line='12344' column='1'/>
-      <parameter type-id='type-id-14' name='maxsplit' filepath='Objects/unicodeobject.c' line='12344' column='1'/>
+    <function-decl name='PyUnicode_Split' mangled-name='PyUnicode_Split' filepath='Objects/unicodeobject.c' line='12349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Split'>
+      <parameter type-id='type-id-2' name='s' filepath='Objects/unicodeobject.c' line='12349' column='1'/>
+      <parameter type-id='type-id-2' name='sep' filepath='Objects/unicodeobject.c' line='12349' column='1'/>
+      <parameter type-id='type-id-14' name='maxsplit' filepath='Objects/unicodeobject.c' line='12349' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_Partition' mangled-name='PyUnicode_Partition' filepath='Objects/unicodeobject.c' line='12389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Partition'>
-      <parameter type-id='type-id-2' name='str_obj' filepath='Objects/unicodeobject.c' line='12389' column='1'/>
-      <parameter type-id='type-id-2' name='sep_obj' filepath='Objects/unicodeobject.c' line='12389' column='1'/>
+    <function-decl name='PyUnicode_Partition' mangled-name='PyUnicode_Partition' filepath='Objects/unicodeobject.c' line='12394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Partition'>
+      <parameter type-id='type-id-2' name='str_obj' filepath='Objects/unicodeobject.c' line='12394' column='1'/>
+      <parameter type-id='type-id-2' name='sep_obj' filepath='Objects/unicodeobject.c' line='12394' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_RPartition' mangled-name='PyUnicode_RPartition' filepath='Objects/unicodeobject.c' line='12441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RPartition'>
-      <parameter type-id='type-id-2' name='str_obj' filepath='Objects/unicodeobject.c' line='12441' column='1'/>
-      <parameter type-id='type-id-2' name='sep_obj' filepath='Objects/unicodeobject.c' line='12441' column='1'/>
+    <function-decl name='PyUnicode_RPartition' mangled-name='PyUnicode_RPartition' filepath='Objects/unicodeobject.c' line='12446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RPartition'>
+      <parameter type-id='type-id-2' name='str_obj' filepath='Objects/unicodeobject.c' line='12446' column='1'/>
+      <parameter type-id='type-id-2' name='sep_obj' filepath='Objects/unicodeobject.c' line='12446' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_RSplit' mangled-name='PyUnicode_RSplit' filepath='Objects/unicodeobject.c' line='12535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RSplit'>
-      <parameter type-id='type-id-2' name='s' filepath='Objects/unicodeobject.c' line='12535' column='1'/>
-      <parameter type-id='type-id-2' name='sep' filepath='Objects/unicodeobject.c' line='12535' column='1'/>
-      <parameter type-id='type-id-14' name='maxsplit' filepath='Objects/unicodeobject.c' line='12535' column='1'/>
+    <function-decl name='PyUnicode_RSplit' mangled-name='PyUnicode_RSplit' filepath='Objects/unicodeobject.c' line='12540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RSplit'>
+      <parameter type-id='type-id-2' name='s' filepath='Objects/unicodeobject.c' line='12540' column='1'/>
+      <parameter type-id='type-id-2' name='sep' filepath='Objects/unicodeobject.c' line='12540' column='1'/>
+      <parameter type-id='type-id-14' name='maxsplit' filepath='Objects/unicodeobject.c' line='12540' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_PrepareKindInternal' mangled-name='_PyUnicodeWriter_PrepareKindInternal' filepath='Objects/unicodeobject.c' line='13046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareKindInternal'>
-      <parameter type-id='type-id-332' name='writer' filepath='Objects/unicodeobject.c' line='13046' column='1'/>
-      <parameter type-id='type-id-8' name='kind' filepath='Objects/unicodeobject.c' line='13047' column='1'/>
+    <function-decl name='_PyUnicodeWriter_PrepareKindInternal' mangled-name='_PyUnicodeWriter_PrepareKindInternal' filepath='Objects/unicodeobject.c' line='13051' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareKindInternal'>
+      <parameter type-id='type-id-332' name='writer' filepath='Objects/unicodeobject.c' line='13051' column='1'/>
+      <parameter type-id='type-id-8' name='kind' filepath='Objects/unicodeobject.c' line='13052' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteSubstring' mangled-name='_PyUnicodeWriter_WriteSubstring' filepath='Objects/unicodeobject.c' line='13112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteSubstring'>
-      <parameter type-id='type-id-332' name='writer' filepath='Objects/unicodeobject.c' line='13112' column='1'/>
-      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='13112' column='1'/>
-      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='13113' column='1'/>
-      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='13113' column='1'/>
+    <function-decl name='_PyUnicodeWriter_WriteSubstring' mangled-name='_PyUnicodeWriter_WriteSubstring' filepath='Objects/unicodeobject.c' line='13117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteSubstring'>
+      <parameter type-id='type-id-332' name='writer' filepath='Objects/unicodeobject.c' line='13117' column='1'/>
+      <parameter type-id='type-id-2' name='str' filepath='Objects/unicodeobject.c' line='13117' column='1'/>
+      <parameter type-id='type-id-14' name='start' filepath='Objects/unicodeobject.c' line='13118' column='1'/>
+      <parameter type-id='type-id-14' name='end' filepath='Objects/unicodeobject.c' line='13118' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteLatin1String' mangled-name='_PyUnicodeWriter_WriteLatin1String' filepath='Objects/unicodeobject.c' line='13204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteLatin1String'>
-      <parameter type-id='type-id-332' name='writer' filepath='Objects/unicodeobject.c' line='13204' column='1'/>
-      <parameter type-id='type-id-12' name='str' filepath='Objects/unicodeobject.c' line='13205' column='1'/>
-      <parameter type-id='type-id-14' name='len' filepath='Objects/unicodeobject.c' line='13205' column='1'/>
+    <function-decl name='_PyUnicodeWriter_WriteLatin1String' mangled-name='_PyUnicodeWriter_WriteLatin1String' filepath='Objects/unicodeobject.c' line='13209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteLatin1String'>
+      <parameter type-id='type-id-332' name='writer' filepath='Objects/unicodeobject.c' line='13209' column='1'/>
+      <parameter type-id='type-id-12' name='str' filepath='Objects/unicodeobject.c' line='13210' column='1'/>
+      <parameter type-id='type-id-14' name='len' filepath='Objects/unicodeobject.c' line='13210' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_Format' mangled-name='PyUnicode_Format' filepath='Objects/unicodeobject.c' line='14354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Format'>
-      <parameter type-id='type-id-2' name='format' filepath='Objects/unicodeobject.c' line='14354' column='1'/>
-      <parameter type-id='type-id-2' name='args' filepath='Objects/unicodeobject.c' line='14354' column='1'/>
+    <function-decl name='PyUnicode_Format' mangled-name='PyUnicode_Format' filepath='Objects/unicodeobject.c' line='14359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Format'>
+      <parameter type-id='type-id-2' name='format' filepath='Objects/unicodeobject.c' line='14359' column='1'/>
+      <parameter type-id='type-id-2' name='args' filepath='Objects/unicodeobject.c' line='14359' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyUnicode_InternImmortal' mangled-name='PyUnicode_InternImmortal' filepath='Objects/unicodeobject.c' line='14764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternImmortal'>
-      <parameter type-id='type-id-233' name='p' filepath='Objects/unicodeobject.c' line='14764' column='1'/>
+    <function-decl name='PyUnicode_InternImmortal' mangled-name='PyUnicode_InternImmortal' filepath='Objects/unicodeobject.c' line='14769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternImmortal'>
+      <parameter type-id='type-id-233' name='p' filepath='Objects/unicodeobject.c' line='14769' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyInit__string' mangled-name='PyInit__string' filepath='Objects/unicodeobject.c' line='15318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__string'>
+    <function-decl name='PyInit__string' mangled-name='PyInit__string' filepath='Objects/unicodeobject.c' line='15323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__string'>
       <return type-id='type-id-2'/>
     </function-decl>
   </abi-instr>
@@ -11112,7 +11113,7 @@
         <var-decl name='op' type-id='type-id-708' visibility='default' filepath='./Include/cpython/code.h' line='36' column='1'/>
       </data-member>
     </union-decl>
-    <class-decl name='__anonymous_struct__748' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/cpython/code.h' line='33' column='1' id='type-id-708'>
+    <class-decl name='__anonymous_struct__747' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/cpython/code.h' line='33' column='1' id='type-id-708'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='code' type-id='type-id-325' visibility='default' filepath='./Include/cpython/code.h' line='34' column='1'/>
       </data-member>
@@ -11913,7 +11914,7 @@
         <var-decl name='root_cframe' type-id='type-id-767' visibility='default' filepath='./Include/cpython/pystate.h' line='248' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__750' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='122' column='1' id='type-id-775'>
+    <class-decl name='__anonymous_struct__749' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='122' column='1' id='type-id-775'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='initialized' type-id='type-id-95' visibility='default' filepath='./Include/cpython/pystate.h' line='127' column='1'/>
       </data-member>
@@ -11994,7 +11995,7 @@
         <var-decl name='state' type-id='type-id-794' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='146' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__27' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='100' column='1' id='type-id-794'>
+    <class-decl name='__anonymous_struct__26' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='100' column='1' id='type-id-794'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='interned' type-id='type-id-95' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='110' column='1'/>
       </data-member>
@@ -12815,104 +12816,107 @@
     <typedef-decl name='_Py_atomic_address' type-id='type-id-807' filepath='./Include/internal/pycore_atomic.h' line='47' column='1' id='type-id-808'/>
     <class-decl name='_Py_atomic_int' size-in-bits='32' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='49' column='1' id='type-id-809'/>
     <typedef-decl name='_Py_atomic_int' type-id='type-id-809' filepath='./Include/internal/pycore_atomic.h' line='51' column='1' id='type-id-810'/>
-    <enum-decl name='perf_status_t' naming-typedef-id='type-id-811' filepath='./Include/internal/pycore_ceval_state.h' line='16' column='1' id='type-id-812'>
-      <underlying-type type-id='type-id-24'/>
-      <enumerator name='PERF_STATUS_FAILED' value='-1'/>
-      <enumerator name='PERF_STATUS_NO_INIT' value='0'/>
-      <enumerator name='PERF_STATUS_OK' value='1'/>
-    </enum-decl>
-    <typedef-decl name='perf_status_t' type-id='type-id-812' filepath='./Include/internal/pycore_ceval_state.h' line='20' column='1' id='type-id-811'/>
-    <class-decl name='trampoline_api_st' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='26' column='1' id='type-id-813'>
+    <class-decl name='_pending_calls' size-in-bits='4352' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='16' column='1' id='type-id-811'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='init_state' type-id='type-id-814' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='27' column='1'/>
+        <var-decl name='busy' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='17' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='write_state' type-id='type-id-815' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='28' column='1'/>
+        <var-decl name='lock' type-id='type-id-799' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='18' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='free_state' type-id='type-id-816' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='30' column='1'/>
+        <var-decl name='calls_to_do' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='20' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='async_exc' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='24' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='state' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='31' column='1'/>
+        <var-decl name='calls' type-id='type-id-601' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='29' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4288'>
+        <var-decl name='first' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='30' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4320'>
+        <var-decl name='last' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='31' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_ceval_runtime_state' size-in-bits='576' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='35' column='1' id='type-id-817'>
+    <class-decl name='_pending_call' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='26' column='1' id='type-id-600'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='perf' type-id='type-id-818' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='46' column='1'/>
+        <var-decl name='func' type-id='type-id-812' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='27' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='signals_pending' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='51' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='arg' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='28' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__9' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='36' column='1' id='type-id-818'>
+    <enum-decl name='perf_status_t' naming-typedef-id='type-id-813' filepath='./Include/internal/pycore_ceval_state.h' line='34' column='1' id='type-id-814'>
+      <underlying-type type-id='type-id-24'/>
+      <enumerator name='PERF_STATUS_FAILED' value='-1'/>
+      <enumerator name='PERF_STATUS_NO_INIT' value='0'/>
+      <enumerator name='PERF_STATUS_OK' value='1'/>
+    </enum-decl>
+    <typedef-decl name='perf_status_t' type-id='type-id-814' filepath='./Include/internal/pycore_ceval_state.h' line='38' column='1' id='type-id-813'/>
+    <class-decl name='trampoline_api_st' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='44' column='1' id='type-id-815'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='status' type-id='type-id-811' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='38' column='1'/>
+        <var-decl name='init_state' type-id='type-id-816' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='45' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='extra_code_index' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='39' column='1'/>
+        <var-decl name='write_state' type-id='type-id-817' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='46' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='code_arena' type-id='type-id-819' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='40' column='1'/>
+        <var-decl name='free_state' type-id='type-id-812' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='48' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='trampoline_api' type-id='type-id-813' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='41' column='1'/>
+        <var-decl name='state' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='49' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='map_file' type-id='type-id-229' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='42' column='1'/>
+    </class-decl>
+    <class-decl name='_ceval_runtime_state' size-in-bits='4928' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='53' column='1' id='type-id-818'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='perf' type-id='type-id-819' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='signals_pending' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='pending_mainthread' type-id='type-id-811' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='71' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_pending_calls' size-in-bits='4352' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='65' column='1' id='type-id-820'>
+    <class-decl name='__anonymous_struct__8' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='54' column='1' id='type-id-819'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='busy' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='66' column='1'/>
+        <var-decl name='status' type-id='type-id-813' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='56' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='lock' type-id='type-id-799' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='67' column='1'/>
+        <var-decl name='extra_code_index' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='57' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='calls_to_do' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='69' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='async_exc' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='73' column='1'/>
+        <var-decl name='code_arena' type-id='type-id-820' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='58' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='calls' type-id='type-id-601' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='78' column='1'/>
+        <var-decl name='trampoline_api' type-id='type-id-815' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='59' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='4288'>
-        <var-decl name='first' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='79' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='4320'>
-        <var-decl name='last' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='80' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__1' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='75' column='1' id='type-id-600'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='func' type-id='type-id-816' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='76' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='arg' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='77' column='1'/>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='map_file' type-id='type-id-229' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='60' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_ceval_state' size-in-bits='4608' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='83' column='1' id='type-id-821'>
+    <class-decl name='_ceval_state' size-in-bits='4608' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='85' column='1' id='type-id-821'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='eval_breaker' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='86' column='1'/>
+        <var-decl name='eval_breaker' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='88' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='gil_drop_request' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='88' column='1'/>
+        <var-decl name='gil_drop_request' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='90' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='recursion_limit' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='89' column='1'/>
+        <var-decl name='recursion_limit' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='91' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='gil' type-id='type-id-822' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='90' column='1'/>
+        <var-decl name='gil' type-id='type-id-822' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='92' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='own_gil' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='91' column='1'/>
+        <var-decl name='own_gil' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='93' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='gc_scheduled' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='93' column='1'/>
+        <var-decl name='gc_scheduled' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='95' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='pending' type-id='type-id-820' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='94' column='1'/>
+        <var-decl name='pending' type-id='type-id-811' visibility='default' filepath='./Include/internal/pycore_ceval_state.h' line='96' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='callable_cache' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='105' column='1' id='type-id-823'>
@@ -13073,7 +13077,7 @@
         <var-decl name='old_stack' type-id='type-id-38' visibility='default' filepath='./Include/internal/pycore_faulthandler.h' line='84' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__10' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_faulthandler.h' line='50' column='1' id='type-id-838'>
+    <class-decl name='__anonymous_struct__9' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_faulthandler.h' line='50' column='1' id='type-id-838'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='enabled' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_faulthandler.h' line='51' column='1'/>
       </data-member>
@@ -13090,7 +13094,7 @@
         <var-decl name='interp' type-id='type-id-20' visibility='default' filepath='./Include/internal/pycore_faulthandler.h' line='55' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__11' size-in-bits='640' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_faulthandler.h' line='61' column='1' id='type-id-839'>
+    <class-decl name='__anonymous_struct__10' size-in-bits='640' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_faulthandler.h' line='61' column='1' id='type-id-839'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='file' type-id='type-id-2' visibility='default' filepath='./Include/internal/pycore_faulthandler.h' line='62' column='1'/>
       </data-member>
@@ -13351,7 +13355,7 @@
         <var-decl name='singletons' type-id='type-id-859' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='54' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__22' size-in-bits='586048' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='32' column='1' id='type-id-859'>
+    <class-decl name='__anonymous_struct__21' size-in-bits='586048' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='32' column='1' id='type-id-859'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='small_ints' type-id='type-id-582' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='38' column='1'/>
       </data-member>
@@ -13380,7 +13384,7 @@
         <var-decl name='context_token_missing' type-id='type-id-824' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='53' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__23' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='41' column='1' id='type-id-598'>
+    <class-decl name='__anonymous_struct__22' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='41' column='1' id='type-id-598'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='ob' type-id='type-id-700' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='42' column='1'/>
       </data-member>
@@ -13428,7 +13432,7 @@
         <var-decl name='singletons' type-id='type-id-864' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='92' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__749' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='86' column='1' id='type-id-864'>
+    <class-decl name='__anonymous_struct__748' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='86' column='1' id='type-id-864'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_not_used' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_global_objects.h' line='87' column='1'/>
       </data-member>
@@ -13456,7 +13460,7 @@
         <var-decl name='latin1' type-id='type-id-597' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='759' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__24' size-in-bits='11008' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='30' column='1' id='type-id-866'>
+    <class-decl name='__anonymous_struct__23' size-in-bits='11008' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='30' column='1' id='type-id-866'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_py_anon_dictcomp' type-id='type-id-868' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='31' column='1'/>
       </data-member>
@@ -13536,7 +13540,7 @@
         <var-decl name='_py_utf_8' type-id='type-id-878' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='56' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__25' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='31' column='1' id='type-id-868'>
+    <class-decl name='__anonymous_struct__24' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='31' column='1' id='type-id-868'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='31' column='1'/>
       </data-member>
@@ -13544,7 +13548,7 @@
         <var-decl name='_data' type-id='type-id-650' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='31' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__27' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='32' column='1' id='type-id-869'>
+    <class-decl name='__anonymous_struct__26' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='32' column='1' id='type-id-869'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='32' column='1'/>
       </data-member>
@@ -13552,7 +13556,7 @@
         <var-decl name='_data' type-id='type-id-649' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='32' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__28' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='33' column='1' id='type-id-870'>
+    <class-decl name='__anonymous_struct__27' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='33' column='1' id='type-id-870'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='33' column='1'/>
       </data-member>
@@ -13560,7 +13564,7 @@
         <var-decl name='_data' type-id='type-id-694' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='33' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__34' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='39' column='1' id='type-id-594'>
+    <class-decl name='__anonymous_struct__33' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='39' column='1' id='type-id-594'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='39' column='1'/>
       </data-member>
@@ -13568,7 +13572,7 @@
         <var-decl name='_data' type-id='type-id-680' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='39' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__35' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='40' column='1' id='type-id-871'>
+    <class-decl name='__anonymous_struct__34' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='40' column='1' id='type-id-871'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='40' column='1'/>
       </data-member>
@@ -13576,7 +13580,7 @@
         <var-decl name='_data' type-id='type-id-686' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='40' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__41' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='46' column='1' id='type-id-872'>
+    <class-decl name='__anonymous_struct__40' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='46' column='1' id='type-id-872'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='46' column='1'/>
       </data-member>
@@ -13584,7 +13588,7 @@
         <var-decl name='_data' type-id='type-id-667' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='46' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__42' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='47' column='1' id='type-id-873'>
+    <class-decl name='__anonymous_struct__41' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='47' column='1' id='type-id-873'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='47' column='1'/>
       </data-member>
@@ -13592,7 +13596,7 @@
         <var-decl name='_data' type-id='type-id-656' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='47' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__43' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='48' column='1' id='type-id-874'>
+    <class-decl name='__anonymous_struct__42' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='48' column='1' id='type-id-874'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='48' column='1'/>
       </data-member>
@@ -13600,7 +13604,7 @@
         <var-decl name='_data' type-id='type-id-654' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='48' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__44' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='49' column='1' id='type-id-875'>
+    <class-decl name='__anonymous_struct__43' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='49' column='1' id='type-id-875'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='49' column='1'/>
       </data-member>
@@ -13608,7 +13612,7 @@
         <var-decl name='_data' type-id='type-id-652' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='49' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__45' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='50' column='1' id='type-id-876'>
+    <class-decl name='__anonymous_struct__44' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='50' column='1' id='type-id-876'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='50' column='1'/>
       </data-member>
@@ -13616,7 +13620,7 @@
         <var-decl name='_data' type-id='type-id-673' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='50' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__49' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='54' column='1' id='type-id-877'>
+    <class-decl name='__anonymous_struct__48' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='54' column='1' id='type-id-877'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='54' column='1'/>
       </data-member>
@@ -13624,7 +13628,7 @@
         <var-decl name='_data' type-id='type-id-691' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='54' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__51' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='56' column='1' id='type-id-878'>
+    <class-decl name='__anonymous_struct__50' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='56' column='1' id='type-id-878'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='56' column='1'/>
       </data-member>
@@ -13632,7 +13636,7 @@
         <var-decl name='_data' type-id='type-id-690' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='56' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__52' size-in-bits='293696' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='59' column='1' id='type-id-867'>
+    <class-decl name='__anonymous_struct__51' size-in-bits='293696' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='59' column='1' id='type-id-867'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_py_CANCELLED' type-id='type-id-869' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='60' column='1'/>
       </data-member>
@@ -15707,7 +15711,7 @@
         <var-decl name='_py_zdict' type-id='type-id-878' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='750' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__56' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='63' column='1' id='type-id-879'>
+    <class-decl name='__anonymous_struct__55' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='63' column='1' id='type-id-879'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='63' column='1'/>
       </data-member>
@@ -15715,7 +15719,7 @@
         <var-decl name='_data' type-id='type-id-660' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='63' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__57' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='64' column='1' id='type-id-880'>
+    <class-decl name='__anonymous_struct__56' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='64' column='1' id='type-id-880'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='64' column='1'/>
       </data-member>
@@ -15723,7 +15727,7 @@
         <var-decl name='_data' type-id='type-id-693' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='64' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__60' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='67' column='1' id='type-id-881'>
+    <class-decl name='__anonymous_struct__59' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='67' column='1' id='type-id-881'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='67' column='1'/>
       </data-member>
@@ -15731,7 +15735,7 @@
         <var-decl name='_data' type-id='type-id-688' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='67' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__61' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='68' column='1' id='type-id-882'>
+    <class-decl name='__anonymous_struct__60' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='68' column='1' id='type-id-882'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='68' column='1'/>
       </data-member>
@@ -15739,7 +15743,7 @@
         <var-decl name='_data' type-id='type-id-658' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='68' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__63' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='70' column='1' id='type-id-883'>
+    <class-decl name='__anonymous_struct__62' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='70' column='1' id='type-id-883'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='70' column='1'/>
       </data-member>
@@ -15747,7 +15751,7 @@
         <var-decl name='_data' type-id='type-id-663' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='70' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__67' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='74' column='1' id='type-id-884'>
+    <class-decl name='__anonymous_struct__66' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='74' column='1' id='type-id-884'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='74' column='1'/>
       </data-member>
@@ -15755,7 +15759,7 @@
         <var-decl name='_data' type-id='type-id-668' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='74' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__77' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='84' column='1' id='type-id-885'>
+    <class-decl name='__anonymous_struct__76' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='84' column='1' id='type-id-885'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='84' column='1'/>
       </data-member>
@@ -15763,7 +15767,7 @@
         <var-decl name='_data' type-id='type-id-682' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='84' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__95' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='102' column='1' id='type-id-886'>
+    <class-decl name='__anonymous_struct__94' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='102' column='1' id='type-id-886'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='102' column='1'/>
       </data-member>
@@ -15771,7 +15775,7 @@
         <var-decl name='_data' type-id='type-id-675' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='102' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__116' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='123' column='1' id='type-id-887'>
+    <class-decl name='__anonymous_struct__115' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='123' column='1' id='type-id-887'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='123' column='1'/>
       </data-member>
@@ -15779,7 +15783,7 @@
         <var-decl name='_data' type-id='type-id-661' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='123' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__141' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='148' column='1' id='type-id-888'>
+    <class-decl name='__anonymous_struct__140' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='148' column='1' id='type-id-888'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='148' column='1'/>
       </data-member>
@@ -15787,7 +15791,7 @@
         <var-decl name='_data' type-id='type-id-669' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='148' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__183' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='190' column='1' id='type-id-889'>
+    <class-decl name='__anonymous_struct__182' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='190' column='1' id='type-id-889'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='190' column='1'/>
       </data-member>
@@ -15795,7 +15799,7 @@
         <var-decl name='_data' type-id='type-id-665' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='190' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__215' size-in-bits='640' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='222' column='1' id='type-id-890'>
+    <class-decl name='__anonymous_struct__214' size-in-bits='640' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='222' column='1' id='type-id-890'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='222' column='1'/>
       </data-member>
@@ -15803,7 +15807,7 @@
         <var-decl name='_data' type-id='type-id-684' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='222' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__244' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='251' column='1' id='type-id-891'>
+    <class-decl name='__anonymous_struct__243' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='251' column='1' id='type-id-891'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='251' column='1'/>
       </data-member>
@@ -15811,7 +15815,7 @@
         <var-decl name='_data' type-id='type-id-687' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='251' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__259' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='266' column='1' id='type-id-892'>
+    <class-decl name='__anonymous_struct__258' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='266' column='1' id='type-id-892'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='266' column='1'/>
       </data-member>
@@ -15819,7 +15823,7 @@
         <var-decl name='_data' type-id='type-id-677' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='266' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__308' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='315' column='1' id='type-id-893'>
+    <class-decl name='__anonymous_struct__307' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='315' column='1' id='type-id-893'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='315' column='1'/>
       </data-member>
@@ -15827,7 +15831,7 @@
         <var-decl name='_data' type-id='type-id-671' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='315' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__689' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='696' column='1' id='type-id-894'>
+    <class-decl name='__anonymous_struct__688' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='696' column='1' id='type-id-894'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_ascii' type-id='type-id-792' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='696' column='1'/>
       </data-member>
@@ -15835,7 +15839,7 @@
         <var-decl name='_data' type-id='type-id-679' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='696' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__745' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='756' column='1' id='type-id-596'>
+    <class-decl name='__anonymous_struct__744' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='756' column='1' id='type-id-596'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_latin1' type-id='type-id-795' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='757' column='1'/>
       </data-member>
@@ -15960,7 +15964,7 @@
         <var-decl name='pkgcontext' type-id='type-id-12' visibility='default' filepath='./Include/internal/pycore_import.h' line='33' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__8' size-in-bits='2432' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_import.h' line='17' column='1' id='type-id-923'>
+    <class-decl name='__anonymous_struct__7' size-in-bits='2432' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_import.h' line='17' column='1' id='type-id-923'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='main_tstate' type-id='type-id-924' visibility='default' filepath='./Include/internal/pycore_import.h' line='21' column='1'/>
       </data-member>
@@ -16000,7 +16004,7 @@
         <var-decl name='find_and_load' type-id='type-id-927' visibility='default' filepath='./Include/internal/pycore_import.h' line='80' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__746' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_import.h' line='70' column='1' id='type-id-926'>
+    <class-decl name='__anonymous_struct__745' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_import.h' line='70' column='1' id='type-id-926'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='mutex' type-id='type-id-799' visibility='default' filepath='./Include/internal/pycore_import.h' line='71' column='1'/>
       </data-member>
@@ -16011,7 +16015,7 @@
         <var-decl name='level' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_import.h' line='73' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__747' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_import.h' line='76' column='1' id='type-id-927'>
+    <class-decl name='__anonymous_struct__746' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_import.h' line='76' column='1' id='type-id-927'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='import_level' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_import.h' line='77' column='1'/>
       </data-member>
@@ -16447,7 +16451,7 @@
         <var-decl name='urandom_cache' type-id='type-id-962' visibility='default' filepath='./Include/internal/pycore_pyhash.h' line='19' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__4' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_pyhash.h' line='10' column='1' id='type-id-962'>
+    <class-decl name='__anonymous_struct__3' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_pyhash.h' line='10' column='1' id='type-id-962'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='fd' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_pyhash.h' line='12' column='1'/>
       </data-member>
@@ -16481,7 +16485,7 @@
         <var-decl name='obj_arena' type-id='type-id-420' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='32' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__2' size-in-bits='960' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='22' column='1' id='type-id-968'>
+    <class-decl name='__anonymous_struct__1' size-in-bits='960' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='22' column='1' id='type-id-968'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='raw' type-id='type-id-417' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='23' column='1'/>
       </data-member>
@@ -16492,7 +16496,7 @@
         <var-decl name='obj' type-id='type-id-417' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='25' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__3' size-in-bits='1152' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='27' column='1' id='type-id-969'>
+    <class-decl name='__anonymous_struct__2' size-in-bits='1152' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='27' column='1' id='type-id-969'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='raw' type-id='type-id-965' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='28' column='1'/>
       </data-member>
@@ -16511,7 +16515,7 @@
         <var-decl name='_condattr_monotonic' type-id='type-id-971' visibility='default' filepath='./Include/internal/pycore_pythread.h' line='66' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__5' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_pythread.h' line='59' column='1' id='type-id-971'>
+    <class-decl name='__anonymous_struct__4' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_pythread.h' line='59' column='1' id='type-id-971'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='ptr' type-id='type-id-972' visibility='default' filepath='./Include/internal/pycore_pythread.h' line='61' column='1'/>
       </data-member>
@@ -16547,7 +16551,7 @@
       </data-member>
     </class-decl>
     <typedef-decl name='_Py_AuditHookEntry' type-id='type-id-976' filepath='./Include/internal/pycore_runtime.h' line='54' column='1' id='type-id-978'/>
-    <class-decl name='pyruntimestate' size-in-bits='3676544' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='61' column='1' id='type-id-979'>
+    <class-decl name='pyruntimestate' size-in-bits='3680896' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='61' column='1' id='type-id-979'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='66' column='1'/>
       </data-member>
@@ -16612,51 +16616,51 @@
         <var-decl name='imports' type-id='type-id-921' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='132' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='17856'>
-        <var-decl name='ceval' type-id='type-id-817' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='133' column='1'/>
+        <var-decl name='ceval' type-id='type-id-818' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='133' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='18432'>
+      <data-member access='public' layout-offset-in-bits='22784'>
         <var-decl name='gilstate' type-id='type-id-975' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='134' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='18560'>
+      <data-member access='public' layout-offset-in-bits='22912'>
         <var-decl name='getargs' type-id='type-id-974' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='135' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='18688'>
+      <data-member access='public' layout-offset-in-bits='23040'>
         <var-decl name='fileutils' type-id='type-id-841' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='136' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='18752'>
+      <data-member access='public' layout-offset-in-bits='23104'>
         <var-decl name='faulthandler' type-id='type-id-837' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='137' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='20096'>
+      <data-member access='public' layout-offset-in-bits='24448'>
         <var-decl name='tracemalloc' type-id='type-id-984' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='138' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='21952'>
+      <data-member access='public' layout-offset-in-bits='26304'>
         <var-decl name='preconfig' type-id='type-id-742' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='140' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='22272'>
+      <data-member access='public' layout-offset-in-bits='26624'>
         <var-decl name='open_code_hook' type-id='type-id-355' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='144' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='22336'>
+      <data-member access='public' layout-offset-in-bits='26688'>
         <var-decl name='open_code_userdata' type-id='type-id-22' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='145' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='22400'>
+      <data-member access='public' layout-offset-in-bits='26752'>
         <var-decl name='audit_hooks' type-id='type-id-985' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='149' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='22528'>
+      <data-member access='public' layout-offset-in-bits='26880'>
         <var-decl name='object_state' type-id='type-id-941' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='151' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='22560'>
+      <data-member access='public' layout-offset-in-bits='26912'>
         <var-decl name='float_state' type-id='type-id-844' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='152' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='22656'>
+      <data-member access='public' layout-offset-in-bits='27008'>
         <var-decl name='unicode_state' type-id='type-id-986' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='153' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='22784'>
+      <data-member access='public' layout-offset-in-bits='27136'>
         <var-decl name='types' type-id='type-id-987' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='154' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='22848'>
+      <data-member access='public' layout-offset-in-bits='27200'>
         <var-decl name='static_objects' type-id='type-id-858' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='157' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='608896'>
+      <data-member access='public' layout-offset-in-bits='613248'>
         <var-decl name='_main_interpreter' type-id='type-id-988' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='174' column='1'/>
       </data-member>
     </class-decl>
@@ -16682,7 +16686,7 @@
         <var-decl name='head' type-id='type-id-940' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='115' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__21' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='146' column='1' id='type-id-985'>
+    <class-decl name='__anonymous_struct__20' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='146' column='1' id='type-id-985'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='mutex' type-id='type-id-799' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='147' column='1'/>
       </data-member>
@@ -16710,7 +16714,7 @@
         <var-decl name='unhandled_keyboard_interrupt' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_signal.h' line='78' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__6' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_signal.h' line='38' column='1' id='type-id-990'>
+    <class-decl name='__anonymous_struct__5' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_signal.h' line='38' column='1' id='type-id-990'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='tripped' type-id='type-id-810' visibility='default' filepath='./Include/internal/pycore_signal.h' line='39' column='1'/>
       </data-member>
@@ -16718,7 +16722,7 @@
         <var-decl name='func' type-id='type-id-808' visibility='default' filepath='./Include/internal/pycore_signal.h' line='43' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__7' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_signal.h' line='46' column='1' id='type-id-991'>
+    <class-decl name='__anonymous_struct__6' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_signal.h' line='46' column='1' id='type-id-991'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='fd' type-id='type-id-992' visibility='default' filepath='./Include/internal/pycore_signal.h' line='54' column='1'/>
       </data-member>
@@ -16811,7 +16815,7 @@
         <var-decl name='reentrant_key' type-id='type-id-408' visibility='default' filepath='./Include/internal/pycore_tracemalloc.h' line='106' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__20' size-in-bits='960' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_tracemalloc.h' line='71' column='1' id='type-id-996'>
+    <class-decl name='__anonymous_struct__19' size-in-bits='960' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_tracemalloc.h' line='71' column='1' id='type-id-996'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='mem' type-id='type-id-417' visibility='default' filepath='./Include/internal/pycore_tracemalloc.h' line='72' column='1'/>
       </data-member>
@@ -17189,7 +17193,7 @@
         <var-decl name='_sigsys' type-id='type-id-1049' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='121' column='1'/>
       </data-member>
     </union-decl>
-    <class-decl name='__anonymous_struct__13' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='56' column='1' id='type-id-1043'>
+    <class-decl name='__anonymous_struct__12' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='56' column='1' id='type-id-1043'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='si_pid' type-id='type-id-127' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='58' column='1'/>
       </data-member>
@@ -17197,7 +17201,7 @@
         <var-decl name='si_uid' type-id='type-id-125' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='59' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__14' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='63' column='1' id='type-id-1044'>
+    <class-decl name='__anonymous_struct__13' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='63' column='1' id='type-id-1044'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='si_tid' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='65' column='1'/>
       </data-member>
@@ -17208,7 +17212,7 @@
         <var-decl name='si_sigval' type-id='type-id-1039' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='67' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__15' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='71' column='1' id='type-id-1045'>
+    <class-decl name='__anonymous_struct__14' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='71' column='1' id='type-id-1045'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='si_pid' type-id='type-id-127' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='73' column='1'/>
       </data-member>
@@ -17219,7 +17223,7 @@
         <var-decl name='si_sigval' type-id='type-id-1039' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='75' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__16' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='79' column='1' id='type-id-1046'>
+    <class-decl name='__anonymous_struct__15' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='79' column='1' id='type-id-1046'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='si_pid' type-id='type-id-127' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='81' column='1'/>
       </data-member>
@@ -17236,7 +17240,7 @@
         <var-decl name='si_stime' type-id='type-id-97' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='85' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__17' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='89' column='1' id='type-id-1047'>
+    <class-decl name='__anonymous_struct__16' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='89' column='1' id='type-id-1047'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='si_addr' type-id='type-id-22' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='91' column='1'/>
       </data-member>
@@ -17255,7 +17259,7 @@
         <var-decl name='_pkey' type-id='type-id-1052' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='103' column='1'/>
       </data-member>
     </union-decl>
-    <class-decl name='__anonymous_struct__18' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='97' column='1' id='type-id-1051'>
+    <class-decl name='__anonymous_struct__17' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='97' column='1' id='type-id-1051'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_lower' type-id='type-id-22' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='99' column='1'/>
       </data-member>
@@ -17263,7 +17267,7 @@
         <var-decl name='_upper' type-id='type-id-22' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='100' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__19' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='108' column='1' id='type-id-1048'>
+    <class-decl name='__anonymous_struct__18' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='108' column='1' id='type-id-1048'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='si_band' type-id='type-id-47' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='110' column='1'/>
       </data-member>
@@ -17271,7 +17275,7 @@
         <var-decl name='si_fd' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='111' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__20' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='116' column='1' id='type-id-1049'>
+    <class-decl name='__anonymous_struct__19' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='116' column='1' id='type-id-1049'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_call_addr' type-id='type-id-22' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h' line='118' column='1'/>
       </data-member>
@@ -17356,7 +17360,7 @@
     <pointer-type-def type-id='type-id-1060' size-in-bits='64' id='type-id-806'/>
     <pointer-type-def type-id='type-id-1061' size-in-bits='64' id='type-id-1062'/>
     <qualified-type-def type-id='type-id-15' restrict='yes' id='type-id-183'/>
-    <pointer-type-def type-id='type-id-622' size-in-bits='64' id='type-id-819'/>
+    <pointer-type-def type-id='type-id-622' size-in-bits='64' id='type-id-820'/>
     <pointer-type-def type-id='type-id-430' size-in-bits='64' id='type-id-751'/>
     <pointer-type-def type-id='type-id-251' size-in-bits='64' id='type-id-182'/>
     <pointer-type-def type-id='type-id-836' size-in-bits='64' id='type-id-840'/>
@@ -17370,7 +17374,7 @@
     <pointer-type-def type-id='type-id-1071' size-in-bits='64' id='type-id-729'/>
     <pointer-type-def type-id='type-id-1072' size-in-bits='64' id='type-id-737'/>
     <pointer-type-def type-id='type-id-1073' size-in-bits='64' id='type-id-1004'/>
-    <pointer-type-def type-id='type-id-1074' size-in-bits='64' id='type-id-816'/>
+    <pointer-type-def type-id='type-id-1074' size-in-bits='64' id='type-id-812'/>
     <pointer-type-def type-id='type-id-190' size-in-bits='64' id='type-id-78'/>
     <pointer-type-def type-id='type-id-944' size-in-bits='64' id='type-id-947'/>
     <pointer-type-def type-id='type-id-973' size-in-bits='64' id='type-id-972'/>
@@ -17386,14 +17390,14 @@
     <pointer-type-def type-id='type-id-1077' size-in-bits='64' id='type-id-1025'/>
     <pointer-type-def type-id='type-id-1078' size-in-bits='64' id='type-id-762'/>
     <pointer-type-def type-id='type-id-1079' size-in-bits='64' id='type-id-755'/>
-    <pointer-type-def type-id='type-id-1080' size-in-bits='64' id='type-id-815'/>
-    <pointer-type-def type-id='type-id-1081' size-in-bits='64' id='type-id-814'/>
+    <pointer-type-def type-id='type-id-1080' size-in-bits='64' id='type-id-817'/>
+    <pointer-type-def type-id='type-id-1081' size-in-bits='64' id='type-id-816'/>
     <pointer-type-def type-id='type-id-1082' size-in-bits='64' id='type-id-919'/>
     <pointer-type-def type-id='type-id-1083' size-in-bits='64' id='type-id-754'/>
     <pointer-type-def type-id='type-id-1084' size-in-bits='64' id='type-id-760'/>
     <pointer-type-def type-id='type-id-1085' size-in-bits='64' id='type-id-761'/>
-    <qualified-type-def type-id='type-id-990' volatile='yes' id='type-id-698'/>
     <qualified-type-def type-id='type-id-991' volatile='yes' id='type-id-989'/>
+    <qualified-type-def type-id='type-id-990' volatile='yes' id='type-id-698'/>
     <pointer-type-def type-id='type-id-422' size-in-bits='64' id='type-id-52'/>
     <pointer-type-def type-id='type-id-52' size-in-bits='64' id='type-id-235'/>
     <class-decl name='PyAsyncGenASend' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-620'/>
@@ -17417,7 +17421,7 @@
     </function-decl>
     <var-decl name='_PyOS_ReadlineTState' type-id='type-id-177' mangled-name='_PyOS_ReadlineTState' visibility='default' filepath='./Include/cpython/pythonrun.h' line='120' column='1' elf-symbol-id='_PyOS_ReadlineTState'/>
     <var-decl name='PyOS_ReadlineFunctionPointer' type-id='type-id-1062' mangled-name='PyOS_ReadlineFunctionPointer' visibility='default' filepath='./Include/cpython/pythonrun.h' line='121' column='1' elf-symbol-id='PyOS_ReadlineFunctionPointer'/>
-    <function-decl name='_PyOS_InterruptOccurred' mangled-name='_PyOS_InterruptOccurred' filepath='./Include/internal/pycore_pystate.h' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_InterruptOccurred'>
+    <function-decl name='_PyOS_InterruptOccurred' mangled-name='_PyOS_InterruptOccurred' filepath='./Include/internal/pycore_pystate.h' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_InterruptOccurred'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-8'/>
     </function-decl>
@@ -19985,13 +19989,13 @@
     <typedef-decl name='newfunc' type-id='type-id-1270' filepath='./Include/object.h' line='319' column='1' id='type-id-1200'/>
     <typedef-decl name='allocfunc' type-id='type-id-1271' filepath='./Include/object.h' line='320' column='1' id='type-id-1199'/>
     <typedef-decl name='vectorcallfunc' type-id='type-id-1272' filepath='./Include/object.h' line='323' column='1' id='type-id-311'/>
-    <enum-decl name='PySendResult' naming-typedef-id='type-id-255' filepath='./Include/object.h' line='850' column='1' id='type-id-1273'>
+    <enum-decl name='PySendResult' naming-typedef-id='type-id-255' filepath='./Include/object.h' line='862' column='1' id='type-id-1273'>
       <underlying-type type-id='type-id-24'/>
       <enumerator name='PYGEN_RETURN' value='0'/>
       <enumerator name='PYGEN_ERROR' value='-1'/>
       <enumerator name='PYGEN_NEXT' value='1'/>
     </enum-decl>
-    <typedef-decl name='PySendResult' type-id='type-id-1273' filepath='./Include/object.h' line='854' column='1' id='type-id-255'/>
+    <typedef-decl name='PySendResult' type-id='type-id-1273' filepath='./Include/object.h' line='866' column='1' id='type-id-255'/>
     <class-decl name='Py_buffer' size-in-bits='640' is-struct='yes' naming-typedef-id='type-id-243' visibility='default' filepath='./Include/pybuffer.h' line='20' column='1' id='type-id-1274'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='buf' type-id='type-id-22' visibility='default' filepath='./Include/pybuffer.h' line='21' column='1'/>
@@ -21299,7 +21303,7 @@
       <parameter type-id='type-id-8'/>
       <return type-id='type-id-1303'/>
     </function-decl>
-    <function-decl name='PyInit__tokenize' mangled-name='PyInit__tokenize' filepath='Python/Python-tokenize.c' line='361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__tokenize'>
+    <function-decl name='PyInit__tokenize' mangled-name='PyInit__tokenize' filepath='Python/Python-tokenize.c' line='364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__tokenize'>
       <return type-id='type-id-2'/>
     </function-decl>
   </abi-instr>
@@ -21357,17 +21361,17 @@
       <parameter type-id='type-id-2' name='registry' filepath='Python/_warnings.c' line='1301' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyErr_WarnExplicitFormat' mangled-name='PyErr_WarnExplicitFormat' filepath='Python/_warnings.c' line='1327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicitFormat'>
-      <parameter type-id='type-id-2' name='category' filepath='Python/_warnings.c' line='1327' column='1'/>
-      <parameter type-id='type-id-12' name='filename_str' filepath='Python/_warnings.c' line='1328' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1328' column='1'/>
-      <parameter type-id='type-id-12' name='module_str' filepath='Python/_warnings.c' line='1329' column='1'/>
-      <parameter type-id='type-id-2' name='registry' filepath='Python/_warnings.c' line='1329' column='1'/>
-      <parameter type-id='type-id-12' name='format' filepath='Python/_warnings.c' line='1330' column='1'/>
+    <function-decl name='PyErr_WarnExplicitFormat' mangled-name='PyErr_WarnExplicitFormat' filepath='Python/_warnings.c' line='1331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicitFormat'>
+      <parameter type-id='type-id-2' name='category' filepath='Python/_warnings.c' line='1331' column='1'/>
+      <parameter type-id='type-id-12' name='filename_str' filepath='Python/_warnings.c' line='1332' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1332' column='1'/>
+      <parameter type-id='type-id-12' name='module_str' filepath='Python/_warnings.c' line='1333' column='1'/>
+      <parameter type-id='type-id-2' name='registry' filepath='Python/_warnings.c' line='1333' column='1'/>
+      <parameter type-id='type-id-12' name='format' filepath='Python/_warnings.c' line='1334' column='1'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyWarnings_Init' mangled-name='_PyWarnings_Init' filepath='Python/_warnings.c' line='1467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWarnings_Init'>
+    <function-decl name='_PyWarnings_Init' mangled-name='_PyWarnings_Init' filepath='Python/_warnings.c' line='1471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWarnings_Init'>
       <return type-id='type-id-2'/>
     </function-decl>
   </abi-instr>
@@ -21620,11 +21624,11 @@
       <parameter type-id='type-id-2'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_Py_MakeCoro' filepath='./Include/internal/pycore_ceval.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_Py_MakeCoro' filepath='./Include/internal/pycore_ceval.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-310'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_Py_HandlePending' filepath='./Include/internal/pycore_ceval.h' line='154' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_Py_HandlePending' filepath='./Include/internal/pycore_ceval.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-8'/>
     </function-decl>
@@ -21897,58 +21901,58 @@
       <parameter type-id='type-id-8' name='throwflag' filepath='Python/ceval.c' line='584' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyThreadState_EnterTracing' mangled-name='PyThreadState_EnterTracing' filepath='Python/ceval.c' line='2030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_EnterTracing'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval.c' line='2030' column='1'/>
+    <function-decl name='PyThreadState_EnterTracing' mangled-name='PyThreadState_EnterTracing' filepath='Python/ceval.c' line='2085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_EnterTracing'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval.c' line='2085' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyThreadState_LeaveTracing' mangled-name='PyThreadState_LeaveTracing' filepath='Python/ceval.c' line='2037' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_LeaveTracing'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval.c' line='2037' column='1'/>
+    <function-decl name='PyThreadState_LeaveTracing' mangled-name='PyThreadState_LeaveTracing' filepath='Python/ceval.c' line='2092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_LeaveTracing'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval.c' line='2092' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_SetProfile' mangled-name='PyEval_SetProfile' filepath='Python/ceval.c' line='2061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetProfile'>
-      <parameter type-id='type-id-764' name='func' filepath='Python/ceval.c' line='2061' column='1'/>
-      <parameter type-id='type-id-2' name='arg' filepath='Python/ceval.c' line='2061' column='1'/>
+    <function-decl name='PyEval_SetProfile' mangled-name='PyEval_SetProfile' filepath='Python/ceval.c' line='2116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetProfile'>
+      <parameter type-id='type-id-764' name='func' filepath='Python/ceval.c' line='2116' column='1'/>
+      <parameter type-id='type-id-2' name='arg' filepath='Python/ceval.c' line='2116' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_SetProfileAllThreads' mangled-name='PyEval_SetProfileAllThreads' filepath='Python/ceval.c' line='2071' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetProfileAllThreads'>
-      <parameter type-id='type-id-764' name='func' filepath='Python/ceval.c' line='2071' column='1'/>
-      <parameter type-id='type-id-2' name='arg' filepath='Python/ceval.c' line='2071' column='1'/>
+    <function-decl name='PyEval_SetProfileAllThreads' mangled-name='PyEval_SetProfileAllThreads' filepath='Python/ceval.c' line='2126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetProfileAllThreads'>
+      <parameter type-id='type-id-764' name='func' filepath='Python/ceval.c' line='2126' column='1'/>
+      <parameter type-id='type-id-2' name='arg' filepath='Python/ceval.c' line='2126' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_SetTrace' mangled-name='PyEval_SetTrace' filepath='Python/ceval.c' line='2092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetTrace'>
-      <parameter type-id='type-id-764' name='func' filepath='Python/ceval.c' line='2092' column='1'/>
-      <parameter type-id='type-id-2' name='arg' filepath='Python/ceval.c' line='2092' column='1'/>
+    <function-decl name='PyEval_SetTrace' mangled-name='PyEval_SetTrace' filepath='Python/ceval.c' line='2147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetTrace'>
+      <parameter type-id='type-id-764' name='func' filepath='Python/ceval.c' line='2147' column='1'/>
+      <parameter type-id='type-id-2' name='arg' filepath='Python/ceval.c' line='2147' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_SetTraceAllThreads' mangled-name='PyEval_SetTraceAllThreads' filepath='Python/ceval.c' line='2102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetTraceAllThreads'>
-      <parameter type-id='type-id-764' name='func' filepath='Python/ceval.c' line='2102' column='1'/>
-      <parameter type-id='type-id-2' name='arg' filepath='Python/ceval.c' line='2102' column='1'/>
+    <function-decl name='PyEval_SetTraceAllThreads' mangled-name='PyEval_SetTraceAllThreads' filepath='Python/ceval.c' line='2157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetTraceAllThreads'>
+      <parameter type-id='type-id-764' name='func' filepath='Python/ceval.c' line='2157' column='1'/>
+      <parameter type-id='type-id-2' name='arg' filepath='Python/ceval.c' line='2157' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_GetFrame' mangled-name='PyEval_GetFrame' filepath='Python/ceval.c' line='2190' 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='2245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFrame'>
       <return type-id='type-id-365'/>
     </function-decl>
-    <function-decl name='_PyEval_GetBuiltinId' mangled-name='_PyEval_GetBuiltinId' filepath='Python/ceval.c' line='2236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetBuiltinId'>
-      <parameter type-id='type-id-309' name='name' filepath='Python/ceval.c' line='2236' column='1'/>
+    <function-decl name='_PyEval_GetBuiltinId' mangled-name='_PyEval_GetBuiltinId' filepath='Python/ceval.c' line='2291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetBuiltinId'>
+      <parameter type-id='type-id-309' name='name' filepath='Python/ceval.c' line='2291' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyEval_GetFuncName' mangled-name='PyEval_GetFuncName' filepath='Python/ceval.c' line='2291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncName'>
-      <parameter type-id='type-id-2' name='func' filepath='Python/ceval.c' line='2291' column='1'/>
+    <function-decl name='PyEval_GetFuncName' mangled-name='PyEval_GetFuncName' filepath='Python/ceval.c' line='2346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncName'>
+      <parameter type-id='type-id-2' name='func' filepath='Python/ceval.c' line='2346' column='1'/>
       <return type-id='type-id-12'/>
     </function-decl>
-    <function-decl name='PyEval_GetFuncDesc' mangled-name='PyEval_GetFuncDesc' filepath='Python/ceval.c' line='2304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncDesc'>
-      <parameter type-id='type-id-2' name='func' filepath='Python/ceval.c' line='2304' column='1'/>
+    <function-decl name='PyEval_GetFuncDesc' mangled-name='PyEval_GetFuncDesc' filepath='Python/ceval.c' line='2359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncDesc'>
+      <parameter type-id='type-id-2' name='func' filepath='Python/ceval.c' line='2359' column='1'/>
       <return type-id='type-id-12'/>
     </function-decl>
-    <function-decl name='PyUnstable_Eval_RequestCodeExtraIndex' mangled-name='PyUnstable_Eval_RequestCodeExtraIndex' filepath='Python/ceval.c' line='2676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnstable_Eval_RequestCodeExtraIndex'>
-      <parameter type-id='type-id-397' name='free' filepath='Python/ceval.c' line='2676' column='1'/>
+    <function-decl name='PyUnstable_Eval_RequestCodeExtraIndex' mangled-name='PyUnstable_Eval_RequestCodeExtraIndex' filepath='Python/ceval.c' line='2731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnstable_Eval_RequestCodeExtraIndex'>
+      <parameter type-id='type-id-397' name='free' filepath='Python/ceval.c' line='2731' column='1'/>
       <return type-id='type-id-14'/>
     </function-decl>
-    <function-decl name='Py_EnterRecursiveCall' mangled-name='Py_EnterRecursiveCall' filepath='Python/ceval.c' line='2692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EnterRecursiveCall'>
-      <parameter type-id='type-id-12' name='where' filepath='Python/ceval.c' line='2692' column='1'/>
+    <function-decl name='Py_EnterRecursiveCall' mangled-name='Py_EnterRecursiveCall' filepath='Python/ceval.c' line='2747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EnterRecursiveCall'>
+      <parameter type-id='type-id-12' name='where' filepath='Python/ceval.c' line='2747' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_LeaveRecursiveCall' mangled-name='Py_LeaveRecursiveCall' filepath='Python/ceval.c' line='2697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_LeaveRecursiveCall'>
+    <function-decl name='Py_LeaveRecursiveCall' mangled-name='Py_LeaveRecursiveCall' filepath='Python/ceval.c' line='2752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_LeaveRecursiveCall'>
       <return type-id='type-id-46'/>
     </function-decl>
   </abi-instr>
@@ -21987,7 +21991,7 @@
       <parameter type-id='type-id-1343'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyThreadState_SwapNoGIL' filepath='./Include/internal/pycore_ceval.h' line='104' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyThreadState_SwapNoGIL' filepath='./Include/internal/pycore_ceval.h' line='105' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-177'/>
     </function-decl>
@@ -22003,13 +22007,10 @@
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyThreadState_DeleteExcept' mangled-name='_PyThreadState_DeleteExcept' filepath='./Include/internal/pycore_pystate.h' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteExcept'>
+    <function-decl name='_PyThreadState_DeleteExcept' mangled-name='_PyThreadState_DeleteExcept' filepath='./Include/internal/pycore_pystate.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteExcept'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyGILState_GetThisThreadState' mangled-name='PyGILState_GetThisThreadState' filepath='./Include/pystate.h' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_GetThisThreadState'>
-      <return type-id='type-id-177'/>
-    </function-decl>
     <function-decl name='PyThread_init_thread' mangled-name='PyThread_init_thread' filepath='./Include/pythread.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_init_thread'>
       <return type-id='type-id-46'/>
     </function-decl>
@@ -22059,53 +22060,58 @@
       <parameter type-id='type-id-206'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyEval_SetSwitchInterval' mangled-name='_PyEval_SetSwitchInterval' filepath='Python/ceval_gil.c' line='488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetSwitchInterval'>
-      <parameter type-id='type-id-28' name='microseconds' filepath='Python/ceval_gil.c' line='488' column='1'/>
+    <function-decl name='_PyEval_SetSwitchInterval' mangled-name='_PyEval_SetSwitchInterval' filepath='Python/ceval_gil.c' line='492' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetSwitchInterval'>
+      <parameter type-id='type-id-28' name='microseconds' filepath='Python/ceval_gil.c' line='492' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyEval_GetSwitchInterval' mangled-name='_PyEval_GetSwitchInterval' filepath='Python/ceval_gil.c' line='496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetSwitchInterval'>
+    <function-decl name='_PyEval_GetSwitchInterval' mangled-name='_PyEval_GetSwitchInterval' filepath='Python/ceval_gil.c' line='500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetSwitchInterval'>
       <return type-id='type-id-28'/>
     </function-decl>
-    <function-decl name='PyEval_ThreadsInitialized' mangled-name='PyEval_ThreadsInitialized' filepath='Python/ceval_gil.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ThreadsInitialized'>
+    <function-decl name='PyEval_ThreadsInitialized' mangled-name='PyEval_ThreadsInitialized' filepath='Python/ceval_gil.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ThreadsInitialized'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyEval_InitThreads' mangled-name='PyEval_InitThreads' filepath='Python/ceval_gil.c' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_InitThreads'>
+    <function-decl name='PyEval_InitThreads' mangled-name='PyEval_InitThreads' filepath='Python/ceval_gil.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_InitThreads'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_AcquireLock' mangled-name='PyEval_AcquireLock' filepath='Python/ceval_gil.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireLock'>
+    <function-decl name='PyEval_AcquireLock' mangled-name='PyEval_AcquireLock' filepath='Python/ceval_gil.c' line='625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireLock'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_ReleaseLock' mangled-name='PyEval_ReleaseLock' filepath='Python/ceval_gil.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseLock'>
+    <function-decl name='PyEval_ReleaseLock' mangled-name='PyEval_ReleaseLock' filepath='Python/ceval_gil.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseLock'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_AcquireThread' mangled-name='PyEval_AcquireThread' filepath='Python/ceval_gil.c' line='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireThread'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval_gil.c' line='658' column='1'/>
+    <function-decl name='PyEval_AcquireThread' mangled-name='PyEval_AcquireThread' filepath='Python/ceval_gil.c' line='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireThread'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval_gil.c' line='662' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyEval_ReleaseThread' mangled-name='PyEval_ReleaseThread' filepath='Python/ceval_gil.c' line='670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseThread'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval_gil.c' line='670' column='1'/>
+    <function-decl name='PyEval_ReleaseThread' mangled-name='PyEval_ReleaseThread' filepath='Python/ceval_gil.c' line='674' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseThread'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval_gil.c' line='674' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyEval_SignalAsyncExc' mangled-name='_PyEval_SignalAsyncExc' filepath='Python/ceval_gil.c' line='714' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalAsyncExc'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/ceval_gil.c' line='714' column='1'/>
+    <function-decl name='_PyEval_SignalAsyncExc' mangled-name='_PyEval_SignalAsyncExc' filepath='Python/ceval_gil.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalAsyncExc'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/ceval_gil.c' line='718' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyEval_SignalReceived' mangled-name='_PyEval_SignalReceived' filepath='Python/ceval_gil.c' line='765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalReceived'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/ceval_gil.c' line='765' column='1'/>
+    <function-decl name='_PyEval_SignalReceived' mangled-name='_PyEval_SignalReceived' filepath='Python/ceval_gil.c' line='769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalReceived'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/ceval_gil.c' line='769' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyEval_AddPendingCall' mangled-name='_PyEval_AddPendingCall' filepath='Python/ceval_gil.c' line='822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_AddPendingCall'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/ceval_gil.c' line='822' column='1'/>
-      <parameter type-id='type-id-816' name='func' filepath='Python/ceval_gil.c' line='823' column='1'/>
-      <parameter type-id='type-id-22' name='arg' filepath='Python/ceval_gil.c' line='823' column='1'/>
+    <function-decl name='_PyEval_AddPendingCall' mangled-name='_PyEval_AddPendingCall' filepath='Python/ceval_gil.c' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_AddPendingCall'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/ceval_gil.c' line='838' column='1'/>
+      <parameter type-id='type-id-812' name='func' filepath='Python/ceval_gil.c' line='839' column='1'/>
+      <parameter type-id='type-id-22' name='arg' filepath='Python/ceval_gil.c' line='839' column='1'/>
+      <parameter type-id='type-id-8' name='mainthreadonly' filepath='Python/ceval_gil.c' line='840' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='Py_AddPendingCall' mangled-name='Py_AddPendingCall' filepath='Python/ceval_gil.c' line='863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AddPendingCall'>
+      <parameter type-id='type-id-812' name='func' filepath='Python/ceval_gil.c' line='863' column='1'/>
+      <parameter type-id='type-id-22' name='arg' filepath='Python/ceval_gil.c' line='863' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_AddPendingCall' mangled-name='Py_AddPendingCall' filepath='Python/ceval_gil.c' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AddPendingCall'>
-      <parameter type-id='type-id-816' name='func' filepath='Python/ceval_gil.c' line='840' column='1'/>
-      <parameter type-id='type-id-22' name='arg' filepath='Python/ceval_gil.c' line='840' column='1'/>
+    <function-decl name='_PyEval_MakePendingCalls' mangled-name='_PyEval_MakePendingCalls' filepath='Python/ceval_gil.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_MakePendingCalls'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/ceval_gil.c' line='991' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_MakePendingCalls' mangled-name='Py_MakePendingCalls' filepath='Python/ceval_gil.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_MakePendingCalls'>
+    <function-decl name='Py_MakePendingCalls' mangled-name='Py_MakePendingCalls' filepath='Python/ceval_gil.c' line='1016' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_MakePendingCalls'>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='_PyThread_cond_init' filepath='Python/condvar.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -22731,35 +22737,35 @@
       <parameter type-id='type-id-8' name='jump' filepath='Python/compile.c' line='876' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCompile_CodeGen' mangled-name='_PyCompile_CodeGen' filepath='Python/compile.c' line='7926' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_CodeGen'>
-      <parameter type-id='type-id-2' name='ast' filepath='Python/compile.c' line='7926' column='1'/>
-      <parameter type-id='type-id-2' name='filename' filepath='Python/compile.c' line='7926' column='1'/>
-      <parameter type-id='type-id-208' name='pflags' filepath='Python/compile.c' line='7926' column='1'/>
-      <parameter type-id='type-id-8' name='optimize' filepath='Python/compile.c' line='7927' column='1'/>
-      <parameter type-id='type-id-8' name='compile_mode' filepath='Python/compile.c' line='7927' column='1'/>
+    <function-decl name='_PyCompile_CodeGen' mangled-name='_PyCompile_CodeGen' filepath='Python/compile.c' line='7930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_CodeGen'>
+      <parameter type-id='type-id-2' name='ast' filepath='Python/compile.c' line='7930' column='1'/>
+      <parameter type-id='type-id-2' name='filename' filepath='Python/compile.c' line='7930' column='1'/>
+      <parameter type-id='type-id-208' name='pflags' filepath='Python/compile.c' line='7930' column='1'/>
+      <parameter type-id='type-id-8' name='optimize' filepath='Python/compile.c' line='7931' column='1'/>
+      <parameter type-id='type-id-8' name='compile_mode' filepath='Python/compile.c' line='7931' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyCompile_OptimizeCfg' mangled-name='_PyCompile_OptimizeCfg' filepath='Python/compile.c' line='8011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_OptimizeCfg'>
-      <parameter type-id='type-id-2' name='instructions' filepath='Python/compile.c' line='8011' column='1'/>
-      <parameter type-id='type-id-2' name='consts' filepath='Python/compile.c' line='8011' column='1'/>
-      <parameter type-id='type-id-8' name='nlocals' filepath='Python/compile.c' line='8011' column='1'/>
+    <function-decl name='_PyCompile_OptimizeCfg' mangled-name='_PyCompile_OptimizeCfg' filepath='Python/compile.c' line='8015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_OptimizeCfg'>
+      <parameter type-id='type-id-2' name='instructions' filepath='Python/compile.c' line='8015' column='1'/>
+      <parameter type-id='type-id-2' name='consts' filepath='Python/compile.c' line='8015' column='1'/>
+      <parameter type-id='type-id-8' name='nlocals' filepath='Python/compile.c' line='8015' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyCfg_JumpLabelsToTargets' filepath='Python/compile.c' line='8035' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyCfg_JumpLabelsToTargets' filepath='Python/compile.c' line='8039' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-1399'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCompile_Assemble' mangled-name='_PyCompile_Assemble' filepath='Python/compile.c' line='8038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_Assemble'>
-      <parameter type-id='type-id-1397' name='umd' filepath='Python/compile.c' line='8038' column='1'/>
-      <parameter type-id='type-id-2' name='filename' filepath='Python/compile.c' line='8038' column='1'/>
-      <parameter type-id='type-id-2' name='instructions' filepath='Python/compile.c' line='8039' column='1'/>
+    <function-decl name='_PyCompile_Assemble' mangled-name='_PyCompile_Assemble' filepath='Python/compile.c' line='8042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_Assemble'>
+      <parameter type-id='type-id-1397' name='umd' filepath='Python/compile.c' line='8042' column='1'/>
+      <parameter type-id='type-id-2' name='filename' filepath='Python/compile.c' line='8042' column='1'/>
+      <parameter type-id='type-id-2' name='instructions' filepath='Python/compile.c' line='8043' column='1'/>
       <return type-id='type-id-328'/>
     </function-decl>
-    <function-decl name='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='Python/compile.c' line='8105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Optimize'>
-      <parameter type-id='type-id-2' name='code' filepath='Python/compile.c' line='8105' column='1'/>
-      <parameter type-id='type-id-2' name='_unused_consts' filepath='Python/compile.c' line='8105' column='1'/>
-      <parameter type-id='type-id-2' name='_unused_names' filepath='Python/compile.c' line='8106' column='1'/>
-      <parameter type-id='type-id-2' name='_unused_lnotab_obj' filepath='Python/compile.c' line='8106' column='1'/>
+    <function-decl name='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='Python/compile.c' line='8109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Optimize'>
+      <parameter type-id='type-id-2' name='code' filepath='Python/compile.c' line='8109' column='1'/>
+      <parameter type-id='type-id-2' name='_unused_consts' filepath='Python/compile.c' line='8109' column='1'/>
+      <parameter type-id='type-id-2' name='_unused_names' filepath='Python/compile.c' line='8110' column='1'/>
+      <parameter type-id='type-id-2' name='_unused_lnotab_obj' filepath='Python/compile.c' line='8110' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
     <function-decl name='_PyOpcode_num_popped' filepath='Python/opcode_metadata.h' line='7' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -23689,24 +23695,24 @@
       <parameter type-id='type-id-14'/>
       <return type-id='type-id-117'/>
     </function-decl>
-    <function-decl name='_PyThreadState_InitDetached' filepath='./Include/internal/pycore_pystate.h' line='139' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyThreadState_InitDetached' filepath='./Include/internal/pycore_pystate.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <parameter type-id='type-id-20'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyThreadState_ClearDetached' filepath='./Include/internal/pycore_pystate.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyThreadState_ClearDetached' filepath='./Include/internal/pycore_pystate.h' line='132' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyThreadState_BindDetached' filepath='./Include/internal/pycore_pystate.h' line='141' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyThreadState_BindDetached' filepath='./Include/internal/pycore_pystate.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyThreadState_UnbindDetached' filepath='./Include/internal/pycore_pystate.h' line='142' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyThreadState_UnbindDetached' filepath='./Include/internal/pycore_pystate.h' line='134' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyThreadState_Swap' mangled-name='_PyThreadState_Swap' filepath='./Include/internal/pycore_pystate.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Swap'>
+    <function-decl name='_PyThreadState_Swap' mangled-name='_PyThreadState_Swap' filepath='./Include/internal/pycore_pystate.h' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Swap'>
       <parameter type-id='type-id-178'/>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-177'/>
@@ -24534,7 +24540,7 @@
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='Python/perf_trampoline.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
-    <var-decl name='_Py_perfmap_callbacks' type-id='type-id-1463' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='79' column='1'/>
+    <var-decl name='_Py_perfmap_callbacks' type-id='type-id-1463' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='80' column='1'/>
     <function-decl name='mprotect' filepath='/usr/include/x86_64-linux-gnu/sys/mman.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-22'/>
       <parameter type-id='type-id-19'/>
@@ -24676,42 +24682,42 @@
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='Python/pylifecycle.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
-    <class-decl name='PyInterpreterConfig' size-in-bits='224' is-struct='yes' naming-typedef-id='type-id-1481' visibility='default' filepath='./Include/cpython/initconfig.h' line='247' column='1' id='type-id-1482'>
+    <class-decl name='PyInterpreterConfig' size-in-bits='224' is-struct='yes' naming-typedef-id='type-id-1481' visibility='default' filepath='./Include/cpython/initconfig.h' line='251' column='1' id='type-id-1482'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='use_main_obmalloc' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='249' column='1'/>
+        <var-decl name='use_main_obmalloc' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='253' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='allow_fork' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='250' column='1'/>
+        <var-decl name='allow_fork' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='254' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='allow_exec' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='251' column='1'/>
+        <var-decl name='allow_exec' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='255' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='allow_threads' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='252' column='1'/>
+        <var-decl name='allow_threads' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='256' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='allow_daemon_threads' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='253' column='1'/>
+        <var-decl name='allow_daemon_threads' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='257' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='check_multi_interp_extensions' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='254' column='1'/>
+        <var-decl name='check_multi_interp_extensions' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='258' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='own_gil' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='255' column='1'/>
+        <var-decl name='gil' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='259' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyInterpreterConfig' type-id='type-id-1482' filepath='./Include/cpython/initconfig.h' line='256' column='1' id='type-id-1481'/>
-    <class-decl name='_PyPerf_Callbacks' size-in-bits='192' is-struct='yes' naming-typedef-id='type-id-1463' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='62' column='1' id='type-id-1483'>
+    <typedef-decl name='PyInterpreterConfig' type-id='type-id-1482' filepath='./Include/cpython/initconfig.h' line='260' column='1' id='type-id-1481'/>
+    <class-decl name='_PyPerf_Callbacks' size-in-bits='192' is-struct='yes' naming-typedef-id='type-id-1463' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='63' column='1' id='type-id-1483'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='init_state' type-id='type-id-814' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='64' column='1'/>
+        <var-decl name='init_state' type-id='type-id-816' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='65' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='write_state' type-id='type-id-815' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='66' column='1'/>
+        <var-decl name='write_state' type-id='type-id-817' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='67' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='free_state' type-id='type-id-816' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='69' column='1'/>
+        <var-decl name='free_state' type-id='type-id-812' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='70' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='_PyPerf_Callbacks' type-id='type-id-1483' filepath='./Include/internal/pycore_ceval.h' line='70' column='1' id='type-id-1463'/>
+    <typedef-decl name='_PyPerf_Callbacks' type-id='type-id-1483' filepath='./Include/internal/pycore_ceval.h' line='71' column='1' id='type-id-1463'/>
     <class-decl name='_PyShimCodeDef' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='453' column='1' id='type-id-1484'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='code' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_code.h' line='454' column='1'/>
@@ -24746,30 +24752,30 @@
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyEval_Fini' filepath='./Include/internal/pycore_ceval.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_Fini' filepath='./Include/internal/pycore_ceval.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyPerfTrampoline_SetCallbacks' filepath='./Include/internal/pycore_ceval.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyPerfTrampoline_SetCallbacks' filepath='./Include/internal/pycore_ceval.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-231'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyPerfTrampoline_Init' filepath='./Include/internal/pycore_ceval.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyPerfTrampoline_Init' filepath='./Include/internal/pycore_ceval.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyPerfTrampoline_Fini' filepath='./Include/internal/pycore_ceval.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyPerfTrampoline_Fini' filepath='./Include/internal/pycore_ceval.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyEval_InitGIL' filepath='./Include/internal/pycore_ceval.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_InitGIL' filepath='./Include/internal/pycore_ceval.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <parameter type-id='type-id-8'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='_PyEval_FiniGIL' filepath='./Include/internal/pycore_ceval.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_FiniGIL' filepath='./Include/internal/pycore_ceval.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-20'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyEval_ReleaseLock' filepath='./Include/internal/pycore_ceval.h' line='103' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_ReleaseLock' filepath='./Include/internal/pycore_ceval.h' line='104' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-20'/>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
@@ -25106,15 +25112,15 @@
       <parameter type-id='type-id-19'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyThreadState_New' mangled-name='_PyThreadState_New' filepath='./Include/internal/pycore_pystate.h' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_New'>
+    <function-decl name='_PyThreadState_New' mangled-name='_PyThreadState_New' filepath='./Include/internal/pycore_pystate.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_New'>
       <parameter type-id='type-id-20'/>
       <return type-id='type-id-177'/>
     </function-decl>
-    <function-decl name='_PyThreadState_Bind' mangled-name='_PyThreadState_Bind' filepath='./Include/internal/pycore_pystate.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Bind'>
+    <function-decl name='_PyThreadState_Bind' mangled-name='_PyThreadState_Bind' filepath='./Include/internal/pycore_pystate.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Bind'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_Enable' mangled-name='_PyInterpreterState_Enable' filepath='./Include/internal/pycore_pystate.h' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_Enable'>
+    <function-decl name='_PyInterpreterState_Enable' mangled-name='_PyInterpreterState_Enable' filepath='./Include/internal/pycore_pystate.h' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_Enable'>
       <parameter type-id='type-id-178'/>
       <return type-id='type-id-54'/>
     </function-decl>
@@ -25236,6 +25242,9 @@
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-177'/>
     </function-decl>
+    <function-decl name='PyGILState_GetThisThreadState' mangled-name='PyGILState_GetThisThreadState' filepath='./Include/pystate.h' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_GetThisThreadState'>
+      <return type-id='type-id-177'/>
+    </function-decl>
     <function-decl name='PyOS_mystrnicmp' mangled-name='PyOS_mystrnicmp' filepath='./Include/pystrcmp.h' line='8' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_mystrnicmp'>
       <parameter type-id='type-id-12'/>
       <parameter type-id='type-id-12'/>
@@ -25308,91 +25317,91 @@
       <parameter type-id='type-id-260' name='src_config' filepath='Python/pylifecycle.c' line='414' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_PreInitializeFromPyArgv' mangled-name='_Py_PreInitializeFromPyArgv' filepath='Python/pylifecycle.c' line='898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromPyArgv'>
-      <parameter type-id='type-id-1435' name='src_config' filepath='Python/pylifecycle.c' line='898' column='1'/>
-      <parameter type-id='type-id-1438' name='args' filepath='Python/pylifecycle.c' line='898' column='1'/>
+    <function-decl name='_Py_PreInitializeFromPyArgv' mangled-name='_Py_PreInitializeFromPyArgv' filepath='Python/pylifecycle.c' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromPyArgv'>
+      <parameter type-id='type-id-1435' name='src_config' filepath='Python/pylifecycle.c' line='909' column='1'/>
+      <parameter type-id='type-id-1438' name='args' filepath='Python/pylifecycle.c' line='909' column='1'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='Py_PreInitializeFromBytesArgs' mangled-name='Py_PreInitializeFromBytesArgs' filepath='Python/pylifecycle.c' line='945' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromBytesArgs'>
-      <parameter type-id='type-id-1435' name='src_config' filepath='Python/pylifecycle.c' line='945' column='1'/>
-      <parameter type-id='type-id-14' name='argc' filepath='Python/pylifecycle.c' line='945' column='1'/>
-      <parameter type-id='type-id-239' name='argv' filepath='Python/pylifecycle.c' line='945' column='1'/>
+    <function-decl name='Py_PreInitializeFromBytesArgs' mangled-name='Py_PreInitializeFromBytesArgs' filepath='Python/pylifecycle.c' line='956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromBytesArgs'>
+      <parameter type-id='type-id-1435' name='src_config' filepath='Python/pylifecycle.c' line='956' column='1'/>
+      <parameter type-id='type-id-14' name='argc' filepath='Python/pylifecycle.c' line='956' column='1'/>
+      <parameter type-id='type-id-239' name='argv' filepath='Python/pylifecycle.c' line='956' column='1'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='Py_PreInitializeFromArgs' mangled-name='Py_PreInitializeFromArgs' filepath='Python/pylifecycle.c' line='953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromArgs'>
-      <parameter type-id='type-id-1435' name='src_config' filepath='Python/pylifecycle.c' line='953' column='1'/>
-      <parameter type-id='type-id-14' name='argc' filepath='Python/pylifecycle.c' line='953' column='1'/>
-      <parameter type-id='type-id-235' name='argv' filepath='Python/pylifecycle.c' line='953' column='1'/>
+    <function-decl name='Py_PreInitializeFromArgs' mangled-name='Py_PreInitializeFromArgs' filepath='Python/pylifecycle.c' line='964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromArgs'>
+      <parameter type-id='type-id-1435' name='src_config' filepath='Python/pylifecycle.c' line='964' column='1'/>
+      <parameter type-id='type-id-14' name='argc' filepath='Python/pylifecycle.c' line='964' column='1'/>
+      <parameter type-id='type-id-235' name='argv' filepath='Python/pylifecycle.c' line='964' column='1'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='Py_PreInitialize' mangled-name='Py_PreInitialize' filepath='Python/pylifecycle.c' line='961' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitialize'>
-      <parameter type-id='type-id-1435' name='src_config' filepath='Python/pylifecycle.c' line='961' column='1'/>
+    <function-decl name='Py_PreInitialize' mangled-name='Py_PreInitialize' filepath='Python/pylifecycle.c' line='972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitialize'>
+      <parameter type-id='type-id-1435' name='src_config' filepath='Python/pylifecycle.c' line='972' column='1'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='Py_InitializeEx' mangled-name='Py_InitializeEx' filepath='Python/pylifecycle.c' line='1263' 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='1263' column='1'/>
+    <function-decl name='Py_InitializeEx' mangled-name='Py_InitializeEx' filepath='Python/pylifecycle.c' line='1274' 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='1274' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='Py_Initialize' mangled-name='Py_Initialize' filepath='Python/pylifecycle.c' line='1291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Initialize'>
+    <function-decl name='Py_Initialize' mangled-name='Py_Initialize' filepath='Python/pylifecycle.c' line='1302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Initialize'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_Py_InitializeMain' mangled-name='_Py_InitializeMain' filepath='Python/pylifecycle.c' line='1298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_InitializeMain'>
+    <function-decl name='_Py_InitializeMain' mangled-name='_Py_InitializeMain' filepath='Python/pylifecycle.c' line='1309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_InitializeMain'>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='Py_Finalize' mangled-name='Py_Finalize' filepath='Python/pylifecycle.c' line='1973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Finalize'>
+    <function-decl name='Py_Finalize' mangled-name='Py_Finalize' filepath='Python/pylifecycle.c' line='1984' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Finalize'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='Py_NewInterpreterFromConfig' mangled-name='Py_NewInterpreterFromConfig' filepath='Python/pylifecycle.c' line='2098' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewInterpreterFromConfig'>
-      <parameter type-id='type-id-1488' name='tstate_p' filepath='Python/pylifecycle.c' line='2098' column='1'/>
-      <parameter type-id='type-id-1490' name='config' filepath='Python/pylifecycle.c' line='2099' column='1'/>
+    <function-decl name='Py_NewInterpreterFromConfig' mangled-name='Py_NewInterpreterFromConfig' filepath='Python/pylifecycle.c' line='2109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewInterpreterFromConfig'>
+      <parameter type-id='type-id-1488' name='tstate_p' filepath='Python/pylifecycle.c' line='2109' column='1'/>
+      <parameter type-id='type-id-1490' name='config' filepath='Python/pylifecycle.c' line='2110' column='1'/>
       <return type-id='type-id-54'/>
     </function-decl>
-    <function-decl name='Py_NewInterpreter' mangled-name='Py_NewInterpreter' filepath='Python/pylifecycle.c' line='2105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewInterpreter'>
+    <function-decl name='Py_NewInterpreter' mangled-name='Py_NewInterpreter' filepath='Python/pylifecycle.c' line='2116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewInterpreter'>
       <return type-id='type-id-177'/>
     </function-decl>
-    <function-decl name='Py_EndInterpreter' mangled-name='Py_EndInterpreter' filepath='Python/pylifecycle.c' line='2129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EndInterpreter'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/pylifecycle.c' line='2129' column='1'/>
+    <function-decl name='Py_EndInterpreter' mangled-name='Py_EndInterpreter' filepath='Python/pylifecycle.c' line='2140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EndInterpreter'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/pylifecycle.c' line='2140' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_Py_DumpExtensionModules' mangled-name='_Py_DumpExtensionModules' filepath='Python/pylifecycle.c' line='2708' 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='2708' column='1'/>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pylifecycle.c' line='2708' column='1'/>
+    <function-decl name='_Py_DumpExtensionModules' mangled-name='_Py_DumpExtensionModules' filepath='Python/pylifecycle.c' line='2722' 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='2722' column='1'/>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pylifecycle.c' line='2722' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='Py_FatalError' mangled-name='Py_FatalError' filepath='Python/pylifecycle.c' line='2881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FatalError'>
-      <parameter type-id='type-id-12' name='msg' filepath='Python/pylifecycle.c' line='2881' column='1'/>
+    <function-decl name='Py_FatalError' mangled-name='Py_FatalError' filepath='Python/pylifecycle.c' line='2895' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FatalError'>
+      <parameter type-id='type-id-12' name='msg' filepath='Python/pylifecycle.c' line='2895' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_Py_FatalRefcountErrorFunc' mangled-name='_Py_FatalRefcountErrorFunc' filepath='Python/pylifecycle.c' line='2925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FatalRefcountErrorFunc'>
-      <parameter type-id='type-id-12' name='func' filepath='Python/pylifecycle.c' line='2925' column='1'/>
-      <parameter type-id='type-id-12' name='msg' filepath='Python/pylifecycle.c' line='2925' column='1'/>
+    <function-decl name='_Py_FatalRefcountErrorFunc' mangled-name='_Py_FatalRefcountErrorFunc' filepath='Python/pylifecycle.c' line='2939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FatalRefcountErrorFunc'>
+      <parameter type-id='type-id-12' name='func' filepath='Python/pylifecycle.c' line='2939' column='1'/>
+      <parameter type-id='type-id-12' name='msg' filepath='Python/pylifecycle.c' line='2939' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='Py_AtExit' mangled-name='Py_AtExit' filepath='Python/pylifecycle.c' line='2975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AtExit'>
-      <parameter type-id='type-id-227' name='func' filepath='Python/pylifecycle.c' line='2975' column='1'/>
+    <function-decl name='Py_AtExit' mangled-name='Py_AtExit' filepath='Python/pylifecycle.c' line='2989' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AtExit'>
+      <parameter type-id='type-id-227' name='func' filepath='Python/pylifecycle.c' line='2989' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_Exit' mangled-name='Py_Exit' filepath='Python/pylifecycle.c' line='3012' 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='3012' column='1'/>
+    <function-decl name='Py_Exit' mangled-name='Py_Exit' filepath='Python/pylifecycle.c' line='3026' 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='3026' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='Py_FdIsInteractive' mangled-name='Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='3029' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FdIsInteractive'>
-      <parameter type-id='type-id-229' name='fp' filepath='Python/pylifecycle.c' line='3029' column='1'/>
-      <parameter type-id='type-id-12' name='filename' filepath='Python/pylifecycle.c' line='3029' column='1'/>
+    <function-decl name='Py_FdIsInteractive' mangled-name='Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='3043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FdIsInteractive'>
+      <parameter type-id='type-id-229' name='fp' filepath='Python/pylifecycle.c' line='3043' column='1'/>
+      <parameter type-id='type-id-12' name='filename' filepath='Python/pylifecycle.c' line='3043' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_FdIsInteractive' mangled-name='_Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='3044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FdIsInteractive'>
-      <parameter type-id='type-id-229' name='fp' filepath='Python/pylifecycle.c' line='3044' column='1'/>
-      <parameter type-id='type-id-2' name='filename' filepath='Python/pylifecycle.c' line='3044' column='1'/>
+    <function-decl name='_Py_FdIsInteractive' mangled-name='_Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='3058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FdIsInteractive'>
+      <parameter type-id='type-id-229' name='fp' filepath='Python/pylifecycle.c' line='3058' column='1'/>
+      <parameter type-id='type-id-2' name='filename' filepath='Python/pylifecycle.c' line='3058' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyOS_getsig' mangled-name='PyOS_getsig' filepath='Python/pylifecycle.c' line='3061' 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='3061' column='1'/>
+    <function-decl name='PyOS_getsig' mangled-name='PyOS_getsig' filepath='Python/pylifecycle.c' line='3075' 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='3075' column='1'/>
       <return type-id='type-id-1486'/>
     </function-decl>
-    <function-decl name='PyOS_setsig' mangled-name='PyOS_setsig' filepath='Python/pylifecycle.c' line='3100' 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='3100' column='1'/>
-      <parameter type-id='type-id-1486' name='handler' filepath='Python/pylifecycle.c' line='3100' column='1'/>
+    <function-decl name='PyOS_setsig' mangled-name='PyOS_setsig' filepath='Python/pylifecycle.c' line='3114' 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='3114' column='1'/>
+      <parameter type-id='type-id-1486' name='handler' filepath='Python/pylifecycle.c' line='3114' column='1'/>
       <return type-id='type-id-1486'/>
     </function-decl>
   </abi-instr>
@@ -25409,7 +25418,7 @@
       <parameter type-id='type-id-1498'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyEval_AcquireLock' filepath='./Include/internal/pycore_ceval.h' line='102' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyEval_AcquireLock' filepath='./Include/internal/pycore_ceval.h' line='103' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-177'/>
       <return type-id='type-id-46'/>
     </function-decl>
@@ -25454,7 +25463,7 @@
       <parameter type-id='type-id-20'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <var-decl name='_Py_tss_tstate' type-id='type-id-177' visibility='default' filepath='./Include/internal/pycore_pystate.h' line='75' column='1'/>
+    <var-decl name='_Py_tss_tstate' type-id='type-id-177' visibility='default' filepath='./Include/internal/pycore_pystate.h' line='67' column='1'/>
     <function-decl name='PyThread_get_thread_native_id' mangled-name='PyThread_get_thread_native_id' filepath='./Include/pythread.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_native_id'>
       <return type-id='type-id-28'/>
     </function-decl>
@@ -25469,137 +25478,137 @@
     <function-decl name='_PyThreadState_GetCurrent' mangled-name='_PyThreadState_GetCurrent' filepath='Python/pystate.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_GetCurrent'>
       <return type-id='type-id-177'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Clear' mangled-name='PyInterpreterState_Clear' filepath='Python/pystate.c' line='919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Clear'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='919' column='1'/>
+    <function-decl name='PyInterpreterState_Clear' mangled-name='PyInterpreterState_Clear' filepath='Python/pystate.c' line='920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Clear'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='920' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_RequiresIDRef' mangled-name='_PyInterpreterState_RequiresIDRef' filepath='Python/pystate.c' line='1115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequiresIDRef'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1115' column='1'/>
+    <function-decl name='_PyInterpreterState_RequiresIDRef' mangled-name='_PyInterpreterState_RequiresIDRef' filepath='Python/pystate.c' line='1116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequiresIDRef'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1116' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_RequireIDRef' mangled-name='_PyInterpreterState_RequireIDRef' filepath='Python/pystate.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequireIDRef'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1121' column='1'/>
-      <parameter type-id='type-id-8' name='required' filepath='Python/pystate.c' line='1121' column='1'/>
+    <function-decl name='_PyInterpreterState_RequireIDRef' mangled-name='_PyInterpreterState_RequireIDRef' filepath='Python/pystate.c' line='1122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequireIDRef'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1122' column='1'/>
+      <parameter type-id='type-id-8' name='required' filepath='Python/pystate.c' line='1122' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetMainModule' mangled-name='_PyInterpreterState_GetMainModule' filepath='Python/pystate.c' line='1127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetMainModule'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1127' column='1'/>
+    <function-decl name='_PyInterpreterState_GetMainModule' mangled-name='_PyInterpreterState_GetMainModule' filepath='Python/pystate.c' line='1128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetMainModule'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1128' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_GetDict' mangled-name='PyInterpreterState_GetDict' filepath='Python/pystate.c' line='1138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetDict'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1138' column='1'/>
+    <function-decl name='PyInterpreterState_GetDict' mangled-name='PyInterpreterState_GetDict' filepath='Python/pystate.c' line='1139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetDict'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1139' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyThreadState_New' mangled-name='PyThreadState_New' filepath='Python/pystate.c' line='1380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_New'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1380' column='1'/>
+    <function-decl name='PyThreadState_New' mangled-name='PyThreadState_New' filepath='Python/pystate.c' line='1381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_New'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1381' column='1'/>
       <return type-id='type-id-177'/>
     </function-decl>
-    <function-decl name='_PyThreadState_Prealloc' mangled-name='_PyThreadState_Prealloc' filepath='Python/pystate.c' line='1403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Prealloc'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1403' column='1'/>
+    <function-decl name='_PyThreadState_Prealloc' mangled-name='_PyThreadState_Prealloc' filepath='Python/pystate.c' line='1404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Prealloc'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='1404' column='1'/>
       <return type-id='type-id-177'/>
     </function-decl>
-    <function-decl name='_PyThreadState_Init' mangled-name='_PyThreadState_Init' filepath='Python/pystate.c' line='1411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Init'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1411' column='1'/>
+    <function-decl name='_PyThreadState_Init' mangled-name='_PyThreadState_Init' filepath='Python/pystate.c' line='1412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Init'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1412' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyThreadState_DeleteCurrent' mangled-name='_PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='1573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteCurrent'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1573' column='1'/>
+    <function-decl name='_PyThreadState_DeleteCurrent' mangled-name='_PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='1574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteCurrent'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1574' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='PyThreadState_DeleteCurrent' mangled-name='PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='1583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_DeleteCurrent'>
+    <function-decl name='PyThreadState_DeleteCurrent' mangled-name='PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='1584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_DeleteCurrent'>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyThreadState_GetDict' mangled-name='_PyThreadState_GetDict' filepath='Python/pystate.c' line='1714' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_GetDict'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1714' column='1'/>
+    <function-decl name='_PyThreadState_GetDict' mangled-name='_PyThreadState_GetDict' filepath='Python/pystate.c' line='1715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_GetDict'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1715' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetInterpreter' mangled-name='PyThreadState_GetInterpreter' filepath='Python/pystate.c' line='1739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetInterpreter'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1739' column='1'/>
+    <function-decl name='PyThreadState_GetInterpreter' mangled-name='PyThreadState_GetInterpreter' filepath='Python/pystate.c' line='1740' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetInterpreter'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1740' column='1'/>
       <return type-id='type-id-20'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetID' mangled-name='PyThreadState_GetID' filepath='Python/pystate.c' line='1763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetID'>
-      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1763' column='1'/>
+    <function-decl name='PyThreadState_GetID' mangled-name='PyThreadState_GetID' filepath='Python/pystate.c' line='1764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetID'>
+      <parameter type-id='type-id-177' name='tstate' filepath='Python/pystate.c' line='1764' column='1'/>
       <return type-id='type-id-117'/>
     </function-decl>
-    <function-decl name='PyThreadState_SetAsyncExc' mangled-name='PyThreadState_SetAsyncExc' filepath='Python/pystate.c' line='1817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_SetAsyncExc'>
-      <parameter type-id='type-id-28' name='id' filepath='Python/pystate.c' line='1817' column='1'/>
-      <parameter type-id='type-id-2' name='exc' filepath='Python/pystate.c' line='1817' column='1'/>
+    <function-decl name='PyThreadState_SetAsyncExc' mangled-name='PyThreadState_SetAsyncExc' filepath='Python/pystate.c' line='1818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_SetAsyncExc'>
+      <parameter type-id='type-id-28' name='id' filepath='Python/pystate.c' line='1818' column='1'/>
+      <parameter type-id='type-id-2' name='exc' filepath='Python/pystate.c' line='1818' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Main' mangled-name='PyInterpreterState_Main' filepath='Python/pystate.c' line='1960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Main'>
+    <function-decl name='PyInterpreterState_Main' mangled-name='PyInterpreterState_Main' filepath='Python/pystate.c' line='1961' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Main'>
       <return type-id='type-id-20'/>
     </function-decl>
-    <function-decl name='_PyThread_CurrentFrames' mangled-name='_PyThread_CurrentFrames' filepath='Python/pystate.c' line='1991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentFrames'>
+    <function-decl name='_PyThread_CurrentFrames' mangled-name='_PyThread_CurrentFrames' filepath='Python/pystate.c' line='1992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentFrames'>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyThread_CurrentExceptions' mangled-name='_PyThread_CurrentExceptions' filepath='Python/pystate.c' line='2052' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentExceptions'>
+    <function-decl name='_PyThread_CurrentExceptions' mangled-name='_PyThread_CurrentExceptions' filepath='Python/pystate.c' line='2053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentExceptions'>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyGILState_GetInterpreterStateUnsafe' mangled-name='_PyGILState_GetInterpreterStateUnsafe' filepath='Python/pystate.c' line='2170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGILState_GetInterpreterStateUnsafe'>
+    <function-decl name='_PyGILState_GetInterpreterStateUnsafe' mangled-name='_PyGILState_GetInterpreterStateUnsafe' filepath='Python/pystate.c' line='2171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGILState_GetInterpreterStateUnsafe'>
       <return type-id='type-id-20'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_Init' mangled-name='_PyCrossInterpreterData_Init' filepath='Python/pystate.c' line='2333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Init'>
-      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2333' column='1'/>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2334' column='1'/>
-      <parameter type-id='type-id-22' name='shared' filepath='Python/pystate.c' line='2335' column='1'/>
-      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2335' column='1'/>
-      <parameter type-id='type-id-782' name='new_object' filepath='Python/pystate.c' line='2336' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_Init' mangled-name='_PyCrossInterpreterData_Init' filepath='Python/pystate.c' line='2334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Init'>
+      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2334' column='1'/>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2335' column='1'/>
+      <parameter type-id='type-id-22' name='shared' filepath='Python/pystate.c' line='2336' column='1'/>
+      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2336' column='1'/>
+      <parameter type-id='type-id-782' name='new_object' filepath='Python/pystate.c' line='2337' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_InitWithSize' mangled-name='_PyCrossInterpreterData_InitWithSize' filepath='Python/pystate.c' line='2355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_InitWithSize'>
-      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2355' column='1'/>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2356' column='1'/>
-      <parameter type-id='type-id-1500' name='size' filepath='Python/pystate.c' line='2357' column='1'/>
-      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2357' column='1'/>
-      <parameter type-id='type-id-782' name='new_object' filepath='Python/pystate.c' line='2358' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_InitWithSize' mangled-name='_PyCrossInterpreterData_InitWithSize' filepath='Python/pystate.c' line='2356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_InitWithSize'>
+      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2356' column='1'/>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2357' column='1'/>
+      <parameter type-id='type-id-1500' name='size' filepath='Python/pystate.c' line='2358' column='1'/>
+      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2358' column='1'/>
+      <parameter type-id='type-id-782' name='new_object' filepath='Python/pystate.c' line='2359' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_Clear' mangled-name='_PyCrossInterpreterData_Clear' filepath='Python/pystate.c' line='2374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Clear'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2374' column='1'/>
-      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2375' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_Clear' mangled-name='_PyCrossInterpreterData_Clear' filepath='Python/pystate.c' line='2375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Clear'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2375' column='1'/>
+      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2376' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyObject_CheckCrossInterpreterData' mangled-name='_PyObject_CheckCrossInterpreterData' filepath='Python/pystate.c' line='2420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckCrossInterpreterData'>
-      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2420' column='1'/>
+    <function-decl name='_PyObject_CheckCrossInterpreterData' mangled-name='_PyObject_CheckCrossInterpreterData' filepath='Python/pystate.c' line='2421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckCrossInterpreterData'>
+      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2421' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyObject_GetCrossInterpreterData' mangled-name='_PyObject_GetCrossInterpreterData' filepath='Python/pystate.c' line='2430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetCrossInterpreterData'>
-      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2430' column='1'/>
-      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2430' column='1'/>
+    <function-decl name='_PyObject_GetCrossInterpreterData' mangled-name='_PyObject_GetCrossInterpreterData' filepath='Python/pystate.c' line='2431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetCrossInterpreterData'>
+      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2431' column='1'/>
+      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2431' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_NewObject' mangled-name='_PyCrossInterpreterData_NewObject' filepath='Python/pystate.c' line='2468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_NewObject'>
-      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2468' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_NewObject' mangled-name='_PyCrossInterpreterData_NewObject' filepath='Python/pystate.c' line='2469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_NewObject'>
+      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2469' column='1'/>
       <return type-id='type-id-2'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_Release' mangled-name='_PyCrossInterpreterData_Release' filepath='Python/pystate.c' line='2502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Release'>
-      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2502' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_Release' mangled-name='_PyCrossInterpreterData_Release' filepath='Python/pystate.c' line='2503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Release'>
+      <parameter type-id='type-id-1057' name='data' filepath='Python/pystate.c' line='2503' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_RegisterClass' mangled-name='_PyCrossInterpreterData_RegisterClass' filepath='Python/pystate.c' line='2603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_RegisterClass'>
-      <parameter type-id='type-id-1' name='cls' filepath='Python/pystate.c' line='2603' column='1'/>
-      <parameter type-id='type-id-785' name='getdata' filepath='Python/pystate.c' line='2604' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_RegisterClass' mangled-name='_PyCrossInterpreterData_RegisterClass' filepath='Python/pystate.c' line='2604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_RegisterClass'>
+      <parameter type-id='type-id-1' name='cls' filepath='Python/pystate.c' line='2604' column='1'/>
+      <parameter type-id='type-id-785' name='getdata' filepath='Python/pystate.c' line='2605' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_UnregisterClass' mangled-name='_PyCrossInterpreterData_UnregisterClass' filepath='Python/pystate.c' line='2626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_UnregisterClass'>
-      <parameter type-id='type-id-1' name='cls' filepath='Python/pystate.c' line='2626' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_UnregisterClass' mangled-name='_PyCrossInterpreterData_UnregisterClass' filepath='Python/pystate.c' line='2627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_UnregisterClass'>
+      <parameter type-id='type-id-1' name='cls' filepath='Python/pystate.c' line='2627' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_Lookup' mangled-name='_PyCrossInterpreterData_Lookup' filepath='Python/pystate.c' line='2646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Lookup'>
-      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2646' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_Lookup' mangled-name='_PyCrossInterpreterData_Lookup' filepath='Python/pystate.c' line='2647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Lookup'>
+      <parameter type-id='type-id-2' name='obj' filepath='Python/pystate.c' line='2647' column='1'/>
       <return type-id='type-id-785'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetEvalFrameFunc' mangled-name='_PyInterpreterState_GetEvalFrameFunc' filepath='Python/pystate.c' line='2795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetEvalFrameFunc'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2795' column='1'/>
+    <function-decl name='_PyInterpreterState_GetEvalFrameFunc' mangled-name='_PyInterpreterState_GetEvalFrameFunc' filepath='Python/pystate.c' line='2796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetEvalFrameFunc'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2796' column='1'/>
       <return type-id='type-id-778'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_SetEvalFrameFunc' mangled-name='_PyInterpreterState_SetEvalFrameFunc' filepath='Python/pystate.c' line='2805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_SetEvalFrameFunc'>
-      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2805' column='1'/>
-      <parameter type-id='type-id-778' name='eval_frame' filepath='Python/pystate.c' line='2806' column='1'/>
+    <function-decl name='_PyInterpreterState_SetEvalFrameFunc' mangled-name='_PyInterpreterState_SetEvalFrameFunc' filepath='Python/pystate.c' line='2806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_SetEvalFrameFunc'>
+      <parameter type-id='type-id-20' name='interp' filepath='Python/pystate.c' line='2806' column='1'/>
+      <parameter type-id='type-id-778' name='eval_frame' filepath='Python/pystate.c' line='2807' column='1'/>
       <return type-id='type-id-46'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetConfigCopy' mangled-name='_PyInterpreterState_GetConfigCopy' filepath='Python/pystate.c' line='2825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetConfigCopy'>
-      <parameter type-id='type-id-53' name='config' filepath='Python/pystate.c' line='2825' column='1'/>
+    <function-decl name='_PyInterpreterState_GetConfigCopy' mangled-name='_PyInterpreterState_GetConfigCopy' filepath='Python/pystate.c' line='2826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetConfigCopy'>
+      <parameter type-id='type-id-53' name='config' filepath='Python/pystate.c' line='2826' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
   </abi-instr>
diff --git a/Include/cpython/ceval.h b/Include/cpython/ceval.h
index 0fbbee10c2edc..a9616bd6a4f51 100644
--- a/Include/cpython/ceval.h
+++ b/Include/cpython/ceval.h
@@ -22,6 +22,8 @@ PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(PyThreadState *tstate, struct _P
 PyAPI_FUNC(void) _PyEval_SetSwitchInterval(unsigned long microseconds);
 PyAPI_FUNC(unsigned long) _PyEval_GetSwitchInterval(void);
 
+PyAPI_FUNC(int) _PyEval_MakePendingCalls(PyThreadState *);
+
 PyAPI_FUNC(Py_ssize_t) PyUnstable_Eval_RequestCodeExtraIndex(freefunc);
 // Old name -- remove when this API changes:
 _Py_DEPRECATED_EXTERNALLY(3.12) static inline Py_ssize_t
diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h
index ca2703781de4b..9e9b523e7c222 100644
--- a/Include/internal/pycore_ceval.h
+++ b/Include/internal/pycore_ceval.h
@@ -27,7 +27,8 @@ PyAPI_FUNC(void) _PyEval_SignalReceived(PyInterpreterState *interp);
 PyAPI_FUNC(int) _PyEval_AddPendingCall(
     PyInterpreterState *interp,
     int (*func)(void *),
-    void *arg);
+    void *arg,
+    int mainthreadonly);
 PyAPI_FUNC(void) _PyEval_SignalAsyncExc(PyInterpreterState *interp);
 #ifdef HAVE_FORK
 extern PyStatus _PyEval_ReInitThreads(PyThreadState *tstate);
diff --git a/Include/internal/pycore_ceval_state.h b/Include/internal/pycore_ceval_state.h
index 95d1fa16ba40d..e56e43c6e0c6a 100644
--- a/Include/internal/pycore_ceval_state.h
+++ b/Include/internal/pycore_ceval_state.h
@@ -13,6 +13,24 @@ extern "C" {
 #include "pycore_gil.h"             // struct _gil_runtime_state
 
 
+struct _pending_calls {
+    int busy;
+    PyThread_type_lock lock;
+    /* Request for running pending calls. */
+    _Py_atomic_int calls_to_do;
+    /* Request for looking at the `async_exc` field of the current
+       thread state.
+       Guarded by the GIL. */
+    int async_exc;
+#define NPENDINGCALLS 32
+    struct _pending_call {
+        int (*func)(void *);
+        void *arg;
+    } calls[NPENDINGCALLS];
+    int first;
+    int last;
+};
+
 typedef enum {
     PERF_STATUS_FAILED = -1,  // Perf trampoline is in an invalid state
     PERF_STATUS_NO_INIT = 0,  // Perf trampoline is not initialized
@@ -49,6 +67,8 @@ struct _ceval_runtime_state {
        the main thread of the main interpreter can handle signals: see
        _Py_ThreadCanHandleSignals(). */
     _Py_atomic_int signals_pending;
+    /* Pending calls to be made only on the main thread. */
+    struct _pending_calls pending_mainthread;
 };
 
 #ifdef PY_HAVE_PERF_TRAMPOLINE
@@ -62,24 +82,6 @@ struct _ceval_runtime_state {
 #endif
 
 
-struct _pending_calls {
-    int busy;
-    PyThread_type_lock lock;
-    /* Request for running pending calls. */
-    _Py_atomic_int calls_to_do;
-    /* Request for looking at the `async_exc` field of the current
-       thread state.
-       Guarded by the GIL. */
-    int async_exc;
-#define NPENDINGCALLS 32
-    struct {
-        int (*func)(void *);
-        void *arg;
-    } calls[NPENDINGCALLS];
-    int first;
-    int last;
-};
-
 struct _ceval_state {
     /* This single variable consolidates all requests to break out of
        the fast path in the eval loop. */
diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h
index daa40cf4bcd85..43652c4405ec1 100644
--- a/Include/internal/pycore_pystate.h
+++ b/Include/internal/pycore_pystate.h
@@ -60,14 +60,6 @@ _Py_ThreadCanHandleSignals(PyInterpreterState *interp)
 }
 
 
-/* Only execute pending calls on the main thread. */
-static inline int
-_Py_ThreadCanHandlePendingCalls(void)
-{
-    return _Py_IsMainThread();
-}
-
-
 /* Variable and static inline functions for in-line access to current thread
    and interpreter state */
 
diff --git a/Lib/test/support/threading_helper.py b/Lib/test/support/threading_helper.py
index b9973c8bf5c91..7f16050f32b9d 100644
--- a/Lib/test/support/threading_helper.py
+++ b/Lib/test/support/threading_helper.py
@@ -115,7 +115,11 @@ def join_thread(thread, timeout=None):
 
 @contextlib.contextmanager
 def start_threads(threads, unlock=None):
-    import faulthandler
+    try:
+        import faulthandler
+    except ImportError:
+        # It isn't supported on subinterpreters yet.
+        faulthandler = None
     threads = list(threads)
     started = []
     try:
@@ -147,7 +151,8 @@ def start_threads(threads, unlock=None):
         finally:
             started = [t for t in started if t.is_alive()]
             if started:
-                faulthandler.dump_traceback(sys.stdout)
+                if faulthandler is not None:
+                    faulthandler.dump_traceback(sys.stdout)
                 raise AssertionError('Unable to join %d threads' % len(started))
 
 
diff --git a/Lib/test/test_capi/test_misc.py b/Lib/test/test_capi/test_misc.py
index 9cd1554614695..61947cb794519 100644
--- a/Lib/test/test_capi/test_misc.py
+++ b/Lib/test/test_capi/test_misc.py
@@ -2,18 +2,21 @@
 # these are all functions _testcapi exports whose name begins with 'test_'.
 
 import _thread
-from collections import OrderedDict
+from collections import OrderedDict, deque
 import contextlib
 import importlib.machinery
 import importlib.util
+import json
 import os
 import pickle
+import queue
 import random
 import subprocess
 import sys
 import textwrap
 import threading
 import time
+import types
 import unittest
 import warnings
 import weakref
@@ -37,6 +40,10 @@
     import _testsinglephase
 except ImportError:
     _testsinglephase = None
+try:
+    import _xxsubinterpreters as _interpreters
+except ModuleNotFoundError:
+    _interpreters = None
 
 # Skip this test if the _testcapi module isn't available.
 _testcapi = import_helper.import_module('_testcapi')
@@ -48,6 +55,12 @@ def decode_stderr(err):
     return err.decode('utf-8', 'replace').replace('\r', '')
 
 
+def requires_subinterpreters(meth):
+    """Decorator to skip a test if subinterpreters are not supported."""
+    return unittest.skipIf(_interpreters is None,
+                           'subinterpreters required')(meth)
+
+
 def testfunction(self):
     """some doc"""
     return self
@@ -1260,6 +1273,10 @@ def test_pyobject_getitemdata_error(self):
 
 class TestPendingCalls(unittest.TestCase):
 
+    # See the comment in ceval.c (at the "handle_eval_breaker" label)
+    # about when pending calls get run.  This is especially relevant
+    # here for creating deterministic tests.
+
     def pendingcalls_submit(self, l, n):
         def callback():
             #this function can be interrupted by thread switching so let's
@@ -1342,6 +1359,390 @@ def genf(): yield
         gen = genf()
         self.assertEqual(_testcapi.gen_get_code(gen), gen.gi_code)
 
+    class PendingTask(types.SimpleNamespace):
+
+        _add_pending = _testinternalcapi.pending_threadfunc
+
+        def __init__(self, req, taskid=None, notify_done=None):
+            self.id = taskid
+            self.req = req
+            self.notify_done = notify_done
+
+            self.creator_tid = threading.get_ident()
+            self.requester_tid = None
+            self.runner_tid = None
+            self.result = None
+
+        def run(self):
+            assert self.result is None
+            self.runner_tid = threading.get_ident()
+            self._run()
+            if self.notify_done is not None:
+                self.notify_done()
+
+        def _run(self):
+            self.result = self.req
+
+        def run_in_pending_call(self, worker_tids):
+            assert self._add_pending is _testinternalcapi.pending_threadfunc
+            self.requester_tid = threading.get_ident()
+            def callback():
+                assert self.result is None
+                # It can be tricky to control which thread handles
+                # the eval breaker, so we take a naive approach to
+                # make sure.
+                if threading.get_ident() not in worker_tids:
+                    self._add_pending(callback, ensure_added=True)
+                    return
+                self.run()
+            self._add_pending(callback, ensure_added=True)
+
+        def create_thread(self, worker_tids):
+            return threading.Thread(
+                target=self.run_in_pending_call,
+                args=(worker_tids,),
+            )
+
+        def wait_for_result(self):
+            while self.result is None:
+                time.sleep(0.01)
+
+    @threading_helper.requires_working_threading()
+    def test_subthreads_can_handle_pending_calls(self):
+        payload = 'Spam spam spam spam. Lovely spam! Wonderful spam!'
+
+        task = self.PendingTask(payload)
+        def do_the_work():
+            tid = threading.get_ident()
+            t = task.create_thread({tid})
+            with threading_helper.start_threads([t]):
+                task.wait_for_result()
+        t = threading.Thread(target=do_the_work)
+        with threading_helper.start_threads([t]):
+            pass
+
+        self.assertEqual(task.result, payload)
+
+    @threading_helper.requires_working_threading()
+    def test_many_subthreads_can_handle_pending_calls(self):
+        main_tid = threading.get_ident()
+        self.assertEqual(threading.main_thread().ident, main_tid)
+
+        # We can't use queue.Queue since it isn't reentrant relative
+        # to pending calls.
+        _queue = deque()
+        _active = deque()
+        _done_lock = threading.Lock()
+        def queue_put(task):
+            _queue.append(task)
+            _active.append(True)
+        def queue_get():
+            try:
+                task = _queue.popleft()
+            except IndexError:
+                raise queue.Empty
+            return task
+        def queue_task_done():
+            _active.pop()
+            if not _active:
+                try:
+                    _done_lock.release()
+                except RuntimeError:
+                    assert not _done_lock.locked()
+        def queue_empty():
+            return not _queue
+        def queue_join():
+            _done_lock.acquire()
+            _done_lock.release()
+
+        tasks = []
+        for i in range(20):
+            task = self.PendingTask(
+                req=f'request {i}',
+                taskid=i,
+                notify_done=queue_task_done,
+            )
+            tasks.append(task)
+            queue_put(task)
+        # This will be released once all the tasks have finished.
+        _done_lock.acquire()
+
+        def add_tasks(worker_tids):
+            while True:
+                if done:
+                    return
+                try:
+                    task = queue_get()
+                except queue.Empty:
+                    break
+                task.run_in_pending_call(worker_tids)
+
+        done = False
+        def run_tasks():
+            while not queue_empty():
+                if done:
+                    return
+                time.sleep(0.01)
+            # Give the worker a chance to handle any remaining pending calls.
+            while not done:
+                time.sleep(0.01)
+
+        # Start the workers and wait for them to finish.
+        worker_threads = [threading.Thread(target=run_tasks)
+                          for _ in range(3)]
+        with threading_helper.start_threads(worker_threads):
+            try:
+                # Add a pending call for each task.
+                worker_tids = [t.ident for t in worker_threads]
+                threads = [threading.Thread(target=add_tasks, args=(worker_tids,))
+                           for _ in range(3)]
+                with threading_helper.start_threads(threads):
+                    try:
+                        pass
+                    except BaseException:
+                        done = True
+                        raise  # re-raise
+                # Wait for the pending calls to finish.
+                queue_join()
+                # Notify the workers that they can stop.
+                done = True
+            except BaseException:
+                done = True
+                raise  # re-raise
+        runner_tids = [t.runner_tid for t in tasks]
+
+        self.assertNotIn(main_tid, runner_tids)
+        for task in tasks:
+            with self.subTest(f'task {task.id}'):
+                self.assertNotEqual(task.requester_tid, main_tid)
+                self.assertNotEqual(task.requester_tid, task.runner_tid)
+                self.assertNotIn(task.requester_tid, runner_tids)
+
+    @requires_subinterpreters
+    def test_isolated_subinterpreter(self):
+        # We exercise the most important permutations.
+
+        # This test relies on pending calls getting called
+        # (eval breaker tripped) at each loop iteration
+        # and at each call.
+
+        maxtext = 250
+        main_interpid = 0
+        interpid = _interpreters.create()
+        _interpreters.run_string(interpid, f"""if True:
+            import json
+            import os
+            import threading
+            import time
+            import _testinternalcapi
+            from test.support import threading_helper
+            """)
+
+        def create_pipe():
+            r, w = os.pipe()
+            self.addCleanup(lambda: os.close(r))
+            self.addCleanup(lambda: os.close(w))
+            return r, w
+
+        with self.subTest('add in main, run in subinterpreter'):
+            r_ready, w_ready = create_pipe()
+            r_done, w_done= create_pipe()
+            timeout = time.time() + 30  # seconds
+
+            def do_work():
+                _interpreters.run_string(interpid, f"""if True:
+                    # Wait until this interp has handled the pending call.
+                    waiting = False
+                    done = False
+                    def wait(os_read=os.read):
+                        global done, waiting
+                        waiting = True
+                        os_read({r_done}, 1)
+                        done = True
+                    t = threading.Thread(target=wait)
+                    with threading_helper.start_threads([t]):
+                        while not waiting:
+                            pass
+                        os.write({w_ready}, b'\\0')
+                        # Loop to trigger the eval breaker.
+                        while not done:
+                            time.sleep(0.01)
+                            if time.time() > {timeout}:
+                                raise Exception('timed out!')
+                    """)
+            t = threading.Thread(target=do_work)
+            with threading_helper.start_threads([t]):
+                os.read(r_ready, 1)
+                # Add the pending call and wait for it to finish.
+                actual = _testinternalcapi.pending_identify(interpid)
+                # Signal the subinterpreter to stop.
+                os.write(w_done, b'\0')
+
+            self.assertEqual(actual, int(interpid))
+
+        with self.subTest('add in main, run in subinterpreter sub-thread'):
+            r_ready, w_ready = create_pipe()
+            r_done, w_done= create_pipe()
+            timeout = time.time() + 30  # seconds
+
+            def do_work():
+                _interpreters.run_string(interpid, f"""if True:
+                    waiting = False
+                    done = False
+                    def subthread():
+                        while not waiting:
+                            pass
+                        os.write({w_ready}, b'\\0')
+                        # Loop to trigger the eval breaker.
+                        while not done:
+                            time.sleep(0.01)
+                            if time.time() > {timeout}:
+                                raise Exception('timed out!')
+                    t = threading.Thread(target=subthread)
+                    with threading_helper.start_threads([t]):
+                        # Wait until this interp has handled the pending call.
+                        waiting = True
+                        os.read({r_done}, 1)
+                        done = True
+                    """)
+            t = threading.Thread(target=do_work)
+            with threading_helper.start_threads([t]):
+                os.read(r_ready, 1)
+                # Add the pending call and wait for it to finish.
+                actual = _testinternalcapi.pending_identify(interpid)
+                # Signal the subinterpreter to stop.
+                os.write(w_done, b'\0')
+
+            self.assertEqual(actual, int(interpid))
+
+        with self.subTest('add in subinterpreter, run in main'):
+            r_ready, w_ready = create_pipe()
+            r_done, w_done= create_pipe()
+            r_data, w_data= create_pipe()
+            timeout = time.time() + 30  # seconds
+
+            def add_job():
+                os.read(r_ready, 1)
+                _interpreters.run_string(interpid, f"""if True:
+                    # Add the pending call and wait for it to finish.
+                    actual = _testinternalcapi.pending_identify({main_interpid})
+                    # Signal the subinterpreter to stop.
+                    os.write({w_done}, b'\\0')
+                    os.write({w_data}, actual.to_bytes(1, 'little'))
+                    """)
+            # Wait until this interp has handled the pending call.
+            waiting = False
+            done = False
+            def wait(os_read=os.read):
+                nonlocal done, waiting
+                waiting = True
+                os_read(r_done, 1)
+                done = True
+            t1 = threading.Thread(target=add_job)
+            t2 = threading.Thread(target=wait)
+            with threading_helper.start_threads([t1, t2]):
+                while not waiting:
+                    pass
+                os.write(w_ready, b'\0')
+                # Loop to trigger the eval breaker.
+                while not done:
+                    time.sleep(0.01)
+                    if time.time() > timeout:
+                        raise Exception('timed out!')
+                text = os.read(r_data, 1)
+            actual = int.from_bytes(text, 'little')
+
+            self.assertEqual(actual, int(main_interpid))
+
+        with self.subTest('add in subinterpreter, run in sub-thread'):
+            r_ready, w_ready = create_pipe()
+            r_done, w_done= create_pipe()
+            r_data, w_data= create_pipe()
+            timeout = time.time() + 30  # seconds
+
+            def add_job():
+                os.read(r_ready, 1)
+                _interpreters.run_string(interpid, f"""if True:
+                    # Add the pending call and wait for it to finish.
+                    actual = _testinternalcapi.pending_identify({main_interpid})
+                    # Signal the subinterpreter to stop.
+                    os.write({w_done}, b'\\0')
+                    os.write({w_data}, actual.to_bytes(1, 'little'))
+                    """)
+            # Wait until this interp has handled the pending call.
+            waiting = False
+            done = False
+            def wait(os_read=os.read):
+                nonlocal done, waiting
+                waiting = True
+                os_read(r_done, 1)
+                done = True
+            def subthread():
+                while not waiting:
+                    pass
+                os.write(w_ready, b'\0')
+                # Loop to trigger the eval breaker.
+                while not done:
+                    time.sleep(0.01)
+                    if time.time() > timeout:
+                        raise Exception('timed out!')
+            t1 = threading.Thread(target=add_job)
+            t2 = threading.Thread(target=wait)
+            t3 = threading.Thread(target=subthread)
+            with threading_helper.start_threads([t1, t2, t3]):
+                pass
+            text = os.read(r_data, 1)
+            actual = int.from_bytes(text, 'little')
+
+            self.assertEqual(actual, int(main_interpid))
+
+        # XXX We can't use the rest until gh-105716 is fixed.
+        return
+
+        with self.subTest('add in subinterpreter, run in subinterpreter sub-thread'):
+            r_ready, w_ready = create_pipe()
+            r_done, w_done= create_pipe()
+            r_data, w_data= create_pipe()
+            timeout = time.time() + 30  # seconds
+
+            def do_work():
+                _interpreters.run_string(interpid, f"""if True:
+                    waiting = False
+                    done = False
+                    def subthread():
+                        while not waiting:
+                            pass
+                        os.write({w_ready}, b'\\0')
+                        # Loop to trigger the eval breaker.
+                        while not done:
+                            time.sleep(0.01)
+                            if time.time() > {timeout}:
+                                raise Exception('timed out!')
+                    t = threading.Thread(target=subthread)
+                    with threading_helper.start_threads([t]):
+                        # Wait until this interp has handled the pending call.
+                        waiting = True
+                        os.read({r_done}, 1)
+                        done = True
+                    """)
+            t = threading.Thread(target=do_work)
+            #with threading_helper.start_threads([t]):
+            t.start()
+            if True:
+                os.read(r_ready, 1)
+                _interpreters.run_string(interpid, f"""if True:
+                    # Add the pending call and wait for it to finish.
+                    actual = _testinternalcapi.pending_identify({interpid})
+                    # Signal the subinterpreter to stop.
+                    os.write({w_done}, b'\\0')
+                    os.write({w_data}, actual.to_bytes(1, 'little'))
+                    """)
+            t.join()
+            text = os.read(r_data, 1)
+            actual = int.from_bytes(text, 'little')
+
+            self.assertEqual(actual, int(interpid))
+
 
 class SubinterpreterTest(unittest.TestCase):
 
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-06-02-15-15-41.gh-issue-104812.dfZiG5.rst b/Misc/NEWS.d/next/Core and Builtins/2023-06-02-15-15-41.gh-issue-104812.dfZiG5.rst
new file mode 100644
index 0000000000000..da29a8cae6183
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2023-06-02-15-15-41.gh-issue-104812.dfZiG5.rst	
@@ -0,0 +1,9 @@
+The "pending call" machinery now works for all interpreters, not just the
+main interpreter, and runs in all threads, not just the main thread. Some
+calls are still only done in the main thread, ergo in the main interpreter.
+This change does not affect signal handling nor the existing public C-API
+(``Py_AddPendingCall()``), which both still only target the main thread.
+The new functionality is meant strictly for internal use for now, since
+consequences of its use are not well understood yet outside some very
+restricted cases.  This change brings the capability in line with the
+intention when the state was made per-interpreter several years ago.
diff --git a/Modules/_queuemodule.c b/Modules/_queuemodule.c
index d36a911a57c02..db5be842b8a35 100644
--- a/Modules/_queuemodule.c
+++ b/Modules/_queuemodule.c
@@ -210,6 +210,7 @@ _queue_SimpleQueue_get_impl(simplequeueobject *self, PyTypeObject *cls,
     PyObject *item;
     PyLockStatus r;
     PY_TIMEOUT_T microseconds;
+    PyThreadState *tstate = PyThreadState_Get();
 
     if (block == 0) {
         /* Non-blocking */
@@ -253,7 +254,7 @@ _queue_SimpleQueue_get_impl(simplequeueobject *self, PyTypeObject *cls,
             Py_END_ALLOW_THREADS
         }
 
-        if (r == PY_LOCK_INTR && Py_MakePendingCalls() < 0) {
+        if (r == PY_LOCK_INTR && _PyEval_MakePendingCalls(tstate) < 0) {
             return NULL;
         }
         if (r == PY_LOCK_FAILURE) {
diff --git a/Modules/_testinternalcapi.c b/Modules/_testinternalcapi.c
index 8267dbf677901..7e2def7c20b1b 100644
--- a/Modules/_testinternalcapi.c
+++ b/Modules/_testinternalcapi.c
@@ -16,13 +16,15 @@
 #include "pycore_atomic_funcs.h" // _Py_atomic_int_get()
 #include "pycore_bitutils.h"     // _Py_bswap32()
 #include "pycore_compile.h"      // _PyCompile_CodeGen, _PyCompile_OptimizeCfg, _PyCompile_Assemble
+#include "pycore_ceval.h"        // _PyEval_AddPendingCall
 #include "pycore_fileutils.h"    // _Py_normpath
 #include "pycore_frame.h"        // _PyInterpreterFrame
 #include "pycore_gc.h"           // PyGC_Head
 #include "pycore_hashtable.h"    // _Py_hashtable_new()
 #include "pycore_initconfig.h"   // _Py_GetConfigsAsDict()
-#include "pycore_pathconfig.h"   // _PyPathConfig_ClearGlobal()
 #include "pycore_interp.h"       // _PyInterpreterState_GetConfigCopy()
+#include "pycore_interpreteridobject.h"  // _PyInterpreterID_LookUp()
+#include "pycore_pathconfig.h"   // _PyPathConfig_ClearGlobal()
 #include "pycore_pyerrors.h"     // _Py_UTF8_Edit_Cost()
 #include "pycore_pystate.h"      // _PyThreadState_GET()
 #include "osdefs.h"              // MAXPATHLEN
@@ -822,6 +824,120 @@ iframe_getlasti(PyObject *self, PyObject *frame)
     return PyLong_FromLong(PyUnstable_InterpreterFrame_GetLasti(f));
 }
 
+
+static int _pending_callback(void *arg)
+{
+    /* we assume the argument is callable object to which we own a reference */
+    PyObject *callable = (PyObject *)arg;
+    PyObject *r = PyObject_CallNoArgs(callable);
+    Py_DECREF(callable);
+    Py_XDECREF(r);
+    return r != NULL ? 0 : -1;
+}
+
+/* The following requests n callbacks to _pending_callback.  It can be
+ * run from any python thread.
+ */
+static PyObject *
+pending_threadfunc(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+    PyObject *callable;
+    int ensure_added = 0;
+    static char *kwlist[] = {"", "ensure_added", NULL};
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+                                     "O|$p:pending_threadfunc", kwlist,
+                                     &callable, &ensure_added))
+    {
+        return NULL;
+    }
+    PyInterpreterState *interp = PyInterpreterState_Get();
+
+    /* create the reference for the callbackwhile we hold the lock */
+    Py_INCREF(callable);
+
+    int r;
+    Py_BEGIN_ALLOW_THREADS
+    r = _PyEval_AddPendingCall(interp, &_pending_callback, callable, 0);
+    Py_END_ALLOW_THREADS
+    if (r < 0) {
+        /* unsuccessful add */
+        if (!ensure_added) {
+            Py_DECREF(callable);
+            Py_RETURN_FALSE;
+        }
+        do {
+            Py_BEGIN_ALLOW_THREADS
+            r = _PyEval_AddPendingCall(interp, &_pending_callback, callable, 0);
+            Py_END_ALLOW_THREADS
+        } while (r < 0);
+    }
+
+    Py_RETURN_TRUE;
+}
+
+
+static struct {
+    int64_t interpid;
+} pending_identify_result;
+
+static int
+_pending_identify_callback(void *arg)
+{
+    PyThread_type_lock mutex = (PyThread_type_lock)arg;
+    assert(pending_identify_result.interpid == -1);
+    PyThreadState *tstate = PyThreadState_Get();
+    pending_identify_result.interpid = PyInterpreterState_GetID(tstate->interp);
+    PyThread_release_lock(mutex);
+    return 0;
+}
+
+static PyObject *
+pending_identify(PyObject *self, PyObject *args)
+{
+    PyObject *interpid;
+    if (!PyArg_ParseTuple(args, "O:pending_identify", &interpid)) {
+        return NULL;
+    }
+    PyInterpreterState *interp = _PyInterpreterID_LookUp(interpid);
+    if (interp == NULL) {
+        if (!PyErr_Occurred()) {
+            PyErr_SetString(PyExc_ValueError, "interpreter not found");
+        }
+        return NULL;
+    }
+
+    pending_identify_result.interpid = -1;
+
+    PyThread_type_lock mutex = PyThread_allocate_lock();
+    if (mutex == NULL) {
+        return NULL;
+    }
+    PyThread_acquire_lock(mutex, WAIT_LOCK);
+    /* It gets released in _pending_identify_callback(). */
+
+    int r;
+    do {
+        Py_BEGIN_ALLOW_THREADS
+        r = _PyEval_AddPendingCall(interp,
+                                   &_pending_identify_callback, (void *)mutex,
+                                   0);
+        Py_END_ALLOW_THREADS
+    } while (r < 0);
+
+    /* Wait for the pending call to complete. */
+    PyThread_acquire_lock(mutex, WAIT_LOCK);
+    PyThread_release_lock(mutex);
+    PyThread_free_lock(mutex);
+
+    PyObject *res = PyLong_FromLongLong(pending_identify_result.interpid);
+    pending_identify_result.interpid = -1;
+    if (res == NULL) {
+        return NULL;
+    }
+    return res;
+}
+
+
 static PyMethodDef module_functions[] = {
     {"get_configs", get_configs, METH_NOARGS},
     {"get_recursion_depth", get_recursion_depth, METH_NOARGS},
@@ -850,6 +966,9 @@ static PyMethodDef module_functions[] = {
     {"iframe_getcode", iframe_getcode, METH_O, NULL},
     {"iframe_getline", iframe_getline, METH_O, NULL},
     {"iframe_getlasti", iframe_getlasti, METH_O, NULL},
+    {"pending_threadfunc", _PyCFunction_CAST(pending_threadfunc),
+     METH_VARARGS | METH_KEYWORDS},
+    {"pending_identify", pending_identify, METH_VARARGS, NULL},
     {NULL, NULL} /* sentinel */
 };
 
diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c
index b6f878e07526d..c553d039462af 100644
--- a/Modules/_threadmodule.c
+++ b/Modules/_threadmodule.c
@@ -81,6 +81,7 @@ lock_dealloc(lockobject *self)
 static PyLockStatus
 acquire_timed(PyThread_type_lock lock, _PyTime_t timeout)
 {
+    PyThreadState *tstate = _PyThreadState_GET();
     _PyTime_t endtime = 0;
     if (timeout > 0) {
         endtime = _PyDeadline_Init(timeout);
@@ -103,7 +104,7 @@ acquire_timed(PyThread_type_lock lock, _PyTime_t timeout)
             /* Run signal handlers if we were interrupted.  Propagate
              * exceptions from signal handlers, such as KeyboardInterrupt, by
              * passing up PY_LOCK_INTR.  */
-            if (Py_MakePendingCalls() < 0) {
+            if (_PyEval_MakePendingCalls(tstate) < 0) {
                 return PY_LOCK_INTR;
             }
 
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 2350236ad46b2..00ea4343735da 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -314,7 +314,8 @@ trip_signal(int sig_num)
                        still use it for this exceptional case. */
                     _PyEval_AddPendingCall(interp,
                                            report_wakeup_send_error,
-                                           (void *)(intptr_t) last_error);
+                                           (void *)(intptr_t) last_error,
+                                           1);
                 }
             }
         }
@@ -333,7 +334,8 @@ trip_signal(int sig_num)
                        still use it for this exceptional case. */
                     _PyEval_AddPendingCall(interp,
                                            report_wakeup_write_error,
-                                           (void *)(intptr_t)errno);
+                                           (void *)(intptr_t)errno,
+                                           1);
                 }
             }
         }
diff --git a/Python/ceval.c b/Python/ceval.c
index df997e1ed283d..4762dfac4812a 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -758,6 +758,61 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
      * We need to do reasonably frequently, but not too frequently.
      * All loops should include a check of the eval breaker.
      * We also check on return from any builtin function.
+     *
+     * ## More Details ###
+     *
+     * The eval loop (this function) normally executes the instructions
+     * of a code object sequentially.  However, the runtime supports a
+     * number of out-of-band execution scenarios that may pause that
+     * sequential execution long enough to do that out-of-band work
+     * in the current thread using the current PyThreadState.
+     *
+     * The scenarios include:
+     *
+     *  - cyclic garbage collection
+     *  - GIL drop requests
+     *  - "async" exceptions
+     *  - "pending calls"  (some only in the main thread)
+     *  - signal handling (only in the main thread)
+     *
+     * When the need for one of the above is detected, the eval loop
+     * pauses long enough to handle the detected case.  Then, if doing
+     * so didn't trigger an exception, the eval loop resumes executing
+     * the sequential instructions.
+     *
+     * To make this work, the eval loop periodically checks if any
+     * of the above needs to happen.  The individual checks can be
+     * expensive if computed each time, so a while back we switched
+     * to using pre-computed, per-interpreter variables for the checks,
+     * and later consolidated that to a single "eval breaker" variable
+     * (now a PyInterpreterState field).
+     *
+     * For the longest time, the eval breaker check would happen
+     * frequently, every 5 or so times through the loop, regardless
+     * of what instruction ran last or what would run next.  Then, in
+     * early 2021 (gh-18334, commit 4958f5d), we switched to checking
+     * the eval breaker less frequently, by hard-coding the check to
+     * specific places in the eval loop (e.g. certain instructions).
+     * The intent then was to check after returning from calls
+     * and on the back edges of loops.
+     *
+     * In addition to being more efficient, that approach keeps
+     * the eval loop from running arbitrary code between instructions
+     * that don't handle that well.  (See gh-74174.)
+     *
+     * Currently, the eval breaker check happens here at the
+     * "handle_eval_breaker" label.  Some instructions come here
+     * explicitly (goto) and some indirectly.  Notably, the check
+     * happens on back edges in the control flow graph, which
+     * pretty much applies to all loops and most calls.
+     * (See bytecodes.c for exact information.)
+     *
+     * One consequence of this approach is that it might not be obvious
+     * how to force any specific thread to pick up the eval breaker,
+     * or for any specific thread to not pick it up.  Mostly this
+     * involves judicious uses of locks and careful ordering of code,
+     * while avoiding code that might trigger the eval breaker
+     * until so desired.
      */
     if (_Py_HandlePending(tstate) != 0) {
         goto error;
diff --git a/Python/ceval_gil.c b/Python/ceval_gil.c
index 764278ac130df..aacf2b5c2e2c4 100644
--- a/Python/ceval_gil.c
+++ b/Python/ceval_gil.c
@@ -68,8 +68,9 @@ COMPUTE_EVAL_BREAKER(PyInterpreterState *interp,
         _Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request)
         | (_Py_atomic_load_relaxed_int32(&ceval->signals_pending)
            && _Py_ThreadCanHandleSignals(interp))
-        | (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do)
-           && _Py_ThreadCanHandlePendingCalls())
+        | (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do))
+        | (_Py_IsMainThread() && _Py_IsMainInterpreter(interp)
+           &&_Py_atomic_load_relaxed_int32(&ceval->pending_mainthread.calls_to_do))
         | ceval2->pending.async_exc
         | _Py_atomic_load_relaxed_int32(&ceval2->gc_scheduled));
 }
@@ -95,11 +96,11 @@ RESET_GIL_DROP_REQUEST(PyInterpreterState *interp)
 
 
 static inline void
-SIGNAL_PENDING_CALLS(PyInterpreterState *interp)
+SIGNAL_PENDING_CALLS(struct _pending_calls *pending, PyInterpreterState *interp)
 {
     struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
     struct _ceval_state *ceval2 = &interp->ceval;
-    _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 1);
+    _Py_atomic_store_relaxed(&pending->calls_to_do, 1);
     COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
 }
 
@@ -109,6 +110,9 @@ UNSIGNAL_PENDING_CALLS(PyInterpreterState *interp)
 {
     struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
     struct _ceval_state *ceval2 = &interp->ceval;
+    if (_Py_IsMainThread() && _Py_IsMainInterpreter(interp)) {
+        _Py_atomic_store_relaxed(&ceval->pending_mainthread.calls_to_do, 0);
+    }
     _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 0);
     COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
 }
@@ -798,19 +802,31 @@ _push_pending_call(struct _pending_calls *pending,
     return 0;
 }
 
-/* Pop one item off the queue while holding the lock. */
-static void
-_pop_pending_call(struct _pending_calls *pending,
-                  int (**func)(void *), void **arg)
+static int
+_next_pending_call(struct _pending_calls *pending,
+                   int (**func)(void *), void **arg)
 {
     int i = pending->first;
     if (i == pending->last) {
-        return; /* Queue empty */
+        /* Queue empty */
+        assert(pending->calls[i].func == NULL);
+        return -1;
     }
-
     *func = pending->calls[i].func;
     *arg = pending->calls[i].arg;
-    pending->first = (i + 1) % NPENDINGCALLS;
+    return i;
+}
+
+/* Pop one item off the queue while holding the lock. */
+static void
+_pop_pending_call(struct _pending_calls *pending,
+                  int (**func)(void *), void **arg)
+{
+    int i = _next_pending_call(pending, func, arg);
+    if (i >= 0) {
+        pending->calls[i] = (struct _pending_call){0};
+        pending->first = (i + 1) % NPENDINGCALLS;
+    }
 }
 
 /* This implementation is thread-safe.  It allows
@@ -820,9 +836,16 @@ _pop_pending_call(struct _pending_calls *pending,
 
 int
 _PyEval_AddPendingCall(PyInterpreterState *interp,
-                       int (*func)(void *), void *arg)
+                       int (*func)(void *), void *arg,
+                       int mainthreadonly)
 {
+    assert(!mainthreadonly || _Py_IsMainInterpreter(interp));
     struct _pending_calls *pending = &interp->ceval.pending;
+    if (mainthreadonly) {
+        /* The main thread only exists in the main interpreter. */
+        assert(_Py_IsMainInterpreter(interp));
+        pending = &_PyRuntime.ceval.pending_mainthread;
+    }
     /* Ensure that _PyEval_InitState() was called
        and that _PyEval_FiniState() is not called yet. */
     assert(pending->lock != NULL);
@@ -832,39 +855,17 @@ _PyEval_AddPendingCall(PyInterpreterState *interp,
     PyThread_release_lock(pending->lock);
 
     /* signal main loop */
-    SIGNAL_PENDING_CALLS(interp);
+    SIGNAL_PENDING_CALLS(pending, interp);
     return result;
 }
 
 int
 Py_AddPendingCall(int (*func)(void *), void *arg)
 {
-    /* Best-effort to support subinterpreters and calls with the GIL released.
-
-       First attempt _PyThreadState_GET() since it supports subinterpreters.
-
-       If the GIL is released, _PyThreadState_GET() returns NULL . In this
-       case, use PyGILState_GetThisThreadState() which works even if the GIL
-       is released.
-
-       Sadly, PyGILState_GetThisThreadState() doesn't support subinterpreters:
-       see bpo-10915 and bpo-15751.
-
-       Py_AddPendingCall() doesn't require the caller to hold the GIL. */
-    PyThreadState *tstate = _PyThreadState_GET();
-    if (tstate == NULL) {
-        tstate = PyGILState_GetThisThreadState();
-    }
-
-    PyInterpreterState *interp;
-    if (tstate != NULL) {
-        interp = tstate->interp;
-    }
-    else {
-        /* Last resort: use the main interpreter */
-        interp = _PyInterpreterState_Main();
-    }
-    return _PyEval_AddPendingCall(interp, func, arg);
+    /* Legacy users of this API will continue to target the main thread
+       (of the main interpreter). */
+    PyInterpreterState *interp = _PyInterpreterState_Main();
+    return _PyEval_AddPendingCall(interp, func, arg, 1);
 }
 
 static int
@@ -884,27 +885,24 @@ handle_signals(PyThreadState *tstate)
     return 0;
 }
 
-static int
-make_pending_calls(PyInterpreterState *interp)
+static inline int
+maybe_has_pending_calls(PyInterpreterState *interp)
 {
-    /* only execute pending calls on main thread */
-    if (!_Py_ThreadCanHandlePendingCalls()) {
-        return 0;
+    struct _pending_calls *pending = &interp->ceval.pending;
+    if (_Py_atomic_load_relaxed_int32(&pending->calls_to_do)) {
+        return 1;
     }
-
-    /* don't perform recursive pending calls */
-    if (interp->ceval.pending.busy) {
+    if (!_Py_IsMainThread() || !_Py_IsMainInterpreter(interp)) {
         return 0;
     }
-    interp->ceval.pending.busy = 1;
-
-    /* unsignal before starting to call callbacks, so that any callback
-       added in-between re-signals */
-    UNSIGNAL_PENDING_CALLS(interp);
-    int res = 0;
+    pending = &_PyRuntime.ceval.pending_mainthread;
+    return _Py_atomic_load_relaxed_int32(&pending->calls_to_do);
+}
 
+static int
+_make_pending_calls(struct _pending_calls *pending)
+{
     /* perform a bounded number of calls, in case of recursion */
-    struct _pending_calls *pending = &interp->ceval.pending;
     for (int i=0; i<NPENDINGCALLS; i++) {
         int (*func)(void *) = NULL;
         void *arg = NULL;
@@ -918,19 +916,61 @@ make_pending_calls(PyInterpreterState *interp)
         if (func == NULL) {
             break;
         }
-        res = func(arg);
-        if (res) {
-            goto error;
+        if (func(arg) != 0) {
+            return -1;
         }
     }
+    return 0;
+}
+
+static int
+make_pending_calls(PyInterpreterState *interp)
+{
+    struct _pending_calls *pending = &interp->ceval.pending;
+    struct _pending_calls *pending_main = &_PyRuntime.ceval.pending_mainthread;
+
+    /* Only one thread (per interpreter) may run the pending calls
+       at once.  In the same way, we don't do recursive pending calls. */
+    PyThread_acquire_lock(pending->lock, WAIT_LOCK);
+    if (pending->busy) {
+        /* A pending call was added after another thread was already
+           handling the pending calls (and had already "unsignaled").
+           Once that thread is done, it may have taken care of all the
+           pending calls, or there might be some still waiting.
+           Regardless, this interpreter's pending calls will stay
+           "signaled" until that first thread has finished.  At that
+           point the next thread to trip the eval breaker will take
+           care of any remaining pending calls.  Until then, though,
+           all the interpreter's threads will be tripping the eval
+           breaker every time it's checked. */
+        PyThread_release_lock(pending->lock);
+        return 0;
+    }
+    pending->busy = 1;
+    PyThread_release_lock(pending->lock);
+
+    /* unsignal before starting to call callbacks, so that any callback
+       added in-between re-signals */
+    UNSIGNAL_PENDING_CALLS(interp);
+
+    if (_make_pending_calls(pending) != 0) {
+        pending->busy = 0;
+        /* There might not be more calls to make, but we play it safe. */
+        SIGNAL_PENDING_CALLS(pending, interp);
+        return -1;
+    }
 
-    interp->ceval.pending.busy = 0;
-    return res;
+    if (_Py_IsMainThread() && _Py_IsMainInterpreter(interp)) {
+        if (_make_pending_calls(pending_main) != 0) {
+            pending->busy = 0;
+            /* There might not be more calls to make, but we play it safe. */
+            SIGNAL_PENDING_CALLS(pending_main, interp);
+            return -1;
+        }
+    }
 
-error:
-    interp->ceval.pending.busy = 0;
-    SIGNAL_PENDING_CALLS(interp);
-    return res;
+    pending->busy = 0;
+    return 0;
 }
 
 void
@@ -939,12 +979,6 @@ _Py_FinishPendingCalls(PyThreadState *tstate)
     assert(PyGILState_Check());
     assert(is_tstate_valid(tstate));
 
-    struct _pending_calls *pending = &tstate->interp->ceval.pending;
-
-    if (!_Py_atomic_load_relaxed_int32(&(pending->calls_to_do))) {
-        return;
-    }
-
     if (make_pending_calls(tstate->interp) < 0) {
         PyObject *exc = _PyErr_GetRaisedException(tstate);
         PyErr_BadInternalCall();
@@ -953,6 +987,29 @@ _Py_FinishPendingCalls(PyThreadState *tstate)
     }
 }
 
+int
+_PyEval_MakePendingCalls(PyThreadState *tstate)
+{
+    int res;
+
+    if (_Py_IsMainThread() && _Py_IsMainInterpreter(tstate->interp)) {
+        /* Python signal handler doesn't really queue a callback:
+           it only signals that a signal was received,
+           see _PyEval_SignalReceived(). */
+        res = handle_signals(tstate);
+        if (res != 0) {
+            return res;
+        }
+    }
+
+    res = make_pending_calls(tstate->interp);
+    if (res != 0) {
+        return res;
+    }
+
+    return 0;
+}
+
 /* Py_MakePendingCalls() is a simple wrapper for the sake
    of backward-compatibility. */
 int
@@ -963,19 +1020,11 @@ Py_MakePendingCalls(void)
     PyThreadState *tstate = _PyThreadState_GET();
     assert(is_tstate_valid(tstate));
 
-    /* Python signal handler doesn't really queue a callback: it only signals
-       that a signal was received, see _PyEval_SignalReceived(). */
-    int res = handle_signals(tstate);
-    if (res != 0) {
-        return res;
-    }
-
-    res = make_pending_calls(tstate->interp);
-    if (res != 0) {
-        return res;
+    /* Only execute pending calls on the main thread. */
+    if (!_Py_IsMainThread() || !_Py_IsMainInterpreter(tstate->interp)) {
+        return 0;
     }
-
-    return 0;
+    return _PyEval_MakePendingCalls(tstate);
 }
 
 void
@@ -1015,7 +1064,7 @@ _Py_HandlePending(PyThreadState *tstate)
     }
 
     /* Pending calls */
-    if (_Py_atomic_load_relaxed_int32(&interp_ceval_state->pending.calls_to_do)) {
+    if (maybe_has_pending_calls(tstate->interp)) {
         if (make_pending_calls(tstate->interp) != 0) {
             return -1;
         }
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index c4e6b69d8d56f..a67fa26b37227 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -2152,6 +2152,9 @@ Py_EndInterpreter(PyThreadState *tstate)
     // Wrap up existing "threading"-module-created, non-daemon threads.
     wait_for_thread_shutdown(tstate);
 
+    // Make any remaining pending calls.
+    _Py_FinishPendingCalls(tstate);
+
     _PyAtExit_Call(tstate->interp);
 
     if (tstate != interp->threads.head || tstate->next != NULL) {
diff --git a/Python/pystate.c b/Python/pystate.c
index d63a873a5c302..da0e1c42d7275 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -380,7 +380,7 @@ _Py_COMP_DIAG_IGNORE_DEPR_DECLS
 static const _PyRuntimeState initial = _PyRuntimeState_INIT(_PyRuntime);
 _Py_COMP_DIAG_POP
 
-#define NUMLOCKS 8
+#define NUMLOCKS 9
 #define LOCKS_INIT(runtime) \
     { \
         &(runtime)->interpreters.mutex, \
@@ -388,6 +388,7 @@ _Py_COMP_DIAG_POP
         &(runtime)->getargs.mutex, \
         &(runtime)->unicode_state.ids.lock, \
         &(runtime)->imports.extensions.mutex, \
+        &(runtime)->ceval.pending_mainthread.lock, \
         &(runtime)->atexit.mutex, \
         &(runtime)->audit_hooks.mutex, \
         &(runtime)->allocators.mutex, \
diff --git a/Tools/c-analyzer/cpython/ignored.tsv b/Tools/c-analyzer/cpython/ignored.tsv
index 4c40a04a6854b..b6745b6aeb0b6 100644
--- a/Tools/c-analyzer/cpython/ignored.tsv
+++ b/Tools/c-analyzer/cpython/ignored.tsv
@@ -517,6 +517,7 @@ Modules/_testcapimodule.c	-	g_type_watchers_installed	-
 Modules/_testimportmultiple.c	-	_barmodule	-
 Modules/_testimportmultiple.c	-	_foomodule	-
 Modules/_testimportmultiple.c	-	_testimportmultiple	-
+Modules/_testinternalcapi.c	-	pending_identify_result	-
 Modules/_testmultiphase.c	-	Example_Type_slots	-
 Modules/_testmultiphase.c	-	Example_Type_spec	-
 Modules/_testmultiphase.c	-	Example_methods	-



More information about the Python-checkins mailing list