diff options
| author | Benjamin Peterson <benjamin@python.org> | 2013-04-30 09:41:40 -0400 | 
|---|---|---|
| committer | Benjamin Peterson <benjamin@python.org> | 2013-04-30 09:41:40 -0400 | 
| commit | 3b0431dc6019d2f9ffa9adcaa78ddd3f7b76a2f5 (patch) | |
| tree | 7f98ecba2e560776b91856eb74487c26c73d5d0d | |
| parent | f256f5f3ebf6574a2708cfea36d857846893e71f (diff) | |
| download | cpython-git-3b0431dc6019d2f9ffa9adcaa78ddd3f7b76a2f5.tar.gz | |
check local class namespace before reaching for cells (closes #17853)
| -rw-r--r-- | Doc/library/dis.rst | 7 | ||||
| -rw-r--r-- | Include/opcode.h | 1 | ||||
| -rw-r--r-- | Lib/importlib/_bootstrap.py | 4 | ||||
| -rw-r--r-- | Lib/opcode.py | 3 | ||||
| -rw-r--r-- | Lib/test/test_scope.py | 13 | ||||
| -rw-r--r-- | Misc/NEWS | 3 | ||||
| -rw-r--r-- | Python/ceval.c | 33 | ||||
| -rw-r--r-- | Python/compile.c | 5 | ||||
| -rw-r--r-- | Python/importlib.h | 238 | ||||
| -rw-r--r-- | Python/opcode_targets.h | 2 | 
10 files changed, 187 insertions, 122 deletions
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index 4339f559b4..613ff42143 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -722,6 +722,13 @@ the more significant byte last.     Pushes a reference to the object the cell contains on the stack. +.. opcode:: LOAD_CLASSDEREF (i) + +   Much like :opcode:`LOAD_DEREF` but first checks the locals dictionary before +   consulting the cell.  This is used for loading free variables in class +   bodies. + +  .. opcode:: STORE_DEREF (i)     Stores TOS into the cell contained in slot *i* of the cell and free variable diff --git a/Include/opcode.h b/Include/opcode.h index a90184d0d7..c777ac7ccc 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -140,6 +140,7 @@ extern "C" {  #define SET_ADD         146  #define MAP_ADD         147 +#define LOAD_CLASSDEREF   148  /* EXCEPT_HANDLER is a special, implicit block type which is created when     entering an except handler. It is not an opcode but we define it here diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 77c14bc725..1a046c5957 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -388,12 +388,14 @@ def _call_with_frames_removed(f, *args, **kwds):  #     Python 3.3a4  3230 (revert changes to implicit __class__ closure)  #     Python 3.4a1  3250 (evaluate positional default arguments before  #                        keyword-only defaults) +#     Python 3.4a1  3260 (add LOAD_CLASSDEREF; allow locals of class to override +#                        free vars)  #  # MAGIC must change whenever the bytecode emitted by the compiler may no  # longer be understood by older implementations of the eval loop (usually  # due to the addition of new opcodes). -_MAGIC_BYTES = (3250).to_bytes(2, 'little') + b'\r\n' +_MAGIC_BYTES = (3260).to_bytes(2, 'little') + b'\r\n'  _RAW_MAGIC_NUMBER = int.from_bytes(_MAGIC_BYTES, 'little')  _PYCACHE = '__pycache__' diff --git a/Lib/opcode.py b/Lib/opcode.py index a639fe322b..4657b86ef9 100644 --- a/Lib/opcode.py +++ b/Lib/opcode.py @@ -179,6 +179,9 @@ def_op('LIST_APPEND', 145)  def_op('SET_ADD', 146)  def_op('MAP_ADD', 147) +def_op('LOAD_CLASSDEREF', 148) +hasfree.append(148) +  def_op('EXTENDED_ARG', 144)  EXTENDED_ARG = 144 diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py index 129a18aade..f4ed2442c6 100644 --- a/Lib/test/test_scope.py +++ b/Lib/test/test_scope.py @@ -714,6 +714,19 @@ class ScopeTests(unittest.TestCase):              global a +    def testClassNamespaceOverridesClosure(self): +        # See #17853. +        x = 42 +        class X: +            locals()["x"] = 43 +            y = x +        self.assertEqual(X.y, 43) +        class X: +            locals()["x"] = 43 +            del x +        self.assertFalse(hasattr(X, "x")) +        self.assertEqual(x, 42) +  def test_main():      run_unittest(ScopeTests) @@ -10,6 +10,9 @@ What's New in Python 3.4.0 Alpha 1?  Core and Builtins  ----------------- +- Issue #17853: Ensure locals of a class that shadow free variables always win +  over the closures. +  - Issue #17863: In the interactive console, don't loop forever if the encoding    can't be fetched from stdin. diff --git a/Python/ceval.c b/Python/ceval.c index 138c75d0f8..cbc0fabd03 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2260,6 +2260,39 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)              DISPATCH();          } +        TARGET(LOAD_CLASSDEREF) { +            PyObject *name, *value, *locals = f->f_locals; +            int idx; +            assert(locals); +            assert(oparg >= PyTuple_GET_SIZE(co->co_cellvars)); +            idx = oparg - PyTuple_GET_SIZE(co->co_cellvars); +            assert(idx >= 0 && idx < PyTuple_GET_SIZE(co->co_freevars)); +            name = PyTuple_GET_ITEM(co->co_freevars, idx); +            if (PyDict_CheckExact(locals)) { +                value = PyDict_GetItem(locals, name); +                Py_XINCREF(value); +            } +            else { +                value = PyObject_GetItem(locals, name); +                if (value == NULL && PyErr_Occurred()) { +                    if (!PyErr_ExceptionMatches(PyExc_KeyError)) +                        goto error; +                    PyErr_Clear(); +                } +            } +            if (!value) { +                PyObject *cell = freevars[oparg]; +                value = PyCell_GET(cell); +                if (value == NULL) { +                    format_exc_unbound(co, oparg); +                    goto error; +                } +                Py_INCREF(value); +            } +            PUSH(value); +            DISPATCH(); +        } +          TARGET(LOAD_DEREF) {              PyObject *cell = freevars[oparg];              PyObject *value = PyCell_GET(cell); diff --git a/Python/compile.c b/Python/compile.c index 52e8188d41..1ecbae8181 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -970,6 +970,7 @@ opcode_stack_effect(int opcode, int oparg)          case LOAD_CLOSURE:              return 1;          case LOAD_DEREF: +        case LOAD_CLASSDEREF:              return 1;          case STORE_DEREF:              return -1; @@ -2677,7 +2678,9 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx)      switch (optype) {      case OP_DEREF:          switch (ctx) { -        case Load: op = LOAD_DEREF; break; +        case Load: +            op = (c->u->u_ste->ste_type == ClassBlock) ? LOAD_CLASSDEREF : LOAD_DEREF; +            break;          case Store: op = STORE_DEREF; break;          case AugLoad:          case AugStore: diff --git a/Python/importlib.h b/Python/importlib.h index 9e07a2f182..ed5bcf52c3 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -637,7 +637,7 @@ const unsigned char _Py_M__importlib[] = {      4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,25,      0,0,0,95,99,97,108,108,95,119,105,116,104,95,102,114,      97,109,101,115,95,114,101,109,111,118,101,100,33,1,0,0, -    115,2,0,0,0,0,8,114,102,0,0,0,105,178,12,0, +    115,2,0,0,0,0,8,114,102,0,0,0,105,188,12,0,      0,233,2,0,0,0,114,13,0,0,0,115,2,0,0,0,      13,10,116,11,0,0,0,95,95,112,121,99,97,99,104,101,      95,95,117,3,0,0,0,46,112,121,117,4,0,0,0,46, @@ -711,7 +711,7 @@ const unsigned char _Py_M__importlib[] = {      36,0,0,0,116,3,0,0,0,116,97,103,244,8,0,0,      0,102,105,108,101,110,97,109,101,114,4,0,0,0,114,4,      0,0,0,114,5,0,0,0,244,17,0,0,0,99,97,99, -    104,101,95,102,114,111,109,95,115,111,117,114,99,101,150,1, +    104,101,95,102,114,111,109,95,115,111,117,114,99,101,152,1,      0,0,115,22,0,0,0,0,13,31,1,6,1,9,2,6,      1,18,1,24,1,12,1,12,1,15,1,31,1,114,120,0,      0,0,99,1,0,0,0,0,0,0,0,5,0,0,0,5, @@ -771,7 +771,7 @@ const unsigned char _Py_M__importlib[] = {      109,101,116,7,0,0,0,112,121,99,97,99,104,101,114,117,      0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,      0,0,244,17,0,0,0,115,111,117,114,99,101,95,102,114, -    111,109,95,99,97,99,104,101,177,1,0,0,115,24,0,0, +    111,109,95,99,97,99,104,101,179,1,0,0,115,24,0,0,      0,0,9,18,1,15,1,18,1,18,1,12,1,3,1,24,      1,21,1,3,1,21,1,19,1,114,123,0,0,0,99,1,      0,0,0,0,0,0,0,5,0,0,0,13,0,0,0,67, @@ -812,7 +812,7 @@ const unsigned char _Py_M__importlib[] = {      101,120,116,101,110,115,105,111,110,244,11,0,0,0,115,111,      117,114,99,101,95,112,97,116,104,114,4,0,0,0,114,4,      0,0,0,114,5,0,0,0,244,15,0,0,0,95,103,101, -    116,95,115,111,117,114,99,101,102,105,108,101,200,1,0,0, +    116,95,115,111,117,114,99,101,102,105,108,101,202,1,0,0,      115,20,0,0,0,0,7,18,1,4,1,24,1,35,1,4,      2,3,1,16,1,19,1,21,2,114,131,0,0,0,99,1,      0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,67, @@ -829,7 +829,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,40,0,0,0,40,2,0,0,0,114,35,0,0,      0,114,42,0,0,0,114,4,0,0,0,114,4,0,0,0,      114,5,0,0,0,244,10,0,0,0,95,99,97,108,99,95, -    109,111,100,101,221,1,0,0,115,12,0,0,0,0,2,3, +    109,111,100,101,223,1,0,0,115,12,0,0,0,0,2,3,      1,22,1,13,1,11,3,10,1,114,133,0,0,0,244,9,      0,0,0,118,101,114,98,111,115,105,116,121,114,29,0,0,      0,99,1,0,0,0,1,0,0,0,3,0,0,0,4,0, @@ -853,7 +853,7 @@ const unsigned char _Py_M__importlib[] = {      244,7,0,0,0,109,101,115,115,97,103,101,114,134,0,0,      0,114,101,0,0,0,114,4,0,0,0,114,4,0,0,0,      114,5,0,0,0,244,16,0,0,0,95,118,101,114,98,111, -    115,101,95,109,101,115,115,97,103,101,233,1,0,0,115,8, +    115,101,95,109,101,115,115,97,103,101,235,1,0,0,115,8,      0,0,0,0,2,18,1,15,1,13,1,114,141,0,0,0,      99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,      0,3,0,0,0,115,35,0,0,0,135,0,0,102,1,0, @@ -879,7 +879,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,109,111,100,117,108,101,40,1,0,0,0,244,3,0,      0,0,102,120,110,114,4,0,0,0,114,5,0,0,0,244,      19,0,0,0,115,101,116,95,112,97,99,107,97,103,101,95, -    119,114,97,112,112,101,114,243,1,0,0,115,12,0,0,0, +    119,114,97,112,112,101,114,245,1,0,0,115,12,0,0,0,      0,1,15,1,24,1,12,1,15,1,31,1,117,40,0,0,      0,115,101,116,95,112,97,99,107,97,103,101,46,60,108,111,      99,97,108,115,62,46,115,101,116,95,112,97,99,107,97,103, @@ -887,7 +887,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,40,2,0,0,0,114,146,0,0,0,114,147,0,      0,0,114,4,0,0,0,40,1,0,0,0,114,146,0,0,      0,114,5,0,0,0,244,11,0,0,0,115,101,116,95,112, -    97,99,107,97,103,101,241,1,0,0,115,6,0,0,0,0, +    97,99,107,97,103,101,243,1,0,0,115,6,0,0,0,0,      2,18,7,13,1,114,148,0,0,0,99,1,0,0,0,0,      0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,115,      35,0,0,0,135,0,0,102,1,0,100,1,0,100,2,0, @@ -907,14 +907,14 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,114,145,0,0,0,40,1,0,0,0,114,146,0,      0,0,114,4,0,0,0,114,5,0,0,0,244,18,0,0,      0,115,101,116,95,108,111,97,100,101,114,95,119,114,97,112, -    112,101,114,0,2,0,0,115,8,0,0,0,0,1,18,1, +    112,101,114,2,2,0,0,115,8,0,0,0,0,1,18,1,      24,1,12,1,117,38,0,0,0,115,101,116,95,108,111,97,      100,101,114,46,60,108,111,99,97,108,115,62,46,115,101,116,      95,108,111,97,100,101,114,95,119,114,97,112,112,101,114,40,      1,0,0,0,114,64,0,0,0,40,2,0,0,0,114,146,      0,0,0,114,150,0,0,0,114,4,0,0,0,40,1,0,      0,0,114,146,0,0,0,114,5,0,0,0,244,10,0,0, -    0,115,101,116,95,108,111,97,100,101,114,254,1,0,0,115, +    0,115,101,116,95,108,111,97,100,101,114,0,2,0,0,115,      6,0,0,0,0,2,18,5,13,1,114,151,0,0,0,99,      1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,      3,0,0,0,115,35,0,0,0,135,0,0,102,1,0,100, @@ -1003,7 +1003,7 @@ const unsigned char _Py_M__importlib[] = {      108,111,97,100,114,153,0,0,0,40,1,0,0,0,114,146,      0,0,0,114,4,0,0,0,114,5,0,0,0,244,25,0,      0,0,109,111,100,117,108,101,95,102,111,114,95,108,111,97, -    100,101,114,95,119,114,97,112,112,101,114,27,2,0,0,115, +    100,101,114,95,119,114,97,112,112,101,114,29,2,0,0,115,      44,0,0,0,0,1,18,1,12,1,6,4,12,3,9,1,      13,1,9,1,3,1,19,1,19,1,5,2,6,1,12,2,      25,2,9,1,6,2,23,1,3,1,6,1,13,1,12,2, @@ -1014,7 +1014,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,40,2,0,0,0,114,146,0,0,0,114,158,0,      0,0,114,4,0,0,0,40,1,0,0,0,114,146,0,0,      0,114,5,0,0,0,244,17,0,0,0,109,111,100,117,108, -    101,95,102,111,114,95,108,111,97,100,101,114,9,2,0,0, +    101,95,102,111,114,95,108,111,97,100,101,114,11,2,0,0,      115,6,0,0,0,0,18,18,33,13,1,114,159,0,0,0,      99,1,0,0,0,0,0,0,0,2,0,0,0,4,0,0,      0,3,0,0,0,115,38,0,0,0,100,1,0,135,0,0, @@ -1051,7 +1051,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,40,1,0,0,0,244,6,0,0,0,109,101,116,      104,111,100,114,4,0,0,0,114,5,0,0,0,244,19,0,      0,0,95,99,104,101,99,107,95,110,97,109,101,95,119,114, -    97,112,112,101,114,72,2,0,0,115,10,0,0,0,0,1, +    97,112,112,101,114,74,2,0,0,115,10,0,0,0,0,1,      12,1,12,1,15,1,25,1,117,40,0,0,0,95,99,104,      101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,115,      62,46,95,99,104,101,99,107,95,110,97,109,101,95,119,114, @@ -1059,7 +1059,7 @@ const unsigned char _Py_M__importlib[] = {      2,0,0,0,114,160,0,0,0,114,161,0,0,0,114,4,      0,0,0,40,1,0,0,0,114,160,0,0,0,114,5,0,      0,0,244,11,0,0,0,95,99,104,101,99,107,95,110,97, -    109,101,64,2,0,0,115,6,0,0,0,0,8,21,6,13, +    109,101,66,2,0,0,115,6,0,0,0,0,8,21,6,13,      1,114,162,0,0,0,99,1,0,0,0,0,0,0,0,2,      0,0,0,3,0,0,0,3,0,0,0,115,35,0,0,0,      135,0,0,102,1,0,100,1,0,100,2,0,134,0,0,125, @@ -1082,7 +1082,7 @@ const unsigned char _Py_M__importlib[] = {      78,0,0,0,114,156,0,0,0,40,1,0,0,0,114,146,      0,0,0,114,4,0,0,0,114,5,0,0,0,244,25,0,      0,0,95,114,101,113,117,105,114,101,115,95,98,117,105,108, -    116,105,110,95,119,114,97,112,112,101,114,84,2,0,0,115, +    116,105,110,95,119,114,97,112,112,101,114,86,2,0,0,115,      8,0,0,0,0,1,15,1,18,1,12,1,117,52,0,0,      0,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,      105,110,46,60,108,111,99,97,108,115,62,46,95,114,101,113, @@ -1091,7 +1091,7 @@ const unsigned char _Py_M__importlib[] = {      2,0,0,0,114,146,0,0,0,114,164,0,0,0,114,4,      0,0,0,40,1,0,0,0,114,146,0,0,0,114,5,0,      0,0,244,17,0,0,0,95,114,101,113,117,105,114,101,115, -    95,98,117,105,108,116,105,110,82,2,0,0,115,6,0,0, +    95,98,117,105,108,116,105,110,84,2,0,0,115,6,0,0,      0,0,2,18,5,13,1,114,165,0,0,0,99,1,0,0,      0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,      0,115,35,0,0,0,135,0,0,102,1,0,100,1,0,100, @@ -1114,7 +1114,7 @@ const unsigned char _Py_M__importlib[] = {      40,1,0,0,0,114,146,0,0,0,114,4,0,0,0,114,      5,0,0,0,244,24,0,0,0,95,114,101,113,117,105,114,      101,115,95,102,114,111,122,101,110,95,119,114,97,112,112,101, -    114,95,2,0,0,115,8,0,0,0,0,1,15,1,18,1, +    114,97,2,0,0,115,8,0,0,0,0,1,15,1,18,1,      12,1,117,50,0,0,0,95,114,101,113,117,105,114,101,115,      95,102,114,111,122,101,110,46,60,108,111,99,97,108,115,62,      46,95,114,101,113,117,105,114,101,115,95,102,114,111,122,101, @@ -1122,7 +1122,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,40,2,0,0,0,114,146,0,0,0,114,167,0,      0,0,114,4,0,0,0,40,1,0,0,0,114,146,0,0,      0,114,5,0,0,0,244,16,0,0,0,95,114,101,113,117, -    105,114,101,115,95,102,114,111,122,101,110,93,2,0,0,115, +    105,114,101,115,95,102,114,111,122,101,110,95,2,0,0,115,      6,0,0,0,0,2,18,5,13,1,114,168,0,0,0,99,      2,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,      67,0,0,0,115,87,0,0,0,124,0,0,106,0,0,124, @@ -1150,7 +1150,7 @@ const unsigned char _Py_M__importlib[] = {      114,116,105,111,110,115,244,3,0,0,0,109,115,103,114,4,      0,0,0,114,4,0,0,0,114,5,0,0,0,244,17,0,      0,0,95,102,105,110,100,95,109,111,100,117,108,101,95,115, -    104,105,109,104,2,0,0,115,10,0,0,0,0,6,21,1, +    104,105,109,106,2,0,0,115,10,0,0,0,0,6,21,1,      24,1,6,1,32,1,114,176,0,0,0,99,4,0,0,0,      0,0,0,0,11,0,0,0,19,0,0,0,67,0,0,0,      115,243,1,0,0,105,0,0,125,4,0,124,2,0,100,1, @@ -1235,7 +1235,7 @@ const unsigned char _Py_M__importlib[] = {      244,11,0,0,0,115,111,117,114,99,101,95,115,105,122,101,      114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,      25,0,0,0,95,118,97,108,105,100,97,116,101,95,98,121, -    116,101,99,111,100,101,95,104,101,97,100,101,114,117,2,0, +    116,101,99,111,100,101,95,104,101,97,100,101,114,119,2,0,      0,115,76,0,0,0,0,11,6,1,12,1,13,3,6,1,      12,1,13,1,16,1,16,1,16,1,12,1,18,1,10,1,      18,1,18,1,15,1,10,1,15,1,18,1,15,1,10,1, @@ -1269,7 +1269,7 @@ const unsigned char _Py_M__importlib[] = {      0,114,130,0,0,0,244,4,0,0,0,99,111,100,101,114,      4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,17,      0,0,0,95,99,111,109,112,105,108,101,95,98,121,116,101, -    99,111,100,101,172,2,0,0,115,16,0,0,0,0,2,15, +    99,111,100,101,174,2,0,0,115,16,0,0,0,0,2,15,      1,15,1,13,1,12,1,19,1,4,2,18,1,114,190,0,      0,0,114,71,0,0,0,99,3,0,0,0,0,0,0,0,      4,0,0,0,3,0,0,0,67,0,0,0,115,76,0,0, @@ -1290,7 +1290,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,114,189,0,0,0,114,179,0,0,0,114,184,0,      0,0,114,52,0,0,0,114,4,0,0,0,114,4,0,0,      0,114,5,0,0,0,244,17,0,0,0,95,99,111,100,101, -    95,116,111,95,98,121,116,101,99,111,100,101,184,2,0,0, +    95,116,111,95,98,121,116,101,99,111,100,101,186,2,0,0,      115,10,0,0,0,0,3,12,1,19,1,19,1,22,1,114,      193,0,0,0,99,1,0,0,0,0,0,0,0,1,0,0,      0,6,0,0,0,66,0,0,0,115,173,0,0,0,124,0, @@ -1324,7 +1324,7 @@ const unsigned char _Py_M__importlib[] = {      114,56,0,0,0,40,2,0,0,0,244,3,0,0,0,99,      108,115,114,145,0,0,0,114,4,0,0,0,114,4,0,0,      0,114,5,0,0,0,244,11,0,0,0,109,111,100,117,108, -    101,95,114,101,112,114,205,2,0,0,115,2,0,0,0,0, +    101,95,114,101,112,114,207,2,0,0,115,2,0,0,0,0,      2,117,27,0,0,0,66,117,105,108,116,105,110,73,109,112,      111,114,116,101,114,46,109,111,100,117,108,101,95,114,101,112,      114,78,99,3,0,0,0,0,0,0,0,3,0,0,0,2, @@ -1343,7 +1343,7 @@ const unsigned char _Py_M__importlib[] = {      95,98,117,105,108,116,105,110,40,3,0,0,0,114,195,0,      0,0,114,156,0,0,0,114,35,0,0,0,114,4,0,0,      0,114,4,0,0,0,114,5,0,0,0,244,11,0,0,0, -    102,105,110,100,95,109,111,100,117,108,101,209,2,0,0,115, +    102,105,110,100,95,109,111,100,117,108,101,211,2,0,0,115,      6,0,0,0,0,7,12,1,4,1,117,27,0,0,0,66,      117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,102,      105,110,100,95,109,111,100,117,108,101,99,2,0,0,0,0, @@ -1361,7 +1361,7 @@ const unsigned char _Py_M__importlib[] = {      95,98,117,105,108,116,105,110,40,3,0,0,0,114,195,0,      0,0,114,156,0,0,0,114,157,0,0,0,114,4,0,0,      0,114,4,0,0,0,114,5,0,0,0,244,11,0,0,0, -    108,111,97,100,95,109,111,100,117,108,101,220,2,0,0,115, +    108,111,97,100,95,109,111,100,117,108,101,222,2,0,0,115,      14,0,0,0,0,6,15,1,3,1,20,1,3,1,22,1,      13,1,117,27,0,0,0,66,117,105,108,116,105,110,73,109,      112,111,114,116,101,114,46,108,111,97,100,95,109,111,100,117, @@ -1374,7 +1374,7 @@ const unsigned char _Py_M__importlib[] = {      116,115,46,78,114,4,0,0,0,40,2,0,0,0,114,195,      0,0,0,114,156,0,0,0,114,4,0,0,0,114,4,0,      0,0,114,5,0,0,0,244,8,0,0,0,103,101,116,95, -    99,111,100,101,234,2,0,0,115,2,0,0,0,0,4,117, +    99,111,100,101,236,2,0,0,115,2,0,0,0,0,4,117,      24,0,0,0,66,117,105,108,116,105,110,73,109,112,111,114,      116,101,114,46,103,101,116,95,99,111,100,101,99,2,0,0,      0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, @@ -1385,7 +1385,7 @@ const unsigned char _Py_M__importlib[] = {      115,111,117,114,99,101,32,99,111,100,101,46,78,114,4,0,      0,0,40,2,0,0,0,114,195,0,0,0,114,156,0,0,      0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    244,10,0,0,0,103,101,116,95,115,111,117,114,99,101,240, +    244,10,0,0,0,103,101,116,95,115,111,117,114,99,101,242,      2,0,0,115,2,0,0,0,0,4,117,26,0,0,0,66,      117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,103,      101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,0, @@ -1396,7 +1396,7 @@ const unsigned char _Py_M__importlib[] = {      115,32,97,114,101,32,110,101,118,101,114,32,112,97,99,107,      97,103,101,115,46,70,114,4,0,0,0,40,2,0,0,0,      114,195,0,0,0,114,156,0,0,0,114,4,0,0,0,114, -    4,0,0,0,114,5,0,0,0,114,153,0,0,0,246,2, +    4,0,0,0,114,5,0,0,0,114,153,0,0,0,248,2,      0,0,115,2,0,0,0,0,4,117,26,0,0,0,66,117,      105,108,116,105,110,73,109,112,111,114,116,101,114,46,105,115,      95,112,97,99,107,97,103,101,40,14,0,0,0,114,56,0, @@ -1406,7 +1406,7 @@ const unsigned char _Py_M__importlib[] = {      114,151,0,0,0,114,165,0,0,0,114,198,0,0,0,114,      199,0,0,0,114,200,0,0,0,114,153,0,0,0,40,1,      0,0,0,114,69,0,0,0,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,114,194,0,0,0,196,2,0,0, +    0,0,114,5,0,0,0,114,194,0,0,0,198,2,0,0,      115,28,0,0,0,16,7,6,2,18,4,3,1,18,10,3,      1,3,1,3,1,27,11,3,1,21,5,3,1,21,5,3,      1,114,194,0,0,0,99,1,0,0,0,0,0,0,0,1, @@ -1440,7 +1440,7 @@ const unsigned char _Py_M__importlib[] = {      110,41,62,40,2,0,0,0,114,46,0,0,0,114,56,0,      0,0,40,2,0,0,0,114,195,0,0,0,244,1,0,0,      0,109,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,114,196,0,0,0,6,3,0,0,115,2,0,0,0,0, +    0,114,196,0,0,0,8,3,0,0,115,2,0,0,0,0,      2,117,26,0,0,0,70,114,111,122,101,110,73,109,112,111,      114,116,101,114,46,109,111,100,117,108,101,95,114,101,112,114,      78,99,3,0,0,0,0,0,0,0,3,0,0,0,2,0, @@ -1451,7 +1451,7 @@ const unsigned char _Py_M__importlib[] = {      46,78,40,2,0,0,0,114,97,0,0,0,114,166,0,0,      0,40,3,0,0,0,114,195,0,0,0,114,156,0,0,0,      114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,197,0,0,0,10,3,0,0,115,2,0, +    5,0,0,0,114,197,0,0,0,12,3,0,0,115,2,0,      0,0,0,3,117,26,0,0,0,70,114,111,122,101,110,73,      109,112,111,114,116,101,114,46,102,105,110,100,95,109,111,100,      117,108,101,99,2,0,0,0,0,0,0,0,4,0,0,0, @@ -1470,7 +1470,7 @@ const unsigned char _Py_M__importlib[] = {      95,102,105,108,101,95,95,40,4,0,0,0,114,195,0,0,      0,114,156,0,0,0,114,157,0,0,0,114,203,0,0,0,      114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    198,0,0,0,15,3,0,0,115,18,0,0,0,0,6,15, +    198,0,0,0,17,3,0,0,115,18,0,0,0,0,6,15,      1,3,1,18,2,6,1,8,1,3,1,22,1,13,1,117,      26,0,0,0,70,114,111,122,101,110,73,109,112,111,114,116,      101,114,46,108,111,97,100,95,109,111,100,117,108,101,99,2, @@ -1483,7 +1483,7 @@ const unsigned char _Py_M__importlib[] = {      0,114,97,0,0,0,116,17,0,0,0,103,101,116,95,102,      114,111,122,101,110,95,111,98,106,101,99,116,40,2,0,0,      0,114,195,0,0,0,114,156,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,114,199,0,0,0,32, +    114,4,0,0,0,114,5,0,0,0,114,199,0,0,0,34,      3,0,0,115,2,0,0,0,0,4,117,23,0,0,0,70,      114,111,122,101,110,73,109,112,111,114,116,101,114,46,103,101,      116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,2, @@ -1494,7 +1494,7 @@ const unsigned char _Py_M__importlib[] = {      111,116,32,104,97,118,101,32,115,111,117,114,99,101,32,99,      111,100,101,46,78,114,4,0,0,0,40,2,0,0,0,114,      195,0,0,0,114,156,0,0,0,114,4,0,0,0,114,4, -    0,0,0,114,5,0,0,0,114,200,0,0,0,38,3,0, +    0,0,0,114,5,0,0,0,114,200,0,0,0,40,3,0,      0,115,2,0,0,0,0,4,117,25,0,0,0,70,114,111,      122,101,110,73,109,112,111,114,116,101,114,46,103,101,116,95,      115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,2, @@ -1507,7 +1507,7 @@ const unsigned char _Py_M__importlib[] = {      17,0,0,0,105,115,95,102,114,111,122,101,110,95,112,97,      99,107,97,103,101,40,2,0,0,0,114,195,0,0,0,114,      156,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,153,0,0,0,44,3,0,0,115,2,0,0, +    0,0,0,114,153,0,0,0,46,3,0,0,115,2,0,0,      0,0,4,117,25,0,0,0,70,114,111,122,101,110,73,109,      112,111,114,116,101,114,46,105,115,95,112,97,99,107,97,103,      101,40,14,0,0,0,114,56,0,0,0,114,55,0,0,0, @@ -1516,7 +1516,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,114,168,0,0,0,114,198,0,0,0,114,199,0,      0,0,114,200,0,0,0,114,153,0,0,0,40,1,0,0,      0,114,69,0,0,0,114,4,0,0,0,114,4,0,0,0, -    114,5,0,0,0,114,202,0,0,0,253,2,0,0,115,28, +    114,5,0,0,0,114,202,0,0,0,255,2,0,0,115,28,      0,0,0,16,7,6,2,18,4,3,1,18,4,3,1,3,      1,3,1,27,14,3,1,21,5,3,1,21,5,3,1,114,      202,0,0,0,99,1,0,0,0,0,0,0,0,1,0,0, @@ -1556,7 +1556,7 @@ const unsigned char _Py_M__importlib[] = {      73,78,69,40,2,0,0,0,114,195,0,0,0,244,3,0,      0,0,107,101,121,114,4,0,0,0,114,4,0,0,0,114,      5,0,0,0,244,14,0,0,0,95,111,112,101,110,95,114, -    101,103,105,115,116,114,121,64,3,0,0,115,8,0,0,0, +    101,103,105,115,116,114,121,66,3,0,0,115,8,0,0,0,      0,2,3,1,23,1,13,1,117,36,0,0,0,87,105,110,      100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,      101,114,46,95,111,112,101,110,95,114,101,103,105,115,116,114, @@ -1585,7 +1585,7 @@ const unsigned char _Py_M__importlib[] = {      207,0,0,0,116,4,0,0,0,104,107,101,121,244,8,0,      0,0,102,105,108,101,112,97,116,104,114,4,0,0,0,114,      4,0,0,0,114,5,0,0,0,244,16,0,0,0,95,115, -    101,97,114,99,104,95,114,101,103,105,115,116,114,121,71,3, +    101,97,114,99,104,95,114,101,103,105,115,116,114,121,73,3,      0,0,115,22,0,0,0,0,2,9,1,12,2,9,1,15,      1,22,1,3,1,18,1,28,1,13,1,9,1,117,38,0,      0,0,87,105,110,100,111,119,115,82,101,103,105,115,116,114, @@ -1612,7 +1612,7 @@ const unsigned char _Py_M__importlib[] = {      0,114,195,0,0,0,114,156,0,0,0,114,35,0,0,0,      114,213,0,0,0,114,173,0,0,0,114,115,0,0,0,114,      36,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,197,0,0,0,86,3,0,0,115,20,0,0, +    0,0,0,114,197,0,0,0,88,3,0,0,115,20,0,0,      0,0,3,15,1,12,1,4,1,3,1,17,1,13,1,9,      1,25,1,21,1,117,33,0,0,0,87,105,110,100,111,119,      115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46, @@ -1622,7 +1622,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,114,201,0,0,0,114,208,0,0,0,114,214,0,      0,0,114,197,0,0,0,40,1,0,0,0,114,69,0,0,      0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    114,205,0,0,0,51,3,0,0,115,16,0,0,0,16,3, +    114,205,0,0,0,53,3,0,0,115,16,0,0,0,16,3,      6,3,6,3,6,2,6,2,18,7,18,15,3,1,114,205,      0,0,0,99,1,0,0,0,0,0,0,0,1,0,0,0,      5,0,0,0,66,0,0,0,115,62,0,0,0,124,0,0, @@ -1661,7 +1661,7 @@ const unsigned char _Py_M__importlib[] = {      114,119,0,0,0,116,13,0,0,0,102,105,108,101,110,97,      109,101,95,98,97,115,101,116,9,0,0,0,116,97,105,108,      95,110,97,109,101,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,153,0,0,0,106,3,0,0,115,8,0, +    5,0,0,0,114,153,0,0,0,108,3,0,0,115,8,0,      0,0,0,3,25,1,22,1,19,1,117,24,0,0,0,95,      76,111,97,100,101,114,66,97,115,105,99,115,46,105,115,95,      112,97,99,107,97,103,101,244,10,0,0,0,115,111,117,114, @@ -1694,7 +1694,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,66,0,0,0,244,11,0,0,0,99,111,100,101,      95,111,98,106,101,99,116,114,4,0,0,0,114,4,0,0,      0,114,5,0,0,0,244,12,0,0,0,95,108,111,97,100, -    95,109,111,100,117,108,101,114,3,0,0,115,26,0,0,0, +    95,109,111,100,117,108,101,116,3,0,0,115,26,0,0,0,      0,4,9,1,15,1,18,1,6,1,3,1,22,1,13,1,      20,2,12,1,15,1,28,2,19,1,117,26,0,0,0,95,      76,111,97,100,101,114,66,97,115,105,99,115,46,95,108,111, @@ -1703,7 +1703,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,114,153,0,0,0,114,159,0,0,0,114,223,0,      0,0,40,1,0,0,0,114,69,0,0,0,114,4,0,0,      0,114,4,0,0,0,114,5,0,0,0,114,218,0,0,0, -    101,3,0,0,115,8,0,0,0,16,3,6,2,12,8,6, +    103,3,0,0,115,8,0,0,0,16,3,6,2,12,8,6,      1,114,218,0,0,0,99,1,0,0,0,0,0,0,0,1,      0,0,0,4,0,0,0,66,0,0,0,115,122,0,0,0,      124,0,0,69,101,0,0,90,1,0,100,0,0,90,2,0, @@ -1732,7 +1732,7 @@ const unsigned char _Py_M__importlib[] = {      78,40,1,0,0,0,244,7,0,0,0,73,79,69,114,114,      111,114,40,2,0,0,0,114,78,0,0,0,114,35,0,0,      0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    244,10,0,0,0,112,97,116,104,95,109,116,105,109,101,137, +    244,10,0,0,0,112,97,116,104,95,109,116,105,109,101,139,      3,0,0,115,2,0,0,0,0,6,117,23,0,0,0,83,      111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,      95,109,116,105,109,101,99,2,0,0,0,0,0,0,0,2, @@ -1769,7 +1769,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,226,0,0,0,40,2,0,0,0,114,78,0,0,      0,114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,      114,5,0,0,0,244,10,0,0,0,112,97,116,104,95,115, -    116,97,116,115,145,3,0,0,115,2,0,0,0,0,11,117, +    116,97,116,115,147,3,0,0,115,2,0,0,0,0,11,117,      23,0,0,0,83,111,117,114,99,101,76,111,97,100,101,114,      46,112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,      0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,0, @@ -1794,7 +1794,7 @@ const unsigned char _Py_M__importlib[] = {      130,0,0,0,116,10,0,0,0,99,97,99,104,101,95,112,      97,116,104,114,52,0,0,0,114,4,0,0,0,114,4,0,      0,0,114,5,0,0,0,244,15,0,0,0,95,99,97,99, -    104,101,95,98,121,116,101,99,111,100,101,158,3,0,0,115, +    104,101,95,98,121,116,101,99,111,100,101,160,3,0,0,115,      2,0,0,0,0,8,117,28,0,0,0,83,111,117,114,99,      101,76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,      121,116,101,99,111,100,101,99,3,0,0,0,0,0,0,0, @@ -1812,7 +1812,7 @@ const unsigned char _Py_M__importlib[] = {      32,32,32,32,32,78,114,4,0,0,0,40,3,0,0,0,      114,78,0,0,0,114,35,0,0,0,114,52,0,0,0,114,      4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,228, -    0,0,0,168,3,0,0,115,0,0,0,0,117,21,0,0, +    0,0,0,170,3,0,0,115,0,0,0,0,117,21,0,0,      0,83,111,117,114,99,101,76,111,97,100,101,114,46,115,101,      116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,9,      0,0,0,44,0,0,0,67,0,0,0,115,62,1,0,0, @@ -1865,7 +1865,7 @@ const unsigned char _Py_M__importlib[] = {      117,114,99,101,244,8,0,0,0,101,110,99,111,100,105,110,      103,116,15,0,0,0,110,101,119,108,105,110,101,95,100,101,      99,111,100,101,114,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,200,0,0,0,175,3,0,0,115,38,0, +    5,0,0,0,114,200,0,0,0,177,3,0,0,115,38,0,      0,0,0,2,12,1,15,1,3,1,19,1,18,1,9,1,      31,1,18,1,3,1,19,1,18,1,9,1,31,1,18,1,      3,1,30,1,18,1,9,1,117,23,0,0,0,83,111,117, @@ -1890,7 +1890,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,114,78,0,0,0,114,52,0,0,0,114,35,0,      0,0,114,238,0,0,0,114,4,0,0,0,114,4,0,0,      0,114,5,0,0,0,244,14,0,0,0,115,111,117,114,99, -    101,95,116,111,95,99,111,100,101,197,3,0,0,115,4,0, +    101,95,116,111,95,99,111,100,101,199,3,0,0,115,4,0,      0,0,0,5,18,1,117,27,0,0,0,83,111,117,114,99,      101,76,111,97,100,101,114,46,115,111,117,114,99,101,95,116,      111,95,99,111,100,101,99,2,0,0,0,0,0,0,0,10, @@ -1952,7 +1952,7 @@ const unsigned char _Py_M__importlib[] = {      0,114,129,0,0,0,244,2,0,0,0,115,116,114,52,0,      0,0,244,10,0,0,0,98,121,116,101,115,95,100,97,116,      97,114,235,0,0,0,114,222,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,114,199,0,0,0,205, +    114,4,0,0,0,114,5,0,0,0,114,199,0,0,0,207,      3,0,0,115,78,0,0,0,0,7,15,1,6,1,3,1,      16,1,13,1,11,2,3,1,19,1,13,1,5,2,16,1,      3,1,19,1,13,1,5,2,3,1,9,1,12,1,13,1, @@ -1981,7 +1981,7 @@ const unsigned char _Py_M__importlib[] = {      116,101,99,111,100,101,46,10,10,32,32,32,32,32,32,32,      32,40,1,0,0,0,114,223,0,0,0,40,2,0,0,0,      114,78,0,0,0,114,156,0,0,0,114,4,0,0,0,114, -    4,0,0,0,114,5,0,0,0,114,198,0,0,0,0,4, +    4,0,0,0,114,5,0,0,0,114,198,0,0,0,2,4,      0,0,115,2,0,0,0,0,8,117,24,0,0,0,83,111,      117,114,99,101,76,111,97,100,101,114,46,108,111,97,100,95,      109,111,100,117,108,101,78,114,126,0,0,0,40,11,0,0, @@ -1990,7 +1990,7 @@ const unsigned char _Py_M__importlib[] = {      228,0,0,0,114,200,0,0,0,114,240,0,0,0,114,199,      0,0,0,114,198,0,0,0,40,1,0,0,0,114,69,0,      0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,114,224,0,0,0,135,3,0,0,115,16,0,0,0,16, +    0,114,224,0,0,0,137,3,0,0,115,16,0,0,0,16,      2,12,8,12,13,12,10,12,7,12,22,18,8,12,51,114,      224,0,0,0,99,1,0,0,0,0,0,0,0,1,0,0,      0,4,0,0,0,2,0,0,0,115,92,0,0,0,124,0, @@ -2019,7 +2019,7 @@ const unsigned char _Py_M__importlib[] = {      40,2,0,0,0,114,66,0,0,0,114,35,0,0,0,40,      3,0,0,0,114,78,0,0,0,114,156,0,0,0,114,35,      0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,114,79,0,0,0,16,4,0,0,115,4,0,0,0, +    0,0,114,79,0,0,0,18,4,0,0,115,4,0,0,0,      0,3,9,1,117,19,0,0,0,70,105,108,101,76,111,97,      100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,      0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0, @@ -2031,7 +2031,7 @@ const unsigned char _Py_M__importlib[] = {      244,0,0,0,114,198,0,0,0,40,2,0,0,0,114,78,      0,0,0,114,156,0,0,0,40,1,0,0,0,244,9,0,      0,0,95,95,99,108,97,115,115,95,95,114,4,0,0,0, -    114,5,0,0,0,114,198,0,0,0,22,4,0,0,115,2, +    114,5,0,0,0,114,198,0,0,0,24,4,0,0,115,2,      0,0,0,0,5,117,22,0,0,0,70,105,108,101,76,111,      97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,101,      99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, @@ -2043,7 +2043,7 @@ const unsigned char _Py_M__importlib[] = {      110,100,101,114,46,40,1,0,0,0,114,35,0,0,0,40,      2,0,0,0,114,78,0,0,0,114,156,0,0,0,114,4,      0,0,0,114,4,0,0,0,114,5,0,0,0,114,219,0, -    0,0,29,4,0,0,115,2,0,0,0,0,3,117,23,0, +    0,0,31,4,0,0,115,2,0,0,0,0,3,117,23,0,      0,0,70,105,108,101,76,111,97,100,101,114,46,103,101,116,      95,102,105,108,101,110,97,109,101,99,2,0,0,0,0,0,      0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,41, @@ -2057,14 +2057,14 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,116,4,0,0,0,114,101,97,100,40,3,0,0,      0,114,78,0,0,0,114,35,0,0,0,114,53,0,0,0,      114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    231,0,0,0,34,4,0,0,115,4,0,0,0,0,2,21, +    231,0,0,0,36,4,0,0,115,4,0,0,0,0,2,21,      1,117,19,0,0,0,70,105,108,101,76,111,97,100,101,114,      46,103,101,116,95,100,97,116,97,40,9,0,0,0,114,56,      0,0,0,114,55,0,0,0,114,57,0,0,0,114,58,0,      0,0,114,79,0,0,0,114,162,0,0,0,114,198,0,0,      0,114,219,0,0,0,114,231,0,0,0,40,1,0,0,0,      114,69,0,0,0,114,4,0,0,0,40,1,0,0,0,114, -    246,0,0,0,114,5,0,0,0,114,244,0,0,0,11,4, +    246,0,0,0,114,5,0,0,0,114,244,0,0,0,13,4,      0,0,115,10,0,0,0,16,3,6,2,12,6,24,7,18,      5,114,244,0,0,0,99,1,0,0,0,0,0,0,0,1,      0,0,0,4,0,0,0,66,0,0,0,115,68,0,0,0, @@ -2090,7 +2090,7 @@ const unsigned char _Py_M__importlib[] = {      105,109,101,116,7,0,0,0,115,116,95,115,105,122,101,40,      3,0,0,0,114,78,0,0,0,114,35,0,0,0,114,242,      0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,114,227,0,0,0,44,4,0,0,115,4,0,0,0, +    0,0,114,227,0,0,0,46,4,0,0,115,4,0,0,0,      0,2,15,1,117,27,0,0,0,83,111,117,114,99,101,70,      105,108,101,76,111,97,100,101,114,46,112,97,116,104,95,115,      116,97,116,115,99,4,0,0,0,0,0,0,0,5,0,0, @@ -2102,7 +2102,7 @@ const unsigned char _Py_M__importlib[] = {      5,0,0,0,114,78,0,0,0,114,130,0,0,0,114,129,      0,0,0,114,52,0,0,0,114,42,0,0,0,114,4,0,      0,0,114,4,0,0,0,114,5,0,0,0,114,229,0,0, -    0,49,4,0,0,115,4,0,0,0,0,2,12,1,117,32, +    0,51,4,0,0,115,4,0,0,0,0,2,12,1,117,32,      0,0,0,83,111,117,114,99,101,70,105,108,101,76,111,97,      100,101,114,46,95,99,97,99,104,101,95,98,121,116,101,99,      111,100,101,114,250,0,0,0,105,182,1,0,0,99,3,0, @@ -2142,7 +2142,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,244,6,0,0,0,112,97,114,101,110,116,114,119,0,      0,0,114,27,0,0,0,114,23,0,0,0,114,236,0,0,      0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    114,228,0,0,0,54,4,0,0,115,38,0,0,0,0,2, +    114,228,0,0,0,56,4,0,0,115,38,0,0,0,0,2,      18,1,6,2,22,1,18,1,17,2,19,1,15,1,3,1,      17,1,13,2,7,1,18,3,16,1,27,1,3,1,16,1,      17,1,18,2,117,25,0,0,0,83,111,117,114,99,101,70, @@ -2151,7 +2151,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,57,0,0,0,114,58,0,0,0,114,227,0,0,      0,114,229,0,0,0,114,228,0,0,0,40,1,0,0,0,      114,69,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,248,0,0,0,40,4,0,0,115,8,0, +    5,0,0,0,114,248,0,0,0,42,4,0,0,115,8,0,      0,0,16,2,6,2,12,5,12,5,114,248,0,0,0,99,      1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,      66,0,0,0,115,62,0,0,0,124,0,0,69,101,0,0, @@ -2169,7 +2169,7 @@ const unsigned char _Py_M__importlib[] = {      131,1,1,83,40,3,0,0,0,78,114,220,0,0,0,84,      40,1,0,0,0,114,223,0,0,0,40,2,0,0,0,114,      78,0,0,0,114,156,0,0,0,114,4,0,0,0,114,4, -    0,0,0,114,5,0,0,0,114,198,0,0,0,87,4,0, +    0,0,0,114,5,0,0,0,114,198,0,0,0,89,4,0,      0,115,2,0,0,0,0,1,117,32,0,0,0,83,111,117,      114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,      114,46,108,111,97,100,95,109,111,100,117,108,101,99,2,0, @@ -2185,7 +2185,7 @@ const unsigned char _Py_M__importlib[] = {      0,40,5,0,0,0,114,78,0,0,0,114,156,0,0,0,      114,35,0,0,0,114,52,0,0,0,114,243,0,0,0,114,      4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,199, -    0,0,0,90,4,0,0,115,8,0,0,0,0,1,15,1, +    0,0,0,92,4,0,0,115,8,0,0,0,0,1,15,1,      15,1,24,1,117,29,0,0,0,83,111,117,114,99,101,108,      101,115,115,70,105,108,101,76,111,97,100,101,114,46,103,101,      116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,2, @@ -2195,7 +2195,7 @@ const unsigned char _Py_M__importlib[] = {      114,101,32,105,115,32,110,111,32,115,111,117,114,99,101,32,      99,111,100,101,46,78,114,4,0,0,0,40,2,0,0,0,      114,78,0,0,0,114,156,0,0,0,114,4,0,0,0,114, -    4,0,0,0,114,5,0,0,0,114,200,0,0,0,96,4, +    4,0,0,0,114,5,0,0,0,114,200,0,0,0,98,4,      0,0,115,2,0,0,0,0,2,117,31,0,0,0,83,111,      117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,      101,114,46,103,101,116,95,115,111,117,114,99,101,78,40,7, @@ -2203,7 +2203,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,58,0,0,0,114,198,0,0,0,114,199,0,0,      0,114,200,0,0,0,40,1,0,0,0,114,69,0,0,0,      114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    254,0,0,0,83,4,0,0,115,8,0,0,0,16,2,6, +    254,0,0,0,85,4,0,0,115,8,0,0,0,16,2,6,      2,12,3,12,6,114,254,0,0,0,99,1,0,0,0,0,      0,0,0,1,0,0,0,5,0,0,0,66,0,0,0,115,      104,0,0,0,124,0,0,69,101,0,0,90,1,0,100,0, @@ -2227,7 +2227,7 @@ const unsigned char _Py_M__importlib[] = {      78,40,2,0,0,0,114,66,0,0,0,114,35,0,0,0,      40,3,0,0,0,114,78,0,0,0,114,66,0,0,0,114,      35,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,79,0,0,0,113,4,0,0,115,4,0,0, +    0,0,0,114,79,0,0,0,115,4,0,0,115,4,0,0,      0,0,1,9,1,117,28,0,0,0,69,120,116,101,110,115,      105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,95,      105,110,105,116,95,95,99,2,0,0,0,0,0,0,0,4, @@ -2255,7 +2255,7 @@ const unsigned char _Py_M__importlib[] = {      0,114,38,0,0,0,114,143,0,0,0,40,4,0,0,0,      114,78,0,0,0,114,156,0,0,0,114,157,0,0,0,114,      145,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,198,0,0,0,117,4,0,0,115,24,0,0, +    0,0,0,114,198,0,0,0,119,4,0,0,115,24,0,0,      0,0,5,15,1,3,1,9,1,15,1,16,1,31,1,28,      1,8,1,3,1,22,1,13,1,117,31,0,0,0,69,120,      116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101, @@ -2277,7 +2277,7 @@ const unsigned char _Py_M__importlib[] = {      117,102,102,105,120,40,1,0,0,0,244,9,0,0,0,102,      105,108,101,95,110,97,109,101,114,4,0,0,0,114,5,0,      0,0,245,9,0,0,0,60,103,101,110,101,120,112,114,62, -    138,4,0,0,115,2,0,0,0,6,1,117,49,0,0,0, +    140,4,0,0,115,2,0,0,0,6,1,117,49,0,0,0,      69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,      100,101,114,46,105,115,95,112,97,99,107,97,103,101,46,60,      108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114, @@ -2286,7 +2286,7 @@ const unsigned char _Py_M__importlib[] = {      69,78,83,73,79,78,95,83,85,70,70,73,88,69,83,40,      2,0,0,0,114,78,0,0,0,114,156,0,0,0,114,4,      0,0,0,40,1,0,0,0,114,1,1,0,0,114,5,0, -    0,0,114,153,0,0,0,135,4,0,0,115,6,0,0,0, +    0,0,114,153,0,0,0,137,4,0,0,115,6,0,0,0,      0,2,19,1,18,1,117,30,0,0,0,69,120,116,101,110,      115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,      115,95,112,97,99,107,97,103,101,99,2,0,0,0,0,0, @@ -2298,7 +2298,7 @@ const unsigned char _Py_M__importlib[] = {      101,32,97,32,99,111,100,101,32,111,98,106,101,99,116,46,      78,114,4,0,0,0,40,2,0,0,0,114,78,0,0,0,      114,156,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,199,0,0,0,141,4,0,0,115,2,0, +    5,0,0,0,114,199,0,0,0,143,4,0,0,115,2,0,      0,0,0,2,117,28,0,0,0,69,120,116,101,110,115,105,      111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,      95,99,111,100,101,99,2,0,0,0,0,0,0,0,2,0, @@ -2309,7 +2309,7 @@ const unsigned char _Py_M__importlib[] = {      118,101,32,110,111,32,115,111,117,114,99,101,32,99,111,100,      101,46,78,114,4,0,0,0,40,2,0,0,0,114,78,0,      0,0,114,156,0,0,0,114,4,0,0,0,114,4,0,0, -    0,114,5,0,0,0,114,200,0,0,0,145,4,0,0,115, +    0,114,5,0,0,0,114,200,0,0,0,147,4,0,0,115,      2,0,0,0,0,2,117,30,0,0,0,69,120,116,101,110,      115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,      101,116,95,115,111,117,114,99,101,78,40,12,0,0,0,114, @@ -2318,7 +2318,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,151,0,0,0,114,198,0,0,0,114,153,0,0,      0,114,199,0,0,0,114,200,0,0,0,40,1,0,0,0,      114,69,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,255,0,0,0,105,4,0,0,115,16,0, +    5,0,0,0,114,255,0,0,0,107,4,0,0,115,16,0,      0,0,16,6,6,2,12,4,3,1,3,1,24,16,12,6,      12,4,114,255,0,0,0,99,1,0,0,0,0,0,0,0,      1,0,0,0,2,0,0,0,66,0,0,0,115,134,0,0, @@ -2365,7 +2365,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,66,0,0,0,114,35,0,0,0,244,11,0,0,      0,112,97,116,104,95,102,105,110,100,101,114,114,4,0,0,      0,114,4,0,0,0,114,5,0,0,0,114,79,0,0,0, -    157,4,0,0,115,8,0,0,0,0,1,9,1,9,1,21, +    159,4,0,0,115,8,0,0,0,0,1,9,1,9,1,21,      1,117,23,0,0,0,95,78,97,109,101,115,112,97,99,101,      80,97,116,104,46,95,95,105,110,105,116,95,95,99,1,0,      0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0, @@ -2385,7 +2385,7 @@ const unsigned char _Py_M__importlib[] = {      0,244,3,0,0,0,100,111,116,114,83,0,0,0,114,4,      0,0,0,114,4,0,0,0,114,5,0,0,0,244,23,0,      0,0,95,102,105,110,100,95,112,97,114,101,110,116,95,112, -    97,116,104,95,110,97,109,101,115,163,4,0,0,115,8,0, +    97,116,104,95,110,97,109,101,115,165,4,0,0,115,8,0,      0,0,0,2,27,1,12,2,4,3,117,38,0,0,0,95,      78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,102,      105,110,100,95,112,97,114,101,110,116,95,112,97,116,104,95, @@ -2399,7 +2399,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,112,97,114,101,110,116,95,109,111,100,117,108,101,      95,110,97,109,101,116,14,0,0,0,112,97,116,104,95,97,      116,116,114,95,110,97,109,101,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,114,8,1,0,0,173,4,0,0, +    0,0,114,5,0,0,0,114,8,1,0,0,175,4,0,0,      115,4,0,0,0,0,1,18,1,117,31,0,0,0,95,78,      97,109,101,115,112,97,99,101,80,97,116,104,46,95,103,101,      116,95,112,97,114,101,110,116,95,112,97,116,104,99,1,0, @@ -2418,7 +2418,7 @@ const unsigned char _Py_M__importlib[] = {      104,114,173,0,0,0,116,8,0,0,0,110,101,119,95,112,      97,116,104,114,4,0,0,0,114,4,0,0,0,114,5,0,      0,0,244,12,0,0,0,95,114,101,99,97,108,99,117,108, -    97,116,101,177,4,0,0,115,14,0,0,0,0,2,18,1, +    97,116,101,179,4,0,0,115,14,0,0,0,0,2,18,1,      15,1,27,3,12,1,12,1,12,1,117,27,0,0,0,95,      78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,114,      101,99,97,108,99,117,108,97,116,101,99,1,0,0,0,0, @@ -2428,7 +2428,7 @@ const unsigned char _Py_M__importlib[] = {      4,0,0,0,105,116,101,114,114,14,1,0,0,40,1,0,      0,0,114,78,0,0,0,114,4,0,0,0,114,4,0,0,      0,114,5,0,0,0,244,8,0,0,0,95,95,105,116,101, -    114,95,95,189,4,0,0,115,2,0,0,0,0,1,117,23, +    114,95,95,191,4,0,0,115,2,0,0,0,0,1,117,23,      0,0,0,95,78,97,109,101,115,112,97,99,101,80,97,116,      104,46,95,95,105,116,101,114,95,95,99,1,0,0,0,0,      0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115, @@ -2436,7 +2436,7 @@ const unsigned char _Py_M__importlib[] = {      131,1,0,83,40,1,0,0,0,78,40,2,0,0,0,114,      31,0,0,0,114,14,1,0,0,40,1,0,0,0,114,78,      0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,244,7,0,0,0,95,95,108,101,110,95,95,192,4, +    0,0,244,7,0,0,0,95,95,108,101,110,95,95,194,4,      0,0,115,2,0,0,0,0,1,117,22,0,0,0,95,78,      97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,108,      101,110,95,95,99,1,0,0,0,0,0,0,0,1,0,0, @@ -2446,7 +2446,7 @@ const unsigned char _Py_M__importlib[] = {      97,99,101,80,97,116,104,40,123,33,114,125,41,40,2,0,      0,0,114,46,0,0,0,114,7,1,0,0,40,1,0,0,      0,114,78,0,0,0,114,4,0,0,0,114,4,0,0,0, -    114,5,0,0,0,114,90,0,0,0,195,4,0,0,115,2, +    114,5,0,0,0,114,90,0,0,0,197,4,0,0,115,2,      0,0,0,0,1,117,23,0,0,0,95,78,97,109,101,115,      112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,95,      95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0, @@ -2455,7 +2455,7 @@ const unsigned char _Py_M__importlib[] = {      78,40,1,0,0,0,114,14,1,0,0,40,2,0,0,0,      114,78,0,0,0,244,4,0,0,0,105,116,101,109,114,4,      0,0,0,114,4,0,0,0,114,5,0,0,0,244,12,0, -    0,0,95,95,99,111,110,116,97,105,110,115,95,95,198,4, +    0,0,95,95,99,111,110,116,97,105,110,115,95,95,200,4,      0,0,115,2,0,0,0,0,1,117,27,0,0,0,95,78,      97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,99,      111,110,116,97,105,110,115,95,95,99,2,0,0,0,0,0, @@ -2464,7 +2464,7 @@ const unsigned char _Py_M__importlib[] = {      1,0,1,100,0,0,83,40,1,0,0,0,78,40,2,0,      0,0,114,7,1,0,0,114,251,0,0,0,40,2,0,0,      0,114,78,0,0,0,114,18,1,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,114,251,0,0,0,201, +    114,4,0,0,0,114,5,0,0,0,114,251,0,0,0,203,      4,0,0,115,2,0,0,0,0,1,117,21,0,0,0,95,      78,97,109,101,115,112,97,99,101,80,97,116,104,46,97,112,      112,101,110,100,78,40,13,0,0,0,114,56,0,0,0,114, @@ -2473,7 +2473,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,16,1,0,0,114,17,1,0,0,114,90,0,0,      0,114,19,1,0,0,114,251,0,0,0,40,1,0,0,0,      114,69,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,5,1,0,0,150,4,0,0,115,20,0, +    5,0,0,0,114,5,1,0,0,152,4,0,0,115,20,0,      0,0,16,5,6,2,12,6,12,10,12,4,12,12,12,3,      12,3,12,3,12,3,114,5,1,0,0,99,1,0,0,0,      0,0,0,0,1,0,0,0,3,0,0,0,66,0,0,0, @@ -2490,7 +2490,7 @@ const unsigned char _Py_M__importlib[] = {      114,5,1,0,0,114,7,1,0,0,40,4,0,0,0,114,      78,0,0,0,114,66,0,0,0,114,35,0,0,0,114,11,      1,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,114,79,0,0,0,206,4,0,0,115,2,0,0,0, +    0,0,114,79,0,0,0,208,4,0,0,115,2,0,0,0,      0,1,117,24,0,0,0,78,97,109,101,115,112,97,99,101,      76,111,97,100,101,114,46,95,95,105,110,105,116,95,95,99,      2,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0, @@ -2500,7 +2500,7 @@ const unsigned char _Py_M__importlib[] = {      32,40,110,97,109,101,115,112,97,99,101,41,62,40,2,0,      0,0,114,46,0,0,0,114,56,0,0,0,40,2,0,0,      0,114,195,0,0,0,114,145,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,114,196,0,0,0,209, +    114,4,0,0,0,114,5,0,0,0,114,196,0,0,0,211,      4,0,0,115,2,0,0,0,0,2,117,27,0,0,0,78,      97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,109,      111,100,117,108,101,95,114,101,112,114,99,2,0,0,0,0, @@ -2515,7 +2515,7 @@ const unsigned char _Py_M__importlib[] = {      125,40,3,0,0,0,114,141,0,0,0,114,7,1,0,0,      114,143,0,0,0,40,2,0,0,0,114,78,0,0,0,114,      145,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,198,0,0,0,213,4,0,0,115,6,0,0, +    0,0,0,114,198,0,0,0,215,4,0,0,115,6,0,0,      0,0,3,16,1,12,1,117,27,0,0,0,78,97,109,101,      115,112,97,99,101,76,111,97,100,101,114,46,108,111,97,100,      95,109,111,100,117,108,101,78,40,8,0,0,0,114,56,0, @@ -2523,7 +2523,7 @@ const unsigned char _Py_M__importlib[] = {      0,114,201,0,0,0,114,196,0,0,0,114,159,0,0,0,      114,198,0,0,0,40,1,0,0,0,114,69,0,0,0,114,      4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,20, -    1,0,0,205,4,0,0,115,6,0,0,0,16,1,12,3, +    1,0,0,207,4,0,0,115,6,0,0,0,16,1,12,3,      18,4,114,20,1,0,0,99,1,0,0,0,0,0,0,0,      1,0,0,0,4,0,0,0,66,0,0,0,115,119,0,0,      0,124,0,0,69,101,0,0,90,1,0,100,0,0,90,2, @@ -2560,7 +2560,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,114,22,1,0,0,40,2,0,0,0,114,195,0,      0,0,244,6,0,0,0,102,105,110,100,101,114,114,4,0,      0,0,114,4,0,0,0,114,5,0,0,0,114,22,1,0, -    0,227,4,0,0,115,6,0,0,0,0,4,22,1,15,1, +    0,229,4,0,0,115,6,0,0,0,0,4,22,1,15,1,      117,28,0,0,0,80,97,116,104,70,105,110,100,101,114,46,      105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,      115,99,2,0,0,0,0,0,0,0,3,0,0,0,12,0, @@ -2586,7 +2586,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,114,195,0,0,0,114,35,0,0,0,116,4,0,      0,0,104,111,111,107,114,4,0,0,0,114,4,0,0,0,      114,5,0,0,0,244,11,0,0,0,95,112,97,116,104,95, -    104,111,111,107,115,235,4,0,0,115,16,0,0,0,0,7, +    104,111,111,107,115,237,4,0,0,115,16,0,0,0,0,7,      9,1,19,1,16,1,3,1,14,1,13,1,12,2,117,22,      0,0,0,80,97,116,104,70,105,110,100,101,114,46,95,112,      97,116,104,95,104,111,111,107,115,99,2,0,0,0,0,0, @@ -2616,7 +2616,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,195,0,0,0,114,35,0,0,0,114,25,1,0,      0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,      244,20,0,0,0,95,112,97,116,104,95,105,109,112,111,114, -    116,101,114,95,99,97,99,104,101,252,4,0,0,115,16,0, +    116,101,114,95,99,97,99,104,101,254,4,0,0,115,16,0,      0,0,0,8,12,1,9,1,3,1,17,1,13,1,15,1,      18,1,117,31,0,0,0,80,97,116,104,70,105,110,100,101,      114,46,95,112,97,116,104,95,105,109,112,111,114,116,101,114, @@ -2648,7 +2648,7 @@ const unsigned char _Py_M__importlib[] = {      114,121,114,25,1,0,0,114,173,0,0,0,114,174,0,0,      0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,      244,11,0,0,0,95,103,101,116,95,108,111,97,100,101,114, -    13,5,0,0,115,28,0,0,0,0,5,6,1,13,1,21, +    15,5,0,0,115,28,0,0,0,0,5,6,1,13,1,21,      1,6,1,15,1,12,1,15,1,24,2,15,1,6,1,12,      2,10,5,20,2,117,22,0,0,0,80,97,116,104,70,105,      110,100,101,114,46,95,103,101,116,95,108,111,97,100,101,114, @@ -2671,7 +2671,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,40,5,0,0,0,114,195,0,0,0,114,156,0,0,      0,114,35,0,0,0,114,173,0,0,0,114,31,1,0,0,      114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    197,0,0,0,40,5,0,0,115,16,0,0,0,0,4,12, +    197,0,0,0,42,5,0,0,115,16,0,0,0,0,4,12,      1,12,1,24,1,12,1,4,2,6,3,19,2,117,22,0,      0,0,80,97,116,104,70,105,110,100,101,114,46,102,105,110,      100,95,109,111,100,117,108,101,40,10,0,0,0,114,56,0, @@ -2679,7 +2679,7 @@ const unsigned char _Py_M__importlib[] = {      0,114,201,0,0,0,114,22,1,0,0,114,27,1,0,0,      114,28,1,0,0,114,32,1,0,0,114,197,0,0,0,40,      1,0,0,0,114,69,0,0,0,114,4,0,0,0,114,4, -    0,0,0,114,5,0,0,0,114,21,1,0,0,223,4,0, +    0,0,0,114,5,0,0,0,114,21,1,0,0,225,4,0,      0,115,14,0,0,0,16,2,6,2,18,8,18,17,18,17,      18,27,3,1,114,21,1,0,0,99,1,0,0,0,0,0,      0,0,1,0,0,0,3,0,0,0,66,0,0,0,115,110, @@ -2728,7 +2728,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,83,40,1,0,0,0,78,114,4,0,0,0,40,2,      0,0,0,114,22,0,0,0,114,0,1,0,0,40,1,0,      0,0,114,173,0,0,0,114,4,0,0,0,114,5,0,0, -    0,114,2,1,0,0,73,5,0,0,115,2,0,0,0,6, +    0,114,2,1,0,0,75,5,0,0,115,2,0,0,0,6,      0,117,38,0,0,0,70,105,108,101,70,105,110,100,101,114,      46,95,95,105,110,105,116,95,95,46,60,108,111,99,97,108,      115,62,46,60,103,101,110,101,120,112,114,62,114,104,0,0, @@ -2742,7 +2742,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,114,35,0,0,0,116,7,0,0,0,100,101,116,97,      105,108,115,116,7,0,0,0,108,111,97,100,101,114,115,114,      115,0,0,0,114,4,0,0,0,40,1,0,0,0,114,173, -    0,0,0,114,5,0,0,0,114,79,0,0,0,67,5,0, +    0,0,0,114,5,0,0,0,114,79,0,0,0,69,5,0,      0,115,16,0,0,0,0,4,6,1,19,1,36,1,9,2,      15,1,9,1,12,1,117,19,0,0,0,70,105,108,101,70,      105,110,100,101,114,46,95,95,105,110,105,116,95,95,99,1, @@ -2754,7 +2754,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,0,78,114,126,0,0,0,40,1,0,0,0,114,35,      1,0,0,40,1,0,0,0,114,78,0,0,0,114,4,0,      0,0,114,4,0,0,0,114,5,0,0,0,114,22,1,0, -    0,81,5,0,0,115,2,0,0,0,0,2,117,28,0,0, +    0,83,5,0,0,115,2,0,0,0,0,2,117,28,0,0,      0,70,105,108,101,70,105,110,100,101,114,46,105,110,118,97,      108,105,100,97,116,101,95,99,97,99,104,101,115,99,2,0,      0,0,0,0,0,0,12,0,0,0,13,0,0,0,67,0, @@ -2817,7 +2817,7 @@ const unsigned char _Py_M__importlib[] = {      114,173,0,0,0,116,13,0,0,0,105,110,105,116,95,102,      105,108,101,110,97,109,101,116,9,0,0,0,102,117,108,108,      95,112,97,116,104,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,169,0,0,0,87,5,0,0,115,66,0, +    5,0,0,0,114,169,0,0,0,89,5,0,0,115,66,0,      0,0,0,3,6,1,19,1,3,1,25,1,13,1,11,1,      15,1,10,1,12,2,9,1,9,1,15,2,9,1,6,2,      12,1,18,1,12,1,22,1,10,1,15,1,12,1,26,4, @@ -2855,7 +2855,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,40,2,0,0,0,114,22,0,0,0,116,2,0,0,      0,102,110,114,4,0,0,0,114,4,0,0,0,114,5,0,      0,0,245,9,0,0,0,60,115,101,116,99,111,109,112,62, -    160,5,0,0,115,2,0,0,0,9,0,117,41,0,0,0, +    162,5,0,0,115,2,0,0,0,9,0,117,41,0,0,0,      70,105,108,101,70,105,110,100,101,114,46,95,102,105,108,108,      95,99,97,99,104,101,46,60,108,111,99,97,108,115,62,46,      60,115,101,116,99,111,109,112,62,78,40,17,0,0,0,114, @@ -2874,7 +2874,7 @@ const unsigned char _Py_M__importlib[] = {      110,116,101,110,116,115,114,18,1,0,0,114,66,0,0,0,      114,12,1,0,0,114,0,1,0,0,116,8,0,0,0,110,      101,119,95,110,97,109,101,114,4,0,0,0,114,4,0,0, -    0,114,5,0,0,0,114,39,1,0,0,131,5,0,0,115, +    0,114,5,0,0,0,114,39,1,0,0,133,5,0,0,115,      34,0,0,0,0,2,9,1,3,1,19,1,22,3,11,3,      18,1,18,7,9,1,13,1,24,1,6,1,27,2,6,1,      17,1,9,1,18,1,117,22,0,0,0,70,105,108,101,70, @@ -2916,7 +2916,7 @@ const unsigned char _Py_M__importlib[] = {      0,108,111,97,100,101,114,95,100,101,116,97,105,108,115,114,      4,0,0,0,114,5,0,0,0,244,24,0,0,0,112,97,      116,104,95,104,111,111,107,95,102,111,114,95,70,105,108,101, -    70,105,110,100,101,114,172,5,0,0,115,6,0,0,0,0, +    70,105,110,100,101,114,174,5,0,0,115,6,0,0,0,0,      2,12,1,21,1,117,54,0,0,0,70,105,108,101,70,105,      110,100,101,114,46,112,97,116,104,95,104,111,111,107,46,60,      108,111,99,97,108,115,62,46,112,97,116,104,95,104,111,111, @@ -2925,7 +2925,7 @@ const unsigned char _Py_M__importlib[] = {      45,1,0,0,114,46,1,0,0,114,4,0,0,0,40,2,      0,0,0,114,195,0,0,0,114,45,1,0,0,114,5,0,      0,0,244,9,0,0,0,112,97,116,104,95,104,111,111,107, -    162,5,0,0,115,4,0,0,0,0,10,21,6,117,20,0, +    164,5,0,0,115,4,0,0,0,0,10,21,6,117,20,0,      0,0,70,105,108,101,70,105,110,100,101,114,46,112,97,116,      104,95,104,111,111,107,99,1,0,0,0,0,0,0,0,1,      0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,0, @@ -2934,7 +2934,7 @@ const unsigned char _Py_M__importlib[] = {      105,110,100,101,114,40,123,33,114,125,41,40,2,0,0,0,      114,46,0,0,0,114,35,0,0,0,40,1,0,0,0,114,      78,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,90,0,0,0,180,5,0,0,115,2,0,0, +    0,0,0,114,90,0,0,0,182,5,0,0,115,2,0,0,      0,0,1,117,19,0,0,0,70,105,108,101,70,105,110,100,      101,114,46,95,95,114,101,112,114,95,95,78,40,13,0,0,      0,114,56,0,0,0,114,55,0,0,0,114,57,0,0,0, @@ -2943,7 +2943,7 @@ const unsigned char _Py_M__importlib[] = {      1,0,0,114,201,0,0,0,114,47,1,0,0,114,90,0,      0,0,40,1,0,0,0,114,69,0,0,0,114,4,0,0,      0,114,4,0,0,0,114,5,0,0,0,114,33,1,0,0, -    58,5,0,0,115,16,0,0,0,16,7,6,2,12,14,12, +    60,5,0,0,115,16,0,0,0,16,7,6,2,12,14,12,      4,6,2,12,44,12,31,18,18,114,33,1,0,0,99,1,      0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,66,      0,0,0,115,50,0,0,0,124,0,0,69,101,0,0,90, @@ -2962,7 +2962,7 @@ const unsigned char _Py_M__importlib[] = {      97,0,0,0,244,12,0,0,0,97,99,113,117,105,114,101,      95,108,111,99,107,40,1,0,0,0,114,78,0,0,0,114,      4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,9, -    0,0,0,95,95,101,110,116,101,114,95,95,190,5,0,0, +    0,0,0,95,95,101,110,116,101,114,95,95,192,5,0,0,      115,2,0,0,0,0,2,117,28,0,0,0,95,73,109,112,      111,114,116,76,111,99,107,67,111,110,116,101,120,116,46,95,      95,101,110,116,101,114,95,95,99,4,0,0,0,0,0,0, @@ -2978,14 +2978,14 @@ const unsigned char _Py_M__importlib[] = {      0,0,101,120,99,95,118,97,108,117,101,116,13,0,0,0,      101,120,99,95,116,114,97,99,101,98,97,99,107,114,4,0,      0,0,114,4,0,0,0,114,5,0,0,0,244,8,0,0, -    0,95,95,101,120,105,116,95,95,194,5,0,0,115,2,0, +    0,95,95,101,120,105,116,95,95,196,5,0,0,115,2,0,      0,0,0,2,117,27,0,0,0,95,73,109,112,111,114,116,      76,111,99,107,67,111,110,116,101,120,116,46,95,95,101,120,      105,116,95,95,78,40,6,0,0,0,114,56,0,0,0,114,      55,0,0,0,114,57,0,0,0,114,58,0,0,0,114,50,      1,0,0,114,51,1,0,0,40,1,0,0,0,114,69,0,      0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,114,48,1,0,0,186,5,0,0,115,6,0,0,0,16, +    0,114,48,1,0,0,188,5,0,0,115,6,0,0,0,16,      2,6,2,12,4,114,48,1,0,0,99,3,0,0,0,0,      0,0,0,5,0,0,0,4,0,0,0,67,0,0,0,115,      91,0,0,0,124,1,0,106,0,0,100,1,0,124,2,0, @@ -3009,7 +3009,7 @@ const unsigned char _Py_M__importlib[] = {      101,118,101,108,116,4,0,0,0,98,105,116,115,116,4,0,      0,0,98,97,115,101,114,4,0,0,0,114,4,0,0,0,      114,5,0,0,0,244,13,0,0,0,95,114,101,115,111,108, -    118,101,95,110,97,109,101,199,5,0,0,115,10,0,0,0, +    118,101,95,110,97,109,101,201,5,0,0,115,10,0,0,0,      0,2,22,1,18,1,15,1,10,1,114,54,1,0,0,99,      2,0,0,0,0,0,0,0,4,0,0,0,11,0,0,0,      67,0,0,0,115,138,0,0,0,116,0,0,106,1,0,115, @@ -3032,7 +3032,7 @@ const unsigned char _Py_M__importlib[] = {      114,66,0,0,0,114,35,0,0,0,114,25,1,0,0,114,      173,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,      0,0,0,244,12,0,0,0,95,102,105,110,100,95,109,111, -    100,117,108,101,208,5,0,0,115,20,0,0,0,0,2,9, +    100,117,108,101,210,5,0,0,115,20,0,0,0,0,2,9,      1,19,1,16,1,10,1,24,1,12,2,15,1,4,2,21,      2,114,56,1,0,0,99,3,0,0,0,0,0,0,0,4,      0,0,0,4,0,0,0,67,0,0,0,115,194,0,0,0, @@ -3070,7 +3070,7 @@ const unsigned char _Py_M__importlib[] = {      114,66,0,0,0,114,52,1,0,0,114,53,1,0,0,114,      175,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,      0,0,0,244,13,0,0,0,95,115,97,110,105,116,121,95, -    99,104,101,99,107,225,5,0,0,115,24,0,0,0,0,2, +    99,104,101,99,107,227,5,0,0,115,24,0,0,0,0,2,      15,1,30,1,12,1,15,1,6,1,15,1,15,1,15,1,      6,2,27,1,19,1,114,59,1,0,0,117,20,0,0,0,      78,111,32,109,111,100,117,108,101,32,110,97,109,101,100,32, @@ -3129,7 +3129,7 @@ const unsigned char _Py_M__importlib[] = {      114,236,0,0,0,114,145,0,0,0,114,4,0,0,0,114,      4,0,0,0,114,5,0,0,0,244,23,0,0,0,95,102,      105,110,100,95,97,110,100,95,108,111,97,100,95,117,110,108, -    111,99,107,101,100,244,5,0,0,115,76,0,0,0,0,1, +    111,99,107,101,100,246,5,0,0,115,76,0,0,0,0,1,      6,1,19,1,6,1,15,1,16,2,15,1,11,2,13,1,      3,1,13,1,13,1,22,1,26,1,15,1,12,1,27,3,      9,1,9,1,15,2,13,1,19,2,13,1,6,2,13,1, @@ -3150,7 +3150,7 @@ const unsigned char _Py_M__importlib[] = {      1,0,0,114,87,0,0,0,40,3,0,0,0,114,66,0,      0,0,114,62,1,0,0,114,73,0,0,0,114,4,0,0,      0,114,4,0,0,0,114,5,0,0,0,244,14,0,0,0, -    95,102,105,110,100,95,97,110,100,95,108,111,97,100,38,6, +    95,102,105,110,100,95,97,110,100,95,108,111,97,100,40,6,      0,0,115,14,0,0,0,0,2,3,1,16,2,11,1,10,      1,3,1,17,2,114,64,1,0,0,99,3,0,0,0,0,      0,0,0,5,0,0,0,4,0,0,0,67,0,0,0,115, @@ -3196,7 +3196,7 @@ const unsigned char _Py_M__importlib[] = {      40,5,0,0,0,114,66,0,0,0,114,52,1,0,0,114,      53,1,0,0,114,145,0,0,0,114,140,0,0,0,114,4,      0,0,0,114,4,0,0,0,114,5,0,0,0,114,65,1, -    0,0,51,6,0,0,115,26,0,0,0,0,9,16,1,12, +    0,0,53,6,0,0,115,26,0,0,0,0,9,16,1,12,      1,21,1,10,1,15,1,13,1,13,1,12,1,10,2,15,      1,21,1,10,1,114,65,1,0,0,99,3,0,0,0,0,      0,0,0,6,0,0,0,17,0,0,0,67,0,0,0,115, @@ -3244,7 +3244,7 @@ const unsigned char _Py_M__importlib[] = {      111,109,95,110,97,109,101,114,236,0,0,0,114,4,0,0,      0,114,4,0,0,0,114,5,0,0,0,244,16,0,0,0,      95,104,97,110,100,108,101,95,102,114,111,109,108,105,115,116, -    75,6,0,0,115,34,0,0,0,0,10,15,1,12,1,12, +    77,6,0,0,115,34,0,0,0,0,10,15,1,12,1,12,      1,13,1,15,1,22,1,13,1,15,1,21,1,3,1,17,      1,18,6,18,1,15,1,9,1,32,1,114,71,1,0,0,      99,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0, @@ -3270,7 +3270,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,40,2,0,0,0,244,7,0,0,0,103,108,111,98,      97,108,115,114,52,1,0,0,114,4,0,0,0,114,4,0,      0,0,114,5,0,0,0,244,17,0,0,0,95,99,97,108, -    99,95,95,95,112,97,99,107,97,103,101,95,95,109,6,0, +    99,95,95,95,112,97,99,107,97,103,101,95,95,111,6,0,      0,115,12,0,0,0,0,7,15,1,12,1,10,1,12,1,      25,1,114,73,1,0,0,99,0,0,0,0,0,0,0,0,      3,0,0,0,3,0,0,0,67,0,0,0,115,55,0,0, @@ -3293,7 +3293,7 @@ const unsigned char _Py_M__importlib[] = {      0,116,10,0,0,0,101,120,116,101,110,115,105,111,110,115,      116,6,0,0,0,115,111,117,114,99,101,116,8,0,0,0,      98,121,116,101,99,111,100,101,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,114,215,0,0,0,124,6,0,0, +    0,0,114,5,0,0,0,114,215,0,0,0,126,6,0,0,      115,8,0,0,0,0,5,18,1,12,1,12,1,114,215,0,      0,0,99,5,0,0,0,0,0,0,0,9,0,0,0,5,      0,0,0,67,0,0,0,115,227,0,0,0,124,4,0,100, @@ -3350,7 +3350,7 @@ const unsigned char _Py_M__importlib[] = {      116,8,0,0,0,103,108,111,98,97,108,115,95,114,52,1,      0,0,116,7,0,0,0,99,117,116,95,111,102,102,114,4,      0,0,0,114,4,0,0,0,114,5,0,0,0,244,10,0, -    0,0,95,95,105,109,112,111,114,116,95,95,135,6,0,0, +    0,0,95,95,105,109,112,111,114,116,95,95,137,6,0,0,      115,26,0,0,0,0,11,12,1,15,2,24,1,12,1,18,      1,6,3,12,1,23,1,6,1,4,4,35,3,40,2,114,      77,1,0,0,99,2,0,0,0,0,0,0,0,16,0,0, @@ -3428,7 +3428,7 @@ const unsigned char _Py_M__importlib[] = {      2,0,0,0,114,29,0,0,0,78,40,1,0,0,0,114,      31,0,0,0,40,2,0,0,0,114,22,0,0,0,114,118,      0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,114,2,1,0,0,208,6,0,0,115,2,0,0,0, +    0,0,114,2,1,0,0,210,6,0,0,115,2,0,0,0,      6,0,117,25,0,0,0,95,115,101,116,117,112,46,60,108,      111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,      114,71,0,0,0,117,30,0,0,0,105,109,112,111,114,116, @@ -3467,7 +3467,7 @@ const unsigned char _Py_M__importlib[] = {      0,119,101,97,107,114,101,102,95,109,111,100,117,108,101,116,      13,0,0,0,119,105,110,114,101,103,95,109,111,100,117,108,      101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    244,6,0,0,0,95,115,101,116,117,112,171,6,0,0,115, +    244,6,0,0,0,95,115,101,116,117,112,173,6,0,0,115,      102,0,0,0,0,9,6,1,6,2,12,1,9,2,6,2,      12,1,28,1,15,1,15,1,15,1,12,1,15,1,22,2,      13,1,13,1,15,1,18,2,13,1,20,2,33,1,19,2, @@ -3498,7 +3498,7 @@ const unsigned char _Py_M__importlib[] = {      0,0,116,17,0,0,0,115,117,112,112,111,114,116,101,100,      95,108,111,97,100,101,114,115,114,4,0,0,0,114,4,0,      0,0,114,5,0,0,0,244,8,0,0,0,95,105,110,115, -    116,97,108,108,247,6,0,0,115,16,0,0,0,0,2,13, +    116,97,108,108,249,6,0,0,115,16,0,0,0,0,2,13,      1,9,1,28,1,16,1,16,1,15,1,19,1,114,87,1,      0,0,40,3,0,0,0,117,3,0,0,0,119,105,110,114,      1,0,0,0,114,2,0,0,0,40,77,0,0,0,114,58, @@ -3532,7 +3532,7 @@ const unsigned char _Py_M__importlib[] = {      0,60,109,111,100,117,108,101,62,8,0,0,0,115,140,0,      0,0,6,21,6,3,12,13,12,10,12,9,12,6,12,12,      12,10,12,6,12,7,15,22,12,8,15,3,12,12,6,2, -    6,3,22,4,19,68,19,23,12,19,12,20,12,107,22,1, +    6,3,22,4,19,68,19,23,12,19,12,20,12,109,22,1,      18,2,6,2,9,2,9,1,9,2,15,27,12,23,12,21,      12,12,18,8,12,13,12,11,12,55,12,18,12,11,12,11,      12,13,21,55,21,12,18,12,19,57,19,54,19,50,19,34, diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index 2d6bcda513..645127e84f 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -147,7 +147,7 @@ static void *opcode_targets[256] = {      &&TARGET_LIST_APPEND,      &&TARGET_SET_ADD,      &&TARGET_MAP_ADD, -    &&_unknown_opcode, +    &&TARGET_LOAD_CLASSDEREF,      &&_unknown_opcode,      &&_unknown_opcode,      &&_unknown_opcode,  | 
