[Python-checkins] bpo-42246: Make sure that `f_lasti`, and thus `f_lineno`, is set correctly after raising or reraising an exception (GH-23803)

markshannon webhook-mailer at python.org
Thu Dec 17 08:55:39 EST 2020


https://github.com/python/cpython/commit/bf353f3c2d937772a8cf30b15fd8eb7b82665ccb
commit: bf353f3c2d937772a8cf30b15fd8eb7b82665ccb
branch: master
author: Mark Shannon <mark at hotpy.org>
committer: markshannon <mark at hotpy.org>
date: 2020-12-17T13:55:28Z
summary:

bpo-42246: Make sure that `f_lasti`, and thus `f_lineno`, is set correctly after raising or reraising an exception (GH-23803)

* Ensure that f_lasti is set correctly after an exception is raised to conform to PEP 626.

* Update importlib

* Add NEWS.

files:
A Misc/NEWS.d/next/Core and Builtins/2020-12-16-14-44-21.bpo-42246.RtIEY7.rst
M Doc/library/dis.rst
M Include/opcode.h
M Lib/importlib/_bootstrap_external.py
M Lib/opcode.py
M Lib/test/test_dis.py
M Lib/test/test_exceptions.py
M Python/ceval.c
M Python/compile.c
M Python/importlib.h
M Python/importlib_external.h
M Python/importlib_zipimport.h
M Python/opcode_targets.h

diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index ec64d3daf003a..c09d8338d2c3b 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -708,7 +708,8 @@ iterations of the loop.
 
 .. opcode:: RERAISE
 
-    Re-raises the exception currently on top of the stack.
+    Re-raises the exception currently on top of the stack. If oparg is non-zero,
+    restores ``f_lasti`` of the current frame to its value when the exception was raised.
 
     .. versionadded:: 3.9
 
diff --git a/Include/opcode.h b/Include/opcode.h
index 420c87aa0f24f..998a5ce492d03 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -30,7 +30,6 @@ extern "C" {
 #define BINARY_TRUE_DIVIDE       27
 #define INPLACE_FLOOR_DIVIDE     28
 #define INPLACE_TRUE_DIVIDE      29
-#define RERAISE                  48
 #define WITH_EXCEPT_START        49
 #define GET_AITER                50
 #define GET_ANEXT                51
@@ -96,6 +95,7 @@ extern "C" {
 #define LOAD_GLOBAL             116
 #define IS_OP                   117
 #define CONTAINS_OP             118
+#define RERAISE                 119
 #define JUMP_IF_NOT_EXC_MATCH   121
 #define SETUP_FINALLY           122
 #define LOAD_FAST               124
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index d9e44df409062..354650011e1d9 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -312,6 +312,7 @@ def _write_atomic(path, data, mode=0o666):
 #     Python 3.10a1 3430 (Make 'annotations' future by default)
 #     Python 3.10a1 3431 (New line number table format -- PEP 626)
 #     Python 3.10a2 3432 (Function annotation for MAKE_FUNCTION is changed from dict to tuple bpo-42202)
+#     Python 3.10a2 3433 (RERAISE restores f_lasti if oparg != 0)
 
 #
 # MAGIC must change whenever the bytecode emitted by the compiler may no
@@ -321,7 +322,7 @@ def _write_atomic(path, data, mode=0o666):
 # Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array
 # in PC/launcher.c must also be updated.
 
-MAGIC_NUMBER = (3432).to_bytes(2, 'little') + b'\r\n'
+MAGIC_NUMBER = (3433).to_bytes(2, 'little') + b'\r\n'
 _RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little')  # For import.c
 
 _PYCACHE = '__pycache__'
diff --git a/Lib/opcode.py b/Lib/opcode.py
index ac1aa535f66ff..cc321166e7926 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -83,7 +83,6 @@ def jabs_op(name, op):
 def_op('INPLACE_FLOOR_DIVIDE', 28)
 def_op('INPLACE_TRUE_DIVIDE', 29)
 
-def_op('RERAISE', 48)
 def_op('WITH_EXCEPT_START', 49)
 def_op('GET_AITER', 50)
 def_op('GET_ANEXT', 51)
@@ -161,6 +160,7 @@ def jabs_op(name, op):
 
 def_op('IS_OP', 117)
 def_op('CONTAINS_OP', 118)
+def_op('RERAISE', 119)
 
 jabs_op('JUMP_IF_NOT_EXC_MATCH', 121)
 jrel_op('SETUP_FINALLY', 122)   # Distance to target address
diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py
index f279f75c9614d..786744923eb46 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -313,9 +313,9 @@ def bug42562():
         >>   50 LOAD_CONST               0 (None)
              52 STORE_FAST               0 (e)
              54 DELETE_FAST              0 (e)
-             56 RERAISE
+             56 RERAISE                  1
 
-%3d     >>   58 RERAISE
+%3d     >>   58 RERAISE                  0
 """ % (TRACEBACK_CODE.co_firstlineno + 1,
        TRACEBACK_CODE.co_firstlineno + 2,
        TRACEBACK_CODE.co_firstlineno + 5,
@@ -370,7 +370,7 @@ def _tryfinallyconst(b):
         >>   14 LOAD_FAST                1 (b)
              16 CALL_FUNCTION            0
              18 POP_TOP
-             20 RERAISE
+             20 RERAISE                  0
 """ % (_tryfinally.__code__.co_firstlineno + 1,
        _tryfinally.__code__.co_firstlineno + 2,
        _tryfinally.__code__.co_firstlineno + 4,
@@ -389,7 +389,7 @@ def _tryfinallyconst(b):
         >>   14 LOAD_FAST                0 (b)
              16 CALL_FUNCTION            0
              18 POP_TOP
-             20 RERAISE
+             20 RERAISE                  0
 """ % (_tryfinallyconst.__code__.co_firstlineno + 1,
        _tryfinallyconst.__code__.co_firstlineno + 2,
        _tryfinallyconst.__code__.co_firstlineno + 4,
@@ -1076,7 +1076,7 @@ def jumpy():
   Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=136, starts_line=None, is_jump_target=False),
   Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=138, starts_line=None, is_jump_target=False),
   Instruction(opname='JUMP_FORWARD', opcode=110, arg=46, argval=188, argrepr='to 188', offset=140, starts_line=None, is_jump_target=False),
-  Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=142, starts_line=None, is_jump_target=True),
+  Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=142, starts_line=None, is_jump_target=True),
   Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=144, starts_line=25, is_jump_target=True),
   Instruction(opname='SETUP_WITH', opcode=143, arg=24, argval=172, argrepr='to 172', offset=146, starts_line=None, is_jump_target=False),
   Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=148, starts_line=None, is_jump_target=False),
@@ -1093,7 +1093,7 @@ def jumpy():
   Instruction(opname='JUMP_FORWARD', opcode=110, arg=16, argval=188, argrepr='to 188', offset=170, starts_line=None, is_jump_target=False),
   Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=172, starts_line=None, is_jump_target=True),
   Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=178, argval=178, argrepr='', offset=174, starts_line=None, is_jump_target=False),
-  Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=176, starts_line=None, is_jump_target=False),
+  Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=176, starts_line=None, is_jump_target=False),
   Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=178, starts_line=None, is_jump_target=True),
   Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=180, starts_line=None, is_jump_target=False),
   Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=182, starts_line=None, is_jump_target=False),
@@ -1110,7 +1110,7 @@ def jumpy():
   Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=204, starts_line=None, is_jump_target=False),
   Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=206, starts_line=None, is_jump_target=False),
   Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=208, starts_line=None, is_jump_target=False),
-  Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=210, starts_line=None, is_jump_target=False),
+  Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=210, starts_line=None, is_jump_target=False),
 ]
 
 # One last piece of inspect fodder to check the default line number handling
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index e752ab72ccff3..864422390ad30 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -1488,5 +1488,88 @@ def test_copy_pickle(self):
                 self.assertEqual(exc.path, orig.path)
 
 
+class PEP626Tests(unittest.TestCase):
+
+    def lineno_after_raise(self, f, line):
+        try:
+            f()
+        except Exception as ex:
+            t = ex.__traceback__
+            while t.tb_next:
+                t = t.tb_next
+            frame = t.tb_frame
+            self.assertEqual(frame.f_lineno-frame.f_code.co_firstlineno, line)
+
+    def test_lineno_after_raise_simple(self):
+        def simple():
+            1/0
+            pass
+        self.lineno_after_raise(simple, 1)
+
+    def test_lineno_after_raise_in_except(self):
+        def in_except():
+            try:
+                1/0
+            except:
+                1/0
+                pass
+        self.lineno_after_raise(in_except, 4)
+
+    def test_lineno_after_other_except(self):
+        def other_except():
+            try:
+                1/0
+            except TypeError as ex:
+                pass
+        self.lineno_after_raise(other_except, 3)
+
+    def test_lineno_in_named_except(self):
+        def in_named_except():
+            try:
+                1/0
+            except Exception as ex:
+                1/0
+                pass
+        self.lineno_after_raise(in_named_except, 4)
+
+    def test_lineno_in_try(self):
+        def in_try():
+            try:
+                1/0
+            finally:
+                pass
+        self.lineno_after_raise(in_try, 4)
+
+    def test_lineno_in_finally_normal(self):
+        def in_finally_normal():
+            try:
+                pass
+            finally:
+                1/0
+                pass
+        self.lineno_after_raise(in_finally_normal, 4)
+
+    def test_lineno_in_finally_except(self):
+        def in_finally_except():
+            try:
+                1/0
+            finally:
+                1/0
+                pass
+        self.lineno_after_raise(in_finally_except, 4)
+
+    def test_lineno_after_with(self):
+        class Noop:
+            def __enter__(self):
+                return self
+            def __exit__(self, *args):
+                pass
+        def after_with():
+            with Noop():
+                1/0
+                pass
+        self.lineno_after_raise(after_with, 2)
+
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-12-16-14-44-21.bpo-42246.RtIEY7.rst b/Misc/NEWS.d/next/Core and Builtins/2020-12-16-14-44-21.bpo-42246.RtIEY7.rst
new file mode 100644
index 0000000000000..a3814b6419e4c
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-12-16-14-44-21.bpo-42246.RtIEY7.rst	
@@ -0,0 +1,3 @@
+Make sure that the ``f_lasti`` and ``f_lineno`` attributes of a frame are
+set correctly when an exception is raised or re-raised. Required for PEP
+626.
diff --git a/Python/ceval.c b/Python/ceval.c
index 9de925780e407..f0f39539c97bb 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2430,6 +2430,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
         }
 
         case TARGET(RERAISE): {
+            assert(f->f_iblock > 0);
+            if (oparg) {
+                f->f_lasti = f->f_blockstack[f->f_iblock-1].b_handler;
+            }
             PyObject *exc = POP();
             PyObject *val = POP();
             PyObject *tb = POP();
@@ -4039,7 +4043,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
                 int handler = b->b_handler;
                 _PyErr_StackItem *exc_info = tstate->exc_info;
                 /* Beware, this invalidates all b->b_* fields */
-                PyFrame_BlockSetup(f, EXCEPT_HANDLER, -1, STACK_LEVEL());
+                PyFrame_BlockSetup(f, EXCEPT_HANDLER, f->f_lasti, STACK_LEVEL());
                 PUSH(exc_info->exc_traceback);
                 PUSH(exc_info->exc_value);
                 if (exc_info->exc_type != NULL) {
diff --git a/Python/compile.c b/Python/compile.c
index 2871ffc476f8d..d4dbaf7b6aa77 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -2981,7 +2981,7 @@ compiler_try_finally(struct compiler *c, stmt_ty s)
         return 0;
     VISIT_SEQ(c, stmt, s->v.Try.finalbody);
     compiler_pop_fblock(c, FINALLY_END, end);
-    ADDOP(c, RERAISE);
+    ADDOP_I(c, RERAISE, 0);
     compiler_use_next_block(c, exit);
     return 1;
 }
@@ -3107,7 +3107,7 @@ compiler_try_except(struct compiler *c, stmt_ty s)
             compiler_nameop(c, handler->v.ExceptHandler.name, Store);
             compiler_nameop(c, handler->v.ExceptHandler.name, Del);
 
-            ADDOP(c, RERAISE);
+            ADDOP_I(c, RERAISE, 1);
         }
         else {
             basicblock *cleanup_body;
@@ -3129,7 +3129,7 @@ compiler_try_except(struct compiler *c, stmt_ty s)
         compiler_use_next_block(c, except);
     }
     compiler_pop_fblock(c, EXCEPTION_HANDLER, NULL);
-    ADDOP(c, RERAISE);
+    ADDOP_I(c, RERAISE, 0);
     compiler_use_next_block(c, orelse);
     VISIT_SEQ(c, stmt, s->v.Try.orelse);
     compiler_use_next_block(c, end);
@@ -4759,7 +4759,7 @@ compiler_with_except_finish(struct compiler *c) {
         return 0;
     ADDOP_JUMP(c, POP_JUMP_IF_TRUE, exit);
     NEXT_BLOCK(c);
-    ADDOP(c, RERAISE);
+    ADDOP_I(c, RERAISE, 1);
     compiler_use_next_block(c, exit);
     ADDOP(c, POP_TOP);
     ADDOP(c, POP_TOP);
diff --git a/Python/importlib.h b/Python/importlib.h
index 1caf2f4f742d2..87b8c63ce85a8 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -57,7 +57,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     0,0,0,67,0,0,0,115,38,0,0,0,122,8,124,0,
     106,0,87,0,83,0,4,0,116,1,121,36,1,0,1,0,
     1,0,116,2,124,0,131,1,106,0,6,0,89,0,83,0,
-    48,0,169,1,78,41,3,218,12,95,95,113,117,97,108,110,
+    119,0,169,1,78,41,3,218,12,95,95,113,117,97,108,110,
     97,109,101,95,95,218,14,65,116,116,114,105,98,117,116,101,
     69,114,114,111,114,218,4,116,121,112,101,41,1,218,3,111,
     98,106,169,0,114,5,0,0,0,250,29,60,102,114,111,122,
@@ -159,10 +159,10 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     161,0,114,112,116,7,100,5,124,0,22,0,131,1,130,1,
     124,0,106,8,160,9,100,6,161,1,114,138,124,0,4,0,
     106,10,100,3,55,0,2,0,95,10,87,0,100,4,4,0,
-    4,0,131,3,1,0,110,16,49,0,115,158,48,0,1,0,
+    4,0,131,3,1,0,110,16,49,0,115,158,119,1,1,0,
     1,0,1,0,89,0,1,0,124,0,106,8,160,9,161,0,
     1,0,124,0,106,8,160,11,161,0,1,0,113,20,116,2,
-    124,1,61,0,48,0,41,7,122,185,10,32,32,32,32,32,
+    124,1,61,0,119,0,41,7,122,185,10,32,32,32,32,32,
     32,32,32,65,99,113,117,105,114,101,32,116,104,101,32,109,
     111,100,117,108,101,32,108,111,99,107,46,32,32,73,102,32,
     97,32,112,111,116,101,110,116,105,97,108,32,100,101,97,100,
@@ -197,7 +197,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     0,106,6,114,108,124,0,4,0,106,6,100,3,56,0,2,
     0,95,6,124,0,106,7,160,8,161,0,1,0,87,0,100,
     0,4,0,4,0,131,3,1,0,100,0,83,0,49,0,115,
-    130,48,0,1,0,1,0,1,0,89,0,1,0,100,0,83,
+    130,119,1,1,0,1,0,1,0,89,0,1,0,100,0,83,
     0,41,4,78,250,31,99,97,110,110,111,116,32,114,101,108,
     101,97,115,101,32,117,110,45,97,99,113,117,105,114,101,100,
     32,108,111,99,107,114,25,0,0,0,114,42,0,0,0,41,
@@ -323,12 +323,12 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     67,0,0,0,115,134,0,0,0,116,0,160,1,161,0,1,
     0,122,114,122,14,116,2,124,0,25,0,131,0,125,1,87,
     0,110,22,4,0,116,3,121,46,1,0,1,0,1,0,100,
-    1,125,1,89,0,110,2,48,0,124,1,100,1,117,0,114,
+    1,125,1,89,0,110,2,119,0,124,1,100,1,117,0,114,
     110,116,4,100,1,117,0,114,74,116,5,124,0,131,1,125,
     1,110,8,116,6,124,0,131,1,125,1,124,0,102,1,100,
     2,100,3,132,1,125,2,116,7,160,8,124,1,124,2,161,
     2,116,2,124,0,60,0,87,0,116,0,160,9,161,0,1,
-    0,124,1,83,0,116,0,160,9,161,0,1,0,48,0,41,
+    0,124,1,83,0,116,0,160,9,161,0,1,0,119,0,41,
     4,122,139,71,101,116,32,111,114,32,99,114,101,97,116,101,
     32,116,104,101,32,109,111,100,117,108,101,32,108,111,99,107,
     32,102,111,114,32,97,32,103,105,118,101,110,32,109,111,100,
@@ -343,7 +343,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     1,161,0,1,0,122,34,116,2,160,3,124,1,161,1,124,
     0,117,0,114,30,116,2,124,1,61,0,87,0,116,0,160,
     4,161,0,1,0,100,0,83,0,116,0,160,4,161,0,1,
-    0,48,0,114,0,0,0,0,41,5,218,4,95,105,109,112,
+    0,119,0,114,0,0,0,0,41,5,218,4,95,105,109,112,
     218,12,97,99,113,117,105,114,101,95,108,111,99,107,218,13,
     95,109,111,100,117,108,101,95,108,111,99,107,115,114,38,0,
     0,0,218,12,114,101,108,101,97,115,101,95,108,111,99,107,
@@ -365,7 +365,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     0,0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,
     115,54,0,0,0,116,0,124,0,131,1,125,1,122,12,124,
     1,160,1,161,0,1,0,87,0,110,20,4,0,116,2,121,
-    40,1,0,1,0,1,0,89,0,100,1,83,0,48,0,124,
+    40,1,0,1,0,1,0,89,0,100,1,83,0,119,0,124,
     1,160,3,161,0,1,0,100,1,83,0,41,2,122,189,65,
     99,113,117,105,114,101,115,32,116,104,101,110,32,114,101,108,
     101,97,115,101,115,32,116,104,101,32,109,111,100,117,108,101,
@@ -527,16 +527,16 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     210,0,0,0,116,0,124,0,100,1,100,0,131,3,125,1,
     116,1,124,1,100,2,131,2,114,54,122,12,124,1,160,2,
     124,0,161,1,87,0,83,0,4,0,116,3,121,52,1,0,
-    1,0,1,0,89,0,110,2,48,0,122,10,124,0,106,4,
+    1,0,1,0,89,0,110,2,119,0,122,10,124,0,106,4,
     125,2,87,0,110,18,4,0,116,5,121,82,1,0,1,0,
-    1,0,89,0,110,18,48,0,124,2,100,0,117,1,114,100,
+    1,0,89,0,110,18,119,0,124,2,100,0,117,1,114,100,
     116,6,124,2,131,1,83,0,122,10,124,0,106,7,125,3,
     87,0,110,22,4,0,116,5,121,132,1,0,1,0,1,0,
-    100,3,125,3,89,0,110,2,48,0,122,10,124,0,106,8,
+    100,3,125,3,89,0,110,2,119,0,122,10,124,0,106,8,
     125,4,87,0,110,52,4,0,116,5,121,196,1,0,1,0,
     1,0,124,1,100,0,117,0,114,180,100,4,160,9,124,3,
     161,1,6,0,89,0,83,0,100,5,160,9,124,3,124,1,
-    161,2,6,0,89,0,83,0,48,0,100,6,160,9,124,3,
+    161,2,6,0,89,0,83,0,119,0,100,6,160,9,124,3,
     124,4,161,2,83,0,41,7,78,218,10,95,95,108,111,97,
     100,101,114,95,95,218,11,109,111,100,117,108,101,95,114,101,
     112,114,250,1,63,250,13,60,109,111,100,117,108,101,32,123,
@@ -708,7 +708,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     111,76,124,2,124,1,106,0,107,2,111,76,124,0,106,4,
     124,1,106,4,107,2,111,76,124,0,106,5,124,1,106,5,
     107,2,87,0,83,0,4,0,116,6,121,100,1,0,1,0,
-    1,0,116,7,6,0,89,0,83,0,48,0,114,0,0,0,
+    1,0,116,7,6,0,89,0,83,0,119,0,114,0,0,0,
     0,41,8,114,123,0,0,0,114,20,0,0,0,114,116,0,
     0,0,114,120,0,0,0,218,6,99,97,99,104,101,100,218,
     12,104,97,115,95,108,111,99,97,116,105,111,110,114,2,0,
@@ -785,7 +785,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     100,4,141,3,83,0,124,3,100,2,117,0,114,134,116,0,
     124,1,100,5,131,2,114,130,122,14,124,1,160,4,124,0,
     161,1,125,3,87,0,110,26,4,0,116,5,121,128,1,0,
-    1,0,1,0,100,2,125,3,89,0,110,6,48,0,100,6,
+    1,0,1,0,100,2,125,3,89,0,110,6,119,0,100,6,
     125,3,116,6,124,0,124,1,124,2,124,3,100,7,141,4,
     83,0,41,8,122,53,82,101,116,117,114,110,32,97,32,109,
     111,100,117,108,101,32,115,112,101,99,32,98,97,115,101,100,
@@ -807,20 +807,20 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,
     0,67,0,0,0,115,40,1,0,0,122,10,124,0,106,0,
     125,3,87,0,110,18,4,0,116,1,121,28,1,0,1,0,
-    1,0,89,0,110,14,48,0,124,3,100,0,117,1,114,42,
+    1,0,89,0,110,14,119,0,124,3,100,0,117,1,114,42,
     124,3,83,0,124,0,106,2,125,4,124,1,100,0,117,0,
     114,86,122,10,124,0,106,3,125,1,87,0,110,18,4,0,
-    116,1,121,84,1,0,1,0,1,0,89,0,110,2,48,0,
+    116,1,121,84,1,0,1,0,1,0,89,0,110,2,119,0,
     122,10,124,0,106,4,125,5,87,0,110,22,4,0,116,1,
     121,118,1,0,1,0,1,0,100,0,125,5,89,0,110,2,
-    48,0,124,2,100,0,117,0,114,174,124,5,100,0,117,0,
+    119,0,124,2,100,0,117,0,114,174,124,5,100,0,117,0,
     114,170,122,10,124,1,106,5,125,2,87,0,110,26,4,0,
     116,1,121,168,1,0,1,0,1,0,100,0,125,2,89,0,
-    110,6,48,0,124,5,125,2,122,10,124,0,106,6,125,6,
+    110,6,119,0,124,5,125,2,122,10,124,0,106,6,125,6,
     87,0,110,22,4,0,116,1,121,206,1,0,1,0,1,0,
-    100,0,125,6,89,0,110,2,48,0,122,14,116,7,124,0,
+    100,0,125,6,89,0,110,2,119,0,122,14,116,7,124,0,
     106,8,131,1,125,7,87,0,110,22,4,0,116,1,121,244,
-    1,0,1,0,1,0,100,0,125,7,89,0,110,2,48,0,
+    1,0,1,0,1,0,100,0,125,7,89,0,110,2,119,0,
     116,9,124,4,124,1,124,2,100,1,141,3,125,3,124,5,
     100,0,117,0,144,1,114,18,100,2,110,2,100,3,124,3,
     95,10,124,6,124,3,95,11,124,7,124,3,95,12,124,3,
@@ -846,7 +846,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     0,115,214,1,0,0,124,2,115,20,116,0,124,1,100,1,
     100,0,131,3,100,0,117,0,114,52,122,12,124,0,106,1,
     124,1,95,2,87,0,110,18,4,0,116,3,121,50,1,0,
-    1,0,1,0,89,0,110,2,48,0,124,2,115,72,116,0,
+    1,0,1,0,89,0,110,2,119,0,124,2,115,72,116,0,
     124,1,100,2,100,0,131,3,100,0,117,0,114,174,124,0,
     106,4,125,3,124,3,100,0,117,0,114,144,124,0,106,5,
     100,0,117,1,114,144,116,6,100,0,117,0,114,108,116,7,
@@ -854,25 +854,25 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     125,3,124,0,106,5,124,3,95,10,124,3,124,0,95,4,
     100,0,124,1,95,11,122,10,124,3,124,1,95,12,87,0,
     110,18,4,0,116,3,121,172,1,0,1,0,1,0,89,0,
-    110,2,48,0,124,2,115,194,116,0,124,1,100,3,100,0,
+    110,2,119,0,124,2,115,194,116,0,124,1,100,3,100,0,
     131,3,100,0,117,0,114,226,122,12,124,0,106,13,124,1,
     95,14,87,0,110,18,4,0,116,3,121,224,1,0,1,0,
-    1,0,89,0,110,2,48,0,122,10,124,0,124,1,95,15,
+    1,0,89,0,110,2,119,0,122,10,124,0,124,1,95,15,
     87,0,110,18,4,0,116,3,121,254,1,0,1,0,1,0,
-    89,0,110,2,48,0,124,2,144,1,115,24,116,0,124,1,
+    89,0,110,2,119,0,124,2,144,1,115,24,116,0,124,1,
     100,4,100,0,131,3,100,0,117,0,144,1,114,70,124,0,
     106,5,100,0,117,1,144,1,114,70,122,12,124,0,106,5,
     124,1,95,16,87,0,110,20,4,0,116,3,144,1,121,68,
-    1,0,1,0,1,0,89,0,110,2,48,0,124,0,106,17,
+    1,0,1,0,1,0,89,0,110,2,119,0,124,0,106,17,
     144,1,114,210,124,2,144,1,115,102,116,0,124,1,100,5,
     100,0,131,3,100,0,117,0,144,1,114,136,122,12,124,0,
     106,18,124,1,95,11,87,0,110,20,4,0,116,3,144,1,
-    121,134,1,0,1,0,1,0,89,0,110,2,48,0,124,2,
+    121,134,1,0,1,0,1,0,89,0,110,2,119,0,124,2,
     144,1,115,160,116,0,124,1,100,6,100,0,131,3,100,0,
     117,0,144,1,114,210,124,0,106,19,100,0,117,1,144,1,
     114,210,122,14,124,0,106,19,124,1,95,20,87,0,124,1,
     83,0,4,0,116,3,144,1,121,208,1,0,1,0,1,0,
-    89,0,124,1,83,0,48,0,124,1,83,0,41,7,78,114,
+    89,0,124,1,83,0,119,0,124,1,83,0,41,7,78,114,
     9,0,0,0,114,106,0,0,0,218,11,95,95,112,97,99,
     107,97,103,101,95,95,114,148,0,0,0,114,115,0,0,0,
     114,146,0,0,0,41,21,114,13,0,0,0,114,20,0,0,
@@ -953,9 +953,9 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     1,1,0,87,0,116,2,106,3,160,17,124,0,106,0,161,
     1,125,1,124,1,116,2,106,3,124,0,106,0,60,0,110,
     28,116,2,106,3,160,17,124,0,106,0,161,1,125,1,124,
-    1,116,2,106,3,124,0,106,0,60,0,48,0,87,0,100,
+    1,116,2,106,3,124,0,106,0,60,0,119,0,87,0,100,
     3,4,0,4,0,131,3,1,0,124,1,83,0,49,0,144,
-    1,115,12,48,0,1,0,1,0,1,0,89,0,1,0,124,
+    1,115,12,119,1,1,0,1,0,1,0,89,0,1,0,124,
     1,83,0,41,9,122,70,69,120,101,99,117,116,101,32,116,
     104,101,32,115,112,101,99,39,115,32,115,112,101,99,105,102,
     105,101,100,32,109,111,100,117,108,101,32,105,110,32,97,110,
@@ -992,15 +992,15 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     3,106,4,124,0,106,2,60,0,116,6,124,1,100,1,100,
     0,131,3,100,0,117,0,114,140,122,12,124,0,106,0,124,
     1,95,7,87,0,110,18,4,0,116,8,121,138,1,0,1,
-    0,1,0,89,0,110,2,48,0,116,6,124,1,100,2,100,
+    0,1,0,89,0,110,2,119,0,116,6,124,1,100,2,100,
     0,131,3,100,0,117,0,114,216,122,40,124,1,106,9,124,
     1,95,10,116,11,124,1,100,3,131,2,115,194,124,0,106,
     2,160,12,100,4,161,1,100,5,25,0,124,1,95,10,87,
     0,110,18,4,0,116,8,121,214,1,0,1,0,1,0,89,
-    0,110,2,48,0,116,6,124,1,100,6,100,0,131,3,100,
+    0,110,2,119,0,116,6,124,1,100,6,100,0,131,3,100,
     0,117,0,144,1,114,14,122,12,124,0,124,1,95,13,87,
     0,124,1,83,0,4,0,116,8,144,1,121,12,1,0,1,
-    0,1,0,89,0,124,1,83,0,48,0,124,1,83,0,41,
+    0,1,0,89,0,124,1,83,0,119,0,124,1,83,0,41,
     7,78,114,106,0,0,0,114,152,0,0,0,114,148,0,0,
     0,114,135,0,0,0,114,25,0,0,0,114,113,0,0,0,
     41,14,114,116,0,0,0,114,164,0,0,0,114,20,0,0,
@@ -1028,10 +1028,10 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     14,124,2,161,1,1,0,87,0,110,40,1,0,1,0,1,
     0,122,14,116,9,106,10,124,0,106,11,61,0,87,0,130,
     0,4,0,116,15,121,176,1,0,1,0,1,0,89,0,130,
-    0,48,0,116,9,106,10,160,16,124,0,106,11,161,1,125,
+    0,119,0,116,9,106,10,160,16,124,0,106,11,161,1,125,
     2,124,2,116,9,106,10,124,0,106,11,60,0,116,17,100,
     6,124,0,106,11,124,0,106,0,131,3,1,0,87,0,100,
-    7,124,0,95,8,124,2,83,0,100,7,124,0,95,8,48,
+    7,124,0,95,8,124,2,83,0,100,7,124,0,95,8,119,
     0,41,8,78,114,157,0,0,0,114,162,0,0,0,84,114,
     161,0,0,0,114,19,0,0,0,122,18,105,109,112,111,114,
     116,32,123,33,114,125,32,35,32,123,33,114,125,70,41,18,
@@ -1053,7 +1053,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     0,67,0,0,0,115,54,0,0,0,116,0,124,0,106,1,
     131,1,143,24,1,0,116,2,124,0,131,1,87,0,2,0,
     100,1,4,0,4,0,131,3,1,0,83,0,49,0,115,40,
-    48,0,1,0,1,0,1,0,89,0,1,0,100,1,83,0,
+    119,1,1,0,1,0,1,0,89,0,1,0,100,1,83,0,
     41,2,122,191,82,101,116,117,114,110,32,97,32,110,101,119,
     32,109,111,100,117,108,101,32,111,98,106,101,99,116,44,32,
     108,111,97,100,101,100,32,98,121,32,116,104,101,32,115,112,
@@ -1429,14 +1429,14 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     4,0,116,9,121,128,1,0,1,0,1,0,116,10,124,5,
     124,0,124,1,131,3,125,7,124,7,100,1,117,0,114,124,
     89,0,87,0,100,1,4,0,4,0,131,3,1,0,113,52,
-    89,0,110,14,48,0,124,6,124,0,124,1,124,2,131,3,
+    89,0,110,14,119,0,124,6,124,0,124,1,124,2,131,3,
     125,7,87,0,100,1,4,0,4,0,131,3,1,0,110,16,
-    49,0,115,162,48,0,1,0,1,0,1,0,89,0,1,0,
+    49,0,115,162,119,1,1,0,1,0,1,0,89,0,1,0,
     124,7,100,1,117,1,114,52,124,4,144,1,115,16,124,0,
     116,0,106,6,118,0,144,1,114,16,116,0,106,6,124,0,
     25,0,125,8,122,10,124,8,106,11,125,9,87,0,110,26,
     4,0,116,9,121,244,1,0,1,0,1,0,124,7,6,0,
-    89,0,2,0,1,0,83,0,48,0,124,9,100,1,117,0,
+    89,0,2,0,1,0,83,0,119,0,124,9,100,1,117,0,
     144,1,114,8,124,7,2,0,1,0,83,0,124,9,2,0,
     1,0,83,0,124,7,2,0,1,0,83,0,100,1,83,0,
     41,4,122,21,70,105,110,100,32,97,32,109,111,100,117,108,
@@ -1500,7 +1500,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     1,106,2,124,3,25,0,125,4,122,10,124,4,106,4,125,
     2,87,0,110,44,4,0,116,5,121,126,1,0,1,0,1,
     0,116,6,100,3,23,0,160,7,124,0,124,3,161,2,125,
-    5,116,8,124,5,124,0,100,4,141,2,100,0,130,2,48,
+    5,116,8,124,5,124,0,100,4,141,2,100,0,130,2,119,
     0,116,9,124,0,124,2,131,2,125,6,124,6,100,0,117,
     0,114,164,116,8,116,6,160,7,124,0,161,1,124,0,100,
     4,141,2,130,1,116,10,124,6,131,1,125,7,124,3,144,
@@ -1509,7 +1509,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     4,124,8,124,7,131,3,1,0,87,0,124,7,83,0,4,
     0,116,5,144,1,121,14,1,0,1,0,1,0,100,6,124,
     3,155,2,100,7,124,8,155,2,157,4,125,5,116,12,160,
-    13,124,5,116,14,161,2,1,0,89,0,124,7,83,0,48,
+    13,124,5,116,14,161,2,1,0,89,0,124,7,83,0,119,
     0,124,7,83,0,41,8,78,114,135,0,0,0,114,25,0,
     0,0,122,23,59,32,123,33,114,125,32,105,115,32,110,111,
     116,32,97,32,112,97,99,107,97,103,101,114,19,0,0,0,
@@ -1540,7 +1540,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     2,116,4,117,0,114,56,116,5,124,0,124,1,131,2,87,
     0,2,0,100,1,4,0,4,0,131,3,1,0,83,0,87,
     0,100,1,4,0,4,0,131,3,1,0,110,16,49,0,115,
-    76,48,0,1,0,1,0,1,0,89,0,1,0,124,2,100,
+    76,119,1,1,0,1,0,1,0,89,0,1,0,124,2,100,
     1,117,0,114,116,100,2,160,6,124,0,161,1,125,3,116,
     7,124,3,124,0,100,3,141,2,130,1,116,8,124,0,131,
     1,1,0,124,2,83,0,41,4,122,25,70,105,110,100,32,
@@ -1602,8 +1602,8 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
     4,4,0,116,10,121,214,1,0,125,7,1,0,122,42,124,
     7,106,11,124,6,107,2,114,200,116,12,106,13,160,14,124,
     6,116,15,161,2,100,10,117,1,114,200,87,0,89,0,100,
-    10,125,7,126,7,113,4,130,0,100,10,125,7,126,7,48,
-    0,124,0,83,0,48,0,41,11,122,238,70,105,103,117,114,
+    10,125,7,126,7,113,4,130,0,100,10,125,7,126,7,119,
+    1,124,0,83,0,119,0,41,11,122,238,70,105,103,117,114,
     101,32,111,117,116,32,119,104,97,116,32,95,95,105,109,112,
     111,114,116,95,95,32,115,104,111,117,108,100,32,114,101,116,
     117,114,110,46,10,10,32,32,32,32,84,104,101,32,105,109,
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index fee8f44f79cdb..e420ef86662a9 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -230,7 +230,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,48,
     0,0,0,122,12,116,0,124,0,131,1,125,2,87,0,110,
     20,4,0,116,1,121,32,1,0,1,0,1,0,89,0,100,
-    1,83,0,48,0,124,2,106,2,100,2,64,0,124,1,107,
+    1,83,0,119,0,124,2,106,2,100,2,64,0,124,1,107,
     2,83,0,41,4,122,49,84,101,115,116,32,119,104,101,116,
     104,101,114,32,116,104,101,32,112,97,116,104,32,105,115,32,
     116,104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,
@@ -287,12 +287,12 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     6,66,0,124,2,100,2,64,0,161,3,125,4,122,72,116,
     7,160,8,124,4,100,3,161,2,143,26,125,5,124,5,160,
     9,124,1,161,1,1,0,87,0,100,4,4,0,4,0,131,
-    3,1,0,110,16,49,0,115,94,48,0,1,0,1,0,1,
+    3,1,0,110,16,49,0,115,94,119,1,1,0,1,0,1,
     0,89,0,1,0,116,2,160,10,124,3,124,0,161,2,1,
     0,87,0,100,4,83,0,4,0,116,11,121,168,1,0,1,
     0,1,0,122,14,116,2,160,12,124,3,161,1,1,0,87,
     0,130,0,4,0,116,11,121,166,1,0,1,0,1,0,89,
-    0,130,0,48,0,48,0,41,5,122,162,66,101,115,116,45,
+    0,130,0,119,0,119,0,41,5,122,162,66,101,115,116,45,
     101,102,102,111,114,116,32,102,117,110,99,116,105,111,110,32,
     116,111,32,119,114,105,116,101,32,100,97,116,97,32,116,111,
     32,97,32,112,97,116,104,32,97,116,111,109,105,99,97,108,
@@ -317,7 +317,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,0,115,36,0,0,0,16,5,6,1,22,1,4,255,
     2,2,14,3,40,1,18,1,12,1,2,1,12,1,2,3,
     12,254,2,1,2,1,2,255,2,1,255,128,114,77,0,0,
-    0,105,104,13,0,0,114,39,0,0,0,114,29,0,0,0,
+    0,105,105,13,0,0,114,39,0,0,0,114,29,0,0,0,
     115,2,0,0,0,13,10,90,11,95,95,112,121,99,97,99,
     104,101,95,95,122,4,111,112,116,45,122,3,46,112,121,122,
     4,46,112,121,119,122,4,46,112,121,99,41,1,218,12,111,
@@ -431,7 +431,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     97,108,109,111,115,116,95,102,105,108,101,110,97,109,101,218,
     8,102,105,108,101,110,97,109,101,114,7,0,0,0,114,7,
     0,0,0,114,8,0,0,0,218,17,99,97,99,104,101,95,
-    102,114,111,109,95,115,111,117,114,99,101,84,1,0,0,115,
+    102,114,111,109,95,115,111,117,114,99,101,85,1,0,0,115,
     74,0,0,0,8,18,6,1,2,1,4,255,8,2,4,1,
     8,1,12,1,10,1,12,1,16,1,8,1,8,1,8,1,
     24,1,8,1,12,1,6,1,8,2,8,1,8,1,8,1,
@@ -512,7 +512,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     90,9,111,112,116,95,108,101,118,101,108,90,13,98,97,115,
     101,95,102,105,108,101,110,97,109,101,114,7,0,0,0,114,
     7,0,0,0,114,8,0,0,0,218,17,115,111,117,114,99,
-    101,95,102,114,111,109,95,99,97,99,104,101,155,1,0,0,
+    101,95,102,114,111,109,95,99,97,99,104,101,156,1,0,0,
     115,62,0,0,0,12,9,8,1,10,1,12,1,4,1,10,
     1,12,1,14,1,16,1,4,1,4,1,12,1,8,1,8,
     1,2,1,8,255,10,2,8,1,14,1,10,1,16,1,10,
@@ -526,7 +526,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     83,0,122,12,116,3,124,0,131,1,125,4,87,0,110,34,
     4,0,116,4,116,5,102,2,121,106,1,0,1,0,1,0,
     124,0,100,2,100,5,133,2,25,0,125,4,89,0,110,2,
-    48,0,116,6,124,4,131,1,114,120,124,4,83,0,124,0,
+    119,0,116,6,124,4,131,1,114,120,124,4,83,0,124,0,
     83,0,41,7,122,188,67,111,110,118,101,114,116,32,97,32,
     98,121,116,101,99,111,100,101,32,102,105,108,101,32,112,97,
     116,104,32,116,111,32,97,32,115,111,117,114,99,101,32,112,
@@ -548,26 +548,26 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,101,
     95,112,97,116,104,114,7,0,0,0,114,7,0,0,0,114,
     8,0,0,0,218,15,95,103,101,116,95,115,111,117,114,99,
-    101,102,105,108,101,195,1,0,0,115,22,0,0,0,12,7,
+    101,102,105,108,101,196,1,0,0,115,22,0,0,0,12,7,
     4,1,16,1,24,1,4,1,2,1,12,1,16,1,18,1,
     16,1,255,128,114,113,0,0,0,99,1,0,0,0,0,0,
     0,0,0,0,0,0,1,0,0,0,8,0,0,0,67,0,
     0,0,115,68,0,0,0,124,0,160,0,116,1,116,2,131,
     1,161,1,114,46,122,10,116,3,124,0,131,1,87,0,83,
     0,4,0,116,4,121,44,1,0,1,0,1,0,89,0,100,
-    0,83,0,48,0,124,0,160,0,116,1,116,5,131,1,161,
+    0,83,0,119,0,124,0,160,0,116,1,116,5,131,1,161,
     1,114,64,124,0,83,0,100,0,83,0,169,1,78,41,6,
     218,8,101,110,100,115,119,105,116,104,218,5,116,117,112,108,
     101,114,106,0,0,0,114,102,0,0,0,114,88,0,0,0,
     114,94,0,0,0,41,1,114,101,0,0,0,114,7,0,0,
     0,114,7,0,0,0,114,8,0,0,0,218,11,95,103,101,
-    116,95,99,97,99,104,101,100,214,1,0,0,115,18,0,0,
+    116,95,99,97,99,104,101,100,215,1,0,0,115,18,0,0,
     0,14,1,2,1,10,1,12,1,8,1,14,1,4,1,4,
     2,255,128,114,117,0,0,0,99,1,0,0,0,0,0,0,
     0,0,0,0,0,2,0,0,0,8,0,0,0,67,0,0,
     0,115,50,0,0,0,122,14,116,0,124,0,131,1,106,1,
     125,1,87,0,110,22,4,0,116,2,121,36,1,0,1,0,
-    1,0,100,1,125,1,89,0,110,2,48,0,124,1,100,2,
+    1,0,100,1,125,1,89,0,110,2,119,0,124,1,100,2,
     79,0,125,1,124,1,83,0,41,4,122,51,67,97,108,99,
     117,108,97,116,101,32,116,104,101,32,109,111,100,101,32,112,
     101,114,109,105,115,115,105,111,110,115,32,102,111,114,32,97,
@@ -576,7 +576,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,114,59,0,0,0,114,58,0,0,0,41,2,114,52,0,
     0,0,114,60,0,0,0,114,7,0,0,0,114,7,0,0,
     0,114,8,0,0,0,218,10,95,99,97,108,99,95,109,111,
-    100,101,226,1,0,0,115,14,0,0,0,2,2,14,1,12,
+    100,101,227,1,0,0,115,14,0,0,0,2,2,14,1,12,
     1,10,1,8,3,4,1,255,128,114,119,0,0,0,99,1,
     0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,
     0,0,0,3,0,0,0,115,52,0,0,0,100,6,135,0,
@@ -613,7 +613,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,0,218,4,97,114,103,115,218,6,107,119,97,114,103,
     115,169,1,218,6,109,101,116,104,111,100,114,7,0,0,0,
     114,8,0,0,0,218,19,95,99,104,101,99,107,95,110,97,
-    109,101,95,119,114,97,112,112,101,114,246,1,0,0,115,20,
+    109,101,95,119,114,97,112,112,101,114,247,1,0,0,115,20,
     0,0,0,8,1,8,1,10,1,4,1,8,1,2,255,2,
     1,6,255,24,2,255,128,122,40,95,99,104,101,99,107,95,
     110,97,109,101,46,60,108,111,99,97,108,115,62,46,95,99,
@@ -631,7 +631,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     101,116,97,116,116,114,218,8,95,95,100,105,99,116,95,95,
     218,6,117,112,100,97,116,101,41,3,90,3,110,101,119,90,
     3,111,108,100,114,75,0,0,0,114,7,0,0,0,114,7,
-    0,0,0,114,8,0,0,0,218,5,95,119,114,97,112,3,
+    0,0,0,114,8,0,0,0,218,5,95,119,114,97,112,4,
     2,0,0,115,12,0,0,0,8,1,10,1,18,1,2,128,
     18,1,255,128,122,26,95,99,104,101,99,107,95,110,97,109,
     101,46,60,108,111,99,97,108,115,62,46,95,119,114,97,112,
@@ -639,7 +639,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     112,114,138,0,0,0,41,3,114,127,0,0,0,114,128,0,
     0,0,114,138,0,0,0,114,7,0,0,0,114,126,0,0,
     0,114,8,0,0,0,218,11,95,99,104,101,99,107,95,110,
-    97,109,101,238,1,0,0,115,14,0,0,0,14,8,8,10,
+    97,109,101,239,1,0,0,115,14,0,0,0,14,8,8,10,
     8,1,8,2,10,6,4,1,255,128,114,140,0,0,0,99,
     2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
     6,0,0,0,67,0,0,0,115,60,0,0,0,124,0,160,
@@ -667,7 +667,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     6,108,111,97,100,101,114,218,8,112,111,114,116,105,111,110,
     115,218,3,109,115,103,114,7,0,0,0,114,7,0,0,0,
     114,8,0,0,0,218,17,95,102,105,110,100,95,109,111,100,
-    117,108,101,95,115,104,105,109,13,2,0,0,115,12,0,0,
+    117,108,101,95,115,104,105,109,14,2,0,0,115,12,0,0,
     0,14,10,16,1,4,1,22,1,4,1,255,128,114,147,0,
     0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,6,
     0,0,0,4,0,0,0,67,0,0,0,115,166,0,0,0,
@@ -734,7 +734,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     218,11,101,120,99,95,100,101,116,97,105,108,115,90,5,109,
     97,103,105,99,114,98,0,0,0,114,16,0,0,0,114,7,
     0,0,0,114,7,0,0,0,114,8,0,0,0,218,13,95,
-    99,108,97,115,115,105,102,121,95,112,121,99,30,2,0,0,
+    99,108,97,115,115,105,102,121,95,112,121,99,31,2,0,0,
     115,30,0,0,0,12,16,8,1,16,1,12,1,16,1,12,
     1,10,1,12,1,8,1,16,1,8,2,16,1,16,1,4,
     1,255,128,114,156,0,0,0,99,5,0,0,0,0,0,0,
@@ -790,7 +790,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     155,0,0,0,114,98,0,0,0,114,7,0,0,0,114,7,
     0,0,0,114,8,0,0,0,218,23,95,118,97,108,105,100,
     97,116,101,95,116,105,109,101,115,116,97,109,112,95,112,121,
-    99,63,2,0,0,115,20,0,0,0,24,19,10,1,12,1,
+    99,64,2,0,0,115,20,0,0,0,24,19,10,1,12,1,
     16,1,8,1,22,1,2,255,22,2,8,254,255,128,114,160,
     0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,
     4,0,0,0,4,0,0,0,67,0,0,0,115,42,0,0,
@@ -836,7 +836,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     115,111,117,114,99,101,95,104,97,115,104,114,121,0,0,0,
     114,155,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
     8,0,0,0,218,18,95,118,97,108,105,100,97,116,101,95,
-    104,97,115,104,95,112,121,99,91,2,0,0,115,16,0,0,
+    104,97,115,104,95,112,121,99,92,2,0,0,115,16,0,0,
     0,16,17,2,1,8,1,4,255,2,2,6,254,4,255,255,
     128,114,162,0,0,0,99,4,0,0,0,0,0,0,0,0,
     0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115,
@@ -860,7 +860,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,114,121,0,0,0,114,111,0,0,0,114,112,0,0,0,
     218,4,99,111,100,101,114,7,0,0,0,114,7,0,0,0,
     114,8,0,0,0,218,17,95,99,111,109,112,105,108,101,95,
-    98,121,116,101,99,111,100,101,115,2,0,0,115,20,0,0,
+    98,121,116,101,99,111,100,101,116,2,0,0,115,20,0,0,
     0,10,2,10,1,12,1,8,1,12,1,4,1,10,2,4,
     1,6,255,255,128,114,169,0,0,0,99,3,0,0,0,0,
     0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,
@@ -878,7 +878,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,168,0,0,0,218,5,109,116,105,109,101,114,159,0,0,
     0,114,37,0,0,0,114,7,0,0,0,114,7,0,0,0,
     114,8,0,0,0,218,22,95,99,111,100,101,95,116,111,95,
-    116,105,109,101,115,116,97,109,112,95,112,121,99,128,2,0,
+    116,105,109,101,115,116,97,109,112,95,112,121,99,129,2,0,
     0,115,14,0,0,0,8,2,14,1,14,1,14,1,16,1,
     4,1,255,128,114,174,0,0,0,84,99,3,0,0,0,0,
     0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,
@@ -897,7 +897,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     99,104,101,99,107,101,100,114,37,0,0,0,114,16,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
     218,17,95,99,111,100,101,95,116,111,95,104,97,115,104,95,
-    112,121,99,138,2,0,0,115,16,0,0,0,8,2,12,1,
+    112,121,99,139,2,0,0,115,16,0,0,0,8,2,12,1,
     14,1,16,1,10,1,16,1,4,1,255,128,114,175,0,0,
     0,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0,
     0,0,6,0,0,0,67,0,0,0,115,62,0,0,0,100,
@@ -924,7 +924,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     100,108,105,110,101,218,8,101,110,99,111,100,105,110,103,90,
     15,110,101,119,108,105,110,101,95,100,101,99,111,100,101,114,
     114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
-    13,100,101,99,111,100,101,95,115,111,117,114,99,101,149,2,
+    13,100,101,99,111,100,101,95,115,111,117,114,99,101,150,2,
     0,0,115,12,0,0,0,8,5,12,1,10,1,12,1,20,
     1,255,128,114,180,0,0,0,169,2,114,144,0,0,0,218,
     26,115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,
@@ -933,7 +933,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     67,0,0,0,115,8,1,0,0,124,1,100,1,117,0,114,
     56,100,2,125,1,116,0,124,2,100,3,131,2,114,66,122,
     14,124,2,160,1,124,0,161,1,125,1,87,0,110,28,4,
-    0,116,2,121,54,1,0,1,0,1,0,89,0,110,12,48,
+    0,116,2,121,54,1,0,1,0,1,0,89,0,110,12,119,
     0,116,3,160,4,124,1,161,1,125,1,116,5,106,6,124,
     0,124,2,124,1,100,4,141,3,125,4,100,5,124,4,95,
     7,124,2,100,1,117,0,114,148,116,8,131,0,68,0,93,
@@ -942,7 +942,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     2,124,4,95,11,1,0,113,148,100,1,83,0,124,3,116,
     12,117,0,114,212,116,0,124,2,100,6,131,2,114,218,122,
     14,124,2,160,13,124,0,161,1,125,7,87,0,110,18,4,
-    0,116,2,121,198,1,0,1,0,1,0,89,0,110,20,48,
+    0,116,2,121,198,1,0,1,0,1,0,89,0,110,20,119,
     0,124,7,114,218,103,0,124,4,95,14,110,6,124,3,124,
     4,95,14,124,4,106,14,103,0,107,2,144,1,114,4,124,
     1,144,1,114,4,116,15,124,1,131,1,100,7,25,0,125,
@@ -986,7 +986,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,90,7,100,105,114,110,97,109,101,114,7,0,0,0,
     114,7,0,0,0,114,8,0,0,0,218,23,115,112,101,99,
     95,102,114,111,109,95,102,105,108,101,95,108,111,99,97,116,
-    105,111,110,166,2,0,0,115,64,0,0,0,8,12,4,4,
+    105,111,110,167,2,0,0,115,64,0,0,0,8,12,4,4,
     10,1,2,2,14,1,12,1,6,1,10,2,16,8,6,1,
     8,3,14,1,14,1,10,1,6,1,4,1,4,2,8,3,
     10,2,2,1,14,1,12,1,6,1,4,2,8,1,6,2,
@@ -1017,14 +1017,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,115,50,0,0,0,122,16,116,0,160,1,116,0,106,2,
     124,0,161,2,87,0,83,0,4,0,116,3,121,48,1,0,
     1,0,1,0,116,0,160,1,116,0,106,4,124,0,161,2,
-    6,0,89,0,83,0,48,0,114,114,0,0,0,41,5,218,
+    6,0,89,0,83,0,119,0,114,114,0,0,0,41,5,218,
     6,119,105,110,114,101,103,90,7,79,112,101,110,75,101,121,
     90,17,72,75,69,89,95,67,85,82,82,69,78,84,95,85,
     83,69,82,114,58,0,0,0,90,18,72,75,69,89,95,76,
     79,67,65,76,95,77,65,67,72,73,78,69,114,19,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
     218,14,95,111,112,101,110,95,114,101,103,105,115,116,114,121,
-    246,2,0,0,115,10,0,0,0,2,2,16,1,12,1,20,
+    247,2,0,0,115,10,0,0,0,2,2,16,1,12,1,20,
     1,255,128,122,36,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,121,99,2,0,0,0,0,0,
@@ -1035,9 +1035,9 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,100,3,141,2,125,3,122,60,124,0,160,6,124,3,161,
     1,143,28,125,4,116,7,160,8,124,4,100,4,161,2,125,
     5,87,0,100,0,4,0,4,0,131,3,1,0,110,16,49,
-    0,115,94,48,0,1,0,1,0,1,0,89,0,1,0,87,
+    0,115,94,119,1,1,0,1,0,1,0,89,0,1,0,87,
     0,124,5,83,0,4,0,116,9,121,128,1,0,1,0,1,
-    0,89,0,100,0,83,0,48,0,41,5,78,122,5,37,100,
+    0,89,0,100,0,83,0,119,0,41,5,78,122,5,37,100,
     46,37,100,114,39,0,0,0,41,2,114,143,0,0,0,90,
     11,115,121,115,95,118,101,114,115,105,111,110,114,10,0,0,
     0,41,10,218,11,68,69,66,85,71,95,66,85,73,76,68,
@@ -1051,7 +1051,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     20,0,0,0,90,4,104,107,101,121,218,8,102,105,108,101,
     112,97,116,104,114,7,0,0,0,114,7,0,0,0,114,8,
     0,0,0,218,16,95,115,101,97,114,99,104,95,114,101,103,
-    105,115,116,114,121,253,2,0,0,115,26,0,0,0,6,2,
+    105,115,116,114,121,254,2,0,0,115,26,0,0,0,6,2,
     8,1,6,2,6,1,16,1,6,255,2,2,12,1,44,1,
     4,3,12,254,8,1,255,128,122,38,87,105,110,100,111,119,
     115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,
@@ -1061,7 +1061,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,160,0,124,1,161,1,125,4,124,4,100,0,117,0,114,
     22,100,0,83,0,122,12,116,1,124,4,131,1,1,0,87,
     0,110,20,4,0,116,2,121,54,1,0,1,0,1,0,89,
-    0,100,0,83,0,48,0,116,3,131,0,68,0,93,50,92,
+    0,100,0,83,0,119,0,116,3,131,0,68,0,93,50,92,
     2,125,5,125,6,124,4,160,4,116,5,124,6,131,1,161,
     1,114,62,116,6,106,7,124,1,124,5,124,1,124,4,131,
     2,124,4,100,1,141,3,125,7,124,7,2,0,1,0,83,
@@ -1073,7 +1073,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,52,0,0,0,218,6,116,97,114,103,101,116,114,203,0,
     0,0,114,144,0,0,0,114,193,0,0,0,114,191,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    218,9,102,105,110,100,95,115,112,101,99,12,3,0,0,115,
+    218,9,102,105,110,100,95,115,112,101,99,13,3,0,0,115,
     32,0,0,0,10,2,8,1,4,1,2,1,12,1,12,1,
     8,1,14,1,14,1,6,1,8,1,2,1,6,254,8,3,
     4,251,255,128,122,31,87,105,110,100,111,119,115,82,101,103,
@@ -1093,7 +1093,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,202,0,0,0,114,143,0,0,0,114,52,0,0,0,114,
     191,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
     0,0,0,218,11,102,105,110,100,95,109,111,100,117,108,101,
-    28,3,0,0,115,10,0,0,0,12,7,8,1,6,1,4,
+    29,3,0,0,115,10,0,0,0,12,7,8,1,6,1,4,
     2,255,128,122,33,87,105,110,100,111,119,115,82,101,103,105,
     115,116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,
     109,111,100,117,108,101,41,2,78,78,41,1,78,41,15,114,
@@ -1105,7 +1105,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     100,114,197,0,0,0,218,11,99,108,97,115,115,109,101,116,
     104,111,100,114,204,0,0,0,114,207,0,0,0,114,210,0,
     0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,114,195,0,0,0,234,2,0,0,115,
+    0,114,8,0,0,0,114,195,0,0,0,235,2,0,0,115,
     32,0,0,0,8,0,4,2,2,3,2,255,2,4,2,255,
     12,3,2,2,10,1,2,6,10,1,2,14,12,1,2,15,
     16,1,255,128,114,195,0,0,0,99,0,0,0,0,0,0,
@@ -1142,7 +1142,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,90,13,102,105,108,101,110,97,109,101,95,98,97,115,
     101,90,9,116,97,105,108,95,110,97,109,101,114,7,0,0,
     0,114,7,0,0,0,114,8,0,0,0,114,186,0,0,0,
-    47,3,0,0,115,10,0,0,0,18,3,16,1,14,1,16,
+    48,3,0,0,115,10,0,0,0,18,3,16,1,14,1,16,
     1,255,128,122,24,95,76,111,97,100,101,114,66,97,115,105,
     99,115,46,105,115,95,112,97,99,107,97,103,101,99,2,0,
     0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
@@ -1152,7 +1152,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     117,108,101,32,99,114,101,97,116,105,111,110,46,78,114,7,
     0,0,0,169,2,114,123,0,0,0,114,191,0,0,0,114,
     7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,13,
-    99,114,101,97,116,101,95,109,111,100,117,108,101,55,3,0,
+    99,114,101,97,116,101,95,109,111,100,117,108,101,56,3,0,
     0,115,4,0,0,0,4,0,255,128,122,27,95,76,111,97,
     100,101,114,66,97,115,105,99,115,46,99,114,101,97,116,101,
     95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
@@ -1173,7 +1173,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,41,3,114,123,0,0,0,218,6,109,111,100,117,108,101,
     114,168,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
     8,0,0,0,218,11,101,120,101,99,95,109,111,100,117,108,
-    101,58,3,0,0,115,14,0,0,0,12,2,8,1,6,1,
+    101,59,3,0,0,115,14,0,0,0,12,2,8,1,6,1,
     4,1,6,255,20,2,255,128,122,25,95,76,111,97,100,101,
     114,66,97,115,105,99,115,46,101,120,101,99,95,109,111,100,
     117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
@@ -1184,14 +1184,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,0,218,17,95,108,111,97,100,95,109,111,100,117,108,
     101,95,115,104,105,109,169,2,114,123,0,0,0,114,143,0,
     0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,218,11,108,111,97,100,95,109,111,100,117,108,101,66,3,
+    0,218,11,108,111,97,100,95,109,111,100,117,108,101,67,3,
     0,0,115,4,0,0,0,12,3,255,128,122,25,95,76,111,
     97,100,101,114,66,97,115,105,99,115,46,108,111,97,100,95,
     109,111,100,117,108,101,78,41,8,114,130,0,0,0,114,129,
     0,0,0,114,131,0,0,0,114,132,0,0,0,114,186,0,
     0,0,114,219,0,0,0,114,224,0,0,0,114,227,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,
-    114,8,0,0,0,114,215,0,0,0,42,3,0,0,115,14,
+    114,8,0,0,0,114,215,0,0,0,43,3,0,0,115,14,
     0,0,0,8,0,4,2,8,3,8,8,8,3,12,8,255,
     128,114,215,0,0,0,99,0,0,0,0,0,0,0,0,0,
     0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,
@@ -1216,7 +1216,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     10,32,32,32,32,32,32,32,32,78,41,1,114,58,0,0,
     0,169,2,114,123,0,0,0,114,52,0,0,0,114,7,0,
     0,0,114,7,0,0,0,114,8,0,0,0,218,10,112,97,
-    116,104,95,109,116,105,109,101,74,3,0,0,115,4,0,0,
+    116,104,95,109,116,105,109,101,75,3,0,0,115,4,0,0,
     0,4,6,255,128,122,23,83,111,117,114,99,101,76,111,97,
     100,101,114,46,112,97,116,104,95,109,116,105,109,101,99,2,
     0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
@@ -1250,7 +1250,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,114,
     173,0,0,0,78,41,1,114,230,0,0,0,114,229,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    218,10,112,97,116,104,95,115,116,97,116,115,82,3,0,0,
+    218,10,112,97,116,104,95,115,116,97,116,115,83,3,0,0,
     115,4,0,0,0,14,12,255,128,122,23,83,111,117,114,99,
     101,76,111,97,100,101,114,46,112,97,116,104,95,115,116,97,
     116,115,99,4,0,0,0,0,0,0,0,0,0,0,0,4,
@@ -1274,7 +1274,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     97,41,4,114,123,0,0,0,114,112,0,0,0,90,10,99,
     97,99,104,101,95,112,97,116,104,114,37,0,0,0,114,7,
     0,0,0,114,7,0,0,0,114,8,0,0,0,218,15,95,
-    99,97,99,104,101,95,98,121,116,101,99,111,100,101,96,3,
+    99,97,99,104,101,95,98,121,116,101,99,111,100,101,97,3,
     0,0,115,4,0,0,0,12,8,255,128,122,28,83,111,117,
     114,99,101,76,111,97,100,101,114,46,95,99,97,99,104,101,
     95,98,121,116,101,99,111,100,101,99,3,0,0,0,0,0,
@@ -1292,7 +1292,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     32,32,32,32,32,78,114,7,0,0,0,41,3,114,123,0,
     0,0,114,52,0,0,0,114,37,0,0,0,114,7,0,0,
     0,114,7,0,0,0,114,8,0,0,0,114,232,0,0,0,
-    106,3,0,0,115,4,0,0,0,4,0,255,128,122,21,83,
+    107,3,0,0,115,4,0,0,0,4,0,255,128,122,21,83,
     111,117,114,99,101,76,111,97,100,101,114,46,115,101,116,95,
     100,97,116,97,99,2,0,0,0,0,0,0,0,0,0,0,
     0,5,0,0,0,10,0,0,0,67,0,0,0,115,70,0,
@@ -1300,7 +1300,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     160,1,124,2,161,1,125,3,87,0,116,4,124,3,131,1,
     83,0,4,0,116,2,121,68,1,0,125,4,1,0,122,14,
     116,3,100,1,124,1,100,2,141,2,124,4,130,2,100,3,
-    125,4,126,4,48,0,48,0,41,4,122,52,67,111,110,99,
+    125,4,126,4,119,1,119,0,41,4,122,52,67,111,110,99,
     114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,
     105,111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,
     97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,46,
@@ -1312,7 +1312,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     5,114,123,0,0,0,114,143,0,0,0,114,52,0,0,0,
     114,178,0,0,0,218,3,101,120,99,114,7,0,0,0,114,
     7,0,0,0,114,8,0,0,0,218,10,103,101,116,95,115,
-    111,117,114,99,101,113,3,0,0,115,26,0,0,0,10,2,
+    111,117,114,99,101,114,3,0,0,115,26,0,0,0,10,2,
     2,1,12,1,8,4,14,253,4,1,2,1,4,255,2,1,
     2,255,8,128,2,255,255,128,122,23,83,111,117,114,99,101,
     76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,
@@ -1335,7 +1335,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,123,0,0,0,114,37,0,0,0,114,52,0,0,0,114,
     237,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
     0,0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,
-    111,100,101,123,3,0,0,115,8,0,0,0,12,5,4,1,
+    111,100,101,124,3,0,0,115,8,0,0,0,12,5,4,1,
     6,255,255,128,122,27,83,111,117,114,99,101,76,111,97,100,
     101,114,46,115,111,117,114,99,101,95,116,111,95,99,111,100,
     101,99,2,0,0,0,0,0,0,0,0,0,0,0,15,0,
@@ -1344,12 +1344,12 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     4,100,1,125,5,100,2,125,6,100,3,125,7,122,12,116,
     1,124,2,131,1,125,8,87,0,110,24,4,0,116,2,121,
     66,1,0,1,0,1,0,100,1,125,8,89,0,144,1,110,
-    42,48,0,122,14,124,0,160,3,124,2,161,1,125,9,87,
+    42,119,0,122,14,124,0,160,3,124,2,161,1,125,9,87,
     0,110,20,4,0,116,4,121,102,1,0,1,0,1,0,89,
-    0,144,1,110,6,48,0,116,5,124,9,100,4,25,0,131,
+    0,144,1,110,6,119,0,116,5,124,9,100,4,25,0,131,
     1,125,3,122,14,124,0,160,6,124,8,161,1,125,10,87,
     0,110,18,4,0,116,4,121,148,1,0,1,0,1,0,89,
-    0,110,216,48,0,124,1,124,8,100,5,156,2,125,11,122,
+    0,110,216,119,0,124,1,124,8,100,5,156,2,125,11,122,
     148,116,7,124,10,124,1,124,11,131,3,125,12,116,8,124,
     10,131,1,100,6,100,1,133,2,25,0,125,13,124,12,100,
     7,64,0,100,8,107,3,125,6,124,6,144,1,114,30,124,
@@ -1360,7 +1360,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     10,124,5,124,1,124,11,131,4,1,0,110,20,116,14,124,
     10,124,3,124,9,100,12,25,0,124,1,124,11,131,5,1,
     0,87,0,110,24,4,0,116,15,116,16,102,2,144,1,121,
-    76,1,0,1,0,1,0,89,0,110,32,48,0,116,17,160,
+    76,1,0,1,0,1,0,89,0,110,32,119,0,116,17,160,
     18,100,13,124,8,124,2,161,3,1,0,116,19,124,13,124,
     1,124,8,124,2,100,14,141,4,83,0,124,4,100,1,117,
     0,144,1,114,128,124,0,160,6,124,2,161,1,125,4,124,
@@ -1373,7 +1373,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     3,116,25,124,4,131,1,131,3,125,10,122,20,124,0,160,
     26,124,2,124,8,124,10,161,3,1,0,87,0,124,14,83,
     0,4,0,116,2,144,2,121,22,1,0,1,0,1,0,89,
-    0,124,14,83,0,48,0,124,14,83,0,41,16,122,190,67,
+    0,124,14,83,0,119,0,124,14,83,0,41,16,122,190,67,
     111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,110,
     116,97,116,105,111,110,32,111,102,32,73,110,115,112,101,99,
     116,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
@@ -1412,7 +1412,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,155,0,0,0,114,16,0,0,0,90,10,98,121,116,101,
     115,95,100,97,116,97,90,11,99,111,100,101,95,111,98,106,
     101,99,116,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,114,220,0,0,0,131,3,0,0,115,160,0,0,0,
+    0,0,114,220,0,0,0,132,3,0,0,115,160,0,0,0,
     10,7,4,1,4,1,4,1,4,1,4,1,2,1,12,1,
     12,1,12,1,2,2,14,1,12,1,8,1,12,2,2,1,
     14,1,12,1,6,1,2,3,2,1,6,254,2,4,12,1,
@@ -1429,7 +1429,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,0,114,233,0,0,0,114,232,0,0,0,114,236,0,
     0,0,114,240,0,0,0,114,220,0,0,0,114,7,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,228,0,0,0,72,3,0,0,115,18,0,0,0,8,0,
+    114,228,0,0,0,73,3,0,0,115,18,0,0,0,8,0,
     8,2,8,8,8,14,8,10,8,7,14,10,12,8,255,128,
     114,228,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
     0,0,0,0,0,0,4,0,0,0,0,0,0,0,115,92,
@@ -1456,7 +1456,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     116,104,101,10,32,32,32,32,32,32,32,32,102,105,110,100,
     101,114,46,78,114,163,0,0,0,41,3,114,123,0,0,0,
     114,143,0,0,0,114,52,0,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,216,0,0,0,221,3,
+    7,0,0,0,114,8,0,0,0,114,216,0,0,0,222,3,
     0,0,115,6,0,0,0,6,3,10,1,255,128,122,19,70,
     105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
     95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
@@ -1466,7 +1466,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     9,95,95,99,108,97,115,115,95,95,114,136,0,0,0,169,
     2,114,123,0,0,0,90,5,111,116,104,101,114,114,7,0,
     0,0,114,7,0,0,0,114,8,0,0,0,218,6,95,95,
-    101,113,95,95,227,3,0,0,115,8,0,0,0,12,1,10,
+    101,113,95,95,228,3,0,0,115,8,0,0,0,12,1,10,
     1,2,255,255,128,122,17,70,105,108,101,76,111,97,100,101,
     114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,0,
     0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
@@ -1475,7 +1475,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     3,218,4,104,97,115,104,114,121,0,0,0,114,52,0,0,
     0,169,1,114,123,0,0,0,114,7,0,0,0,114,7,0,
     0,0,114,8,0,0,0,218,8,95,95,104,97,115,104,95,
-    95,231,3,0,0,115,4,0,0,0,20,1,255,128,122,19,
+    95,232,3,0,0,115,4,0,0,0,20,1,255,128,122,19,
     70,105,108,101,76,111,97,100,101,114,46,95,95,104,97,115,
     104,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
     2,0,0,0,3,0,0,0,3,0,0,0,115,16,0,0,
@@ -1489,7 +1489,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     10,32,32,32,32,32,32,32,32,78,41,3,218,5,115,117,
     112,101,114,114,246,0,0,0,114,227,0,0,0,114,226,0,
     0,0,169,1,114,248,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,114,227,0,0,0,234,3,0,0,115,4,0,0,
+    0,0,0,114,227,0,0,0,235,3,0,0,115,4,0,0,
     0,16,10,255,128,122,22,70,105,108,101,76,111,97,100,101,
     114,46,108,111,97,100,95,109,111,100,117,108,101,99,2,0,
     0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
@@ -1499,7 +1499,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     99,101,32,102,105,108,101,32,97,115,32,102,111,117,110,100,
     32,98,121,32,116,104,101,32,102,105,110,100,101,114,46,78,
     114,56,0,0,0,114,226,0,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,183,0,0,0,246,3,
+    7,0,0,0,114,8,0,0,0,114,183,0,0,0,247,3,
     0,0,115,4,0,0,0,6,3,255,128,122,23,70,105,108,
     101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,
     110,97,109,101,99,2,0,0,0,0,0,0,0,0,0,0,
@@ -1507,11 +1507,11 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,116,0,124,0,116,1,116,2,102,2,131,2,114,72,
     116,3,160,4,116,5,124,1,131,1,161,1,143,24,125,2,
     124,2,160,6,161,0,87,0,2,0,100,1,4,0,4,0,
-    131,3,1,0,83,0,49,0,115,58,48,0,1,0,1,0,
+    131,3,1,0,83,0,49,0,115,58,119,1,1,0,1,0,
     1,0,89,0,1,0,100,1,83,0,116,3,160,7,124,1,
     100,2,161,2,143,24,125,2,124,2,160,6,161,0,87,0,
     2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,0,
-    115,114,48,0,1,0,1,0,1,0,89,0,1,0,100,1,
+    115,114,119,1,1,0,1,0,1,0,89,0,1,0,100,1,
     83,0,41,3,122,39,82,101,116,117,114,110,32,116,104,101,
     32,100,97,116,97,32,102,114,111,109,32,112,97,116,104,32,
     97,115,32,114,97,119,32,98,121,116,101,115,46,78,218,1,
@@ -1521,7 +1521,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     100,101,114,90,0,0,0,90,4,114,101,97,100,114,73,0,
     0,0,41,3,114,123,0,0,0,114,52,0,0,0,114,76,
     0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,114,234,0,0,0,251,3,0,0,115,14,0,0,0,
+    0,0,114,234,0,0,0,252,3,0,0,115,14,0,0,0,
     14,2,16,1,42,1,14,2,38,1,4,128,255,128,122,19,
     70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,100,
     97,116,97,99,2,0,0,0,0,0,0,0,0,0,0,0,
@@ -1533,7 +1533,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,4,1,0,0,41,3,114,123,0,0,0,114,223,0,0,
     0,114,4,1,0,0,114,7,0,0,0,114,7,0,0,0,
     114,8,0,0,0,218,19,103,101,116,95,114,101,115,111,117,
-    114,99,101,95,114,101,97,100,101,114,4,4,0,0,115,6,
+    114,99,101,95,114,101,97,100,101,114,5,4,0,0,115,6,
     0,0,0,12,2,8,1,255,128,122,30,70,105,108,101,76,
     111,97,100,101,114,46,103,101,116,95,114,101,115,111,117,114,
     99,101,95,114,101,97,100,101,114,41,13,114,130,0,0,0,
@@ -1542,7 +1542,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,0,114,227,0,0,0,114,183,0,0,0,114,234,0,
     0,0,114,5,1,0,0,90,13,95,95,99,108,97,115,115,
     99,101,108,108,95,95,114,7,0,0,0,114,7,0,0,0,
-    114,0,1,0,0,114,8,0,0,0,114,246,0,0,0,216,
+    114,0,1,0,0,114,8,0,0,0,114,246,0,0,0,217,
     3,0,0,115,26,0,0,0,8,0,4,2,8,3,8,6,
     8,4,2,3,14,1,2,11,10,1,8,4,2,9,18,1,
     255,128,114,246,0,0,0,99,0,0,0,0,0,0,0,0,
@@ -1565,7 +1565,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     57,0,0,0,218,8,115,116,95,109,116,105,109,101,90,7,
     115,116,95,115,105,122,101,41,3,114,123,0,0,0,114,52,
     0,0,0,114,245,0,0,0,114,7,0,0,0,114,7,0,
-    0,0,114,8,0,0,0,114,231,0,0,0,14,4,0,0,
+    0,0,114,8,0,0,0,114,231,0,0,0,15,4,0,0,
     115,6,0,0,0,8,2,14,1,255,128,122,27,83,111,117,
     114,99,101,70,105,108,101,76,111,97,100,101,114,46,112,97,
     116,104,95,115,116,97,116,115,99,4,0,0,0,0,0,0,
@@ -1576,7 +1576,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,114,232,0,0,0,41,5,114,123,0,0,0,114,112,0,
     0,0,114,111,0,0,0,114,37,0,0,0,114,60,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,233,0,0,0,19,4,0,0,115,6,0,0,0,8,2,
+    114,233,0,0,0,20,4,0,0,115,6,0,0,0,8,2,
     16,1,255,128,122,32,83,111,117,114,99,101,70,105,108,101,
     76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,
     116,101,99,111,100,101,114,68,0,0,0,114,8,1,0,0,
@@ -1592,13 +1592,13 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     113,70,4,0,116,8,144,1,121,2,1,0,125,8,1,0,
     122,30,116,9,160,10,100,1,124,4,124,8,161,3,1,0,
     87,0,89,0,100,2,125,8,126,8,1,0,100,2,83,0,
-    100,2,125,8,126,8,48,0,122,30,116,11,124,1,124,2,
+    100,2,125,8,126,8,119,1,122,30,116,11,124,1,124,2,
     124,3,131,3,1,0,116,9,160,10,100,3,124,1,161,2,
     1,0,87,0,100,2,83,0,4,0,116,8,121,252,1,0,
     125,8,1,0,122,28,116,9,160,10,100,1,124,1,124,8,
     161,3,1,0,87,0,89,0,100,2,125,8,126,8,100,2,
-    83,0,100,2,125,8,126,8,48,0,48,0,100,2,83,0,
-    48,0,41,4,122,27,87,114,105,116,101,32,98,121,116,101,
+    83,0,100,2,125,8,126,8,119,1,119,0,100,2,83,0,
+    119,0,41,4,122,27,87,114,105,116,101,32,98,121,116,101,
     115,32,100,97,116,97,32,116,111,32,97,32,102,105,108,101,
     46,122,27,99,111,117,108,100,32,110,111,116,32,99,114,101,
     97,116,101,32,123,33,114,125,58,32,123,33,114,125,78,122,
@@ -1611,7 +1611,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,52,0,0,0,114,37,0,0,0,114,9,1,0,0,218,
     6,112,97,114,101,110,116,114,101,0,0,0,114,47,0,0,
     0,114,43,0,0,0,114,235,0,0,0,114,7,0,0,0,
-    114,7,0,0,0,114,8,0,0,0,114,232,0,0,0,24,
+    114,7,0,0,0,114,8,0,0,0,114,232,0,0,0,25,
     4,0,0,115,60,0,0,0,12,2,4,1,12,2,12,1,
     10,1,12,254,12,4,10,1,2,1,14,1,12,1,4,2,
     16,1,6,3,4,1,4,255,16,2,8,128,2,1,12,1,
@@ -1621,7 +1621,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     41,7,114,130,0,0,0,114,129,0,0,0,114,131,0,0,
     0,114,132,0,0,0,114,231,0,0,0,114,233,0,0,0,
     114,232,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,6,1,0,0,10,4,
+    7,0,0,0,114,8,0,0,0,114,6,1,0,0,11,4,
     0,0,115,12,0,0,0,8,0,4,2,8,2,8,5,18,
     5,255,128,114,6,1,0,0,99,0,0,0,0,0,0,0,
     0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
@@ -1644,7 +1644,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,0,41,5,114,123,0,0,0,114,143,0,0,0,114,
     52,0,0,0,114,37,0,0,0,114,155,0,0,0,114,7,
     0,0,0,114,7,0,0,0,114,8,0,0,0,114,220,0,
-    0,0,59,4,0,0,115,24,0,0,0,10,1,10,1,2,
+    0,0,60,4,0,0,115,24,0,0,0,10,1,10,1,2,
     4,2,1,6,254,12,4,2,1,14,1,2,1,2,1,6,
     253,255,128,122,29,83,111,117,114,99,101,108,101,115,115,70,
     105,108,101,76,111,97,100,101,114,46,103,101,116,95,99,111,
@@ -1654,14 +1654,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     111,110,101,32,97,115,32,116,104,101,114,101,32,105,115,32,
     110,111,32,115,111,117,114,99,101,32,99,111,100,101,46,78,
     114,7,0,0,0,114,226,0,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,236,0,0,0,75,4,
+    7,0,0,0,114,8,0,0,0,114,236,0,0,0,76,4,
     0,0,115,4,0,0,0,4,2,255,128,122,31,83,111,117,
     114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
     114,46,103,101,116,95,115,111,117,114,99,101,78,41,6,114,
     130,0,0,0,114,129,0,0,0,114,131,0,0,0,114,132,
     0,0,0,114,220,0,0,0,114,236,0,0,0,114,7,0,
     0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,114,12,1,0,0,55,4,0,0,115,10,0,0,0,8,
+    0,114,12,1,0,0,56,4,0,0,115,10,0,0,0,8,
     0,4,2,8,2,12,16,255,128,114,12,1,0,0,99,0,
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
     0,0,0,64,0,0,0,115,92,0,0,0,101,0,90,1,
@@ -1682,7 +1682,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     95,0,124,2,124,0,95,1,100,0,83,0,114,114,0,0,
     0,114,163,0,0,0,41,3,114,123,0,0,0,114,121,0,
     0,0,114,52,0,0,0,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,114,216,0,0,0,88,4,0,0,115,
+    0,114,8,0,0,0,114,216,0,0,0,89,4,0,0,115,
     6,0,0,0,6,1,10,1,255,128,122,28,69,120,116,101,
     110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
     95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,
@@ -1691,7 +1691,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     111,22,124,0,106,1,124,1,106,1,107,2,83,0,114,114,
     0,0,0,114,247,0,0,0,114,249,0,0,0,114,7,0,
     0,0,114,7,0,0,0,114,8,0,0,0,114,250,0,0,
-    0,92,4,0,0,115,8,0,0,0,12,1,10,1,2,255,
+    0,93,4,0,0,115,8,0,0,0,12,1,10,1,2,255,
     255,128,122,26,69,120,116,101,110,115,105,111,110,70,105,108,
     101,76,111,97,100,101,114,46,95,95,101,113,95,95,99,1,
     0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
@@ -1699,7 +1699,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     106,1,131,1,116,0,124,0,106,2,131,1,65,0,83,0,
     114,114,0,0,0,114,251,0,0,0,114,253,0,0,0,114,
     7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,254,
-    0,0,0,96,4,0,0,115,4,0,0,0,20,1,255,128,
+    0,0,0,97,4,0,0,115,4,0,0,0,20,1,255,128,
     122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
     111,97,100,101,114,46,95,95,104,97,115,104,95,95,99,2,
     0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,
@@ -1716,7 +1716,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     97,109,105,99,114,153,0,0,0,114,121,0,0,0,114,52,
     0,0,0,41,3,114,123,0,0,0,114,191,0,0,0,114,
     223,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,114,219,0,0,0,99,4,0,0,115,16,0,0,
+    0,0,0,114,219,0,0,0,100,4,0,0,115,16,0,0,
     0,4,2,6,1,4,255,6,2,8,1,4,255,4,2,255,
     128,122,33,69,120,116,101,110,115,105,111,110,70,105,108,101,
     76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,
@@ -1734,7 +1734,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     105,99,114,153,0,0,0,114,121,0,0,0,114,52,0,0,
     0,169,2,114,123,0,0,0,114,223,0,0,0,114,7,0,
     0,0,114,7,0,0,0,114,8,0,0,0,114,224,0,0,
-    0,107,4,0,0,115,10,0,0,0,14,2,6,1,8,1,
+    0,108,4,0,0,115,10,0,0,0,14,2,6,1,8,1,
     8,255,255,128,122,31,69,120,116,101,110,115,105,111,110,70,
     105,108,101,76,111,97,100,101,114,46,101,120,101,99,95,109,
     111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
@@ -1752,14 +1752,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     78,114,7,0,0,0,169,2,114,5,0,0,0,218,6,115,
     117,102,102,105,120,169,1,90,9,102,105,108,101,95,110,97,
     109,101,114,7,0,0,0,114,8,0,0,0,114,9,0,0,
-    0,116,4,0,0,115,8,0,0,0,4,0,2,1,20,255,
+    0,117,4,0,0,115,8,0,0,0,4,0,2,1,20,255,
     255,128,122,49,69,120,116,101,110,115,105,111,110,70,105,108,
     101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,97,
     103,101,46,60,108,111,99,97,108,115,62,46,60,103,101,110,
     101,120,112,114,62,78,41,4,114,55,0,0,0,114,52,0,
     0,0,218,3,97,110,121,114,212,0,0,0,114,226,0,0,
     0,114,7,0,0,0,114,16,1,0,0,114,8,0,0,0,
-    114,186,0,0,0,113,4,0,0,115,10,0,0,0,14,2,
+    114,186,0,0,0,114,4,0,0,115,10,0,0,0,14,2,
     12,1,2,1,8,255,255,128,122,30,69,120,116,101,110,115,
     105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,
     95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,
@@ -1770,7 +1770,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     32,99,97,110,110,111,116,32,99,114,101,97,116,101,32,97,
     32,99,111,100,101,32,111,98,106,101,99,116,46,78,114,7,
     0,0,0,114,226,0,0,0,114,7,0,0,0,114,7,0,
-    0,0,114,8,0,0,0,114,220,0,0,0,119,4,0,0,
+    0,0,114,8,0,0,0,114,220,0,0,0,120,4,0,0,
     115,4,0,0,0,4,2,255,128,122,28,69,120,116,101,110,
     115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,
     101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,
@@ -1781,14 +1781,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     118,101,32,110,111,32,115,111,117,114,99,101,32,99,111,100,
     101,46,78,114,7,0,0,0,114,226,0,0,0,114,7,0,
     0,0,114,7,0,0,0,114,8,0,0,0,114,236,0,0,
-    0,123,4,0,0,115,4,0,0,0,4,2,255,128,122,30,
+    0,124,4,0,0,115,4,0,0,0,4,2,255,128,122,30,
     69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
     100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,
     0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
     0,0,0,67,0,0,0,115,6,0,0,0,124,0,106,0,
     83,0,114,1,1,0,0,114,56,0,0,0,114,226,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,183,0,0,0,127,4,0,0,115,4,0,0,0,6,3,
+    114,183,0,0,0,128,4,0,0,115,4,0,0,0,6,3,
     255,128,122,32,69,120,116,101,110,115,105,111,110,70,105,108,
     101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,
     110,97,109,101,78,41,14,114,130,0,0,0,114,129,0,0,
@@ -1797,7 +1797,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     224,0,0,0,114,186,0,0,0,114,220,0,0,0,114,236,
     0,0,0,114,140,0,0,0,114,183,0,0,0,114,7,0,
     0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,114,3,1,0,0,80,4,0,0,115,26,0,0,0,8,
+    0,114,3,1,0,0,81,4,0,0,115,26,0,0,0,8,
     0,4,2,8,6,8,4,8,4,8,3,8,8,8,6,8,
     6,8,4,2,4,14,1,255,128,114,3,1,0,0,99,0,
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
@@ -1840,7 +1840,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     169,4,114,123,0,0,0,114,121,0,0,0,114,52,0,0,
     0,90,11,112,97,116,104,95,102,105,110,100,101,114,114,7,
     0,0,0,114,7,0,0,0,114,8,0,0,0,114,216,0,
-    0,0,140,4,0,0,115,10,0,0,0,6,1,6,1,14,
+    0,0,141,4,0,0,115,10,0,0,0,6,1,6,1,14,
     1,10,1,255,128,122,23,95,78,97,109,101,115,112,97,99,
     101,80,97,116,104,46,95,95,105,110,105,116,95,95,99,1,
     0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,
@@ -1857,7 +1857,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,41,4,114,123,0,0,0,114,11,1,0,0,218,3,100,
     111,116,90,2,109,101,114,7,0,0,0,114,7,0,0,0,
     114,8,0,0,0,218,23,95,102,105,110,100,95,112,97,114,
-    101,110,116,95,112,97,116,104,95,110,97,109,101,115,146,4,
+    101,110,116,95,112,97,116,104,95,110,97,109,101,115,147,4,
     0,0,115,10,0,0,0,18,2,8,1,4,2,8,3,255,
     128,122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,
     104,46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,
@@ -1871,7 +1871,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     116,95,109,111,100,117,108,101,95,110,97,109,101,90,14,112,
     97,116,104,95,97,116,116,114,95,110,97,109,101,114,7,0,
     0,0,114,7,0,0,0,114,8,0,0,0,114,21,1,0,
-    0,156,4,0,0,115,6,0,0,0,12,1,16,1,255,128,
+    0,157,4,0,0,115,6,0,0,0,12,1,16,1,255,128,
     122,31,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
     46,95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,
     104,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,
@@ -1887,7 +1887,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,123,0,0,0,90,11,112,97,114,101,110,116,95,112,97,
     116,104,114,191,0,0,0,114,7,0,0,0,114,7,0,0,
     0,114,8,0,0,0,218,12,95,114,101,99,97,108,99,117,
-    108,97,116,101,160,4,0,0,115,18,0,0,0,12,2,10,
+    108,97,116,101,161,4,0,0,115,18,0,0,0,12,2,10,
     1,14,1,18,3,6,1,8,1,6,1,6,1,255,128,122,
     27,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
     95,114,101,99,97,108,99,117,108,97,116,101,99,1,0,0,
@@ -1896,7 +1896,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     161,0,131,1,83,0,114,114,0,0,0,41,2,218,4,105,
     116,101,114,114,28,1,0,0,114,253,0,0,0,114,7,0,
     0,0,114,7,0,0,0,114,8,0,0,0,218,8,95,95,
-    105,116,101,114,95,95,173,4,0,0,115,4,0,0,0,12,
+    105,116,101,114,95,95,174,4,0,0,115,4,0,0,0,12,
     1,255,128,122,23,95,78,97,109,101,115,112,97,99,101,80,
     97,116,104,46,95,95,105,116,101,114,95,95,99,2,0,0,
     0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
@@ -1904,7 +1904,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     124,1,25,0,83,0,114,114,0,0,0,169,1,114,28,1,
     0,0,41,2,114,123,0,0,0,218,5,105,110,100,101,120,
     114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
-    11,95,95,103,101,116,105,116,101,109,95,95,176,4,0,0,
+    11,95,95,103,101,116,105,116,101,109,95,95,177,4,0,0,
     115,4,0,0,0,12,1,255,128,122,26,95,78,97,109,101,
     115,112,97,99,101,80,97,116,104,46,95,95,103,101,116,105,
     116,101,109,95,95,99,3,0,0,0,0,0,0,0,0,0,
@@ -1913,7 +1913,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,114,114,0,0,0,41,1,114,20,1,0,0,41,3,114,
     123,0,0,0,114,32,1,0,0,114,52,0,0,0,114,7,
     0,0,0,114,7,0,0,0,114,8,0,0,0,218,11,95,
-    95,115,101,116,105,116,101,109,95,95,179,4,0,0,115,4,
+    95,115,101,116,105,116,101,109,95,95,180,4,0,0,115,4,
     0,0,0,14,1,255,128,122,26,95,78,97,109,101,115,112,
     97,99,101,80,97,116,104,46,95,95,115,101,116,105,116,101,
     109,95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,
@@ -1921,7 +1921,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,116,0,124,0,160,1,161,0,131,1,83,0,114,114,0,
     0,0,41,2,114,4,0,0,0,114,28,1,0,0,114,253,
     0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,218,7,95,95,108,101,110,95,95,182,4,0,0,115,
+    0,0,218,7,95,95,108,101,110,95,95,183,4,0,0,115,
     4,0,0,0,12,1,255,128,122,22,95,78,97,109,101,115,
     112,97,99,101,80,97,116,104,46,95,95,108,101,110,95,95,
     99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
@@ -1930,7 +1930,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     78,97,109,101,115,112,97,99,101,80,97,116,104,40,123,33,
     114,125,41,41,2,114,70,0,0,0,114,20,1,0,0,114,
     253,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,218,8,95,95,114,101,112,114,95,95,185,4,0,
+    0,0,0,218,8,95,95,114,101,112,114,95,95,186,4,0,
     0,115,4,0,0,0,12,1,255,128,122,23,95,78,97,109,
     101,115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,
     114,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
@@ -1939,7 +1939,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,114,31,1,0,0,169,2,114,123,0,0,0,218,4,
     105,116,101,109,114,7,0,0,0,114,7,0,0,0,114,8,
     0,0,0,218,12,95,95,99,111,110,116,97,105,110,115,95,
-    95,188,4,0,0,115,4,0,0,0,12,1,255,128,122,27,
+    95,189,4,0,0,115,4,0,0,0,12,1,255,128,122,27,
     95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
     95,99,111,110,116,97,105,110,115,95,95,99,2,0,0,0,
     0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
@@ -1947,7 +1947,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     1,161,1,1,0,100,0,83,0,114,114,0,0,0,41,2,
     114,20,1,0,0,114,190,0,0,0,114,37,1,0,0,114,
     7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,190,
-    0,0,0,191,4,0,0,115,4,0,0,0,16,1,255,128,
+    0,0,0,192,4,0,0,115,4,0,0,0,16,1,255,128,
     122,21,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
     46,97,112,112,101,110,100,78,41,15,114,130,0,0,0,114,
     129,0,0,0,114,131,0,0,0,114,132,0,0,0,114,216,
@@ -1955,7 +1955,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,114,30,1,0,0,114,33,1,0,0,114,34,1,0,
     0,114,35,1,0,0,114,36,1,0,0,114,39,1,0,0,
     114,190,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    7,0,0,0,114,8,0,0,0,114,18,1,0,0,133,4,
+    7,0,0,0,114,8,0,0,0,114,18,1,0,0,134,4,
     0,0,115,28,0,0,0,8,0,4,1,8,6,8,6,8,
     10,8,4,8,13,8,3,8,3,8,3,8,3,8,3,12,
     3,255,128,114,18,1,0,0,99,0,0,0,0,0,0,0,
@@ -1972,7 +1972,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     131,3,124,0,95,1,100,0,83,0,114,114,0,0,0,41,
     2,114,18,1,0,0,114,20,1,0,0,114,24,1,0,0,
     114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
-    216,0,0,0,197,4,0,0,115,4,0,0,0,18,1,255,
+    216,0,0,0,198,4,0,0,115,4,0,0,0,18,1,255,
     128,122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,
     100,101,114,46,95,95,105,110,105,116,95,95,99,1,0,0,
     0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
@@ -1989,21 +1989,21 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     101,115,112,97,99,101,41,62,78,41,2,114,70,0,0,0,
     114,130,0,0,0,41,1,114,223,0,0,0,114,7,0,0,
     0,114,7,0,0,0,114,8,0,0,0,218,11,109,111,100,
-    117,108,101,95,114,101,112,114,200,4,0,0,115,4,0,0,
+    117,108,101,95,114,101,112,114,201,4,0,0,115,4,0,0,
     0,12,7,255,128,122,28,95,78,97,109,101,115,112,97,99,
     101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,114,
     101,112,114,99,2,0,0,0,0,0,0,0,0,0,0,0,
     2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
     0,100,1,83,0,41,2,78,84,114,7,0,0,0,114,226,
     0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,114,186,0,0,0,209,4,0,0,115,4,0,0,0,
+    0,0,114,186,0,0,0,210,4,0,0,115,4,0,0,0,
     4,1,255,128,122,27,95,78,97,109,101,115,112,97,99,101,
     76,111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,
     101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
     0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
     1,83,0,41,2,78,114,10,0,0,0,114,7,0,0,0,
     114,226,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    8,0,0,0,114,236,0,0,0,212,4,0,0,115,4,0,
+    8,0,0,0,114,236,0,0,0,213,4,0,0,115,4,0,
     0,0,4,1,255,128,122,27,95,78,97,109,101,115,112,97,
     99,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,
     114,99,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
@@ -2013,20 +2013,20 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     110,103,62,114,222,0,0,0,84,41,1,114,238,0,0,0,
     41,1,114,239,0,0,0,114,226,0,0,0,114,7,0,0,
     0,114,7,0,0,0,114,8,0,0,0,114,220,0,0,0,
-    215,4,0,0,115,4,0,0,0,16,1,255,128,122,25,95,
+    216,4,0,0,115,4,0,0,0,16,1,255,128,122,25,95,
     78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
     103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,
     0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
     0,115,4,0,0,0,100,1,83,0,114,217,0,0,0,114,
     7,0,0,0,114,218,0,0,0,114,7,0,0,0,114,7,
-    0,0,0,114,8,0,0,0,114,219,0,0,0,218,4,0,
+    0,0,0,114,8,0,0,0,114,219,0,0,0,219,4,0,
     0,115,4,0,0,0,4,0,255,128,122,30,95,78,97,109,
     101,115,112,97,99,101,76,111,97,100,101,114,46,99,114,101,
     97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,0,
     0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
     0,0,0,115,4,0,0,0,100,0,83,0,114,114,0,0,
     0,114,7,0,0,0,114,13,1,0,0,114,7,0,0,0,
-    114,7,0,0,0,114,8,0,0,0,114,224,0,0,0,221,
+    114,7,0,0,0,114,8,0,0,0,114,224,0,0,0,222,
     4,0,0,115,4,0,0,0,4,1,255,128,122,28,95,78,
     97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101,
     120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,
@@ -2045,7 +2045,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     78,41,4,114,139,0,0,0,114,153,0,0,0,114,20,1,
     0,0,114,225,0,0,0,114,226,0,0,0,114,7,0,0,
     0,114,7,0,0,0,114,8,0,0,0,114,227,0,0,0,
-    224,4,0,0,115,10,0,0,0,6,7,4,1,4,255,12,
+    225,4,0,0,115,10,0,0,0,6,7,4,1,4,255,12,
     3,255,128,122,28,95,78,97,109,101,115,112,97,99,101,76,
     111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,
     101,78,41,12,114,130,0,0,0,114,129,0,0,0,114,131,
@@ -2053,7 +2053,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,114,186,0,0,0,114,236,0,0,0,114,220,0,0,
     0,114,219,0,0,0,114,224,0,0,0,114,227,0,0,0,
     114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
-    8,0,0,0,114,40,1,0,0,196,4,0,0,115,22,0,
+    8,0,0,0,114,40,1,0,0,197,4,0,0,115,22,0,
     0,0,8,0,8,1,2,3,10,1,8,8,8,3,8,3,
     8,3,8,3,12,3,255,128,114,40,1,0,0,99,0,0,
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
@@ -2090,7 +2090,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     97,99,104,101,218,5,105,116,101,109,115,114,133,0,0,0,
     114,43,1,0,0,41,2,114,121,0,0,0,218,6,102,105,
     110,100,101,114,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,114,43,1,0,0,243,4,0,0,115,16,0,0,
+    0,0,0,114,43,1,0,0,244,4,0,0,115,16,0,0,
     0,22,4,8,1,10,1,10,1,8,1,2,128,4,252,255,
     128,122,28,80,97,116,104,70,105,110,100,101,114,46,105,110,
     118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,99,
@@ -2100,7 +2100,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     3,100,2,116,4,161,2,1,0,116,0,106,1,68,0,93,
     36,125,1,122,14,124,1,124,0,131,1,87,0,2,0,1,
     0,83,0,4,0,116,5,121,70,1,0,1,0,1,0,89,
-    0,113,34,48,0,100,1,83,0,41,3,122,46,83,101,97,
+    0,113,34,119,0,100,1,83,0,41,3,122,46,83,101,97,
     114,99,104,32,115,121,115,46,112,97,116,104,95,104,111,111,
     107,115,32,102,111,114,32,97,32,102,105,110,100,101,114,32,
     102,111,114,32,39,112,97,116,104,39,46,78,122,23,115,121,
@@ -2110,18 +2110,18 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,114,142,0,0,0,114,122,0,0,0,41,2,114,52,
     0,0,0,90,4,104,111,111,107,114,7,0,0,0,114,7,
     0,0,0,114,8,0,0,0,218,11,95,112,97,116,104,95,
-    104,111,111,107,115,253,4,0,0,115,18,0,0,0,16,3,
+    104,111,111,107,115,254,4,0,0,115,18,0,0,0,16,3,
     12,1,10,1,2,1,14,1,12,1,6,1,4,2,255,128,
     122,22,80,97,116,104,70,105,110,100,101,114,46,95,112,97,
     116,104,95,104,111,111,107,115,99,2,0,0,0,0,0,0,
     0,0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,
     0,115,100,0,0,0,124,1,100,1,107,2,114,42,122,12,
     116,0,160,1,161,0,125,1,87,0,110,20,4,0,116,2,
-    121,40,1,0,1,0,1,0,89,0,100,2,83,0,48,0,
+    121,40,1,0,1,0,1,0,89,0,100,2,83,0,119,0,
     122,16,116,3,106,4,124,1,25,0,125,2,87,0,124,2,
     83,0,4,0,116,5,121,98,1,0,1,0,1,0,124,0,
     160,6,124,1,161,1,125,2,124,2,116,3,106,4,124,1,
-    60,0,89,0,124,2,83,0,48,0,41,3,122,210,71,101,
+    60,0,89,0,124,2,83,0,119,0,41,3,122,210,71,101,
     116,32,116,104,101,32,102,105,110,100,101,114,32,102,111,114,
     32,116,104,101,32,112,97,116,104,32,101,110,116,114,121,32,
     102,114,111,109,32,115,121,115,46,112,97,116,104,95,105,109,
@@ -2142,7 +2142,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,202,0,0,0,114,52,0,0,0,114,47,1,0,0,114,
     7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,20,
     95,112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,
-    97,99,104,101,10,5,0,0,115,28,0,0,0,8,8,2,
+    97,99,104,101,11,5,0,0,115,28,0,0,0,8,8,2,
     1,12,1,12,1,8,3,2,1,12,1,4,4,12,253,10,
     1,12,1,4,1,2,255,255,128,122,31,80,97,116,104,70,
     105,110,100,101,114,46,95,112,97,116,104,95,105,109,112,111,
@@ -2160,7 +2160,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,0,114,47,1,0,0,114,144,0,0,0,114,145,0,
     0,0,114,191,0,0,0,114,7,0,0,0,114,7,0,0,
     0,114,8,0,0,0,218,16,95,108,101,103,97,99,121,95,
-    103,101,116,95,115,112,101,99,32,5,0,0,115,20,0,0,
+    103,101,116,95,115,112,101,99,33,5,0,0,115,20,0,0,
     0,10,4,16,1,10,2,4,1,8,1,12,1,12,1,6,
     1,4,1,255,128,122,27,80,97,116,104,70,105,110,100,101,
     114,46,95,108,101,103,97,99,121,95,103,101,116,95,115,112,
@@ -2192,7 +2192,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     90,5,101,110,116,114,121,114,47,1,0,0,114,191,0,0,
     0,114,145,0,0,0,114,7,0,0,0,114,7,0,0,0,
     114,8,0,0,0,218,9,95,103,101,116,95,115,112,101,99,
-    47,5,0,0,115,44,0,0,0,4,5,8,1,14,1,2,
+    48,5,0,0,115,44,0,0,0,4,5,8,1,14,1,2,
     1,10,1,8,1,10,1,14,1,12,2,8,1,2,1,10,
     1,8,1,6,1,8,1,8,1,10,5,2,128,12,2,6,
     1,4,1,255,128,122,20,80,97,116,104,70,105,110,100,101,
@@ -2219,7 +2219,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,202,0,0,0,114,143,0,0,0,114,52,0,0,0,114,
     206,0,0,0,114,191,0,0,0,114,55,1,0,0,114,7,
     0,0,0,114,7,0,0,0,114,8,0,0,0,114,207,0,
-    0,0,79,5,0,0,115,28,0,0,0,8,6,6,1,14,
+    0,0,80,5,0,0,115,28,0,0,0,8,6,6,1,14,
     1,8,1,4,1,10,1,6,1,4,1,6,3,16,1,4,
     1,4,2,4,2,255,128,122,20,80,97,116,104,70,105,110,
     100,101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,
@@ -2239,7 +2239,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     101,99,40,41,32,105,110,115,116,101,97,100,46,10,10,32,
     32,32,32,32,32,32,32,78,114,208,0,0,0,114,209,0,
     0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
-    0,114,210,0,0,0,103,5,0,0,115,10,0,0,0,12,
+    0,114,210,0,0,0,104,5,0,0,115,10,0,0,0,12,
     8,8,1,4,1,6,1,255,128,122,22,80,97,116,104,70,
     105,110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,
     101,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
@@ -2271,7 +2271,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     100,105,115,116,114,105,98,117,116,105,111,110,115,41,3,114,
     124,0,0,0,114,125,0,0,0,114,57,1,0,0,114,7,
     0,0,0,114,7,0,0,0,114,8,0,0,0,114,58,1,
-    0,0,116,5,0,0,115,6,0,0,0,12,10,16,1,255,
+    0,0,117,5,0,0,115,6,0,0,0,12,10,16,1,255,
     128,122,29,80,97,116,104,70,105,110,100,101,114,46,102,105,
     110,100,95,100,105,115,116,114,105,98,117,116,105,111,110,115,
     41,1,78,41,2,78,78,41,1,78,41,14,114,130,0,0,
@@ -2280,7 +2280,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     214,0,0,0,114,52,1,0,0,114,53,1,0,0,114,56,
     1,0,0,114,207,0,0,0,114,210,0,0,0,114,58,1,
     0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
-    0,114,8,0,0,0,114,42,1,0,0,239,4,0,0,115,
+    0,114,8,0,0,0,114,42,1,0,0,240,4,0,0,115,
     38,0,0,0,8,0,4,2,2,2,10,1,2,9,10,1,
     2,12,10,1,2,21,10,1,2,14,12,1,2,31,12,1,
     2,23,12,1,2,12,14,1,255,128,114,42,1,0,0,99,
@@ -2325,7 +2325,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,124,0,93,14,125,1,124,1,136,0,102,2,86,0,1,
     0,113,2,100,0,83,0,114,114,0,0,0,114,7,0,0,
     0,114,14,1,0,0,169,1,114,144,0,0,0,114,7,0,
-    0,0,114,8,0,0,0,114,9,0,0,0,145,5,0,0,
+    0,0,114,8,0,0,0,114,9,0,0,0,146,5,0,0,
     115,4,0,0,0,22,0,255,128,122,38,70,105,108,101,70,
     105,110,100,101,114,46,95,95,105,110,105,116,95,95,46,60,
     108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,
@@ -2338,7 +2338,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,218,14,108,111,97,100,101,114,95,100,101,116,97,105,
     108,115,90,7,108,111,97,100,101,114,115,114,193,0,0,0,
     114,7,0,0,0,114,60,1,0,0,114,8,0,0,0,114,
-    216,0,0,0,139,5,0,0,115,18,0,0,0,4,4,12,
+    216,0,0,0,140,5,0,0,115,18,0,0,0,4,4,12,
     1,26,1,6,1,10,2,6,1,8,1,12,1,255,128,122,
     19,70,105,108,101,70,105,110,100,101,114,46,95,95,105,110,
     105,116,95,95,99,1,0,0,0,0,0,0,0,0,0,0,
@@ -2348,7 +2348,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     105,114,101,99,116,111,114,121,32,109,116,105,109,101,46,114,
     109,0,0,0,78,41,1,114,62,1,0,0,114,253,0,0,
     0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,43,1,0,0,153,5,0,0,115,4,0,0,0,10,2,
+    114,43,1,0,0,154,5,0,0,115,4,0,0,0,10,2,
     255,128,122,28,70,105,108,101,70,105,110,100,101,114,46,105,
     110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,
     99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
@@ -2371,7 +2371,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     32,78,41,3,114,207,0,0,0,114,144,0,0,0,114,182,
     0,0,0,41,3,114,123,0,0,0,114,143,0,0,0,114,
     191,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,114,141,0,0,0,159,5,0,0,115,10,0,0,
+    0,0,0,114,141,0,0,0,160,5,0,0,115,10,0,0,
     0,10,7,8,1,8,1,16,1,255,128,122,22,70,105,108,
     101,70,105,110,100,101,114,46,102,105,110,100,95,108,111,97,
     100,101,114,99,6,0,0,0,0,0,0,0,0,0,0,0,
@@ -2382,7 +2382,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,114,192,0,0,0,114,143,0,0,0,114,52,0,0,0,
     90,4,115,109,115,108,114,206,0,0,0,114,144,0,0,0,
     114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
-    56,1,0,0,171,5,0,0,115,10,0,0,0,10,1,8,
+    56,1,0,0,172,5,0,0,115,10,0,0,0,10,1,8,
     1,2,1,6,255,255,128,122,20,70,105,108,101,70,105,110,
     100,101,114,46,95,103,101,116,95,115,112,101,99,78,99,3,
     0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,8,
@@ -2390,7 +2390,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     124,1,160,0,100,2,161,1,100,3,25,0,125,4,122,24,
     116,1,124,0,106,2,112,34,116,3,160,4,161,0,131,1,
     106,5,125,5,87,0,110,22,4,0,116,6,121,64,1,0,
-    1,0,1,0,100,4,125,5,89,0,110,2,48,0,124,5,
+    1,0,1,0,100,4,125,5,89,0,110,2,119,0,124,5,
     124,0,106,7,107,3,114,90,124,0,160,8,161,0,1,0,
     124,5,124,0,95,7,116,9,131,0,114,112,124,0,106,10,
     125,6,124,4,160,11,161,0,125,7,110,10,124,0,106,12,
@@ -2436,7 +2436,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,0,114,192,0,0,0,90,13,105,110,105,116,95,102,105,
     108,101,110,97,109,101,90,9,102,117,108,108,95,112,97,116,
     104,114,191,0,0,0,114,7,0,0,0,114,7,0,0,0,
-    114,8,0,0,0,114,207,0,0,0,176,5,0,0,115,74,
+    114,8,0,0,0,114,207,0,0,0,177,5,0,0,115,74,
     0,0,0,4,5,14,1,2,1,24,1,12,1,10,1,10,
     1,8,1,6,1,6,2,6,1,10,1,6,2,4,1,8,
     2,12,1,14,1,8,1,10,1,8,1,24,1,8,4,14,
@@ -2448,7 +2448,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     0,124,0,106,0,125,1,122,22,116,1,160,2,124,1,112,
     22,116,1,160,3,161,0,161,1,125,2,87,0,110,28,4,
     0,116,4,116,5,116,6,102,3,121,56,1,0,1,0,1,
-    0,103,0,125,2,89,0,110,2,48,0,116,7,106,8,160,
+    0,103,0,125,2,89,0,110,2,119,0,116,7,106,8,160,
     9,100,1,161,1,115,82,116,10,124,2,131,1,124,0,95,
     11,110,74,116,10,131,0,125,3,124,2,68,0,93,56,125,
     4,124,4,160,12,100,2,161,1,92,3,125,5,125,6,125,
@@ -2468,7 +2468,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     160,0,161,0,146,2,113,4,83,0,114,7,0,0,0,41,
     1,114,110,0,0,0,41,2,114,5,0,0,0,90,2,102,
     110,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
-    114,13,0,0,0,253,5,0,0,115,4,0,0,0,20,0,
+    114,13,0,0,0,254,5,0,0,115,4,0,0,0,20,0,
     255,128,122,41,70,105,108,101,70,105,110,100,101,114,46,95,
     102,105,108,108,95,99,97,99,104,101,46,60,108,111,99,97,
     108,115,62,46,60,115,101,116,99,111,109,112,62,78,41,18,
@@ -2485,7 +2485,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     110,116,101,110,116,115,114,38,1,0,0,114,121,0,0,0,
     114,25,1,0,0,114,15,1,0,0,90,8,110,101,119,95,
     110,97,109,101,114,7,0,0,0,114,7,0,0,0,114,8,
-    0,0,0,114,67,1,0,0,224,5,0,0,115,38,0,0,
+    0,0,0,114,67,1,0,0,225,5,0,0,115,38,0,0,
     0,6,2,2,1,22,1,18,1,10,3,12,3,12,1,6,
     7,8,1,16,1,4,1,18,1,4,2,12,1,6,1,12,
     1,20,1,4,255,255,128,122,22,70,105,108,101,70,105,110,
@@ -2524,14 +2524,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     56,0,0,0,169,2,114,202,0,0,0,114,66,1,0,0,
     114,7,0,0,0,114,8,0,0,0,218,24,112,97,116,104,
     95,104,111,111,107,95,102,111,114,95,70,105,108,101,70,105,
-    110,100,101,114,9,6,0,0,115,8,0,0,0,8,2,12,
+    110,100,101,114,10,6,0,0,115,8,0,0,0,8,2,12,
     1,16,1,255,128,122,54,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,107,95,102,
     111,114,95,70,105,108,101,70,105,110,100,101,114,78,114,7,
     0,0,0,41,3,114,202,0,0,0,114,66,1,0,0,114,
     72,1,0,0,114,7,0,0,0,114,71,1,0,0,114,8,
-    0,0,0,218,9,112,97,116,104,95,104,111,111,107,255,5,
+    0,0,0,218,9,112,97,116,104,95,104,111,111,107,0,6,
     0,0,115,6,0,0,0,14,10,4,6,255,128,122,20,70,
     105,108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,
     111,111,107,99,1,0,0,0,0,0,0,0,0,0,0,0,
@@ -2540,7 +2540,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     122,16,70,105,108,101,70,105,110,100,101,114,40,123,33,114,
     125,41,41,2,114,70,0,0,0,114,52,0,0,0,114,253,
     0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
-    0,0,114,36,1,0,0,17,6,0,0,115,4,0,0,0,
+    0,0,114,36,1,0,0,18,6,0,0,115,4,0,0,0,
     12,1,255,128,122,19,70,105,108,101,70,105,110,100,101,114,
     46,95,95,114,101,112,114,95,95,41,1,78,41,15,114,130,
     0,0,0,114,129,0,0,0,114,131,0,0,0,114,132,0,
@@ -2549,7 +2549,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     114,207,0,0,0,114,67,1,0,0,114,214,0,0,0,114,
     73,1,0,0,114,36,1,0,0,114,7,0,0,0,114,7,
     0,0,0,114,7,0,0,0,114,8,0,0,0,114,59,1,
-    0,0,130,5,0,0,115,26,0,0,0,8,0,4,2,8,
+    0,0,131,5,0,0,115,26,0,0,0,8,0,4,2,8,
     7,8,14,4,4,8,2,8,12,10,5,8,48,2,31,10,
     1,12,17,255,128,114,59,1,0,0,99,4,0,0,0,0,
     0,0,0,0,0,0,0,6,0,0,0,8,0,0,0,67,
@@ -2562,7 +2562,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     124,0,100,2,60,0,124,4,124,0,100,1,60,0,124,2,
     124,0,100,4,60,0,124,3,124,0,100,5,60,0,87,0,
     100,0,83,0,4,0,116,5,121,142,1,0,1,0,1,0,
-    89,0,100,0,83,0,48,0,41,6,78,218,10,95,95,108,
+    89,0,100,0,83,0,119,0,41,6,78,218,10,95,95,108,
     111,97,100,101,114,95,95,218,8,95,95,115,112,101,99,95,
     95,114,60,1,0,0,90,8,95,95,102,105,108,101,95,95,
     90,10,95,95,99,97,99,104,101,100,95,95,41,6,218,3,
@@ -2572,7 +2572,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     97,116,104,110,97,109,101,90,9,99,112,97,116,104,110,97,
     109,101,114,144,0,0,0,114,191,0,0,0,114,7,0,0,
     0,114,7,0,0,0,114,8,0,0,0,218,14,95,102,105,
-    120,95,117,112,95,109,111,100,117,108,101,23,6,0,0,115,
+    120,95,117,112,95,109,111,100,117,108,101,24,6,0,0,115,
     36,0,0,0,10,2,10,1,4,1,4,1,8,1,8,1,
     12,1,10,2,4,1,14,1,2,1,8,1,8,1,8,1,
     14,1,12,1,8,2,255,128,114,78,1,0,0,99,0,0,
@@ -2592,7 +2592,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     12,1,0,0,114,94,0,0,0,41,3,90,10,101,120,116,
     101,110,115,105,111,110,115,90,6,115,111,117,114,99,101,90,
     8,98,121,116,101,99,111,100,101,114,7,0,0,0,114,7,
-    0,0,0,114,8,0,0,0,114,188,0,0,0,46,6,0,
+    0,0,0,114,8,0,0,0,114,188,0,0,0,47,6,0,
     0,115,10,0,0,0,12,5,8,1,8,1,10,1,255,128,
     114,188,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
     0,0,1,0,0,0,1,0,0,0,67,0,0,0,115,8,
@@ -2601,7 +2601,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     115,116,114,97,112,95,109,111,100,117,108,101,114,7,0,0,
     0,114,7,0,0,0,114,8,0,0,0,218,21,95,115,101,
     116,95,98,111,111,116,115,116,114,97,112,95,109,111,100,117,
-    108,101,57,6,0,0,115,4,0,0,0,8,2,255,128,114,
+    108,101,58,6,0,0,115,4,0,0,0,8,2,255,128,114,
     81,1,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
     0,2,0,0,0,4,0,0,0,67,0,0,0,115,50,0,
     0,0,116,0,124,0,131,1,1,0,116,1,131,0,125,1,
@@ -2616,7 +2616,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     116,104,114,190,0,0,0,114,42,1,0,0,41,2,114,80,
     1,0,0,90,17,115,117,112,112,111,114,116,101,100,95,108,
     111,97,100,101,114,115,114,7,0,0,0,114,7,0,0,0,
-    114,8,0,0,0,218,8,95,105,110,115,116,97,108,108,62,
+    114,8,0,0,0,218,8,95,105,110,115,116,97,108,108,63,
     6,0,0,115,10,0,0,0,8,2,6,1,20,1,16,1,
     255,128,114,83,1,0,0,41,1,114,68,0,0,0,41,1,
     78,41,3,78,78,78,41,2,114,0,0,0,0,114,0,0,
@@ -2659,7 +2659,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
     1,8,2,4,3,10,1,6,2,22,2,8,1,10,1,14,
     1,4,4,4,1,2,1,2,1,4,255,8,4,6,16,8,
     3,8,5,8,5,8,6,8,6,8,12,8,10,8,9,8,
-    5,8,7,10,9,10,22,0,127,16,23,12,1,4,2,4,
+    5,8,7,10,9,10,22,0,127,16,24,12,1,4,2,4,
     1,6,2,6,1,10,1,8,2,6,2,8,2,16,2,8,
     71,8,40,8,19,8,12,8,12,8,31,8,17,8,33,8,
     28,10,24,10,13,10,10,8,11,6,14,4,3,2,1,12,
diff --git a/Python/importlib_zipimport.h b/Python/importlib_zipimport.h
index 2058a9e354873..38f148ea78382 100644
--- a/Python/importlib_zipimport.h
+++ b/Python/importlib_zipimport.h
@@ -128,11 +128,11 @@ const unsigned char _Py_M__zipimport[] = {
     12,124,1,161,1,92,2,125,5,125,6,124,5,124,1,107,
     2,114,132,116,4,100,5,124,1,100,3,141,2,130,1,124,
     5,125,1,124,3,160,13,124,6,161,1,1,0,89,0,110,
-    28,48,0,124,4,106,14,100,6,64,0,100,7,107,3,114,
+    28,119,0,124,4,106,14,100,6,64,0,100,7,107,3,114,
     180,116,4,100,5,124,1,100,3,141,2,130,1,113,66,122,
     12,116,15,124,1,25,0,125,7,87,0,110,34,4,0,116,
     16,121,226,1,0,1,0,1,0,116,17,124,1,131,1,125,
-    7,124,7,116,15,124,1,60,0,89,0,110,2,48,0,124,
+    7,124,7,116,15,124,1,60,0,89,0,110,2,119,0,124,
     7,124,0,95,18,124,1,124,0,95,19,116,8,106,20,124,
     3,100,0,100,0,100,8,133,3,25,0,142,0,124,0,95,
     21,124,0,106,21,144,1,114,32,124,0,4,0,106,21,116,
@@ -319,7 +319,7 @@ const unsigned char _Py_M__zipimport[] = {
     0,106,4,116,2,23,0,131,1,100,1,133,2,25,0,125,
     2,122,14,124,0,106,6,124,2,25,0,125,3,87,0,110,
     26,4,0,116,7,121,98,1,0,1,0,1,0,116,8,100,
-    2,100,3,124,2,131,3,130,1,48,0,116,9,124,0,106,
+    2,100,3,124,2,131,3,130,1,119,0,116,9,124,0,106,
     4,124,3,131,2,83,0,41,4,122,154,103,101,116,95,100,
     97,116,97,40,112,97,116,104,110,97,109,101,41,32,45,62,
     32,115,116,114,105,110,103,32,119,105,116,104,32,102,105,108,
@@ -365,7 +365,7 @@ const unsigned char _Py_M__zipimport[] = {
     160,4,124,3,100,4,161,2,125,4,110,10,124,3,155,0,
     100,5,157,2,125,4,122,14,124,0,106,5,124,4,25,0,
     125,5,87,0,110,20,4,0,116,6,121,108,1,0,1,0,
-    1,0,89,0,100,1,83,0,48,0,116,7,124,0,106,8,
+    1,0,89,0,100,1,83,0,119,0,116,7,124,0,106,8,
     124,5,131,2,160,9,161,0,83,0,41,6,122,253,103,101,
     116,95,115,111,117,114,99,101,40,102,117,108,108,110,97,109,
     101,41,32,45,62,32,115,111,117,114,99,101,32,115,116,114,
@@ -434,7 +434,7 @@ const unsigned char _Py_M__zipimport[] = {
     16,1,0,1,0,1,0,116,4,106,5,124,1,61,0,130,
     0,122,14,116,4,106,5,124,1,25,0,125,6,87,0,110,
     30,4,0,116,20,121,232,1,0,1,0,1,0,116,21,100,
-    4,124,1,155,2,100,5,157,3,131,1,130,1,48,0,116,
+    4,124,1,155,2,100,5,157,3,131,1,130,1,119,0,116,
     22,160,23,100,6,124,1,124,5,161,3,1,0,124,6,83,
     0,41,7,97,55,1,0,0,108,111,97,100,95,109,111,100,
     117,108,101,40,102,117,108,108,110,97,109,101,41,32,45,62,
@@ -496,7 +496,7 @@ const unsigned char _Py_M__zipimport[] = {
     3,0,0,0,8,0,0,0,67,0,0,0,115,64,0,0,
     0,122,20,124,0,160,0,124,1,161,1,115,18,87,0,100,
     1,83,0,87,0,110,20,4,0,116,1,121,40,1,0,1,
-    0,1,0,89,0,100,1,83,0,48,0,100,2,100,3,108,
+    0,1,0,89,0,100,1,83,0,119,0,100,2,100,3,108,
     2,109,3,125,2,1,0,124,2,124,0,124,1,131,2,83,
     0,41,4,122,204,82,101,116,117,114,110,32,116,104,101,32,
     82,101,115,111,117,114,99,101,82,101,97,100,101,114,32,102,
@@ -578,23 +578,23 @@ const unsigned char _Py_M__zipimport[] = {
     0,0,0,115,232,4,0,0,122,14,116,0,160,1,124,0,
     161,1,125,1,87,0,110,32,4,0,116,2,121,46,1,0,
     1,0,1,0,116,3,100,1,124,0,155,2,157,2,124,0,
-    100,2,141,2,130,1,48,0,124,1,144,4,143,142,1,0,
+    100,2,141,2,130,1,119,0,124,1,144,4,143,142,1,0,
     122,36,124,1,160,4,116,5,11,0,100,3,161,2,1,0,
     124,1,160,6,161,0,125,2,124,1,160,7,116,5,161,1,
     125,3,87,0,110,32,4,0,116,2,121,124,1,0,1,0,
     1,0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,
-    141,2,130,1,48,0,116,8,124,3,131,1,116,5,107,3,
+    141,2,130,1,119,0,116,8,124,3,131,1,116,5,107,3,
     114,156,116,3,100,4,124,0,155,2,157,2,124,0,100,2,
     141,2,130,1,124,3,100,0,100,5,133,2,25,0,116,9,
     107,3,144,1,114,154,122,24,124,1,160,4,100,6,100,3,
     161,2,1,0,124,1,160,6,161,0,125,4,87,0,110,32,
     4,0,116,2,121,230,1,0,1,0,1,0,116,3,100,4,
-    124,0,155,2,157,2,124,0,100,2,141,2,130,1,48,0,
+    124,0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,
     116,10,124,4,116,11,24,0,116,5,24,0,100,6,131,2,
     125,5,122,22,124,1,160,4,124,5,161,1,1,0,124,1,
     160,7,161,0,125,6,87,0,110,34,4,0,116,2,144,1,
     121,50,1,0,1,0,1,0,116,3,100,4,124,0,155,2,
-    157,2,124,0,100,2,141,2,130,1,48,0,124,6,160,12,
+    157,2,124,0,100,2,141,2,130,1,119,0,124,6,160,12,
     116,9,161,1,125,7,124,7,100,6,107,0,144,1,114,90,
     116,3,100,7,124,0,155,2,157,2,124,0,100,2,141,2,
     130,1,124,6,124,7,124,7,116,5,23,0,133,2,25,0,
@@ -612,7 +612,7 @@ const unsigned char _Py_M__zipimport[] = {
     100,2,141,2,130,1,105,0,125,11,100,6,125,12,122,14,
     124,1,160,4,124,2,161,1,1,0,87,0,110,34,4,0,
     116,2,144,2,121,86,1,0,1,0,1,0,116,3,100,4,
-    124,0,155,2,157,2,124,0,100,2,141,2,130,1,48,0,
+    124,0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,
     9,0,124,1,160,7,100,16,161,1,125,3,116,8,124,3,
     131,1,100,5,107,0,144,2,114,122,116,14,100,17,131,1,
     130,1,124,3,100,0,100,5,133,2,25,0,100,18,107,3,
@@ -634,7 +634,7 @@ const unsigned char _Py_M__zipimport[] = {
     100,2,141,2,130,1,124,22,124,10,55,0,125,22,122,14,
     124,1,160,7,124,19,161,1,125,23,87,0,110,34,4,0,
     116,2,144,3,121,182,1,0,1,0,1,0,116,3,100,4,
-    124,0,155,2,157,2,124,0,100,2,141,2,130,1,48,0,
+    124,0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,
     116,8,124,23,131,1,124,19,107,3,144,3,114,216,116,3,
     100,4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,
     122,50,116,8,124,1,160,7,124,8,124,19,24,0,161,1,
@@ -642,17 +642,17 @@ const unsigned char _Py_M__zipimport[] = {
     100,4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,
     87,0,110,34,4,0,116,2,144,4,121,44,1,0,1,0,
     1,0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,
-    141,2,130,1,48,0,124,13,100,29,64,0,144,4,114,66,
+    141,2,130,1,119,0,124,13,100,29,64,0,144,4,114,66,
     124,23,160,16,161,0,125,23,110,52,122,14,124,23,160,16,
     100,30,161,1,125,23,87,0,110,36,4,0,116,17,144,4,
     121,116,1,0,1,0,1,0,124,23,160,16,100,31,161,1,
-    160,18,116,19,161,1,125,23,89,0,110,2,48,0,124,23,
+    160,18,116,19,161,1,125,23,89,0,110,2,119,0,124,23,
     160,20,100,32,116,21,161,2,125,23,116,22,160,23,124,0,
     124,23,161,2,125,24,124,24,124,14,124,18,124,4,124,22,
     124,15,124,16,124,17,102,8,125,25,124,25,124,11,124,23,
     60,0,124,12,100,33,55,0,125,12,144,2,113,90,87,0,
     100,0,4,0,4,0,131,3,1,0,110,18,49,0,144,4,
-    115,204,48,0,1,0,1,0,1,0,89,0,1,0,116,24,
+    115,204,119,1,1,0,1,0,1,0,89,0,1,0,116,24,
     160,25,100,34,124,12,124,0,161,3,1,0,124,11,83,0,
     41,35,78,122,21,99,97,110,39,116,32,111,112,101,110,32,
     90,105,112,32,102,105,108,101,58,32,114,12,0,0,0,114,
@@ -758,8 +758,8 @@ const unsigned char _Py_M__zipimport[] = {
     100,3,97,0,122,58,122,16,100,4,100,5,108,4,109,5,
     125,0,1,0,87,0,110,32,4,0,116,6,121,76,1,0,
     1,0,1,0,116,1,160,2,100,1,161,1,1,0,116,3,
-    100,2,131,1,130,1,48,0,87,0,100,6,97,0,110,6,
-    100,6,97,0,48,0,116,1,160,2,100,7,161,1,1,0,
+    100,2,131,1,130,1,119,0,87,0,100,6,97,0,110,6,
+    100,6,97,0,119,0,116,1,160,2,100,7,161,1,1,0,
     124,0,83,0,41,8,78,122,27,122,105,112,105,109,112,111,
     114,116,58,32,122,108,105,98,32,85,78,65,86,65,73,76,
     65,66,76,69,250,41,99,97,110,39,116,32,100,101,99,111,
@@ -784,7 +784,7 @@ const unsigned char _Py_M__zipimport[] = {
     2,124,0,161,1,144,1,143,6,125,10,122,14,124,10,160,
     3,124,6,161,1,1,0,87,0,110,32,4,0,116,4,121,
     96,1,0,1,0,1,0,116,0,100,3,124,0,155,2,157,
-    2,124,0,100,4,141,2,130,1,48,0,124,10,160,5,100,
+    2,124,0,100,4,141,2,130,1,119,0,124,10,160,5,100,
     5,161,1,125,11,116,6,124,11,131,1,100,5,107,3,114,
     128,116,7,100,6,131,1,130,1,124,11,100,0,100,7,133,
     2,25,0,100,8,107,3,114,162,116,0,100,9,124,0,155,
@@ -794,15 +794,15 @@ const unsigned char _Py_M__zipimport[] = {
     0,124,13,23,0,125,14,124,6,124,14,55,0,125,6,122,
     14,124,10,160,3,124,6,161,1,1,0,87,0,110,34,4,
     0,116,4,144,1,121,6,1,0,1,0,1,0,116,0,100,
-    3,124,0,155,2,157,2,124,0,100,4,141,2,130,1,48,
+    3,124,0,155,2,157,2,124,0,100,4,141,2,130,1,119,
     0,124,10,160,5,124,4,161,1,125,15,116,6,124,15,131,
     1,124,4,107,3,144,1,114,40,116,4,100,12,131,1,130,
     1,87,0,100,0,4,0,4,0,131,3,1,0,110,18,49,
-    0,144,1,115,62,48,0,1,0,1,0,1,0,89,0,1,
+    0,144,1,115,62,119,1,1,0,1,0,1,0,89,0,1,
     0,124,3,100,1,107,2,144,1,114,86,124,15,83,0,122,
     10,116,9,131,0,125,16,87,0,110,24,4,0,116,10,144,
     1,121,120,1,0,1,0,1,0,116,0,100,13,131,1,130,
-    1,48,0,124,16,124,15,100,14,131,2,83,0,41,15,78,
+    1,119,0,124,16,124,15,100,14,131,2,83,0,41,15,78,
     114,0,0,0,0,122,18,110,101,103,97,116,105,118,101,32,
     100,97,116,97,32,115,105,122,101,114,94,0,0,0,114,12,
     0,0,0,114,106,0,0,0,114,100,0,0,0,114,95,0,
@@ -839,7 +839,7 @@ const unsigned char _Py_M__zipimport[] = {
     0,124,3,124,2,100,1,156,2,125,5,122,18,116,0,160,
     1,124,4,124,3,124,5,161,3,125,6,87,0,110,20,4,
     0,116,2,121,48,1,0,1,0,1,0,89,0,100,0,83,
-    0,48,0,124,6,100,2,64,0,100,3,107,3,125,7,124,
+    0,119,0,124,6,100,2,64,0,100,3,107,3,125,7,124,
     7,114,182,124,6,100,4,64,0,100,3,107,3,125,8,116,
     3,106,4,100,5,107,3,144,1,114,10,124,8,115,106,116,
     3,106,4,100,6,107,2,144,1,114,10,116,5,124,0,124,
@@ -847,7 +847,7 @@ const unsigned char _Py_M__zipimport[] = {
     3,160,6,116,0,106,7,124,9,161,2,125,10,122,20,116,
     0,160,8,124,4,124,10,124,3,124,5,161,4,1,0,87,
     0,110,104,4,0,116,2,121,180,1,0,1,0,1,0,89,
-    0,100,0,83,0,48,0,116,9,124,0,124,2,131,2,92,
+    0,100,0,83,0,119,0,116,9,124,0,124,2,131,2,92,
     2,125,11,125,12,124,11,144,1,114,10,116,10,116,11,124,
     4,100,7,100,8,133,2,25,0,131,1,124,11,131,2,114,
     246,116,11,124,4,100,8,100,9,133,2,25,0,131,1,124,
@@ -936,7 +936,7 @@ const unsigned char _Py_M__zipimport[] = {
     100,4,25,0,125,4,124,2,100,5,25,0,125,5,116,1,
     124,4,124,3,131,2,124,5,102,2,87,0,83,0,4,0,
     116,2,116,3,116,4,102,3,121,108,1,0,1,0,1,0,
-    89,0,100,6,83,0,48,0,41,7,78,114,14,0,0,0,
+    89,0,100,6,83,0,119,0,41,7,78,114,14,0,0,0,
     169,2,218,1,99,218,1,111,114,165,0,0,0,233,6,0,
     0,0,233,3,0,0,0,41,2,114,0,0,0,0,114,0,
     0,0,0,41,5,114,28,0,0,0,114,171,0,0,0,114,
@@ -953,7 +953,7 @@ const unsigned char _Py_M__zipimport[] = {
     2,25,0,100,2,118,0,115,20,74,0,130,1,124,1,100,
     0,100,1,133,2,25,0,125,1,122,14,124,0,106,0,124,
     1,25,0,125,2,87,0,110,20,4,0,116,1,121,66,1,
-    0,1,0,1,0,89,0,100,0,83,0,48,0,116,2,124,
+    0,1,0,1,0,89,0,100,0,83,0,119,0,116,2,124,
     0,106,3,124,2,131,2,83,0,41,3,78,114,14,0,0,
     0,114,172,0,0,0,41,4,114,28,0,0,0,114,26,0,
     0,0,114,56,0,0,0,114,29,0,0,0,41,3,114,32,
@@ -968,7 +968,7 @@ const unsigned char _Py_M__zipimport[] = {
     3,100,1,124,0,106,4,116,5,124,6,100,2,100,3,141,
     5,1,0,122,14,124,0,106,6,124,6,25,0,125,7,87,
     0,110,18,4,0,116,7,121,86,1,0,1,0,1,0,89,
-    0,113,14,48,0,124,7,100,4,25,0,125,8,116,8,124,
+    0,113,14,119,0,124,7,100,4,25,0,125,8,116,8,124,
     0,106,4,124,7,131,2,125,9,124,4,114,130,116,9,124,
     0,124,8,124,6,124,1,124,9,131,5,125,10,110,10,116,
     10,124,8,124,9,131,2,125,10,124,10,100,0,117,0,114,
diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h
index 538fdbe3e0b5a..8495871e21313 100644
--- a/Python/opcode_targets.h
+++ b/Python/opcode_targets.h
@@ -47,7 +47,7 @@ static void *opcode_targets[256] = {
     &&_unknown_opcode,
     &&_unknown_opcode,
     &&_unknown_opcode,
-    &&TARGET_RERAISE,
+    &&_unknown_opcode,
     &&TARGET_WITH_EXCEPT_START,
     &&TARGET_GET_AITER,
     &&TARGET_GET_ANEXT,
@@ -118,7 +118,7 @@ static void *opcode_targets[256] = {
     &&TARGET_LOAD_GLOBAL,
     &&TARGET_IS_OP,
     &&TARGET_CONTAINS_OP,
-    &&_unknown_opcode,
+    &&TARGET_RERAISE,
     &&_unknown_opcode,
     &&TARGET_JUMP_IF_NOT_EXC_MATCH,
     &&TARGET_SETUP_FINALLY,



More information about the Python-checkins mailing list