diff options
author | shadchin <shadchin@yandex-team.com> | 2024-04-28 21:17:44 +0300 |
---|---|---|
committer | shadchin <shadchin@yandex-team.com> | 2024-04-28 21:25:54 +0300 |
commit | a55d99a3eb72f90355bc146baeda18aa7eb97352 (patch) | |
tree | b17cfed786effe8b81bba022239d6729f716fbeb /contrib | |
parent | 67bf49d08acf1277eff4c336021ac22d964bb4c4 (diff) | |
download | ydb-a55d99a3eb72f90355bc146baeda18aa7eb97352.tar.gz |
Update Python 3 to 3.12.3
7d09de7d8b99ea2be554ef0fc61276942ca9c2e1
Diffstat (limited to 'contrib')
125 files changed, 14033 insertions, 13385 deletions
diff --git a/contrib/tools/python3/Include/Python.h b/contrib/tools/python3/Include/Python.h index 52a7aac6ba..5eddda6336 100644 --- a/contrib/tools/python3/Include/Python.h +++ b/contrib/tools/python3/Include/Python.h @@ -49,6 +49,9 @@ #include "bytearrayobject.h" #include "bytesobject.h" #include "unicodeobject.h" +#include "cpython/initconfig.h" +#include "pystate.h" +#include "pyerrors.h" #include "longobject.h" #include "cpython/longintrepr.h" #include "boolobject.h" @@ -74,8 +77,6 @@ #include "sliceobject.h" #include "cpython/cellobject.h" #include "iterobject.h" -#include "cpython/initconfig.h" -#include "pystate.h" #include "cpython/genobject.h" #include "descrobject.h" #include "genericaliasobject.h" @@ -85,7 +86,6 @@ #include "cpython/picklebufobject.h" #include "cpython/pytime.h" #include "codecs.h" -#include "pyerrors.h" #include "pythread.h" #include "cpython/context.h" #include "modsupport.h" diff --git a/contrib/tools/python3/Include/cpython/code.h b/contrib/tools/python3/Include/cpython/code.h index 03834b20c3..311cffec11 100644 --- a/contrib/tools/python3/Include/cpython/code.h +++ b/contrib/tools/python3/Include/cpython/code.h @@ -75,7 +75,7 @@ typedef struct { PyObject *_co_freevars; } _PyCoCached; -/* Ancilliary data structure used for instrumentation. +/* Ancillary data structure used for instrumentation. Line instrumentation creates an array of these. One entry per code unit.*/ typedef struct { diff --git a/contrib/tools/python3/Include/cpython/longintrepr.h b/contrib/tools/python3/Include/cpython/longintrepr.h index 692c69ba76..78ac79a7cb 100644 --- a/contrib/tools/python3/Include/cpython/longintrepr.h +++ b/contrib/tools/python3/Include/cpython/longintrepr.h @@ -116,9 +116,10 @@ _PyLong_IsCompact(const PyLongObject* op) { static inline Py_ssize_t _PyLong_CompactValue(const PyLongObject *op) { + Py_ssize_t sign; assert(PyType_HasFeature((op)->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS)); assert(PyUnstable_Long_IsCompact(op)); - Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK); + sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK); return sign * (Py_ssize_t)op->long_value.ob_digit[0]; } diff --git a/contrib/tools/python3/Include/cpython/pystate.h b/contrib/tools/python3/Include/cpython/pystate.h index 628f2e0996..32789e17bd 100644 --- a/contrib/tools/python3/Include/cpython/pystate.h +++ b/contrib/tools/python3/Include/cpython/pystate.h @@ -251,13 +251,25 @@ struct _ts { /* WASI has limited call stack. Python's recursion limit depends on code layout, optimization, and WASI runtime. Wasmtime can handle about 700 recursions, sometimes less. 500 is a more conservative limit. */ -#ifndef C_RECURSION_LIMIT -# ifdef __wasi__ -# define C_RECURSION_LIMIT 500 +#ifdef Py_DEBUG +# if defined(__wasi__) +# define C_RECURSION_LIMIT 150 # else - // This value is duplicated in Lib/test/support/__init__.py # define C_RECURSION_LIMIT 1500 # endif +#else +# if defined(__wasi__) +# define C_RECURSION_LIMIT 500 +# elif defined(__s390x__) +# define C_RECURSION_LIMIT 800 +# elif defined(_WIN32) +# define C_RECURSION_LIMIT 3000 +# elif defined(_Py_ADDRESS_SANITIZER) +# define C_RECURSION_LIMIT 4000 +# else + // This value is duplicated in Lib/test/support/__init__.py +# define C_RECURSION_LIMIT 10000 +# endif #endif /* other API */ diff --git a/contrib/tools/python3/Include/internal/pycore_instruments.h b/contrib/tools/python3/Include/internal/pycore_instruments.h index 87f70d2dc0..b8591563d7 100644 --- a/contrib/tools/python3/Include/internal/pycore_instruments.h +++ b/contrib/tools/python3/Include/internal/pycore_instruments.h @@ -40,7 +40,7 @@ extern "C" { #define PY_MONITORING_EVENT_RERAISE 14 -/* Ancilliary events */ +/* Ancillary events */ #define PY_MONITORING_EVENT_C_RETURN 15 #define PY_MONITORING_EVENT_C_RAISE 16 diff --git a/contrib/tools/python3/Include/internal/pycore_symtable.h b/contrib/tools/python3/Include/internal/pycore_symtable.h index c8e0578a23..b2fef17720 100644 --- a/contrib/tools/python3/Include/internal/pycore_symtable.h +++ b/contrib/tools/python3/Include/internal/pycore_symtable.h @@ -109,18 +109,18 @@ extern PyObject* _Py_Mangle(PyObject *p, PyObject *name); /* Flags for def-use information */ -#define DEF_GLOBAL 1 /* global stmt */ -#define DEF_LOCAL 2 /* assignment in code block */ -#define DEF_PARAM 2<<1 /* formal parameter */ -#define DEF_NONLOCAL 2<<2 /* nonlocal stmt */ -#define USE 2<<3 /* name is used */ -#define DEF_FREE 2<<4 /* name used but not defined in nested block */ -#define DEF_FREE_CLASS 2<<5 /* free variable from class's method */ -#define DEF_IMPORT 2<<6 /* assignment occurred via import */ -#define DEF_ANNOT 2<<7 /* this name is annotated */ -#define DEF_COMP_ITER 2<<8 /* this name is a comprehension iteration variable */ -#define DEF_TYPE_PARAM 2<<9 /* this name is a type parameter */ -#define DEF_COMP_CELL 2<<10 /* this name is a cell in an inlined comprehension */ +#define DEF_GLOBAL 1 /* global stmt */ +#define DEF_LOCAL 2 /* assignment in code block */ +#define DEF_PARAM (2<<1) /* formal parameter */ +#define DEF_NONLOCAL (2<<2) /* nonlocal stmt */ +#define USE (2<<3) /* name is used */ +#define DEF_FREE (2<<4) /* name used but not defined in nested block */ +#define DEF_FREE_CLASS (2<<5) /* free variable from class's method */ +#define DEF_IMPORT (2<<6) /* assignment occurred via import */ +#define DEF_ANNOT (2<<7) /* this name is annotated */ +#define DEF_COMP_ITER (2<<8) /* this name is a comprehension iteration variable */ +#define DEF_TYPE_PARAM (2<<9) /* this name is a type parameter */ +#define DEF_COMP_CELL (2<<10) /* this name is a cell in an inlined comprehension */ #define DEF_BOUND (DEF_LOCAL | DEF_PARAM | DEF_IMPORT) diff --git a/contrib/tools/python3/Include/longobject.h b/contrib/tools/python3/Include/longobject.h index e090dd024a..c8b7497353 100644 --- a/contrib/tools/python3/Include/longobject.h +++ b/contrib/tools/python3/Include/longobject.h @@ -34,7 +34,24 @@ PyAPI_FUNC(PyObject *) PyLong_GetInfo(void); #if !defined(SIZEOF_PID_T) || SIZEOF_PID_T == SIZEOF_INT #define _Py_PARSE_PID "i" #define PyLong_FromPid PyLong_FromLong -#define PyLong_AsPid PyLong_AsLong +# ifndef Py_LIMITED_API +# define PyLong_AsPid _PyLong_AsInt +# elif SIZEOF_INT == SIZEOF_LONG +# define PyLong_AsPid PyLong_AsLong +# else +static inline int +PyLong_AsPid(PyObject *obj) +{ + int overflow; + long result = PyLong_AsLongAndOverflow(obj, &overflow); + if (overflow || result > INT_MAX || result < INT_MIN) { + PyErr_SetString(PyExc_OverflowError, + "Python int too large to convert to C int"); + return -1; + } + return (int)result; +} +# endif #elif SIZEOF_PID_T == SIZEOF_LONG #define _Py_PARSE_PID "l" #define PyLong_FromPid PyLong_FromLong diff --git a/contrib/tools/python3/Include/object.h b/contrib/tools/python3/Include/object.h index 5c30c77bc2..0d94cf8255 100644 --- a/contrib/tools/python3/Include/object.h +++ b/contrib/tools/python3/Include/object.h @@ -230,8 +230,7 @@ PyAPI_DATA(PyTypeObject) PyBool_Type; static inline Py_ssize_t Py_SIZE(PyObject *ob) { assert(ob->ob_type != &PyLong_Type); assert(ob->ob_type != &PyBool_Type); - PyVarObject *var_ob = _PyVarObject_CAST(ob); - return var_ob->ob_size; + return _PyVarObject_CAST(ob)->ob_size; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 # define Py_SIZE(ob) Py_SIZE(_PyObject_CAST(ob)) diff --git a/contrib/tools/python3/Include/patchlevel.h b/contrib/tools/python3/Include/patchlevel.h index e7316df367..24e6579dbb 100644 --- a/contrib/tools/python3/Include/patchlevel.h +++ b/contrib/tools/python3/Include/patchlevel.h @@ -18,12 +18,12 @@ /*--start constants--*/ #define PY_MAJOR_VERSION 3 #define PY_MINOR_VERSION 12 -#define PY_MICRO_VERSION 2 +#define PY_MICRO_VERSION 3 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "3.12.2" +#define PY_VERSION "3.12.3" /*--end constants--*/ /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. diff --git a/contrib/tools/python3/Include/pyexpat.h b/contrib/tools/python3/Include/pyexpat.h index 07020b5dc9..9824d099c3 100644 --- a/contrib/tools/python3/Include/pyexpat.h +++ b/contrib/tools/python3/Include/pyexpat.h @@ -48,8 +48,10 @@ struct PyExpat_CAPI enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding); int (*DefaultUnknownEncodingHandler)( void *encodingHandlerData, const XML_Char *name, XML_Encoding *info); - /* might be none for expat < 2.1.0 */ + /* might be NULL for expat < 2.1.0 */ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt); + /* might be NULL for expat < 2.6.0 */ + XML_Bool (*SetReparseDeferralEnabled)(XML_Parser parser, XML_Bool enabled); /* always add new stuff to the end! */ }; diff --git a/contrib/tools/python3/Include/pyport.h b/contrib/tools/python3/Include/pyport.h index 35eca7234c..30b9c8ebc4 100644 --- a/contrib/tools/python3/Include/pyport.h +++ b/contrib/tools/python3/Include/pyport.h @@ -748,6 +748,11 @@ extern char * _getpty(int *, int, mode_t, int); # define _Py_ADDRESS_SANITIZER # endif # endif +# if __has_feature(thread_sanitizer) +# if !defined(_Py_THREAD_SANITIZER) +# define _Py_THREAD_SANITIZER +# endif +# endif #elif defined(__GNUC__) # if defined(__SANITIZE_ADDRESS__) # define _Py_ADDRESS_SANITIZER diff --git a/contrib/tools/python3/Lib/_pyio.py b/contrib/tools/python3/Lib/_pyio.py index 9641d43101..687076fbe9 100644 --- a/contrib/tools/python3/Lib/_pyio.py +++ b/contrib/tools/python3/Lib/_pyio.py @@ -1209,7 +1209,8 @@ class BufferedReader(_BufferedIOMixin): return written def tell(self): - return _BufferedIOMixin.tell(self) - len(self._read_buf) + self._read_pos + # GH-95782: Keep return value non-negative + return max(_BufferedIOMixin.tell(self) - len(self._read_buf) + self._read_pos, 0) def seek(self, pos, whence=0): if whence not in valid_seek_flags: diff --git a/contrib/tools/python3/Lib/argparse.py b/contrib/tools/python3/Lib/argparse.py index 484a1efde4..120cb6c845 100644 --- a/contrib/tools/python3/Lib/argparse.py +++ b/contrib/tools/python3/Lib/argparse.py @@ -225,7 +225,8 @@ class HelpFormatter(object): # add the heading if the section was non-empty if self.heading is not SUPPRESS and self.heading is not None: current_indent = self.formatter._current_indent - heading = '%*s%s:\n' % (current_indent, '', self.heading) + heading_text = _('%(heading)s:') % dict(heading=self.heading) + heading = '%*s%s\n' % (current_indent, '', heading_text) else: heading = '' @@ -415,6 +416,8 @@ class HelpFormatter(object): suppressed_actions_count += 1 exposed_actions_count = group_action_count - suppressed_actions_count + if not exposed_actions_count: + continue if not group.required: if start in inserts: @@ -720,7 +723,7 @@ class ArgumentDefaultsHelpFormatter(HelpFormatter): if action.default is not SUPPRESS: defaulting_nargs = [OPTIONAL, ZERO_OR_MORE] if action.option_strings or action.nargs in defaulting_nargs: - help += ' (default: %(default)s)' + help += _(' (default: %(default)s)') return help @@ -1149,7 +1152,9 @@ class _VersionAction(Action): version=None, dest=SUPPRESS, default=SUPPRESS, - help="show program's version number and exit"): + help=None): + if help is None: + help = _("show program's version number and exit") super(_VersionAction, self).__init__( option_strings=option_strings, dest=dest, @@ -2004,7 +2009,7 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): # get the optional identified at this index option_tuple = option_string_indices[start_index] - action, option_string, explicit_arg = option_tuple + action, option_string, sep, explicit_arg = option_tuple # identify additional optionals in the same arg string # (e.g. -xyz is the same as -x -y -z if no args are required) @@ -2031,18 +2036,27 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): and option_string[1] not in chars and explicit_arg != '' ): + if sep or explicit_arg[0] in chars: + msg = _('ignored explicit argument %r') + raise ArgumentError(action, msg % explicit_arg) action_tuples.append((action, [], option_string)) char = option_string[0] option_string = char + explicit_arg[0] - new_explicit_arg = explicit_arg[1:] or None optionals_map = self._option_string_actions if option_string in optionals_map: action = optionals_map[option_string] - explicit_arg = new_explicit_arg + explicit_arg = explicit_arg[1:] + if not explicit_arg: + sep = explicit_arg = None + elif explicit_arg[0] == '=': + sep = '=' + explicit_arg = explicit_arg[1:] + else: + sep = '' else: - msg = _('ignored explicit argument %r') - raise ArgumentError(action, msg % explicit_arg) - + extras.append(char + explicit_arg) + stop = start_index + 1 + break # if the action expect exactly one argument, we've # successfully matched the option; exit the loop elif arg_count == 1: @@ -2262,18 +2276,17 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): # if the option string is present in the parser, return the action if arg_string in self._option_string_actions: action = self._option_string_actions[arg_string] - return action, arg_string, None + return action, arg_string, None, None # if it's just a single character, it was meant to be positional if len(arg_string) == 1: return None # if the option string before the "=" is present, return the action - if '=' in arg_string: - option_string, explicit_arg = arg_string.split('=', 1) - if option_string in self._option_string_actions: - action = self._option_string_actions[option_string] - return action, option_string, explicit_arg + option_string, sep, explicit_arg = arg_string.partition('=') + if sep and option_string in self._option_string_actions: + action = self._option_string_actions[option_string] + return action, option_string, sep, explicit_arg # search through all possible prefixes of the option string # and all actions in the parser for possible interpretations @@ -2282,7 +2295,7 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): # if multiple actions match, the option string was ambiguous if len(option_tuples) > 1: options = ', '.join([option_string - for action, option_string, explicit_arg in option_tuples]) + for action, option_string, sep, explicit_arg in option_tuples]) args = {'option': arg_string, 'matches': options} msg = _('ambiguous option: %(option)s could match %(matches)s') self.error(msg % args) @@ -2306,7 +2319,7 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): # it was meant to be an optional but there is no such option # in this parser (though it might be a valid option in a subparser) - return None, arg_string, None + return None, arg_string, None, None def _get_option_tuples(self, option_string): result = [] @@ -2316,15 +2329,13 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): chars = self.prefix_chars if option_string[0] in chars and option_string[1] in chars: if self.allow_abbrev: - if '=' in option_string: - option_prefix, explicit_arg = option_string.split('=', 1) - else: - option_prefix = option_string - explicit_arg = None + option_prefix, sep, explicit_arg = option_string.partition('=') + if not sep: + sep = explicit_arg = None for option_string in self._option_string_actions: if option_string.startswith(option_prefix): action = self._option_string_actions[option_string] - tup = action, option_string, explicit_arg + tup = action, option_string, sep, explicit_arg result.append(tup) # single character options can be concatenated with their arguments @@ -2332,18 +2343,17 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): # separate elif option_string[0] in chars and option_string[1] not in chars: option_prefix = option_string - explicit_arg = None short_option_prefix = option_string[:2] short_explicit_arg = option_string[2:] for option_string in self._option_string_actions: if option_string == short_option_prefix: action = self._option_string_actions[option_string] - tup = action, option_string, short_explicit_arg + tup = action, option_string, '', short_explicit_arg result.append(tup) elif option_string.startswith(option_prefix): action = self._option_string_actions[option_string] - tup = action, option_string, explicit_arg + tup = action, option_string, None, None result.append(tup) # shouldn't ever get here diff --git a/contrib/tools/python3/Lib/ast.py b/contrib/tools/python3/Lib/ast.py index de940d2e9c..b0995fa7f1 100644 --- a/contrib/tools/python3/Lib/ast.py +++ b/contrib/tools/python3/Lib/ast.py @@ -1268,14 +1268,18 @@ class _Unparser(NodeVisitor): quote_type = quote_types[0] self.write(f"{quote_type}{value}{quote_type}") - def _write_fstring_inner(self, node, scape_newlines=False): + def _write_fstring_inner(self, node, is_format_spec=False): if isinstance(node, JoinedStr): # for both the f-string itself, and format_spec for value in node.values: - self._write_fstring_inner(value, scape_newlines=scape_newlines) + self._write_fstring_inner(value, is_format_spec=is_format_spec) elif isinstance(node, Constant) and isinstance(node.value, str): value = node.value.replace("{", "{{").replace("}", "}}") - if scape_newlines: + + if is_format_spec: + value = value.replace("\\", "\\\\") + value = value.replace("'", "\\'") + value = value.replace('"', '\\"') value = value.replace("\n", "\\n") self.write(value) elif isinstance(node, FormattedValue): @@ -1299,10 +1303,7 @@ class _Unparser(NodeVisitor): self.write(f"!{chr(node.conversion)}") if node.format_spec: self.write(":") - self._write_fstring_inner( - node.format_spec, - scape_newlines=True - ) + self._write_fstring_inner(node.format_spec, is_format_spec=True) def visit_Name(self, node): self.write(node.id) diff --git a/contrib/tools/python3/Lib/asyncio/base_events.py b/contrib/tools/python3/Lib/asyncio/base_events.py index c16c445bde..29eff0499c 100644 --- a/contrib/tools/python3/Lib/asyncio/base_events.py +++ b/contrib/tools/python3/Lib/asyncio/base_events.py @@ -45,6 +45,7 @@ from . import protocols from . import sslproto from . import staggered from . import tasks +from . import timeouts from . import transports from . import trsock from .log import logger @@ -596,23 +597,24 @@ class BaseEventLoop(events.AbstractEventLoop): thread = threading.Thread(target=self._do_shutdown, args=(future,)) thread.start() try: - await future - finally: - thread.join(timeout) - - if thread.is_alive(): + async with timeouts.timeout(timeout): + await future + except TimeoutError: warnings.warn("The executor did not finishing joining " - f"its threads within {timeout} seconds.", - RuntimeWarning, stacklevel=2) + f"its threads within {timeout} seconds.", + RuntimeWarning, stacklevel=2) self._default_executor.shutdown(wait=False) + else: + thread.join() def _do_shutdown(self, future): try: self._default_executor.shutdown(wait=True) if not self.is_closed(): - self.call_soon_threadsafe(future.set_result, None) + self.call_soon_threadsafe(futures._set_result_unless_cancelled, + future, None) except Exception as ex: - if not self.is_closed(): + if not self.is_closed() and not future.cancelled(): self.call_soon_threadsafe(future.set_exception, ex) def _check_running(self): diff --git a/contrib/tools/python3/Lib/asyncio/tasks.py b/contrib/tools/python3/Lib/asyncio/tasks.py index 65f2a6ef80..0b22e28d8e 100644 --- a/contrib/tools/python3/Lib/asyncio/tasks.py +++ b/contrib/tools/python3/Lib/asyncio/tasks.py @@ -480,7 +480,7 @@ async def wait_for(fut, timeout): If the wait is cancelled, the task is also cancelled. - If the task supresses the cancellation and returns a value instead, + If the task suppresses the cancellation and returns a value instead, that value is returned. This function is a coroutine. diff --git a/contrib/tools/python3/Lib/asyncio/windows_events.py b/contrib/tools/python3/Lib/asyncio/windows_events.py index c9a5fb841c..cb613451a5 100644 --- a/contrib/tools/python3/Lib/asyncio/windows_events.py +++ b/contrib/tools/python3/Lib/asyncio/windows_events.py @@ -8,6 +8,7 @@ if sys.platform != 'win32': # pragma: no cover import _overlapped import _winapi import errno +from functools import partial import math import msvcrt import socket @@ -323,13 +324,13 @@ class ProactorEventLoop(proactor_events.BaseProactorEventLoop): if self._self_reading_future is not None: ov = self._self_reading_future._ov self._self_reading_future.cancel() - # self_reading_future was just cancelled so if it hasn't been - # finished yet, it never will be (it's possible that it has - # already finished and its callback is waiting in the queue, - # where it could still happen if the event loop is restarted). - # Unregister it otherwise IocpProactor.close will wait for it - # forever - if ov is not None: + # self_reading_future always uses IOCP, so even though it's + # been cancelled, we need to make sure that the IOCP message + # is received so that the kernel is not holding on to the + # memory, possibly causing memory corruption later. Only + # unregister it if IO is complete in all respects. Otherwise + # we need another _poll() later to complete the IO. + if ov is not None and not ov.pending: self._proactor._unregister(ov) self._self_reading_future = None @@ -466,6 +467,18 @@ class IocpProactor: else: raise + @classmethod + def _finish_recvfrom(cls, trans, key, ov, *, empty_result): + try: + return cls.finish_socket_func(trans, key, ov) + except OSError as exc: + # WSARecvFrom will report ERROR_PORT_UNREACHABLE when the same + # socket is used to send to an address that is not listening. + if exc.winerror == _overlapped.ERROR_PORT_UNREACHABLE: + return empty_result, None + else: + raise + def recv(self, conn, nbytes, flags=0): self._register_with_iocp(conn) ov = _overlapped.Overlapped(NULL) @@ -500,7 +513,8 @@ class IocpProactor: except BrokenPipeError: return self._result((b'', None)) - return self._register(ov, conn, self.finish_socket_func) + return self._register(ov, conn, partial(self._finish_recvfrom, + empty_result=b'')) def recvfrom_into(self, conn, buf, flags=0): self._register_with_iocp(conn) @@ -510,17 +524,8 @@ class IocpProactor: except BrokenPipeError: return self._result((0, None)) - def finish_recv(trans, key, ov): - try: - return ov.getresult() - except OSError as exc: - if exc.winerror in (_overlapped.ERROR_NETNAME_DELETED, - _overlapped.ERROR_OPERATION_ABORTED): - raise ConnectionResetError(*exc.args) - else: - raise - - return self._register(ov, conn, finish_recv) + return self._register(ov, conn, partial(self._finish_recvfrom, + empty_result=0)) def sendto(self, conn, buf, flags=0, addr=None): self._register_with_iocp(conn) diff --git a/contrib/tools/python3/Lib/collections/__init__.py b/contrib/tools/python3/Lib/collections/__init__.py index 8652dc8a4e..5f000b5f2c 100644 --- a/contrib/tools/python3/Lib/collections/__init__.py +++ b/contrib/tools/python3/Lib/collections/__init__.py @@ -638,7 +638,8 @@ class Counter(dict): >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] - # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 + Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 + >>> import math >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> math.prod(prime_factors.elements()) @@ -679,7 +680,7 @@ class Counter(dict): ''' # The regular dict.update() operation makes no sense here because the - # replace behavior results in the some of original untouched counts + # replace behavior results in some of the original untouched counts # being mixed-in with all of the other counts for a mismash that # doesn't have a straight-forward interpretation in most counting # contexts. Instead, we implement straight-addition. Both the inputs diff --git a/contrib/tools/python3/Lib/configparser.py b/contrib/tools/python3/Lib/configparser.py index e8aae21794..f96704eb45 100644 --- a/contrib/tools/python3/Lib/configparser.py +++ b/contrib/tools/python3/Lib/configparser.py @@ -995,100 +995,102 @@ class RawConfigParser(MutableMapping): lineno = 0 indent_level = 0 e = None # None, or an exception - for lineno, line in enumerate(fp, start=1): - comment_start = sys.maxsize - # strip inline comments - inline_prefixes = {p: -1 for p in self._inline_comment_prefixes} - while comment_start == sys.maxsize and inline_prefixes: - next_prefixes = {} - for prefix, index in inline_prefixes.items(): - index = line.find(prefix, index+1) - if index == -1: - continue - next_prefixes[prefix] = index - if index == 0 or (index > 0 and line[index-1].isspace()): - comment_start = min(comment_start, index) - inline_prefixes = next_prefixes - # strip full line comments - for prefix in self._comment_prefixes: - if line.strip().startswith(prefix): - comment_start = 0 - break - if comment_start == sys.maxsize: - comment_start = None - value = line[:comment_start].strip() - if not value: - if self._empty_lines_in_values: - # add empty line to the value, but only if there was no - # comment on the line - if (comment_start is None and - cursect is not None and - optname and - cursect[optname] is not None): - cursect[optname].append('') # newlines added at join - else: - # empty line marks end of value - indent_level = sys.maxsize - continue - # continuation line? - first_nonspace = self.NONSPACECRE.search(line) - cur_indent_level = first_nonspace.start() if first_nonspace else 0 - if (cursect is not None and optname and - cur_indent_level > indent_level): - cursect[optname].append(value) - # a section header or option header? - else: - indent_level = cur_indent_level - # is it a section header? - mo = self.SECTCRE.match(value) - if mo: - sectname = mo.group('header') - if sectname in self._sections: - if self._strict and sectname in elements_added: - raise DuplicateSectionError(sectname, fpname, - lineno) - cursect = self._sections[sectname] - elements_added.add(sectname) - elif sectname == self.default_section: - cursect = self._defaults + try: + for lineno, line in enumerate(fp, start=1): + comment_start = sys.maxsize + # strip inline comments + inline_prefixes = {p: -1 for p in self._inline_comment_prefixes} + while comment_start == sys.maxsize and inline_prefixes: + next_prefixes = {} + for prefix, index in inline_prefixes.items(): + index = line.find(prefix, index+1) + if index == -1: + continue + next_prefixes[prefix] = index + if index == 0 or (index > 0 and line[index-1].isspace()): + comment_start = min(comment_start, index) + inline_prefixes = next_prefixes + # strip full line comments + for prefix in self._comment_prefixes: + if line.strip().startswith(prefix): + comment_start = 0 + break + if comment_start == sys.maxsize: + comment_start = None + value = line[:comment_start].strip() + if not value: + if self._empty_lines_in_values: + # add empty line to the value, but only if there was no + # comment on the line + if (comment_start is None and + cursect is not None and + optname and + cursect[optname] is not None): + cursect[optname].append('') # newlines added at join else: - cursect = self._dict() - self._sections[sectname] = cursect - self._proxies[sectname] = SectionProxy(self, sectname) - elements_added.add(sectname) - # So sections can't start with a continuation line - optname = None - # no section header in the file? - elif cursect is None: - raise MissingSectionHeaderError(fpname, lineno, line) - # an option line? + # empty line marks end of value + indent_level = sys.maxsize + continue + # continuation line? + first_nonspace = self.NONSPACECRE.search(line) + cur_indent_level = first_nonspace.start() if first_nonspace else 0 + if (cursect is not None and optname and + cur_indent_level > indent_level): + cursect[optname].append(value) + # a section header or option header? else: - mo = self._optcre.match(value) + indent_level = cur_indent_level + # is it a section header? + mo = self.SECTCRE.match(value) if mo: - optname, vi, optval = mo.group('option', 'vi', 'value') - if not optname: - e = self._handle_error(e, fpname, lineno, line) - optname = self.optionxform(optname.rstrip()) - if (self._strict and - (sectname, optname) in elements_added): - raise DuplicateOptionError(sectname, optname, - fpname, lineno) - elements_added.add((sectname, optname)) - # This check is fine because the OPTCRE cannot - # match if it would set optval to None - if optval is not None: - optval = optval.strip() - cursect[optname] = [optval] + sectname = mo.group('header') + if sectname in self._sections: + if self._strict and sectname in elements_added: + raise DuplicateSectionError(sectname, fpname, + lineno) + cursect = self._sections[sectname] + elements_added.add(sectname) + elif sectname == self.default_section: + cursect = self._defaults else: - # valueless option handling - cursect[optname] = None + cursect = self._dict() + self._sections[sectname] = cursect + self._proxies[sectname] = SectionProxy(self, sectname) + elements_added.add(sectname) + # So sections can't start with a continuation line + optname = None + # no section header in the file? + elif cursect is None: + raise MissingSectionHeaderError(fpname, lineno, line) + # an option line? else: - # a non-fatal parsing error occurred. set up the - # exception but keep going. the exception will be - # raised at the end of the file and will contain a - # list of all bogus lines - e = self._handle_error(e, fpname, lineno, line) - self._join_multiline_values() + mo = self._optcre.match(value) + if mo: + optname, vi, optval = mo.group('option', 'vi', 'value') + if not optname: + e = self._handle_error(e, fpname, lineno, line) + optname = self.optionxform(optname.rstrip()) + if (self._strict and + (sectname, optname) in elements_added): + raise DuplicateOptionError(sectname, optname, + fpname, lineno) + elements_added.add((sectname, optname)) + # This check is fine because the OPTCRE cannot + # match if it would set optval to None + if optval is not None: + optval = optval.strip() + cursect[optname] = [optval] + else: + # valueless option handling + cursect[optname] = None + else: + # a non-fatal parsing error occurred. set up the + # exception but keep going. the exception will be + # raised at the end of the file and will contain a + # list of all bogus lines + e = self._handle_error(e, fpname, lineno, line) + finally: + self._join_multiline_values() # if any parsing errors occurred, raise an exception if e: raise e diff --git a/contrib/tools/python3/Lib/dataclasses.py b/contrib/tools/python3/Lib/dataclasses.py index 3eacba840d..12b2dfd145 100644 --- a/contrib/tools/python3/Lib/dataclasses.py +++ b/contrib/tools/python3/Lib/dataclasses.py @@ -1168,8 +1168,10 @@ def _dataclass_setstate(self, state): def _get_slots(cls): match cls.__dict__.get('__slots__'): + # A class which does not define __slots__ at all is equivalent + # to a class defining __slots__ = ('__dict__', '__weakref__') case None: - return + yield from ('__dict__', '__weakref__') case str(slot): yield slot # Slots may be any iterable, but we cannot handle an iterator diff --git a/contrib/tools/python3/Lib/doctest.py b/contrib/tools/python3/Lib/doctest.py index 087c52327f..ee48622031 100644 --- a/contrib/tools/python3/Lib/doctest.py +++ b/contrib/tools/python3/Lib/doctest.py @@ -1127,7 +1127,7 @@ class DocTestFinder: obj = obj.fget if inspect.isfunction(obj) and getattr(obj, '__doc__', None): # We don't use `docstring` var here, because `obj` can be changed. - obj = obj.__code__ + obj = inspect.unwrap(obj).__code__ if inspect.istraceback(obj): obj = obj.tb_frame if inspect.isframe(obj): obj = obj.f_code if inspect.iscode(obj): @@ -2206,13 +2206,13 @@ class DocTestCase(unittest.TestCase): unittest.TestCase.__init__(self) self._dt_optionflags = optionflags self._dt_checker = checker - self._dt_globs = test.globs.copy() self._dt_test = test self._dt_setUp = setUp self._dt_tearDown = tearDown def setUp(self): test = self._dt_test + self._dt_globs = test.globs.copy() if self._dt_setUp is not None: self._dt_setUp(test) diff --git a/contrib/tools/python3/Lib/email/_header_value_parser.py b/contrib/tools/python3/Lib/email/_header_value_parser.py index 5b653f66c1..e4a342d446 100644 --- a/contrib/tools/python3/Lib/email/_header_value_parser.py +++ b/contrib/tools/python3/Lib/email/_header_value_parser.py @@ -949,6 +949,7 @@ class _InvalidEwError(errors.HeaderParseError): # up other parse trees. Maybe should have tests for that, too. DOT = ValueTerminal('.', 'dot') ListSeparator = ValueTerminal(',', 'list-separator') +ListSeparator.as_ew_allowed = False RouteComponentMarker = ValueTerminal('@', 'route-component-marker') # @@ -2022,7 +2023,7 @@ def get_address_list(value): address_list.defects.append(errors.InvalidHeaderDefect( "invalid address in address-list")) if value: # Must be a , at this point. - address_list.append(ValueTerminal(',', 'list-separator')) + address_list.append(ListSeparator) value = value[1:] return address_list, value diff --git a/contrib/tools/python3/Lib/email/generator.py b/contrib/tools/python3/Lib/email/generator.py index 7ccbe10eb7..c8056ad47b 100644 --- a/contrib/tools/python3/Lib/email/generator.py +++ b/contrib/tools/python3/Lib/email/generator.py @@ -243,7 +243,7 @@ class Generator: # existing message. msg = deepcopy(msg) del msg['content-transfer-encoding'] - msg.set_payload(payload, charset) + msg.set_payload(msg._payload, charset) payload = msg.get_payload() self._munge_cte = (msg['content-transfer-encoding'], msg['content-type']) diff --git a/contrib/tools/python3/Lib/email/message.py b/contrib/tools/python3/Lib/email/message.py index fe769580fe..a14cca56b3 100644 --- a/contrib/tools/python3/Lib/email/message.py +++ b/contrib/tools/python3/Lib/email/message.py @@ -340,7 +340,7 @@ class Message: return if not isinstance(charset, Charset): charset = Charset(charset) - payload = payload.encode(charset.output_charset) + payload = payload.encode(charset.output_charset, 'surrogateescape') if hasattr(payload, 'decode'): self._payload = payload.decode('ascii', 'surrogateescape') else: diff --git a/contrib/tools/python3/Lib/enum.py b/contrib/tools/python3/Lib/enum.py index 1502bfe915..af5613838d 100644 --- a/contrib/tools/python3/Lib/enum.py +++ b/contrib/tools/python3/Lib/enum.py @@ -166,6 +166,11 @@ def _dedent(text): lines[j] = l[i:] return '\n'.join(lines) +class _not_given: + def __repr__(self): + return('<not given>') +_not_given = _not_given() + class _auto_null: def __repr__(self): return '_auto_null' @@ -283,9 +288,10 @@ class _proto_member: enum_member._sort_order_ = len(enum_class._member_names_) if Flag is not None and issubclass(enum_class, Flag): - enum_class._flag_mask_ |= value - if _is_single_bit(value): - enum_class._singles_mask_ |= value + if isinstance(value, int): + enum_class._flag_mask_ |= value + if _is_single_bit(value): + enum_class._singles_mask_ |= value enum_class._all_bits_ = 2 ** ((enum_class._flag_mask_).bit_length()) - 1 # If another member with the same value was already defined, the @@ -313,6 +319,7 @@ class _proto_member: elif ( Flag is not None and issubclass(enum_class, Flag) + and isinstance(value, int) and _is_single_bit(value) ): # no other instances found, record this member in _member_names_ @@ -457,10 +464,11 @@ class _EnumDict(dict): if isinstance(value, auto): single = True value = (value, ) - if type(value) is tuple and any(isinstance(v, auto) for v in value): + if isinstance(value, tuple) and any(isinstance(v, auto) for v in value): # insist on an actual tuple, no subclasses, in keeping with only supporting # top-level auto() usage (not contained in any other data structure) auto_valued = [] + t = type(value) for v in value: if isinstance(v, auto): non_auto_store = False @@ -475,7 +483,12 @@ class _EnumDict(dict): if single: value = auto_valued[0] else: - value = tuple(auto_valued) + try: + # accepts iterable as multiple arguments? + value = t(auto_valued) + except TypeError: + # then pass them in singlely + value = t(*auto_valued) self._member_names[key] = None if non_auto_store: self._last_values.append(value) @@ -710,7 +723,7 @@ class EnumType(type): """ return True - def __call__(cls, value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None): + def __call__(cls, value, names=_not_given, *values, module=None, qualname=None, type=None, start=1, boundary=None): """ Either returns an existing member, or creates a new enum class. @@ -739,18 +752,18 @@ class EnumType(type): """ if cls._member_map_: # simple value lookup if members exist - if names: + if names is not _not_given: value = (value, names) + values return cls.__new__(cls, value) # otherwise, functional API: we're creating a new Enum type - if names is None and type is None: + if names is _not_given and type is None: # no body? no data-type? possibly wrong usage raise TypeError( f"{cls} has no members; specify `names=()` if you meant to create a new, empty, enum" ) return cls._create_( class_name=value, - names=names, + names=None if names is _not_given else names, module=module, qualname=qualname, type=type, @@ -1528,37 +1541,50 @@ class Flag(Enum, boundary=STRICT): def __bool__(self): return bool(self._value_) + def _get_value(self, flag): + if isinstance(flag, self.__class__): + return flag._value_ + elif self._member_type_ is not object and isinstance(flag, self._member_type_): + return flag + return NotImplemented + def __or__(self, other): - if isinstance(other, self.__class__): - other = other._value_ - elif self._member_type_ is not object and isinstance(other, self._member_type_): - other = other - else: + other_value = self._get_value(other) + if other_value is NotImplemented: return NotImplemented + + for flag in self, other: + if self._get_value(flag) is None: + raise TypeError(f"'{flag}' cannot be combined with other flags with |") value = self._value_ - return self.__class__(value | other) + return self.__class__(value | other_value) def __and__(self, other): - if isinstance(other, self.__class__): - other = other._value_ - elif self._member_type_ is not object and isinstance(other, self._member_type_): - other = other - else: + other_value = self._get_value(other) + if other_value is NotImplemented: return NotImplemented + + for flag in self, other: + if self._get_value(flag) is None: + raise TypeError(f"'{flag}' cannot be combined with other flags with &") value = self._value_ - return self.__class__(value & other) + return self.__class__(value & other_value) def __xor__(self, other): - if isinstance(other, self.__class__): - other = other._value_ - elif self._member_type_ is not object and isinstance(other, self._member_type_): - other = other - else: + other_value = self._get_value(other) + if other_value is NotImplemented: return NotImplemented + + for flag in self, other: + if self._get_value(flag) is None: + raise TypeError(f"'{flag}' cannot be combined with other flags with ^") value = self._value_ - return self.__class__(value ^ other) + return self.__class__(value ^ other_value) def __invert__(self): + if self._get_value(self) is None: + raise TypeError(f"'{self}' cannot be inverted") + if self._inverted_ is None: if self._boundary_ in (EJECT, KEEP): self._inverted_ = self.__class__(~self._value_) @@ -1625,7 +1651,7 @@ def global_flag_repr(self): cls_name = self.__class__.__name__ if self._name_ is None: return "%s.%s(%r)" % (module, cls_name, self._value_) - if _is_single_bit(self): + if _is_single_bit(self._value_): return '%s.%s' % (module, self._name_) if self._boundary_ is not FlagBoundary.KEEP: return '|'.join(['%s.%s' % (module, name) for name in self.name.split('|')]) diff --git a/contrib/tools/python3/Lib/glob.py b/contrib/tools/python3/Lib/glob.py index a7256422d5..50beef37f4 100644 --- a/contrib/tools/python3/Lib/glob.py +++ b/contrib/tools/python3/Lib/glob.py @@ -132,7 +132,8 @@ def glob1(dirname, pattern): def _glob2(dirname, pattern, dir_fd, dironly, include_hidden=False): assert _isrecursive(pattern) - yield pattern[:0] + if not dirname or _isdir(dirname, dir_fd): + yield pattern[:0] yield from _rlistdir(dirname, dir_fd, dironly, include_hidden=include_hidden) diff --git a/contrib/tools/python3/Lib/http/client.py b/contrib/tools/python3/Lib/http/client.py index 5eebfccafb..a353716a85 100644 --- a/contrib/tools/python3/Lib/http/client.py +++ b/contrib/tools/python3/Lib/http/client.py @@ -936,17 +936,23 @@ class HTTPConnection: host = host[:i] else: port = self.default_port - if host and host[0] == '[' and host[-1] == ']': - host = host[1:-1] + if host and host[0] == '[' and host[-1] == ']': + host = host[1:-1] return (host, port) def set_debuglevel(self, level): self.debuglevel = level + def _wrap_ipv6(self, ip): + if b':' in ip and ip[0] != b'['[0]: + return b"[" + ip + b"]" + return ip + def _tunnel(self): connect = b"CONNECT %s:%d %s\r\n" % ( - self._tunnel_host.encode("idna"), self._tunnel_port, + self._wrap_ipv6(self._tunnel_host.encode("idna")), + self._tunnel_port, self._http_vsn_str.encode("ascii")) headers = [connect] for header, value in self._tunnel_headers.items(): @@ -1221,9 +1227,8 @@ class HTTPConnection: # As per RFC 273, IPv6 address should be wrapped with [] # when used as Host header - + host_enc = self._wrap_ipv6(host_enc) if ":" in host: - host_enc = b'[' + host_enc + b']' host_enc = _strip_ipv6_iface(host_enc) if port == self.default_port: diff --git a/contrib/tools/python3/Lib/importlib/_bootstrap_external.py b/contrib/tools/python3/Lib/importlib/_bootstrap_external.py index e6f75a9f6f..61dafc0f4c 100644 --- a/contrib/tools/python3/Lib/importlib/_bootstrap_external.py +++ b/contrib/tools/python3/Lib/importlib/_bootstrap_external.py @@ -1450,6 +1450,9 @@ class PathFinder: # https://bugs.python.org/issue45703 _NamespacePath._epoch += 1 + from importlib.metadata import MetadataPathFinder + MetadataPathFinder.invalidate_caches() + @staticmethod def _path_hooks(path): """Search sys.path_hooks for a finder for 'path'.""" diff --git a/contrib/tools/python3/Lib/importlib/metadata/__init__.py b/contrib/tools/python3/Lib/importlib/metadata/__init__.py index 82e0ce1b28..54156e93af 100644 --- a/contrib/tools/python3/Lib/importlib/metadata/__init__.py +++ b/contrib/tools/python3/Lib/importlib/metadata/__init__.py @@ -795,6 +795,7 @@ class MetadataPathFinder(DistributionFinder): path.search(prepared) for path in map(FastPath, paths) ) + @classmethod def invalidate_caches(cls): FastPath.__new__.cache_clear() diff --git a/contrib/tools/python3/Lib/importlib/resources/simple.py b/contrib/tools/python3/Lib/importlib/resources/simple.py index 7770c922c8..96f117fec6 100644 --- a/contrib/tools/python3/Lib/importlib/resources/simple.py +++ b/contrib/tools/python3/Lib/importlib/resources/simple.py @@ -88,7 +88,7 @@ class ResourceHandle(Traversable): def open(self, mode='r', *args, **kwargs): stream = self.parent.reader.open_binary(self.name) if 'b' not in mode: - stream = io.TextIOWrapper(*args, **kwargs) + stream = io.TextIOWrapper(stream, *args, **kwargs) return stream def joinpath(self, name): diff --git a/contrib/tools/python3/Lib/importlib/util.py b/contrib/tools/python3/Lib/importlib/util.py index f4d6e82331..3743e6aa91 100644 --- a/contrib/tools/python3/Lib/importlib/util.py +++ b/contrib/tools/python3/Lib/importlib/util.py @@ -13,6 +13,7 @@ from ._bootstrap_external import spec_from_file_location import _imp import sys +import threading import types @@ -145,7 +146,7 @@ class _incompatible_extension_module_restrictions: You can get the same effect as this function by implementing the basic interface of multi-phase init (PEP 489) and lying about - support for mulitple interpreters (or per-interpreter GIL). + support for multiple interpreters (or per-interpreter GIL). """ def __init__(self, *, disable_check): @@ -171,36 +172,53 @@ class _LazyModule(types.ModuleType): def __getattribute__(self, attr): """Trigger the load of the module and return the attribute.""" - # All module metadata must be garnered from __spec__ in order to avoid - # using mutated values. - # Stop triggering this method. - self.__class__ = types.ModuleType - # Get the original name to make sure no object substitution occurred - # in sys.modules. - original_name = self.__spec__.name - # Figure out exactly what attributes were mutated between the creation - # of the module and now. - attrs_then = self.__spec__.loader_state['__dict__'] - attrs_now = self.__dict__ - attrs_updated = {} - for key, value in attrs_now.items(): - # Code that set the attribute may have kept a reference to the - # assigned object, making identity more important than equality. - if key not in attrs_then: - attrs_updated[key] = value - elif id(attrs_now[key]) != id(attrs_then[key]): - attrs_updated[key] = value - self.__spec__.loader.exec_module(self) - # If exec_module() was used directly there is no guarantee the module - # object was put into sys.modules. - if original_name in sys.modules: - if id(self) != id(sys.modules[original_name]): - raise ValueError(f"module object for {original_name!r} " - "substituted in sys.modules during a lazy " - "load") - # Update after loading since that's what would happen in an eager - # loading situation. - self.__dict__.update(attrs_updated) + __spec__ = object.__getattribute__(self, '__spec__') + loader_state = __spec__.loader_state + with loader_state['lock']: + # Only the first thread to get the lock should trigger the load + # and reset the module's class. The rest can now getattr(). + if object.__getattribute__(self, '__class__') is _LazyModule: + # Reentrant calls from the same thread must be allowed to proceed without + # triggering the load again. + # exec_module() and self-referential imports are the primary ways this can + # happen, but in any case we must return something to avoid deadlock. + if loader_state['is_loading']: + return object.__getattribute__(self, attr) + loader_state['is_loading'] = True + + __dict__ = object.__getattribute__(self, '__dict__') + + # All module metadata must be gathered from __spec__ in order to avoid + # using mutated values. + # Get the original name to make sure no object substitution occurred + # in sys.modules. + original_name = __spec__.name + # Figure out exactly what attributes were mutated between the creation + # of the module and now. + attrs_then = loader_state['__dict__'] + attrs_now = __dict__ + attrs_updated = {} + for key, value in attrs_now.items(): + # Code that set an attribute may have kept a reference to the + # assigned object, making identity more important than equality. + if key not in attrs_then: + attrs_updated[key] = value + elif id(attrs_now[key]) != id(attrs_then[key]): + attrs_updated[key] = value + __spec__.loader.exec_module(self) + # If exec_module() was used directly there is no guarantee the module + # object was put into sys.modules. + if original_name in sys.modules: + if id(self) != id(sys.modules[original_name]): + raise ValueError(f"module object for {original_name!r} " + "substituted in sys.modules during a lazy " + "load") + # Update after loading since that's what would happen in an eager + # loading situation. + __dict__.update(attrs_updated) + # Finally, stop triggering this method. + self.__class__ = types.ModuleType + return getattr(self, attr) def __delattr__(self, attr): @@ -244,5 +262,7 @@ class LazyLoader(Loader): loader_state = {} loader_state['__dict__'] = module.__dict__.copy() loader_state['__class__'] = module.__class__ + loader_state['lock'] = threading.RLock() + loader_state['is_loading'] = False module.__spec__.loader_state = loader_state module.__class__ = _LazyModule diff --git a/contrib/tools/python3/Lib/inspect.py b/contrib/tools/python3/Lib/inspect.py index a550202bb0..819ce940ee 100644 --- a/contrib/tools/python3/Lib/inspect.py +++ b/contrib/tools/python3/Lib/inspect.py @@ -760,18 +760,14 @@ def unwrap(func, *, stop=None): :exc:`ValueError` is raised if a cycle is encountered. """ - if stop is None: - def _is_wrapper(f): - return hasattr(f, '__wrapped__') - else: - def _is_wrapper(f): - return hasattr(f, '__wrapped__') and not stop(f) f = func # remember the original func for error reporting # Memoise by id to tolerate non-hashable objects, but store objects to # ensure they aren't destroyed, which would allow their IDs to be reused. memo = {id(f): f} recursion_limit = sys.getrecursionlimit() - while _is_wrapper(func): + while not isinstance(func, type) and hasattr(func, '__wrapped__'): + if stop is not None and stop(func): + break func = func.__wrapped__ id_func = id(func) if (id_func in memo) or (len(memo) >= recursion_limit): @@ -2007,15 +2003,17 @@ def _signature_get_user_defined_method(cls, method_name): named ``method_name`` and returns it only if it is a pure python function. """ - try: - meth = getattr(cls, method_name) - except AttributeError: - return + if method_name == '__new__': + meth = getattr(cls, method_name, None) else: - if not isinstance(meth, _NonUserDefinedCallables): - # Once '__signature__' will be added to 'C'-level - # callables, this check won't be necessary - return meth + meth = getattr_static(cls, method_name, None) + if meth is None or isinstance(meth, _NonUserDefinedCallables): + # Once '__signature__' will be added to 'C'-level + # callables, this check won't be necessary + return None + if method_name != '__new__': + meth = _descriptor_get(meth, cls) + return meth def _signature_get_partial(wrapped_sig, partial, extra_args=()): @@ -2460,6 +2458,15 @@ def _signature_from_function(cls, func, skip_bound_arg=True, __validate_parameters__=is_duck_function) +def _descriptor_get(descriptor, obj): + if isclass(descriptor): + return descriptor + get = getattr(type(descriptor), '__get__', _sentinel) + if get is _sentinel: + return descriptor + return get(descriptor, obj, type(obj)) + + def _signature_from_callable(obj, *, follow_wrapper_chains=True, skip_bound_arg=True, @@ -2568,7 +2575,6 @@ def _signature_from_callable(obj, *, wrapped_sig = _get_signature_of(obj.func) return _signature_get_partial(wrapped_sig, obj) - sig = None if isinstance(obj, type): # obj is a class or a metaclass @@ -2576,88 +2582,65 @@ def _signature_from_callable(obj, *, # in its metaclass call = _signature_get_user_defined_method(type(obj), '__call__') if call is not None: - sig = _get_signature_of(call) - else: - factory_method = None - new = _signature_get_user_defined_method(obj, '__new__') - init = _signature_get_user_defined_method(obj, '__init__') - - # Go through the MRO and see if any class has user-defined - # pure Python __new__ or __init__ method - for base in obj.__mro__: - # Now we check if the 'obj' class has an own '__new__' method - if new is not None and '__new__' in base.__dict__: - factory_method = new - break - # or an own '__init__' method - elif init is not None and '__init__' in base.__dict__: - factory_method = init - break + return _get_signature_of(call) - if factory_method is not None: - sig = _get_signature_of(factory_method) - - if sig is None: - # At this point we know, that `obj` is a class, with no user- - # defined '__init__', '__new__', or class-level '__call__' - - for base in obj.__mro__[:-1]: - # Since '__text_signature__' is implemented as a - # descriptor that extracts text signature from the - # class docstring, if 'obj' is derived from a builtin - # class, its own '__text_signature__' may be 'None'. - # Therefore, we go through the MRO (except the last - # class in there, which is 'object') to find the first - # class with non-empty text signature. - try: - text_sig = base.__text_signature__ - except AttributeError: - pass - else: - if text_sig: - # If 'base' class has a __text_signature__ attribute: - # return a signature based on it - return _signature_fromstr(sigcls, base, text_sig) - - # No '__text_signature__' was found for the 'obj' class. - # Last option is to check if its '__init__' is - # object.__init__ or type.__init__. - if type not in obj.__mro__: - # We have a class (not metaclass), but no user-defined - # __init__ or __new__ for it - if (obj.__init__ is object.__init__ and - obj.__new__ is object.__new__): - # Return a signature of 'object' builtin. - return sigcls.from_callable(object) - else: - raise ValueError( - 'no signature found for builtin type {!r}'.format(obj)) + new = _signature_get_user_defined_method(obj, '__new__') + init = _signature_get_user_defined_method(obj, '__init__') - elif not isinstance(obj, _NonUserDefinedCallables): - # An object with __call__ - # We also check that the 'obj' is not an instance of - # types.WrapperDescriptorType or types.MethodWrapperType to avoid - # infinite recursion (and even potential segfault) - call = _signature_get_user_defined_method(type(obj), '__call__') - if call is not None: + # Go through the MRO and see if any class has user-defined + # pure Python __new__ or __init__ method + for base in obj.__mro__: + # Now we check if the 'obj' class has an own '__new__' method + if new is not None and '__new__' in base.__dict__: + sig = _get_signature_of(new) + if skip_bound_arg: + sig = _signature_bound_method(sig) + return sig + # or an own '__init__' method + elif init is not None and '__init__' in base.__dict__: + return _get_signature_of(init) + + # At this point we know, that `obj` is a class, with no user- + # defined '__init__', '__new__', or class-level '__call__' + + for base in obj.__mro__[:-1]: + # Since '__text_signature__' is implemented as a + # descriptor that extracts text signature from the + # class docstring, if 'obj' is derived from a builtin + # class, its own '__text_signature__' may be 'None'. + # Therefore, we go through the MRO (except the last + # class in there, which is 'object') to find the first + # class with non-empty text signature. try: - sig = _get_signature_of(call) - except ValueError as ex: - msg = 'no signature found for {!r}'.format(obj) - raise ValueError(msg) from ex - - if sig is not None: - # For classes and objects we skip the first parameter of their - # __call__, __new__, or __init__ methods - if skip_bound_arg: - return _signature_bound_method(sig) - else: - return sig + text_sig = base.__text_signature__ + except AttributeError: + pass + else: + if text_sig: + # If 'base' class has a __text_signature__ attribute: + # return a signature based on it + return _signature_fromstr(sigcls, base, text_sig) + + # No '__text_signature__' was found for the 'obj' class. + # Last option is to check if its '__init__' is + # object.__init__ or type.__init__. + if type not in obj.__mro__: + # We have a class (not metaclass), but no user-defined + # __init__ or __new__ for it + if (obj.__init__ is object.__init__ and + obj.__new__ is object.__new__): + # Return a signature of 'object' builtin. + return sigcls.from_callable(object) + else: + raise ValueError( + 'no signature found for builtin type {!r}'.format(obj)) - if isinstance(obj, types.BuiltinFunctionType): - # Raise a nicer error message for builtins - msg = 'no signature found for builtin function {!r}'.format(obj) - raise ValueError(msg) + else: + # An object with __call__ + call = getattr_static(type(obj), '__call__', None) + if call is not None: + call = _descriptor_get(call, obj) + return _get_signature_of(call) raise ValueError('callable {!r} is not supported by signature'.format(obj)) diff --git a/contrib/tools/python3/Lib/json/encoder.py b/contrib/tools/python3/Lib/json/encoder.py index 45f5477418..597849eca0 100644 --- a/contrib/tools/python3/Lib/json/encoder.py +++ b/contrib/tools/python3/Lib/json/encoder.py @@ -174,7 +174,7 @@ class JSONEncoder(object): else: return list(iterable) # Let the base class default method raise the TypeError - return JSONEncoder.default(self, o) + return super().default(o) """ raise TypeError(f'Object of type {o.__class__.__name__} ' diff --git a/contrib/tools/python3/Lib/linecache.py b/contrib/tools/python3/Lib/linecache.py index b164e727c6..5585216d2b 100644 --- a/contrib/tools/python3/Lib/linecache.py +++ b/contrib/tools/python3/Lib/linecache.py @@ -178,13 +178,11 @@ def lazycache(filename, module_globals): return False # Try for a __loader__, if available if module_globals and '__name__' in module_globals: - name = module_globals['__name__'] - if (loader := module_globals.get('__loader__')) is None: - if spec := module_globals.get('__spec__'): - try: - loader = spec.loader - except AttributeError: - pass + spec = module_globals.get('__spec__') + name = getattr(spec, 'name', None) or module_globals['__name__'] + loader = getattr(spec, 'loader', None) + if loader is None: + loader = module_globals.get('__loader__') get_source = getattr(loader, 'get_source', None) if name and get_source: diff --git a/contrib/tools/python3/Lib/logging/__init__.py b/contrib/tools/python3/Lib/logging/__init__.py index 056380fb22..22d3198332 100644 --- a/contrib/tools/python3/Lib/logging/__init__.py +++ b/contrib/tools/python3/Lib/logging/__init__.py @@ -1521,7 +1521,7 @@ class Logger(Filterer): To pass exception information, use the keyword argument exc_info with a true value, e.g. - logger.debug("Houston, we have a %s", "thorny problem", exc_info=1) + logger.debug("Houston, we have a %s", "thorny problem", exc_info=True) """ if self.isEnabledFor(DEBUG): self._log(DEBUG, msg, args, **kwargs) @@ -1533,7 +1533,7 @@ class Logger(Filterer): To pass exception information, use the keyword argument exc_info with a true value, e.g. - logger.info("Houston, we have a %s", "notable problem", exc_info=1) + logger.info("Houston, we have a %s", "notable problem", exc_info=True) """ if self.isEnabledFor(INFO): self._log(INFO, msg, args, **kwargs) @@ -1545,7 +1545,7 @@ class Logger(Filterer): To pass exception information, use the keyword argument exc_info with a true value, e.g. - logger.warning("Houston, we have a %s", "bit of a problem", exc_info=1) + logger.warning("Houston, we have a %s", "bit of a problem", exc_info=True) """ if self.isEnabledFor(WARNING): self._log(WARNING, msg, args, **kwargs) @@ -1562,7 +1562,7 @@ class Logger(Filterer): To pass exception information, use the keyword argument exc_info with a true value, e.g. - logger.error("Houston, we have a %s", "major problem", exc_info=1) + logger.error("Houston, we have a %s", "major problem", exc_info=True) """ if self.isEnabledFor(ERROR): self._log(ERROR, msg, args, **kwargs) @@ -1580,7 +1580,7 @@ class Logger(Filterer): To pass exception information, use the keyword argument exc_info with a true value, e.g. - logger.critical("Houston, we have a %s", "major disaster", exc_info=1) + logger.critical("Houston, we have a %s", "major disaster", exc_info=True) """ if self.isEnabledFor(CRITICAL): self._log(CRITICAL, msg, args, **kwargs) @@ -1598,7 +1598,7 @@ class Logger(Filterer): To pass exception information, use the keyword argument exc_info with a true value, e.g. - logger.log(level, "We have a %s", "mysterious problem", exc_info=1) + logger.log(level, "We have a %s", "mysterious problem", exc_info=True) """ if not isinstance(level, int): if raiseExceptions: @@ -1985,18 +1985,11 @@ class LoggerAdapter(object): """ return self.logger.hasHandlers() - def _log(self, level, msg, args, exc_info=None, extra=None, stack_info=False): + def _log(self, level, msg, args, **kwargs): """ Low-level log implementation, proxied to allow nested logger adapters. """ - return self.logger._log( - level, - msg, - args, - exc_info=exc_info, - extra=extra, - stack_info=stack_info, - ) + return self.logger._log(level, msg, args, **kwargs) @property def manager(self): @@ -2056,7 +2049,7 @@ def basicConfig(**kwargs): that this argument is incompatible with 'filename' - if both are present, 'stream' is ignored. handlers If specified, this should be an iterable of already created - handlers, which will be added to the root handler. Any handler + handlers, which will be added to the root logger. Any handler in the list which does not have a formatter assigned will be assigned the formatter created in this function. force If this keyword is specified as true, any existing handlers diff --git a/contrib/tools/python3/Lib/logging/handlers.py b/contrib/tools/python3/Lib/logging/handlers.py index 6e88184b51..1ae6bb8443 100644 --- a/contrib/tools/python3/Lib/logging/handlers.py +++ b/contrib/tools/python3/Lib/logging/handlers.py @@ -232,19 +232,19 @@ class TimedRotatingFileHandler(BaseRotatingHandler): if self.when == 'S': self.interval = 1 # one second self.suffix = "%Y-%m-%d_%H-%M-%S" - self.extMatch = r"^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}(\.\w+)?$" + extMatch = r"(?<!\d)\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}(?!\d)" elif self.when == 'M': self.interval = 60 # one minute self.suffix = "%Y-%m-%d_%H-%M" - self.extMatch = r"^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}(\.\w+)?$" + extMatch = r"(?<!\d)\d{4}-\d{2}-\d{2}_\d{2}-\d{2}(?!\d)" elif self.when == 'H': self.interval = 60 * 60 # one hour self.suffix = "%Y-%m-%d_%H" - self.extMatch = r"^\d{4}-\d{2}-\d{2}_\d{2}(\.\w+)?$" + extMatch = r"(?<!\d)\d{4}-\d{2}-\d{2}_\d{2}(?!\d)" elif self.when == 'D' or self.when == 'MIDNIGHT': self.interval = 60 * 60 * 24 # one day self.suffix = "%Y-%m-%d" - self.extMatch = r"^\d{4}-\d{2}-\d{2}(\.\w+)?$" + extMatch = r"(?<!\d)\d{4}-\d{2}-\d{2}(?!\d)" elif self.when.startswith('W'): self.interval = 60 * 60 * 24 * 7 # one week if len(self.when) != 2: @@ -253,11 +253,17 @@ class TimedRotatingFileHandler(BaseRotatingHandler): raise ValueError("Invalid day specified for weekly rollover: %s" % self.when) self.dayOfWeek = int(self.when[1]) self.suffix = "%Y-%m-%d" - self.extMatch = r"^\d{4}-\d{2}-\d{2}(\.\w+)?$" + extMatch = r"(?<!\d)\d{4}-\d{2}-\d{2}(?!\d)" else: raise ValueError("Invalid rollover interval specified: %s" % self.when) - self.extMatch = re.compile(self.extMatch, re.ASCII) + # extMatch is a pattern for matching a datetime suffix in a file name. + # After custom naming, it is no longer guaranteed to be separated by + # periods from other parts of the filename. The lookup statements + # (?<!\d) and (?!\d) ensure that the datetime suffix (which itself + # starts and ends with digits) is not preceded or followed by digits. + # This reduces the number of false matches and improves performance. + self.extMatch = re.compile(extMatch, re.ASCII) self.interval = self.interval * interval # multiply by units requested # The following line added because the filename passed in could be a # path object (see Issue #27493), but self.baseFilename will be a string @@ -299,7 +305,7 @@ class TimedRotatingFileHandler(BaseRotatingHandler): r = rotate_ts - ((currentHour * 60 + currentMinute) * 60 + currentSecond) - if r < 0: + if r <= 0: # Rotate time is before the current time (for example when # self.rotateAt is 13:45 and it now 14:15), rotation is # tomorrow. @@ -328,17 +334,21 @@ class TimedRotatingFileHandler(BaseRotatingHandler): daysToWait = self.dayOfWeek - day else: daysToWait = 6 - day + self.dayOfWeek + 1 - newRolloverAt = result + (daysToWait * (60 * 60 * 24)) - if not self.utc: - dstNow = t[-1] - dstAtRollover = time.localtime(newRolloverAt)[-1] - if dstNow != dstAtRollover: - if not dstNow: # DST kicks in before next rollover, so we need to deduct an hour - addend = -3600 - else: # DST bows out before next rollover, so we need to add an hour - addend = 3600 - newRolloverAt += addend - result = newRolloverAt + result += daysToWait * _MIDNIGHT + result += self.interval - _MIDNIGHT * 7 + else: + result += self.interval - _MIDNIGHT + if not self.utc: + dstNow = t[-1] + dstAtRollover = time.localtime(result)[-1] + if dstNow != dstAtRollover: + if not dstNow: # DST kicks in before next rollover, so we need to deduct an hour + addend = -3600 + if not time.localtime(result-3600)[-1]: + addend = 0 + else: # DST bows out before next rollover, so we need to add an hour + addend = 3600 + result += addend return result def shouldRollover(self, record): @@ -369,32 +379,28 @@ class TimedRotatingFileHandler(BaseRotatingHandler): dirName, baseName = os.path.split(self.baseFilename) fileNames = os.listdir(dirName) result = [] - # See bpo-44753: Don't use the extension when computing the prefix. - n, e = os.path.splitext(baseName) - prefix = n + '.' - plen = len(prefix) - for fileName in fileNames: - if self.namer is None: - # Our files will always start with baseName - if not fileName.startswith(baseName): - continue - else: - # Our files could be just about anything after custom naming, but - # likely candidates are of the form - # foo.log.DATETIME_SUFFIX or foo.DATETIME_SUFFIX.log - if (not fileName.startswith(baseName) and fileName.endswith(e) and - len(fileName) > (plen + 1) and not fileName[plen+1].isdigit()): - continue - - if fileName[:plen] == prefix: - suffix = fileName[plen:] - # See bpo-45628: The date/time suffix could be anywhere in the - # filename - parts = suffix.split('.') - for part in parts: - if self.extMatch.match(part): + if self.namer is None: + prefix = baseName + '.' + plen = len(prefix) + for fileName in fileNames: + if fileName[:plen] == prefix: + suffix = fileName[plen:] + if self.extMatch.fullmatch(suffix): + result.append(os.path.join(dirName, fileName)) + else: + for fileName in fileNames: + # Our files could be just about anything after custom naming, + # but they should contain the datetime suffix. + # Try to find the datetime suffix in the file name and verify + # that the file name can be generated by this handler. + m = self.extMatch.search(fileName) + while m: + dfn = self.namer(self.baseFilename + "." + m[0]) + if os.path.basename(dfn) == fileName: result.append(os.path.join(dirName, fileName)) break + m = self.extMatch.search(fileName, m.start() + 1) + if len(result) < self.backupCount: result = [] else: @@ -410,17 +416,14 @@ class TimedRotatingFileHandler(BaseRotatingHandler): then we have to get a list of matching filenames, sort them and remove the one with the oldest suffix. """ - if self.stream: - self.stream.close() - self.stream = None # get the time that this sequence started at and make it a TimeTuple currentTime = int(time.time()) - dstNow = time.localtime(currentTime)[-1] t = self.rolloverAt - self.interval if self.utc: timeTuple = time.gmtime(t) else: timeTuple = time.localtime(t) + dstNow = time.localtime(currentTime)[-1] dstThen = timeTuple[-1] if dstNow != dstThen: if dstNow: @@ -431,26 +434,19 @@ class TimedRotatingFileHandler(BaseRotatingHandler): dfn = self.rotation_filename(self.baseFilename + "." + time.strftime(self.suffix, timeTuple)) if os.path.exists(dfn): - os.remove(dfn) + # Already rolled over. + return + + if self.stream: + self.stream.close() + self.stream = None self.rotate(self.baseFilename, dfn) if self.backupCount > 0: for s in self.getFilesToDelete(): os.remove(s) if not self.delay: self.stream = self._open() - newRolloverAt = self.computeRollover(currentTime) - while newRolloverAt <= currentTime: - newRolloverAt = newRolloverAt + self.interval - #If DST changes and midnight or weekly rollover, adjust for this. - if (self.when == 'MIDNIGHT' or self.when.startswith('W')) and not self.utc: - dstAtRollover = time.localtime(newRolloverAt)[-1] - if dstNow != dstAtRollover: - if not dstNow: # DST kicks in before next rollover, so we need to deduct an hour - addend = -3600 - else: # DST bows out before next rollover, so we need to add an hour - addend = 3600 - newRolloverAt += addend - self.rolloverAt = newRolloverAt + self.rolloverAt = self.computeRollover(currentTime) class WatchedFileHandler(logging.FileHandler): """ diff --git a/contrib/tools/python3/Lib/mailbox.py b/contrib/tools/python3/Lib/mailbox.py index c8b3444f64..c7f060ce52 100644 --- a/contrib/tools/python3/Lib/mailbox.py +++ b/contrib/tools/python3/Lib/mailbox.py @@ -698,9 +698,13 @@ class _singlefileMailbox(Mailbox): _sync_close(new_file) # self._file is about to get replaced, so no need to sync. self._file.close() - # Make sure the new file's mode is the same as the old file's - mode = os.stat(self._path).st_mode - os.chmod(new_file.name, mode) + # Make sure the new file's mode and owner are the same as the old file's + info = os.stat(self._path) + os.chmod(new_file.name, info.st_mode) + try: + os.chown(new_file.name, info.st_uid, info.st_gid) + except (AttributeError, OSError): + pass try: os.rename(new_file.name, self._path) except FileExistsError: diff --git a/contrib/tools/python3/Lib/mimetypes.py b/contrib/tools/python3/Lib/mimetypes.py index 37228de482..3cc027aa36 100644 --- a/contrib/tools/python3/Lib/mimetypes.py +++ b/contrib/tools/python3/Lib/mimetypes.py @@ -120,7 +120,13 @@ class MimeTypes: but non-standard types. """ url = os.fspath(url) - scheme, url = urllib.parse._splittype(url) + p = urllib.parse.urlparse(url) + if p.scheme and len(p.scheme) > 1: + scheme = p.scheme + url = p.path + else: + scheme = None + url = os.path.splitdrive(url)[1] if scheme == 'data': # syntax of data URLs: # dataurl := "data:" [ mediatype ] [ ";base64" ] "," data diff --git a/contrib/tools/python3/Lib/multiprocessing/connection.py b/contrib/tools/python3/Lib/multiprocessing/connection.py index dbbf106f68..d0582e3cd5 100644 --- a/contrib/tools/python3/Lib/multiprocessing/connection.py +++ b/contrib/tools/python3/Lib/multiprocessing/connection.py @@ -476,8 +476,9 @@ class Listener(object): ''' if self._listener is None: raise OSError('listener is closed') + c = self._listener.accept() - if self._authkey: + if self._authkey is not None: deliver_challenge(c, self._authkey) answer_challenge(c, self._authkey) return c diff --git a/contrib/tools/python3/Lib/os.py b/contrib/tools/python3/Lib/os.py index 598c9e5023..7ee7d695d9 100644 --- a/contrib/tools/python3/Lib/os.py +++ b/contrib/tools/python3/Lib/os.py @@ -473,7 +473,7 @@ if {open, stat} <= supports_dir_fd and {scandir, stat} <= supports_fd: # lstat()/open()/fstat() trick. if not follow_symlinks: orig_st = stat(top, follow_symlinks=False, dir_fd=dir_fd) - topfd = open(top, O_RDONLY, dir_fd=dir_fd) + topfd = open(top, O_RDONLY | O_NONBLOCK, dir_fd=dir_fd) try: if (follow_symlinks or (st.S_ISDIR(orig_st.st_mode) and path.samestat(orig_st, stat(topfd)))): @@ -522,7 +522,7 @@ if {open, stat} <= supports_dir_fd and {scandir, stat} <= supports_fd: assert entries is not None name, entry = name orig_st = entry.stat(follow_symlinks=False) - dirfd = open(name, O_RDONLY, dir_fd=topfd) + dirfd = open(name, O_RDONLY | O_NONBLOCK, dir_fd=topfd) except OSError as err: if onerror is not None: onerror(err) diff --git a/contrib/tools/python3/Lib/pdb.py b/contrib/tools/python3/Lib/pdb.py index a838a26b03..225c9f253e 100755 --- a/contrib/tools/python3/Lib/pdb.py +++ b/contrib/tools/python3/Lib/pdb.py @@ -154,6 +154,7 @@ class _ScriptTarget(str): __name__='__main__', __file__=self, __builtins__=__builtins__, + __spec__=None, ) @property @@ -298,26 +299,13 @@ class Pdb(bdb.Bdb, cmd.Cmd): # cache it here to ensure that modifications are not overwritten. self.curframe_locals = self.curframe.f_locals self.set_convenience_variable(self.curframe, '_frame', self.curframe) - return self.execRcLines() - # Can be executed earlier than 'setup' if desired - def execRcLines(self): - if not self.rcLines: - return - # local copy because of recursion - rcLines = self.rcLines - rcLines.reverse() - # execute every line only once - self.rcLines = [] - while rcLines: - line = rcLines.pop().strip() - if line and line[0] != '#': - if self.onecmd(line): - # if onecmd returns True, the command wants to exit - # from the interaction, save leftover rc lines - # to execute before next interaction - self.rcLines += reversed(rcLines) - return True + if self.rcLines: + self.cmdqueue = [ + line for line in self.rcLines + if line.strip() and not line.strip().startswith("#") + ] + self.rcLines = [] # Override Bdb methods @@ -430,12 +418,10 @@ class Pdb(bdb.Bdb, cmd.Cmd): pass else: Pdb._previous_sigint_handler = None - if self.setup(frame, traceback): - # no interaction desired at this time (happens if .pdbrc contains - # a command like "continue") - self.forget() - return - self.print_stack_entry(self.stack[self.curindex]) + self.setup(frame, traceback) + # if we have more commands to process, do not show the stack entry + if not self.cmdqueue: + self.print_stack_entry(self.stack[self.curindex]) self._cmdloop() self.forget() @@ -522,7 +508,7 @@ class Pdb(bdb.Bdb, cmd.Cmd): if marker >= 0: # queue up everything after marker next = line[marker+2:].lstrip() - self.cmdqueue.append(next) + self.cmdqueue.insert(0, next) line = line[:marker].rstrip() # Replace all the convenience variables @@ -546,13 +532,12 @@ class Pdb(bdb.Bdb, cmd.Cmd): """Handles one command line during command list definition.""" cmd, arg, line = self.parseline(line) if not cmd: - return + return False if cmd == 'silent': self.commands_silent[self.commands_bnum] = True - return # continue to handle other cmd def in the cmd list + return False # continue to handle other cmd def in the cmd list elif cmd == 'end': - self.cmdqueue = [] - return 1 # end of cmd list + return True # end of cmd list cmdlist = self.commands[self.commands_bnum] if arg: cmdlist.append(cmd+' '+arg) @@ -566,9 +551,8 @@ class Pdb(bdb.Bdb, cmd.Cmd): # one of the resuming commands if func.__name__ in self.commands_resuming: self.commands_doprompt[self.commands_bnum] = False - self.cmdqueue = [] - return 1 - return + return True + return False # interface abstraction functions diff --git a/contrib/tools/python3/Lib/pickletools.py b/contrib/tools/python3/Lib/pickletools.py index 95a77aeb2a..51ee4a7a26 100644 --- a/contrib/tools/python3/Lib/pickletools.py +++ b/contrib/tools/python3/Lib/pickletools.py @@ -1253,7 +1253,7 @@ opcodes = [ stack_before=[], stack_after=[pyint], proto=2, - doc="""Long integer using found-byte length. + doc="""Long integer using four-byte length. A more efficient encoding of a Python long; the long4 encoding says it all."""), diff --git a/contrib/tools/python3/Lib/pydoc.py b/contrib/tools/python3/Lib/pydoc.py index 84bbf588dc..9a8812392a 100755 --- a/contrib/tools/python3/Lib/pydoc.py +++ b/contrib/tools/python3/Lib/pydoc.py @@ -204,6 +204,19 @@ def classname(object, modname): name = object.__module__ + '.' + name return name +def parentname(object, modname): + """Get a name of the enclosing class (qualified it with a module name + if necessary) or module.""" + if '.' in object.__qualname__: + name = object.__qualname__.rpartition('.')[0] + if object.__module__ != modname: + return object.__module__ + '.' + name + else: + return name + else: + if object.__module__ != modname: + return object.__module__ + def isdata(object): """Check if an object is of a type that probably means it's data.""" return not (inspect.ismodule(object) or inspect.isclass(object) or @@ -298,13 +311,15 @@ def visiblename(name, all=None, obj=None): return not name.startswith('_') def classify_class_attrs(object): - """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" + """Wrap inspect.classify_class_attrs, with fixup for data descriptors and bound methods.""" results = [] for (name, kind, cls, value) in inspect.classify_class_attrs(object): if inspect.isdatadescriptor(value): kind = 'data descriptor' if isinstance(value, property) and value.fset is None: kind = 'readonly property' + elif kind == 'method' and _is_bound_method(value): + kind = 'static method' results.append((name, kind, cls, value)) return results @@ -514,7 +529,7 @@ class Doc: '_thread', 'zipimport') or (file.startswith(basedir) and not file.startswith(os.path.join(basedir, 'site-packages')))) and - object.__name__ not in ('xml.etree', 'test.pydoc_mod')): + object.__name__ not in ('xml.etree', 'test.test_pydoc.pydoc_mod')): if docloc.startswith(("http://", "https://")): docloc = "{}/{}.html".format(docloc.rstrip("/"), object.__name__.lower()) else: @@ -658,6 +673,25 @@ class HTMLDoc(Doc): module.__name__, name, classname(object, modname)) return classname(object, modname) + def parentlink(self, object, modname): + """Make a link for the enclosing class or module.""" + link = None + name, module = object.__name__, sys.modules.get(object.__module__) + if hasattr(module, name) and getattr(module, name) is object: + if '.' in object.__qualname__: + name = object.__qualname__.rpartition('.')[0] + if object.__module__ != modname: + link = '%s.html#%s' % (module.__name__, name) + else: + link = '#%s' % name + else: + if object.__module__ != modname: + link = '%s.html' % module.__name__ + if link: + return '<a href="%s">%s</a>' % (link, parentname(object, modname)) + else: + return parentname(object, modname) + def modulelink(self, object): """Make a link for a module.""" return '<a href="%s.html">%s</a>' % (object.__name__, object.__name__) @@ -902,7 +936,7 @@ class HTMLDoc(Doc): push(self.docdata(value, name, mod)) else: push(self.document(value, name, mod, - funcs, classes, mdict, object)) + funcs, classes, mdict, object, homecls)) push('\n') return attrs @@ -1025,24 +1059,44 @@ class HTMLDoc(Doc): return self.grey('=' + self.repr(object)) def docroutine(self, object, name=None, mod=None, - funcs={}, classes={}, methods={}, cl=None): + funcs={}, classes={}, methods={}, cl=None, homecls=None): """Produce HTML documentation for a function or method object.""" realname = object.__name__ name = name or realname - anchor = (cl and cl.__name__ or '') + '-' + name + if homecls is None: + homecls = cl + anchor = ('' if cl is None else cl.__name__) + '-' + name note = '' - skipdocs = 0 + skipdocs = False + imfunc = None if _is_bound_method(object): - imclass = object.__self__.__class__ - if cl: - if imclass is not cl: - note = ' from ' + self.classlink(imclass, mod) + imself = object.__self__ + if imself is cl: + imfunc = getattr(object, '__func__', None) + elif inspect.isclass(imself): + note = ' class method of %s' % self.classlink(imself, mod) else: - if object.__self__ is not None: - note = ' method of %s instance' % self.classlink( - object.__self__.__class__, mod) - else: - note = ' unbound %s method' % self.classlink(imclass,mod) + note = ' method of %s instance' % self.classlink( + imself.__class__, mod) + elif (inspect.ismethoddescriptor(object) or + inspect.ismethodwrapper(object)): + try: + objclass = object.__objclass__ + except AttributeError: + pass + else: + if cl is None: + note = ' unbound %s method' % self.classlink(objclass, mod) + elif objclass is not homecls: + note = ' from ' + self.classlink(objclass, mod) + else: + imfunc = object + if inspect.isfunction(imfunc) and homecls is not None and ( + imfunc.__module__ != homecls.__module__ or + imfunc.__qualname__ != homecls.__qualname__ + '.' + realname): + pname = self.parentlink(imfunc, mod) + if pname: + note = ' from %s' % pname if (inspect.iscoroutinefunction(object) or inspect.isasyncgenfunction(object)): @@ -1053,10 +1107,13 @@ class HTMLDoc(Doc): if name == realname: title = '<a name="%s"><strong>%s</strong></a>' % (anchor, realname) else: - if cl and inspect.getattr_static(cl, realname, []) is object: + if (cl is not None and + inspect.getattr_static(cl, realname, []) is object): reallink = '<a href="#%s">%s</a>' % ( cl.__name__ + '-' + realname, realname) - skipdocs = 1 + skipdocs = True + if note.startswith(' from '): + note = '' else: reallink = realname title = '<a name="%s"><strong>%s</strong></a> = %s' % ( @@ -1074,7 +1131,8 @@ class HTMLDoc(Doc): # XXX lambda's won't usually have func_annotations['return'] # since the syntax doesn't support but it is possible. # So removing parentheses isn't truly safe. - argspec = argspec[1:-1] # remove parentheses + if not object.__annotations__: + argspec = argspec[1:-1] # remove parentheses if not argspec: argspec = '(...)' @@ -1089,7 +1147,7 @@ class HTMLDoc(Doc): doc = doc and '<dd><span class="code">%s</span></dd>' % doc return '<dl><dt>%s</dt>%s</dl>\n' % (decl, doc) - def docdata(self, object, name=None, mod=None, cl=None): + def docdata(self, object, name=None, mod=None, cl=None, *ignored): """Produce html documentation for a data descriptor.""" results = [] push = results.append @@ -1200,7 +1258,7 @@ class TextDoc(Doc): entry, modname, c, prefix + ' ') return result - def docmodule(self, object, name=None, mod=None): + def docmodule(self, object, name=None, mod=None, *ignored): """Produce text documentation for a given module object.""" name = object.__name__ # ignore the passed-in name synop, desc = splitdoc(getdoc(object)) @@ -1384,7 +1442,7 @@ location listed above. push(self.docdata(value, name, mod)) else: push(self.document(value, - name, mod, object)) + name, mod, object, homecls)) return attrs def spilldescriptors(msg, attrs, predicate): @@ -1459,23 +1517,43 @@ location listed above. """Format an argument default value as text.""" return '=' + self.repr(object) - def docroutine(self, object, name=None, mod=None, cl=None): + def docroutine(self, object, name=None, mod=None, cl=None, homecls=None): """Produce text documentation for a function or method object.""" realname = object.__name__ name = name or realname + if homecls is None: + homecls = cl note = '' - skipdocs = 0 + skipdocs = False + imfunc = None if _is_bound_method(object): - imclass = object.__self__.__class__ - if cl: - if imclass is not cl: - note = ' from ' + classname(imclass, mod) + imself = object.__self__ + if imself is cl: + imfunc = getattr(object, '__func__', None) + elif inspect.isclass(imself): + note = ' class method of %s' % classname(imself, mod) else: - if object.__self__ is not None: - note = ' method of %s instance' % classname( - object.__self__.__class__, mod) - else: - note = ' unbound %s method' % classname(imclass,mod) + note = ' method of %s instance' % classname( + imself.__class__, mod) + elif (inspect.ismethoddescriptor(object) or + inspect.ismethodwrapper(object)): + try: + objclass = object.__objclass__ + except AttributeError: + pass + else: + if cl is None: + note = ' unbound %s method' % classname(objclass, mod) + elif objclass is not homecls: + note = ' from ' + classname(objclass, mod) + else: + imfunc = object + if inspect.isfunction(imfunc) and homecls is not None and ( + imfunc.__module__ != homecls.__module__ or + imfunc.__qualname__ != homecls.__qualname__ + '.' + realname): + pname = parentname(imfunc, mod) + if pname: + note = ' from %s' % pname if (inspect.iscoroutinefunction(object) or inspect.isasyncgenfunction(object)): @@ -1486,8 +1564,11 @@ location listed above. if name == realname: title = self.bold(realname) else: - if cl and inspect.getattr_static(cl, realname, []) is object: - skipdocs = 1 + if (cl is not None and + inspect.getattr_static(cl, realname, []) is object): + skipdocs = True + if note.startswith(' from '): + note = '' title = self.bold(name) + ' = ' + realname argspec = None @@ -1503,7 +1584,8 @@ location listed above. # XXX lambda's won't usually have func_annotations['return'] # since the syntax doesn't support but it is possible. # So removing parentheses isn't truly safe. - argspec = argspec[1:-1] # remove parentheses + if not object.__annotations__: + argspec = argspec[1:-1] # remove parentheses if not argspec: argspec = '(...)' decl = asyncqualifier + title + argspec + note @@ -1514,7 +1596,7 @@ location listed above. doc = getdoc(object) or '' return decl + '\n' + (doc and self.indent(doc).rstrip() + '\n') - def docdata(self, object, name=None, mod=None, cl=None): + def docdata(self, object, name=None, mod=None, cl=None, *ignored): """Produce text documentation for a data descriptor.""" results = [] push = results.append @@ -1530,7 +1612,8 @@ location listed above. docproperty = docdata - def docother(self, object, name=None, mod=None, parent=None, maxlen=None, doc=None): + def docother(self, object, name=None, mod=None, parent=None, *ignored, + maxlen=None, doc=None): """Produce text documentation for a data object.""" repr = self.repr(object) if maxlen: @@ -2410,6 +2493,7 @@ def _start_server(urlhandler, hostname, port): threading.Thread.__init__(self) self.serving = False self.error = None + self.docserver = None def run(self): """Start the server.""" @@ -2442,9 +2526,9 @@ def _start_server(urlhandler, hostname, port): thread = ServerThread(urlhandler, hostname, port) thread.start() - # Wait until thread.serving is True to make sure we are - # really up before returning. - while not thread.error and not thread.serving: + # Wait until thread.serving is True and thread.docserver is set + # to make sure we are really up before returning. + while not thread.error and not (thread.serving and thread.docserver): time.sleep(.01) return thread diff --git a/contrib/tools/python3/Lib/pydoc_data/topics.py b/contrib/tools/python3/Lib/pydoc_data/topics.py index e97e543a87..0eb0e7dce5 100644 --- a/contrib/tools/python3/Lib/pydoc_data/topics.py +++ b/contrib/tools/python3/Lib/pydoc_data/topics.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Autogenerated by Sphinx on Tue Feb 6 21:16:37 2024 +# Autogenerated by Sphinx on Tue Apr 9 09:17:41 2024 # as part of the release process. topics = {'assert': 'The "assert" statement\n' '**********************\n' @@ -722,9 +722,9 @@ topics = {'assert': 'The "assert" statement\n' '\n' 'object.__dir__(self)\n' '\n' - ' Called when "dir()" is called on the object. A ' - 'sequence must be\n' - ' returned. "dir()" converts the returned sequence to a ' + ' Called when "dir()" is called on the object. An ' + 'iterable must be\n' + ' returned. "dir()" converts the returned iterable to a ' 'list and\n' ' sorts it.\n' '\n' @@ -751,8 +751,8 @@ topics = {'assert': 'The "assert" statement\n' 'returned.\n' '\n' 'The "__dir__" function should accept no arguments, and ' - 'return a\n' - 'sequence of strings that represents the names accessible ' + 'return an\n' + 'iterable of strings that represents the names accessible ' 'on module. If\n' 'present, this function overrides the standard "dir()" ' 'search on a\n' @@ -4724,7 +4724,7 @@ topics = {'assert': 'The "assert" statement\n' 'reflection,\n' ' and "__eq__()" and "__ne__()" are their own reflection. ' 'If the\n' - ' operands are of different types, and right operand’s ' + ' operands are of different types, and the right operand’s ' 'type is a\n' ' direct or indirect subclass of the left operand’s type, ' 'the\n' @@ -4734,6 +4734,11 @@ topics = {'assert': 'The "assert" statement\n' 'is not\n' ' considered.\n' '\n' + ' When no appropriate method returns any value other than\n' + ' "NotImplemented", the "==" and "!=" operators will fall ' + 'back to\n' + ' "is" and "is not", respectively.\n' + '\n' 'object.__hash__(self)\n' '\n' ' Called by built-in function "hash()" and for operations ' @@ -5212,22 +5217,23 @@ topics = {'assert': 'The "assert" statement\n' 'the\n' 'current directory, it is read with "\'utf-8\'" encoding and ' 'executed as\n' - 'if it had been typed at the debugger prompt. This is ' - 'particularly\n' - 'useful for aliases. If both files exist, the one in the home\n' - 'directory is read first and aliases defined there can be ' - 'overridden by\n' - 'the local file.\n' - '\n' - 'Changed in version 3.11: ".pdbrc" is now read with "\'utf-8\'" ' - 'encoding.\n' - 'Previously, it was read with the system locale encoding.\n' + 'if it had been typed at the debugger prompt, with the exception ' + 'that\n' + 'empty lines and lines starting with "#" are ignored. This is\n' + 'particularly useful for aliases. If both files exist, the one ' + 'in the\n' + 'home directory is read first and aliases defined there can be\n' + 'overridden by the local file.\n' '\n' 'Changed in version 3.2: ".pdbrc" can now contain commands that\n' 'continue debugging, such as "continue" or "next". Previously, ' 'these\n' 'commands had no effect.\n' '\n' + 'Changed in version 3.11: ".pdbrc" is now read with "\'utf-8\'" ' + 'encoding.\n' + 'Previously, it was read with the system locale encoding.\n' + '\n' 'h(elp) [command]\n' '\n' ' Without argument, print the list of available commands. With ' @@ -8559,32 +8565,36 @@ topics = {'assert': 'The "assert" statement\n' '\n' ' nonlocal_stmt ::= "nonlocal" identifier ("," identifier)*\n' '\n' - 'The "nonlocal" statement causes the listed identifiers to refer ' - 'to\n' - 'previously bound variables in the nearest enclosing scope ' - 'excluding\n' - 'globals. This is important because the default behavior for ' - 'binding is\n' - 'to search the local namespace first. The statement allows\n' - 'encapsulated code to rebind variables outside of the local ' - 'scope\n' - 'besides the global (module) scope.\n' - '\n' - 'Names listed in a "nonlocal" statement, unlike those listed in ' - 'a\n' - '"global" statement, must refer to pre-existing bindings in an\n' - 'enclosing scope (the scope in which a new binding should be ' - 'created\n' - 'cannot be determined unambiguously).\n' - '\n' - 'Names listed in a "nonlocal" statement must not collide with ' - 'pre-\n' - 'existing bindings in the local scope.\n' + 'When the definition of a function or class is nested (enclosed) ' + 'within\n' + 'the definitions of other functions, its nonlocal scopes are the ' + 'local\n' + 'scopes of the enclosing functions. The "nonlocal" statement ' + 'causes the\n' + 'listed identifiers to refer to names previously bound in ' + 'nonlocal\n' + 'scopes. It allows encapsulated code to rebind such nonlocal\n' + 'identifiers. If a name is bound in more than one nonlocal ' + 'scope, the\n' + 'nearest binding is used. If a name is not bound in any nonlocal ' + 'scope,\n' + 'or if there is no nonlocal scope, a "SyntaxError" is raised.\n' + '\n' + 'The nonlocal statement applies to the entire scope of a function ' + 'or\n' + 'class body. A "SyntaxError" is raised if a variable is used or\n' + 'assigned to prior to its nonlocal declaration in the scope.\n' '\n' 'See also:\n' '\n' ' **PEP 3104** - Access to Names in Outer Scopes\n' - ' The specification for the "nonlocal" statement.\n', + ' The specification for the "nonlocal" statement.\n' + '\n' + '**Programmer’s note:** "nonlocal" is a directive to the parser ' + 'and\n' + 'applies only to code parsed along with it. See the note for ' + 'the\n' + '"global" statement.\n', 'numbers': 'Numeric literals\n' '****************\n' '\n' @@ -8680,7 +8690,7 @@ topics = {'assert': 'The "assert" statement\n' '"__rsub__()"\n' ' method, "type(y).__rsub__(y, x)" is called if ' '"type(x).__sub__(x,\n' - ' y)" returns *NotImplemented*.\n' + ' y)" returns "NotImplemented".\n' '\n' ' Note that ternary "pow()" will not try calling ' '"__rpow__()" (the\n' @@ -8723,14 +8733,18 @@ topics = {'assert': 'The "assert" statement\n' 'the result\n' ' (which could be, but does not have to be, *self*). If a ' 'specific\n' - ' method is not defined, the augmented assignment falls ' - 'back to the\n' - ' normal methods. For instance, if *x* is an instance of ' - 'a class\n' - ' with an "__iadd__()" method, "x += y" is equivalent to ' - '"x =\n' - ' x.__iadd__(y)" . Otherwise, "x.__add__(y)" and ' - '"y.__radd__(x)" are\n' + ' method is not defined, or if that method returns ' + '"NotImplemented",\n' + ' the augmented assignment falls back to the normal ' + 'methods. For\n' + ' instance, if *x* is an instance of a class with an ' + '"__iadd__()"\n' + ' method, "x += y" is equivalent to "x = x.__iadd__(y)" . ' + 'If\n' + ' "__iadd__()" does not exist, or if "x.__iadd__(y)" ' + 'returns\n' + ' "NotImplemented", "x.__add__(y)" and "y.__radd__(x)" ' + 'are\n' ' considered, as with the evaluation of "x + y". In ' 'certain\n' ' situations, augmented assignment can result in ' @@ -8811,7 +8825,7 @@ topics = {'assert': 'The "assert" statement\n' 'Every object has an identity, a type and a value. An object’s\n' '*identity* never changes once it has been created; you may think ' 'of it\n' - 'as the object’s address in memory. The ‘"is"’ operator compares ' + 'as the object’s address in memory. The "is" operator compares ' 'the\n' 'identity of two objects; the "id()" function returns an integer\n' 'representing its identity.\n' @@ -8876,7 +8890,7 @@ topics = {'assert': 'The "assert" statement\n' 'Note that the use of the implementation’s tracing or debugging\n' 'facilities may keep objects alive that would normally be ' 'collectable.\n' - 'Also note that catching an exception with a ‘"try"…"except"’ ' + 'Also note that catching an exception with a "try"…"except" ' 'statement\n' 'may keep objects alive.\n' '\n' @@ -8891,8 +8905,9 @@ topics = {'assert': 'The "assert" statement\n' 'release the external resource, usually a "close()" method. ' 'Programs\n' 'are strongly recommended to explicitly close such objects. The\n' - '‘"try"…"finally"’ statement and the ‘"with"’ statement provide\n' - 'convenient ways to do this.\n' + '"try"…"finally" statement and the "with" statement provide ' + 'convenient\n' + 'ways to do this.\n' '\n' 'Some objects contain references to other objects; these are ' 'called\n' @@ -9269,10 +9284,7 @@ topics = {'assert': 'The "assert" statement\n' 'The try statement.\n' '\n' 'Changed in version 3.3: "None" is now permitted as "Y" in "raise X\n' - 'from Y".\n' - '\n' - 'New in version 3.3: The "__suppress_context__" attribute to ' - 'suppress\n' + 'from Y".Added the "__suppress_context__" attribute to suppress\n' 'automatic display of the exception context.\n' '\n' 'Changed in version 3.11: If the traceback of the active exception ' @@ -10057,8 +10069,8 @@ topics = {'assert': 'The "assert" statement\n' 'reflection,\n' ' and "__eq__()" and "__ne__()" are their own reflection. ' 'If the\n' - ' operands are of different types, and right operand’s type ' - 'is a\n' + ' operands are of different types, and the right operand’s ' + 'type is a\n' ' direct or indirect subclass of the left operand’s type, ' 'the\n' ' reflected method of the right operand has priority, ' @@ -10067,6 +10079,11 @@ topics = {'assert': 'The "assert" statement\n' 'is not\n' ' considered.\n' '\n' + ' When no appropriate method returns any value other than\n' + ' "NotImplemented", the "==" and "!=" operators will fall ' + 'back to\n' + ' "is" and "is not", respectively.\n' + '\n' 'object.__hash__(self)\n' '\n' ' Called by built-in function "hash()" and for operations ' @@ -10308,9 +10325,9 @@ topics = {'assert': 'The "assert" statement\n' '\n' 'object.__dir__(self)\n' '\n' - ' Called when "dir()" is called on the object. A sequence ' + ' Called when "dir()" is called on the object. An iterable ' 'must be\n' - ' returned. "dir()" converts the returned sequence to a ' + ' returned. "dir()" converts the returned iterable to a ' 'list and\n' ' sorts it.\n' '\n' @@ -10337,8 +10354,8 @@ topics = {'assert': 'The "assert" statement\n' 'returned.\n' '\n' 'The "__dir__" function should accept no arguments, and ' - 'return a\n' - 'sequence of strings that represents the names accessible on ' + 'return an\n' + 'iterable of strings that represents the names accessible on ' 'module. If\n' 'present, this function overrides the standard "dir()" search ' 'on a\n' @@ -11606,7 +11623,7 @@ topics = {'assert': 'The "assert" statement\n' '"__rsub__()"\n' ' method, "type(y).__rsub__(y, x)" is called if ' '"type(x).__sub__(x,\n' - ' y)" returns *NotImplemented*.\n' + ' y)" returns "NotImplemented".\n' '\n' ' Note that ternary "pow()" will not try calling ' '"__rpow__()" (the\n' @@ -11649,14 +11666,17 @@ topics = {'assert': 'The "assert" statement\n' 'the result\n' ' (which could be, but does not have to be, *self*). If a ' 'specific\n' - ' method is not defined, the augmented assignment falls ' - 'back to the\n' - ' normal methods. For instance, if *x* is an instance of a ' - 'class\n' - ' with an "__iadd__()" method, "x += y" is equivalent to "x ' - '=\n' - ' x.__iadd__(y)" . Otherwise, "x.__add__(y)" and ' - '"y.__radd__(x)" are\n' + ' method is not defined, or if that method returns ' + '"NotImplemented",\n' + ' the augmented assignment falls back to the normal ' + 'methods. For\n' + ' instance, if *x* is an instance of a class with an ' + '"__iadd__()"\n' + ' method, "x += y" is equivalent to "x = x.__iadd__(y)" . ' + 'If\n' + ' "__iadd__()" does not exist, or if "x.__iadd__(y)" ' + 'returns\n' + ' "NotImplemented", "x.__add__(y)" and "y.__radd__(x)" are\n' ' considered, as with the evaluation of "x + y". In ' 'certain\n' ' situations, augmented assignment can result in unexpected ' @@ -12998,9 +13018,8 @@ topics = {'assert': 'The "assert" statement\n' '\n' 'New in version 3.3: The "\'rb\'" prefix of raw bytes literals has ' 'been\n' - 'added as a synonym of "\'br\'".\n' - '\n' - 'New in version 3.3: Support for the unicode legacy literal\n' + 'added as a synonym of "\'br\'".Support for the unicode legacy ' + 'literal\n' '("u\'value\'") was reintroduced to simplify the maintenance of ' 'dual\n' 'Python 2.x and 3.x codebases. See **PEP 414** for more ' @@ -13709,14 +13728,18 @@ topics = {'assert': 'The "assert" statement\n' 'contains\n' 'the numbers 0, 1, …, *n*-1. Item *i* of sequence *a* is selected ' 'by\n' - '"a[i]".\n' + '"a[i]". Some sequences, including built-in sequences, interpret\n' + 'negative subscripts by adding the sequence length. For example,\n' + '"a[-2]" equals "a[n-2]", the second to last item of sequence a ' + 'with\n' + 'length "n".\n' '\n' 'Sequences also support slicing: "a[i:j]" selects all items with ' 'index\n' '*k* such that *i* "<=" *k* "<" *j*. When used as an expression, a\n' - 'slice is a sequence of the same type. This implies that the index ' - 'set\n' - 'is renumbered so that it starts at 0.\n' + 'slice is a sequence of the same type. The comment above about ' + 'negative\n' + 'indexes also applies to negative slice positions.\n' '\n' 'Some sequences also support “extended slicing” with a third “step”\n' 'parameter: "a[i:j:k]" selects all items of *a* with index *x* where ' @@ -14461,7 +14484,9 @@ topics = {'assert': 'The "assert" statement\n' 'name |\n' '+----------------------------------------------------+----------------------------------------------------+\n' '| codeobject.co_qualname | The fully ' - 'qualified function name |\n' + 'qualified function name New in version |\n' + '| | ' + '3.11. |\n' '+----------------------------------------------------+----------------------------------------------------+\n' '| codeobject.co_argcount | The total ' 'number of positional *parameters* |\n' @@ -14681,6 +14706,14 @@ topics = {'assert': 'The "assert" statement\n' 'tools.\n' ' The PEP that introduced the "co_lines()" method.\n' '\n' + 'codeobject.replace(**kwargs)\n' + '\n' + ' Return a copy of the code object with new values for the ' + 'specified\n' + ' fields.\n' + '\n' + ' New in version 3.8.\n' + '\n' '\n' 'Frame objects\n' '-------------\n' @@ -16019,7 +16052,7 @@ topics = {'assert': 'The "assert" statement\n' '\n' ' For sorting examples and a brief sorting tutorial, see ' 'Sorting\n' - ' HOW TO.\n' + ' Techniques.\n' '\n' ' **CPython implementation detail:** While a list is being ' 'sorted,\n' @@ -16234,9 +16267,8 @@ topics = {'assert': 'The "assert" statement\n' 'objects\n' 'based on the sequence of values they define (instead of ' 'comparing\n' - 'based on object identity).\n' - '\n' - 'New in version 3.3: The "start", "stop" and "step" attributes.\n' + 'based on object identity).Added the "start", "stop" and "step"\n' + 'attributes.\n' '\n' 'See also:\n' '\n' diff --git a/contrib/tools/python3/Lib/shutil.py b/contrib/tools/python3/Lib/shutil.py index 96463007d1..3a2b6be39b 100644 --- a/contrib/tools/python3/Lib/shutil.py +++ b/contrib/tools/python3/Lib/shutil.py @@ -676,7 +676,7 @@ def _rmtree_safe_fd(topfd, path, onexc): continue if is_dir: try: - dirfd = os.open(entry.name, os.O_RDONLY, dir_fd=topfd) + dirfd = os.open(entry.name, os.O_RDONLY | os.O_NONBLOCK, dir_fd=topfd) dirfd_closed = False except OSError as err: onexc(os.open, fullname, err) @@ -775,7 +775,7 @@ def rmtree(path, ignore_errors=False, onerror=None, *, onexc=None, dir_fd=None): onexc(os.lstat, path, err) return try: - fd = os.open(path, os.O_RDONLY, dir_fd=dir_fd) + fd = os.open(path, os.O_RDONLY | os.O_NONBLOCK, dir_fd=dir_fd) fd_closed = False except Exception as err: onexc(os.open, path, err) diff --git a/contrib/tools/python3/Lib/subprocess.py b/contrib/tools/python3/Lib/subprocess.py index 3264d9afc7..1d17ae3608 100644 --- a/contrib/tools/python3/Lib/subprocess.py +++ b/contrib/tools/python3/Lib/subprocess.py @@ -1581,6 +1581,8 @@ class Popen: """Internal implementation of wait() on Windows.""" if timeout is None: timeout_millis = _winapi.INFINITE + elif timeout <= 0: + timeout_millis = 0 else: timeout_millis = int(timeout * 1000) if self.returncode is None: diff --git a/contrib/tools/python3/Lib/tokenize.py b/contrib/tools/python3/Lib/tokenize.py index 49e8144edd..7af7a5cc1c 100644 --- a/contrib/tools/python3/Lib/tokenize.py +++ b/contrib/tools/python3/Lib/tokenize.py @@ -170,6 +170,7 @@ class Untokenizer: self.tokens = [] self.prev_row = 1 self.prev_col = 0 + self.prev_type = None self.encoding = None def add_whitespace(self, start): @@ -185,6 +186,29 @@ class Untokenizer: if col_offset: self.tokens.append(" " * col_offset) + def escape_brackets(self, token): + characters = [] + consume_until_next_bracket = False + for character in token: + if character == "}": + if consume_until_next_bracket: + consume_until_next_bracket = False + else: + characters.append(character) + if character == "{": + n_backslashes = sum( + 1 for char in _itertools.takewhile( + "\\".__eq__, + characters[-2::-1] + ) + ) + if n_backslashes % 2 == 0: + characters.append(character) + else: + consume_until_next_bracket = True + characters.append(character) + return "".join(characters) + def untokenize(self, iterable): it = iter(iterable) indents = [] @@ -216,11 +240,13 @@ class Untokenizer: startline = False elif tok_type == FSTRING_MIDDLE: if '{' in token or '}' in token: + token = self.escape_brackets(token) + last_line = token.splitlines()[-1] end_line, end_col = end - end = (end_line, end_col + token.count('{') + token.count('}')) - token = re.sub('{', '{{', token) - token = re.sub('}', '}}', token) - + extra_chars = last_line.count("{{") + last_line.count("}}") + end = (end_line, end_col + extra_chars) + elif tok_type in (STRING, FSTRING_START) and self.prev_type in (STRING, FSTRING_END): + self.tokens.append(" ") self.add_whitespace(start) self.tokens.append(token) @@ -228,6 +254,7 @@ class Untokenizer: if tok_type in (NEWLINE, NL): self.prev_row += 1 self.prev_col = 0 + self.prev_type = tok_type return "".join(self.tokens) def compat(self, token, iterable): @@ -235,6 +262,7 @@ class Untokenizer: toks_append = self.tokens.append startline = token[0] in (NEWLINE, NL) prevstring = False + in_fstring = 0 for tok in _itertools.chain([token], iterable): toknum, tokval = tok[:2] @@ -253,6 +281,10 @@ class Untokenizer: else: prevstring = False + if toknum == FSTRING_START: + in_fstring += 1 + elif toknum == FSTRING_END: + in_fstring -= 1 if toknum == INDENT: indents.append(tokval) continue @@ -265,11 +297,18 @@ class Untokenizer: toks_append(indents[-1]) startline = False elif toknum == FSTRING_MIDDLE: - if '{' in tokval or '}' in tokval: - tokval = re.sub('{', '{{', tokval) - tokval = re.sub('}', '}}', tokval) + tokval = self.escape_brackets(tokval) + + # Insert a space between two consecutive brackets if we are in an f-string + if tokval in {"{", "}"} and self.tokens and self.tokens[-1] == tokval and in_fstring: + tokval = ' ' + tokval + + # Insert a space between two consecutive f-strings + if toknum in (STRING, FSTRING_START) and self.prev_type in (STRING, FSTRING_END): + self.tokens.append(" ") toks_append(tokval) + self.prev_type = toknum def untokenize(iterable): diff --git a/contrib/tools/python3/Lib/typing.py b/contrib/tools/python3/Lib/typing.py index ffe7ce8d8a..b58c2d3064 100644 --- a/contrib/tools/python3/Lib/typing.py +++ b/contrib/tools/python3/Lib/typing.py @@ -314,19 +314,33 @@ def _unpack_args(args): newargs.append(arg) return newargs -def _deduplicate(params): +def _deduplicate(params, *, unhashable_fallback=False): # Weed out strict duplicates, preserving the first of each occurrence. - all_params = set(params) - if len(all_params) < len(params): - new_params = [] - for t in params: - if t in all_params: - new_params.append(t) - all_params.remove(t) - params = new_params - assert not all_params, all_params - return params - + try: + return dict.fromkeys(params) + except TypeError: + if not unhashable_fallback: + raise + # Happens for cases like `Annotated[dict, {'x': IntValidator()}]` + return _deduplicate_unhashable(params) + +def _deduplicate_unhashable(unhashable_params): + new_unhashable = [] + for t in unhashable_params: + if t not in new_unhashable: + new_unhashable.append(t) + return new_unhashable + +def _compare_args_orderless(first_args, second_args): + first_unhashable = _deduplicate_unhashable(first_args) + second_unhashable = _deduplicate_unhashable(second_args) + t = list(second_unhashable) + try: + for elem in first_unhashable: + t.remove(elem) + except ValueError: + return False + return not t def _remove_dups_flatten(parameters): """Internal helper for Union creation and substitution. @@ -341,7 +355,7 @@ def _remove_dups_flatten(parameters): else: params.append(p) - return tuple(_deduplicate(params)) + return tuple(_deduplicate(params, unhashable_fallback=True)) def _flatten_literal_params(parameters): @@ -530,7 +544,7 @@ class Any(metaclass=_AnyMeta): def __new__(cls, *args, **kwargs): if cls is Any: raise TypeError("Any cannot be instantiated") - return super().__new__(cls, *args, **kwargs) + return super().__new__(cls) @_SpecialForm @@ -832,22 +846,25 @@ def TypeGuard(self, parameters): 2. If the return value is ``True``, the type of its argument is the type inside ``TypeGuard``. - For example:: + For example:: + + def is_str_list(val: list[object]) -> TypeGuard[list[str]]: + '''Determines whether all objects in the list are strings''' + return all(isinstance(x, str) for x in val) - def is_str(val: Union[str, float]): - # "isinstance" type guard - if isinstance(val, str): - # Type of ``val`` is narrowed to ``str`` - ... - else: - # Else, type of ``val`` is narrowed to ``float``. - ... + def func1(val: list[object]): + if is_str_list(val): + # Type of ``val`` is narrowed to ``list[str]``. + print(" ".join(val)) + else: + # Type of ``val`` remains as ``list[object]``. + print("Not a list of strings!") Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower form of ``TypeA`` (it can even be a wider form) and this may lead to type-unsafe results. The main reason is to allow for things like - narrowing ``List[object]`` to ``List[str]`` even though the latter is not - a subtype of the former, since ``List`` is invariant. The responsibility of + narrowing ``list[object]`` to ``list[str]`` even though the latter is not + a subtype of the former, since ``list`` is invariant. The responsibility of writing type-safe type guards is left to the user. ``TypeGuard`` also works with type variables. For more information, see @@ -872,7 +889,7 @@ class ForwardRef(_Final, _root=True): # If we do `def f(*args: *Ts)`, then we'll have `arg = '*Ts'`. # Unfortunately, this isn't a valid expression on its own, so we # do the unpacking manually. - if arg[0] == '*': + if arg.startswith('*'): arg_to_compile = f'({arg},)[0]' # E.g. (*Ts,)[0] or (*tuple[int, int],)[0] else: arg_to_compile = arg @@ -1140,7 +1157,9 @@ class _BaseGenericAlias(_Final, _root=True): result = self.__origin__(*args, **kwargs) try: result.__orig_class__ = self - except AttributeError: + # Some objects raise TypeError (or something even more exotic) + # if you try to set attributes on them; we guard against that here + except Exception: pass return result @@ -1546,7 +1565,10 @@ class _UnionGenericAlias(_NotIterable, _GenericAlias, _root=True): def __eq__(self, other): if not isinstance(other, (_UnionGenericAlias, types.UnionType)): return NotImplemented - return set(self.__args__) == set(other.__args__) + try: # fast path + return set(self.__args__) == set(other.__args__) + except TypeError: # not hashable, slow path + return _compare_args_orderless(self.__args__, other.__args__) def __hash__(self): return hash(frozenset(self.__args__)) @@ -3254,11 +3276,11 @@ class TextIO(IO[str]): class _DeprecatedType(type): def __getattribute__(cls, name): - if name not in ("__dict__", "__module__") and name in cls.__dict__: + if name not in {"__dict__", "__module__", "__doc__"} and name in cls.__dict__: warnings.warn( f"{cls.__name__} is deprecated, import directly " f"from typing instead. {cls.__name__} will be removed " - "in Python 3.12.", + "in Python 3.13.", DeprecationWarning, stacklevel=2, ) diff --git a/contrib/tools/python3/Lib/unittest/mock.py b/contrib/tools/python3/Lib/unittest/mock.py index a2187580af..0e1b9ace7b 100644 --- a/contrib/tools/python3/Lib/unittest/mock.py +++ b/contrib/tools/python3/Lib/unittest/mock.py @@ -543,7 +543,7 @@ class NonCallableMock(Base): if self._mock_delegate is not None: ret = self._mock_delegate.return_value - if ret is DEFAULT: + if ret is DEFAULT and self._mock_wraps is None: ret = self._get_child_mock( _new_parent=self, _new_name='()' ) @@ -1204,6 +1204,9 @@ class CallableMixin(Base): if self._mock_return_value is not DEFAULT: return self.return_value + if self._mock_delegate and self._mock_delegate.return_value is not DEFAULT: + return self.return_value + if self._mock_wraps is not None: return self._mock_wraps(*args, **kwargs) @@ -2754,9 +2757,12 @@ def create_autospec(spec, spec_set=False, instance=False, _parent=None, if _parent is not None and not instance: _parent._mock_children[_name] = mock + wrapped = kwargs.get('wraps') + if is_type and not instance and 'return_value' not in kwargs: mock.return_value = create_autospec(spec, spec_set, instance=True, - _name='()', _parent=mock) + _name='()', _parent=mock, + wraps=wrapped) for entry in dir(spec): if _is_magic(entry): @@ -2778,6 +2784,9 @@ def create_autospec(spec, spec_set=False, instance=False, _parent=None, continue kwargs = {'spec': original} + # Wrap child attributes also. + if wrapped and hasattr(wrapped, entry): + kwargs.update(wraps=original) if spec_set: kwargs = {'spec_set': original} diff --git a/contrib/tools/python3/Lib/urllib/parse.py b/contrib/tools/python3/Lib/urllib/parse.py index c129b0d797..fc9e7c99f2 100644 --- a/contrib/tools/python3/Lib/urllib/parse.py +++ b/contrib/tools/python3/Lib/urllib/parse.py @@ -763,42 +763,48 @@ def parse_qsl(qs, keep_blank_values=False, strict_parsing=False, Returns a list, as G-d intended. """ - qs, _coerce_result = _coerce_args(qs) - separator, _ = _coerce_args(separator) - if not separator or (not isinstance(separator, (str, bytes))): + if not separator or not isinstance(separator, (str, bytes)): raise ValueError("Separator must be of type string or bytes.") + if isinstance(qs, str): + if not isinstance(separator, str): + separator = str(separator, 'ascii') + eq = '=' + def _unquote(s): + return unquote_plus(s, encoding=encoding, errors=errors) + else: + if not qs: + return [] + # Use memoryview() to reject integers and iterables, + # acceptable by the bytes constructor. + qs = bytes(memoryview(qs)) + if isinstance(separator, str): + separator = bytes(separator, 'ascii') + eq = b'=' + def _unquote(s): + return unquote_to_bytes(s.replace(b'+', b' ')) + + if not qs: + return [] # If max_num_fields is defined then check that the number of fields # is less than max_num_fields. This prevents a memory exhaustion DOS # attack via post bodies with many fields. if max_num_fields is not None: - num_fields = 1 + qs.count(separator) if qs else 0 + num_fields = 1 + qs.count(separator) if max_num_fields < num_fields: raise ValueError('Max number of fields exceeded') r = [] - query_args = qs.split(separator) if qs else [] - for name_value in query_args: - if not name_value and not strict_parsing: - continue - nv = name_value.split('=', 1) - if len(nv) != 2: - if strict_parsing: + for name_value in qs.split(separator): + if name_value or strict_parsing: + name, has_eq, value = name_value.partition(eq) + if not has_eq and strict_parsing: raise ValueError("bad query field: %r" % (name_value,)) - # Handle case of a control-name with no equal sign - if keep_blank_values: - nv.append('') - else: - continue - if len(nv[1]) or keep_blank_values: - name = nv[0].replace('+', ' ') - name = unquote(name, encoding=encoding, errors=errors) - name = _coerce_result(name) - value = nv[1].replace('+', ' ') - value = unquote(value, encoding=encoding, errors=errors) - value = _coerce_result(value) - r.append((name, value)) + if value or keep_blank_values: + name = _unquote(name) + value = _unquote(value) + r.append((name, value)) return r def unquote_plus(string, encoding='utf-8', errors='replace'): diff --git a/contrib/tools/python3/Lib/urllib/request.py b/contrib/tools/python3/Lib/urllib/request.py index 5314b3f260..7228a35534 100644 --- a/contrib/tools/python3/Lib/urllib/request.py +++ b/contrib/tools/python3/Lib/urllib/request.py @@ -2589,6 +2589,7 @@ def _proxy_bypass_macosx_sysconf(host, proxy_settings): } """ from fnmatch import fnmatch + from ipaddress import AddressValueError, IPv4Address hostonly, port = _splitport(host) @@ -2605,20 +2606,17 @@ def _proxy_bypass_macosx_sysconf(host, proxy_settings): return True hostIP = None + try: + hostIP = int(IPv4Address(hostonly)) + except AddressValueError: + pass for value in proxy_settings.get('exceptions', ()): # Items in the list are strings like these: *.local, 169.254/16 if not value: continue m = re.match(r"(\d+(?:\.\d+)*)(/\d+)?", value) - if m is not None: - if hostIP is None: - try: - hostIP = socket.gethostbyname(hostonly) - hostIP = ip2num(hostIP) - except OSError: - continue - + if m is not None and hostIP is not None: base = ip2num(m.group(1)) mask = m.group(2) if mask is None: @@ -2641,6 +2639,31 @@ def _proxy_bypass_macosx_sysconf(host, proxy_settings): return False +# Same as _proxy_bypass_macosx_sysconf, testable on all platforms +def _proxy_bypass_winreg_override(host, override): + """Return True if the host should bypass the proxy server. + + The proxy override list is obtained from the Windows + Internet settings proxy override registry value. + + An example of a proxy override value is: + "www.example.com;*.example.net; 192.168.0.1" + """ + from fnmatch import fnmatch + + host, _ = _splitport(host) + proxy_override = override.split(';') + for test in proxy_override: + test = test.strip() + # "<local>" should bypass the proxy server for all intranet addresses + if test == '<local>': + if '.' not in host: + return True + elif fnmatch(host, test): + return True + return False + + if sys.platform == 'darwin': from _scproxy import _get_proxy_settings, _get_proxies @@ -2739,7 +2762,7 @@ elif os.name == 'nt': import winreg except ImportError: # Std modules, so should be around - but you never know! - return 0 + return False try: internetSettings = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Internet Settings') @@ -2749,40 +2772,10 @@ elif os.name == 'nt': 'ProxyOverride')[0]) # ^^^^ Returned as Unicode but problems if not converted to ASCII except OSError: - return 0 + return False if not proxyEnable or not proxyOverride: - return 0 - # try to make a host list from name and IP address. - rawHost, port = _splitport(host) - host = [rawHost] - try: - addr = socket.gethostbyname(rawHost) - if addr != rawHost: - host.append(addr) - except OSError: - pass - try: - fqdn = socket.getfqdn(rawHost) - if fqdn != rawHost: - host.append(fqdn) - except OSError: - pass - # make a check value list from the registry entry: replace the - # '<local>' string by the localhost entry and the corresponding - # canonical entry. - proxyOverride = proxyOverride.split(';') - # now check if we match one of the registry values. - for test in proxyOverride: - if test == '<local>': - if '.' not in rawHost: - return 1 - test = test.replace(".", r"\.") # mask dots - test = test.replace("*", r".*") # change glob sequence - test = test.replace("?", r".") # change glob char - for val in host: - if re.match(test, val, re.I): - return 1 - return 0 + return False + return _proxy_bypass_winreg_override(host, proxyOverride) def proxy_bypass(host): """Return True, if host should be bypassed. diff --git a/contrib/tools/python3/Lib/xml/etree/ElementTree.py b/contrib/tools/python3/Lib/xml/etree/ElementTree.py index bb7362d163..fd2cc8704e 100644 --- a/contrib/tools/python3/Lib/xml/etree/ElementTree.py +++ b/contrib/tools/python3/Lib/xml/etree/ElementTree.py @@ -1313,6 +1313,11 @@ class XMLPullParser: else: yield event + def flush(self): + if self._parser is None: + raise ValueError("flush() called after end of stream") + self._parser.flush() + def XML(text, parser=None): """Parse XML document from string constant. @@ -1719,6 +1724,15 @@ class XMLParser: del self.parser, self._parser del self.target, self._target + def flush(self): + was_enabled = self.parser.GetReparseDeferralEnabled() + try: + self.parser.SetReparseDeferralEnabled(False) + self.parser.Parse(b"", False) + except self._error as v: + self._raiseerror(v) + finally: + self.parser.SetReparseDeferralEnabled(was_enabled) # -------------------------------------------------------------------- # C14N 2.0 diff --git a/contrib/tools/python3/Lib/xml/sax/expatreader.py b/contrib/tools/python3/Lib/xml/sax/expatreader.py index b9ad52692d..ba3c1e9851 100644 --- a/contrib/tools/python3/Lib/xml/sax/expatreader.py +++ b/contrib/tools/python3/Lib/xml/sax/expatreader.py @@ -214,6 +214,20 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator): # FIXME: when to invoke error()? self._err_handler.fatalError(exc) + def flush(self): + if self._parser is None: + return + + was_enabled = self._parser.GetReparseDeferralEnabled() + try: + self._parser.SetReparseDeferralEnabled(False) + self._parser.Parse(b"", False) + except expat.error as e: + exc = SAXParseException(expat.ErrorString(e.code), e, self) + self._err_handler.fatalError(exc) + finally: + self._parser.SetReparseDeferralEnabled(was_enabled) + def _close_source(self): source = self._source try: diff --git a/contrib/tools/python3/Lib/ya.make b/contrib/tools/python3/Lib/ya.make index 407fd45aaf..81d0f7ca7d 100644 --- a/contrib/tools/python3/Lib/ya.make +++ b/contrib/tools/python3/Lib/ya.make @@ -4,9 +4,9 @@ ENABLE(PYBUILD_NO_PY) PY3_LIBRARY() -VERSION(3.12.2) +VERSION(3.12.3) -ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.2.tar.gz) +ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.3.tar.gz) LICENSE(Python-2.0) diff --git a/contrib/tools/python3/Lib/zipfile/__init__.py b/contrib/tools/python3/Lib/zipfile/__init__.py index 8918484207..91358156bc 100644 --- a/contrib/tools/python3/Lib/zipfile/__init__.py +++ b/contrib/tools/python3/Lib/zipfile/__init__.py @@ -582,7 +582,15 @@ class ZipInfo (object): def is_dir(self): """Return True if this archive member is a directory.""" - return self.filename.endswith('/') + if self.filename.endswith('/'): + return True + # The ZIP format specification requires to use forward slashes + # as the directory separator, but in practice some ZIP files + # created on Windows can use backward slashes. For compatibility + # with the extraction code which already handles this: + if os.path.altsep: + return self.filename.endswith((os.path.sep, os.path.altsep)) + return False # ZIP encryption uses the CRC32 one-byte primitive for scrambling some @@ -1554,7 +1562,8 @@ class ZipFile: self._didModify = True def read(self, name, pwd=None): - """Return file bytes for name.""" + """Return file bytes for name. 'pwd' is the password to decrypt + encrypted files.""" with self.open(name, "r", pwd) as fp: return fp.read() @@ -1706,7 +1715,8 @@ class ZipFile: """Extract a member from the archive to the current working directory, using its full name. Its file information is extracted as accurately as possible. `member' may be a filename or a ZipInfo object. You can - specify a different directory using `path'. + specify a different directory using `path'. You can specify the + password to decrypt the file using 'pwd'. """ if path is None: path = os.getcwd() @@ -1719,7 +1729,8 @@ class ZipFile: """Extract all members from the archive to the current working directory. `path' specifies a different directory to extract to. `members' is optional and must be a subset of the list returned - by namelist(). + by namelist(). You can specify the password to decrypt all files + using 'pwd'. """ if members is None: members = self.namelist() diff --git a/contrib/tools/python3/Modules/_collectionsmodule.c b/contrib/tools/python3/Modules/_collectionsmodule.c index 9a81531bdf..4e195f0d5f 100644 --- a/contrib/tools/python3/Modules/_collectionsmodule.c +++ b/contrib/tools/python3/Modules/_collectionsmodule.c @@ -1116,8 +1116,9 @@ deque_index(dequeobject *deque, PyObject *const *args, Py_ssize_t nargs) n = stop - i; while (--n >= 0) { CHECK_NOT_END(b); - item = b->data[index]; + item = Py_NewRef(b->data[index]); cmp = PyObject_RichCompareBool(item, v, Py_EQ); + Py_DECREF(item); if (cmp > 0) return PyLong_FromSsize_t(stop - n - 1); if (cmp < 0) diff --git a/contrib/tools/python3/Modules/_csv.c b/contrib/tools/python3/Modules/_csv.c index 91cb63628a..d63eac1bf7 100644 --- a/contrib/tools/python3/Modules/_csv.c +++ b/contrib/tools/python3/Modules/_csv.c @@ -1109,6 +1109,8 @@ join_append_data(WriterObj *self, int field_kind, const void *field_data, if (c == dialect->delimiter || c == dialect->escapechar || c == dialect->quotechar || + c == '\n' || + c == '\r' || PyUnicode_FindChar( dialect->lineterminator, c, 0, PyUnicode_GET_LENGTH(dialect->lineterminator), 1) >= 0) { @@ -1180,6 +1182,7 @@ join_check_rec_size(WriterObj *self, Py_ssize_t rec_len) static int join_append(WriterObj *self, PyObject *field, int quoted) { + DialectObj *dialect = self->dialect; int field_kind = -1; const void *field_data = NULL; Py_ssize_t field_len = 0; @@ -1192,6 +1195,19 @@ join_append(WriterObj *self, PyObject *field, int quoted) field_data = PyUnicode_DATA(field); field_len = PyUnicode_GET_LENGTH(field); } + if (!field_len && dialect->delimiter == ' ' && dialect->skipinitialspace) { + if (dialect->quoting == QUOTE_NONE || + (field == NULL && + (dialect->quoting == QUOTE_STRINGS || + dialect->quoting == QUOTE_NOTNULL))) + { + PyErr_Format(self->error_obj, + "empty field must be quoted if delimiter is a space " + "and skipinitialspace is true"); + return 0; + } + quoted = 1; + } rec_len = join_append_data(self, field_kind, field_data, field_len, "ed, 0); if (rec_len < 0) @@ -1243,6 +1259,7 @@ csv_writerow(WriterObj *self, PyObject *seq) { DialectObj *dialect = self->dialect; PyObject *iter, *field, *line, *result; + bool null_field = false; iter = PyObject_GetIter(seq); if (iter == NULL) { @@ -1279,11 +1296,12 @@ csv_writerow(WriterObj *self, PyObject *seq) break; } + null_field = (field == Py_None); if (PyUnicode_Check(field)) { append_ok = join_append(self, field, quoted); Py_DECREF(field); } - else if (field == Py_None) { + else if (null_field) { append_ok = join_append(self, NULL, quoted); Py_DECREF(field); } @@ -1309,7 +1327,11 @@ csv_writerow(WriterObj *self, PyObject *seq) return NULL; if (self->num_fields > 0 && self->rec_len == 0) { - if (dialect->quoting == QUOTE_NONE) { + if (dialect->quoting == QUOTE_NONE || + (null_field && + (dialect->quoting == QUOTE_STRINGS || + dialect->quoting == QUOTE_NOTNULL))) + { PyErr_Format(self->error_obj, "single empty field record must be quoted"); return NULL; diff --git a/contrib/tools/python3/Modules/_decimal/_decimal.c b/contrib/tools/python3/Modules/_decimal/_decimal.c index 70b13982bb..1a195816fe 100644 --- a/contrib/tools/python3/Modules/_decimal/_decimal.c +++ b/contrib/tools/python3/Modules/_decimal/_decimal.c @@ -143,6 +143,8 @@ static PyObject *default_context_template = NULL; static PyObject *basic_context_template = NULL; static PyObject *extended_context_template = NULL; +/* Invariant: NULL or pointer to _pydecimal.Decimal */ +static PyObject *PyDecimal = NULL; /* Error codes for functions that return signals or conditions */ #define DEC_INVALID_SIGNALS (MPD_Max_status+1U) @@ -3219,56 +3221,6 @@ dotsep_as_utf8(const char *s) return utf8; } -/* copy of libmpdec _mpd_round() */ -static void -_mpd_round(mpd_t *result, const mpd_t *a, mpd_ssize_t prec, - const mpd_context_t *ctx, uint32_t *status) -{ - mpd_ssize_t exp = a->exp + a->digits - prec; - - if (prec <= 0) { - mpd_seterror(result, MPD_Invalid_operation, status); - return; - } - if (mpd_isspecial(a) || mpd_iszero(a)) { - mpd_qcopy(result, a, status); - return; - } - - mpd_qrescale_fmt(result, a, exp, ctx, status); - if (result->digits > prec) { - mpd_qrescale_fmt(result, result, exp+1, ctx, status); - } -} - -/* Locate negative zero "z" option within a UTF-8 format spec string. - * Returns pointer to "z", else NULL. - * The portion of the spec we're working with is [[fill]align][sign][z] */ -static const char * -format_spec_z_search(char const *fmt, Py_ssize_t size) { - char const *pos = fmt; - char const *fmt_end = fmt + size; - /* skip over [[fill]align] (fill may be multi-byte character) */ - pos += 1; - while (pos < fmt_end && *pos & 0x80) { - pos += 1; - } - if (pos < fmt_end && strchr("<>=^", *pos) != NULL) { - pos += 1; - } else { - /* fill not present-- skip over [align] */ - pos = fmt; - if (pos < fmt_end && strchr("<>=^", *pos) != NULL) { - pos += 1; - } - } - /* skip over [sign] */ - if (pos < fmt_end && strchr("+- ", *pos) != NULL) { - pos += 1; - } - return pos < fmt_end && *pos == 'z' ? pos : NULL; -} - static int dict_get_item_string(PyObject *dict, const char *key, PyObject **valueobj, const char **valuestr) { @@ -3294,6 +3246,48 @@ dict_get_item_string(PyObject *dict, const char *key, PyObject **valueobj, const return 0; } +/* + * Fallback _pydecimal formatting for new format specifiers that mpdecimal does + * not yet support. As documented, libmpdec follows the PEP-3101 format language: + * https://www.bytereef.org/mpdecimal/doc/libmpdec/assign-convert.html#to-string + */ +static PyObject * +pydec_format(PyObject *dec, PyObject *context, PyObject *fmt) +{ + PyObject *result; + PyObject *pydec; + PyObject *u; + + if (PyDecimal == NULL) { + PyDecimal = _PyImport_GetModuleAttrString("_pydecimal", "Decimal"); + if (PyDecimal == NULL) { + return NULL; + } + } + + u = dec_str(dec); + if (u == NULL) { + return NULL; + } + + pydec = PyObject_CallOneArg(PyDecimal, u); + Py_DECREF(u); + if (pydec == NULL) { + return NULL; + } + + result = PyObject_CallMethod(pydec, "__format__", "(OO)", fmt, context); + Py_DECREF(pydec); + + if (result == NULL && PyErr_ExceptionMatches(PyExc_ValueError)) { + /* Do not confuse users with the _pydecimal exception */ + PyErr_Clear(); + PyErr_SetString(PyExc_ValueError, "invalid format string"); + } + + return result; +} + /* Formatted representation of a PyDecObject. */ static PyObject * dec_format(PyObject *dec, PyObject *args) @@ -3306,16 +3300,11 @@ dec_format(PyObject *dec, PyObject *args) PyObject *fmtarg; PyObject *context; mpd_spec_t spec; - char const *fmt; - char *fmt_copy = NULL; + char *fmt; char *decstring = NULL; uint32_t status = 0; int replace_fillchar = 0; - int no_neg_0 = 0; Py_ssize_t size; - mpd_t *mpd = MPD(dec); - mpd_uint_t dt[MPD_MINALLOC_MAX]; - mpd_t tmp = {MPD_STATIC|MPD_STATIC_DATA,0,0,0,MPD_MINALLOC_MAX,dt}; CURRENT_CONTEXT(context); @@ -3324,39 +3313,20 @@ dec_format(PyObject *dec, PyObject *args) } if (PyUnicode_Check(fmtarg)) { - fmt = PyUnicode_AsUTF8AndSize(fmtarg, &size); + fmt = (char *)PyUnicode_AsUTF8AndSize(fmtarg, &size); if (fmt == NULL) { return NULL; } - /* NOTE: If https://github.com/python/cpython/pull/29438 lands, the - * format string manipulation below can be eliminated by enhancing - * the forked mpd_parse_fmt_str(). */ + if (size > 0 && fmt[0] == '\0') { /* NUL fill character: must be replaced with a valid UTF-8 char before calling mpd_parse_fmt_str(). */ replace_fillchar = 1; - fmt = fmt_copy = dec_strdup(fmt, size); - if (fmt_copy == NULL) { + fmt = dec_strdup(fmt, size); + if (fmt == NULL) { return NULL; } - fmt_copy[0] = '_'; - } - /* Strip 'z' option, which isn't understood by mpd_parse_fmt_str(). - * NOTE: fmt is always null terminated by PyUnicode_AsUTF8AndSize() */ - char const *z_position = format_spec_z_search(fmt, size); - if (z_position != NULL) { - no_neg_0 = 1; - size_t z_index = z_position - fmt; - if (fmt_copy == NULL) { - fmt = fmt_copy = dec_strdup(fmt, size); - if (fmt_copy == NULL) { - return NULL; - } - } - /* Shift characters (including null terminator) left, - overwriting the 'z' option. */ - memmove(fmt_copy + z_index, fmt_copy + z_index + 1, size - z_index); - size -= 1; + fmt[0] = '_'; } } else { @@ -3366,10 +3336,13 @@ dec_format(PyObject *dec, PyObject *args) } if (!mpd_parse_fmt_str(&spec, fmt, CtxCaps(context))) { - PyErr_SetString(PyExc_ValueError, - "invalid format string"); - goto finish; + if (replace_fillchar) { + PyMem_Free(fmt); + } + + return pydec_format(dec, context, fmtarg); } + if (replace_fillchar) { /* In order to avoid clobbering parts of UTF-8 thousands separators or decimal points when the substitution is reversed later, the actual @@ -3422,45 +3395,8 @@ dec_format(PyObject *dec, PyObject *args) } } - if (no_neg_0 && mpd_isnegative(mpd) && !mpd_isspecial(mpd)) { - /* Round into a temporary (carefully mirroring the rounding - of mpd_qformat_spec()), and check if the result is negative zero. - If so, clear the sign and format the resulting positive zero. */ - mpd_ssize_t prec; - mpd_qcopy(&tmp, mpd, &status); - if (spec.prec >= 0) { - switch (spec.type) { - case 'f': - mpd_qrescale(&tmp, &tmp, -spec.prec, CTX(context), &status); - break; - case '%': - tmp.exp += 2; - mpd_qrescale(&tmp, &tmp, -spec.prec, CTX(context), &status); - break; - case 'g': - prec = (spec.prec == 0) ? 1 : spec.prec; - if (tmp.digits > prec) { - _mpd_round(&tmp, &tmp, prec, CTX(context), &status); - } - break; - case 'e': - if (!mpd_iszero(&tmp)) { - _mpd_round(&tmp, &tmp, spec.prec+1, CTX(context), &status); - } - break; - } - } - if (status & MPD_Errors) { - PyErr_SetString(PyExc_ValueError, "unexpected error when rounding"); - goto finish; - } - if (mpd_iszero(&tmp)) { - mpd_set_positive(&tmp); - mpd = &tmp; - } - } - decstring = mpd_qformat_spec(mpd, &spec, CTX(context), &status); + decstring = mpd_qformat_spec(MPD(dec), &spec, CTX(context), &status); if (decstring == NULL) { if (status & MPD_Malloc_error) { PyErr_NoMemory(); @@ -3483,7 +3419,7 @@ finish: Py_XDECREF(grouping); Py_XDECREF(sep); Py_XDECREF(dot); - if (fmt_copy) PyMem_Free(fmt_copy); + if (replace_fillchar) PyMem_Free(fmt); if (decstring) mpd_free(decstring); return result; } @@ -5893,6 +5829,9 @@ PyInit__decimal(void) /* Create the module */ ASSIGN_PTR(m, PyModule_Create(&_decimal_module)); + /* For format specifiers not yet supported by libmpdec */ + PyDecimal = NULL; + /* Add types to the module */ CHECK_INT(PyModule_AddObjectRef(m, "Decimal", (PyObject *)&PyDec_Type)); CHECK_INT(PyModule_AddObjectRef(m, "Context", (PyObject *)&PyDecContext_Type)); diff --git a/contrib/tools/python3/Modules/_elementtree.c b/contrib/tools/python3/Modules/_elementtree.c index 620de8bb4c..fcd4be9338 100644 --- a/contrib/tools/python3/Modules/_elementtree.c +++ b/contrib/tools/python3/Modules/_elementtree.c @@ -3896,6 +3896,40 @@ _elementtree_XMLParser_close_impl(XMLParserObject *self) } /*[clinic input] +_elementtree.XMLParser.flush + +[clinic start generated code]*/ + +static PyObject * +_elementtree_XMLParser_flush_impl(XMLParserObject *self) +/*[clinic end generated code: output=42fdb8795ca24509 input=effbecdb28715949]*/ +{ + if (!_check_xmlparser(self)) { + return NULL; + } + + elementtreestate *st = self->state; + + if (EXPAT(st, SetReparseDeferralEnabled) == NULL) { + Py_RETURN_NONE; + } + + // NOTE: The Expat parser in the C implementation of ElementTree is not + // exposed to the outside; as a result we known that reparse deferral + // is currently enabled, or we would not even have access to function + // XML_SetReparseDeferralEnabled in the first place (which we checked + // for, a few lines up). + + EXPAT(st, SetReparseDeferralEnabled)(self->parser, XML_FALSE); + + PyObject *res = expat_parse(st, self, "", 0, XML_FALSE); + + EXPAT(st, SetReparseDeferralEnabled)(self->parser, XML_TRUE); + + return res; +} + +/*[clinic input] _elementtree.XMLParser.feed data: object @@ -4289,6 +4323,7 @@ static PyType_Spec treebuilder_spec = { static PyMethodDef xmlparser_methods[] = { _ELEMENTTREE_XMLPARSER_FEED_METHODDEF _ELEMENTTREE_XMLPARSER_CLOSE_METHODDEF + _ELEMENTTREE_XMLPARSER_FLUSH_METHODDEF _ELEMENTTREE_XMLPARSER__PARSE_WHOLE_METHODDEF _ELEMENTTREE_XMLPARSER__SETEVENTS_METHODDEF {NULL, NULL} diff --git a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_MD5.c b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_MD5.c index 222ac824f0..ed294839ed 100644 --- a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_MD5.c +++ b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_MD5.c @@ -25,37 +25,29 @@ #include "internal/Hacl_Hash_MD5.h" -static uint32_t -_h0[4U] = - { (uint32_t)0x67452301U, (uint32_t)0xefcdab89U, (uint32_t)0x98badcfeU, (uint32_t)0x10325476U }; +static uint32_t _h0[4U] = { 0x67452301U, 0xefcdab89U, 0x98badcfeU, 0x10325476U }; static uint32_t _t[64U] = { - (uint32_t)0xd76aa478U, (uint32_t)0xe8c7b756U, (uint32_t)0x242070dbU, (uint32_t)0xc1bdceeeU, - (uint32_t)0xf57c0fafU, (uint32_t)0x4787c62aU, (uint32_t)0xa8304613U, (uint32_t)0xfd469501U, - (uint32_t)0x698098d8U, (uint32_t)0x8b44f7afU, (uint32_t)0xffff5bb1U, (uint32_t)0x895cd7beU, - (uint32_t)0x6b901122U, (uint32_t)0xfd987193U, (uint32_t)0xa679438eU, (uint32_t)0x49b40821U, - (uint32_t)0xf61e2562U, (uint32_t)0xc040b340U, (uint32_t)0x265e5a51U, (uint32_t)0xe9b6c7aaU, - (uint32_t)0xd62f105dU, (uint32_t)0x02441453U, (uint32_t)0xd8a1e681U, (uint32_t)0xe7d3fbc8U, - (uint32_t)0x21e1cde6U, (uint32_t)0xc33707d6U, (uint32_t)0xf4d50d87U, (uint32_t)0x455a14edU, - (uint32_t)0xa9e3e905U, (uint32_t)0xfcefa3f8U, (uint32_t)0x676f02d9U, (uint32_t)0x8d2a4c8aU, - (uint32_t)0xfffa3942U, (uint32_t)0x8771f681U, (uint32_t)0x6d9d6122U, (uint32_t)0xfde5380cU, - (uint32_t)0xa4beea44U, (uint32_t)0x4bdecfa9U, (uint32_t)0xf6bb4b60U, (uint32_t)0xbebfbc70U, - (uint32_t)0x289b7ec6U, (uint32_t)0xeaa127faU, (uint32_t)0xd4ef3085U, (uint32_t)0x4881d05U, - (uint32_t)0xd9d4d039U, (uint32_t)0xe6db99e5U, (uint32_t)0x1fa27cf8U, (uint32_t)0xc4ac5665U, - (uint32_t)0xf4292244U, (uint32_t)0x432aff97U, (uint32_t)0xab9423a7U, (uint32_t)0xfc93a039U, - (uint32_t)0x655b59c3U, (uint32_t)0x8f0ccc92U, (uint32_t)0xffeff47dU, (uint32_t)0x85845dd1U, - (uint32_t)0x6fa87e4fU, (uint32_t)0xfe2ce6e0U, (uint32_t)0xa3014314U, (uint32_t)0x4e0811a1U, - (uint32_t)0xf7537e82U, (uint32_t)0xbd3af235U, (uint32_t)0x2ad7d2bbU, (uint32_t)0xeb86d391U + 0xd76aa478U, 0xe8c7b756U, 0x242070dbU, 0xc1bdceeeU, 0xf57c0fafU, 0x4787c62aU, 0xa8304613U, + 0xfd469501U, 0x698098d8U, 0x8b44f7afU, 0xffff5bb1U, 0x895cd7beU, 0x6b901122U, 0xfd987193U, + 0xa679438eU, 0x49b40821U, 0xf61e2562U, 0xc040b340U, 0x265e5a51U, 0xe9b6c7aaU, 0xd62f105dU, + 0x02441453U, 0xd8a1e681U, 0xe7d3fbc8U, 0x21e1cde6U, 0xc33707d6U, 0xf4d50d87U, 0x455a14edU, + 0xa9e3e905U, 0xfcefa3f8U, 0x676f02d9U, 0x8d2a4c8aU, 0xfffa3942U, 0x8771f681U, 0x6d9d6122U, + 0xfde5380cU, 0xa4beea44U, 0x4bdecfa9U, 0xf6bb4b60U, 0xbebfbc70U, 0x289b7ec6U, 0xeaa127faU, + 0xd4ef3085U, 0x4881d05U, 0xd9d4d039U, 0xe6db99e5U, 0x1fa27cf8U, 0xc4ac5665U, 0xf4292244U, + 0x432aff97U, 0xab9423a7U, 0xfc93a039U, 0x655b59c3U, 0x8f0ccc92U, 0xffeff47dU, 0x85845dd1U, + 0x6fa87e4fU, 0xfe2ce6e0U, 0xa3014314U, 0x4e0811a1U, 0xf7537e82U, 0xbd3af235U, 0x2ad7d2bbU, + 0xeb86d391U }; -void Hacl_Hash_Core_MD5_legacy_init(uint32_t *s) +void Hacl_Hash_MD5_init(uint32_t *s) { - KRML_MAYBE_FOR4(i, (uint32_t)0U, (uint32_t)4U, (uint32_t)1U, s[i] = _h0[i];); + KRML_MAYBE_FOR4(i, 0U, 4U, 1U, s[i] = _h0[i];); } -static void legacy_update(uint32_t *abcd, uint8_t *x) +static void update(uint32_t *abcd, uint8_t *x) { uint32_t aa = abcd[0U]; uint32_t bb = abcd[1U]; @@ -74,14 +66,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb0 + ((va + ((vb0 & vc0) | (~vb0 & vd0)) + xk + ti0) - << (uint32_t)7U - | (va + ((vb0 & vc0) | (~vb0 & vd0)) + xk + ti0) >> (uint32_t)25U); + << 7U + | (va + ((vb0 & vc0) | (~vb0 & vd0)) + xk + ti0) >> 25U); abcd[0U] = v; uint32_t va0 = abcd[3U]; uint32_t vb1 = abcd[0U]; uint32_t vc1 = abcd[1U]; uint32_t vd1 = abcd[2U]; - uint8_t *b1 = x + (uint32_t)4U; + uint8_t *b1 = x + 4U; uint32_t u0 = load32_le(b1); uint32_t xk0 = u0; uint32_t ti1 = _t[1U]; @@ -90,14 +82,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb1 + ((va0 + ((vb1 & vc1) | (~vb1 & vd1)) + xk0 + ti1) - << (uint32_t)12U - | (va0 + ((vb1 & vc1) | (~vb1 & vd1)) + xk0 + ti1) >> (uint32_t)20U); + << 12U + | (va0 + ((vb1 & vc1) | (~vb1 & vd1)) + xk0 + ti1) >> 20U); abcd[3U] = v0; uint32_t va1 = abcd[2U]; uint32_t vb2 = abcd[3U]; uint32_t vc2 = abcd[0U]; uint32_t vd2 = abcd[1U]; - uint8_t *b2 = x + (uint32_t)8U; + uint8_t *b2 = x + 8U; uint32_t u1 = load32_le(b2); uint32_t xk1 = u1; uint32_t ti2 = _t[2U]; @@ -106,14 +98,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb2 + ((va1 + ((vb2 & vc2) | (~vb2 & vd2)) + xk1 + ti2) - << (uint32_t)17U - | (va1 + ((vb2 & vc2) | (~vb2 & vd2)) + xk1 + ti2) >> (uint32_t)15U); + << 17U + | (va1 + ((vb2 & vc2) | (~vb2 & vd2)) + xk1 + ti2) >> 15U); abcd[2U] = v1; uint32_t va2 = abcd[1U]; uint32_t vb3 = abcd[2U]; uint32_t vc3 = abcd[3U]; uint32_t vd3 = abcd[0U]; - uint8_t *b3 = x + (uint32_t)12U; + uint8_t *b3 = x + 12U; uint32_t u2 = load32_le(b3); uint32_t xk2 = u2; uint32_t ti3 = _t[3U]; @@ -122,14 +114,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb3 + ((va2 + ((vb3 & vc3) | (~vb3 & vd3)) + xk2 + ti3) - << (uint32_t)22U - | (va2 + ((vb3 & vc3) | (~vb3 & vd3)) + xk2 + ti3) >> (uint32_t)10U); + << 22U + | (va2 + ((vb3 & vc3) | (~vb3 & vd3)) + xk2 + ti3) >> 10U); abcd[1U] = v2; uint32_t va3 = abcd[0U]; uint32_t vb4 = abcd[1U]; uint32_t vc4 = abcd[2U]; uint32_t vd4 = abcd[3U]; - uint8_t *b4 = x + (uint32_t)16U; + uint8_t *b4 = x + 16U; uint32_t u3 = load32_le(b4); uint32_t xk3 = u3; uint32_t ti4 = _t[4U]; @@ -138,14 +130,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb4 + ((va3 + ((vb4 & vc4) | (~vb4 & vd4)) + xk3 + ti4) - << (uint32_t)7U - | (va3 + ((vb4 & vc4) | (~vb4 & vd4)) + xk3 + ti4) >> (uint32_t)25U); + << 7U + | (va3 + ((vb4 & vc4) | (~vb4 & vd4)) + xk3 + ti4) >> 25U); abcd[0U] = v3; uint32_t va4 = abcd[3U]; uint32_t vb5 = abcd[0U]; uint32_t vc5 = abcd[1U]; uint32_t vd5 = abcd[2U]; - uint8_t *b5 = x + (uint32_t)20U; + uint8_t *b5 = x + 20U; uint32_t u4 = load32_le(b5); uint32_t xk4 = u4; uint32_t ti5 = _t[5U]; @@ -154,14 +146,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb5 + ((va4 + ((vb5 & vc5) | (~vb5 & vd5)) + xk4 + ti5) - << (uint32_t)12U - | (va4 + ((vb5 & vc5) | (~vb5 & vd5)) + xk4 + ti5) >> (uint32_t)20U); + << 12U + | (va4 + ((vb5 & vc5) | (~vb5 & vd5)) + xk4 + ti5) >> 20U); abcd[3U] = v4; uint32_t va5 = abcd[2U]; uint32_t vb6 = abcd[3U]; uint32_t vc6 = abcd[0U]; uint32_t vd6 = abcd[1U]; - uint8_t *b6 = x + (uint32_t)24U; + uint8_t *b6 = x + 24U; uint32_t u5 = load32_le(b6); uint32_t xk5 = u5; uint32_t ti6 = _t[6U]; @@ -170,14 +162,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb6 + ((va5 + ((vb6 & vc6) | (~vb6 & vd6)) + xk5 + ti6) - << (uint32_t)17U - | (va5 + ((vb6 & vc6) | (~vb6 & vd6)) + xk5 + ti6) >> (uint32_t)15U); + << 17U + | (va5 + ((vb6 & vc6) | (~vb6 & vd6)) + xk5 + ti6) >> 15U); abcd[2U] = v5; uint32_t va6 = abcd[1U]; uint32_t vb7 = abcd[2U]; uint32_t vc7 = abcd[3U]; uint32_t vd7 = abcd[0U]; - uint8_t *b7 = x + (uint32_t)28U; + uint8_t *b7 = x + 28U; uint32_t u6 = load32_le(b7); uint32_t xk6 = u6; uint32_t ti7 = _t[7U]; @@ -186,14 +178,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb7 + ((va6 + ((vb7 & vc7) | (~vb7 & vd7)) + xk6 + ti7) - << (uint32_t)22U - | (va6 + ((vb7 & vc7) | (~vb7 & vd7)) + xk6 + ti7) >> (uint32_t)10U); + << 22U + | (va6 + ((vb7 & vc7) | (~vb7 & vd7)) + xk6 + ti7) >> 10U); abcd[1U] = v6; uint32_t va7 = abcd[0U]; uint32_t vb8 = abcd[1U]; uint32_t vc8 = abcd[2U]; uint32_t vd8 = abcd[3U]; - uint8_t *b8 = x + (uint32_t)32U; + uint8_t *b8 = x + 32U; uint32_t u7 = load32_le(b8); uint32_t xk7 = u7; uint32_t ti8 = _t[8U]; @@ -202,14 +194,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb8 + ((va7 + ((vb8 & vc8) | (~vb8 & vd8)) + xk7 + ti8) - << (uint32_t)7U - | (va7 + ((vb8 & vc8) | (~vb8 & vd8)) + xk7 + ti8) >> (uint32_t)25U); + << 7U + | (va7 + ((vb8 & vc8) | (~vb8 & vd8)) + xk7 + ti8) >> 25U); abcd[0U] = v7; uint32_t va8 = abcd[3U]; uint32_t vb9 = abcd[0U]; uint32_t vc9 = abcd[1U]; uint32_t vd9 = abcd[2U]; - uint8_t *b9 = x + (uint32_t)36U; + uint8_t *b9 = x + 36U; uint32_t u8 = load32_le(b9); uint32_t xk8 = u8; uint32_t ti9 = _t[9U]; @@ -218,14 +210,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb9 + ((va8 + ((vb9 & vc9) | (~vb9 & vd9)) + xk8 + ti9) - << (uint32_t)12U - | (va8 + ((vb9 & vc9) | (~vb9 & vd9)) + xk8 + ti9) >> (uint32_t)20U); + << 12U + | (va8 + ((vb9 & vc9) | (~vb9 & vd9)) + xk8 + ti9) >> 20U); abcd[3U] = v8; uint32_t va9 = abcd[2U]; uint32_t vb10 = abcd[3U]; uint32_t vc10 = abcd[0U]; uint32_t vd10 = abcd[1U]; - uint8_t *b10 = x + (uint32_t)40U; + uint8_t *b10 = x + 40U; uint32_t u9 = load32_le(b10); uint32_t xk9 = u9; uint32_t ti10 = _t[10U]; @@ -234,14 +226,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb10 + ((va9 + ((vb10 & vc10) | (~vb10 & vd10)) + xk9 + ti10) - << (uint32_t)17U - | (va9 + ((vb10 & vc10) | (~vb10 & vd10)) + xk9 + ti10) >> (uint32_t)15U); + << 17U + | (va9 + ((vb10 & vc10) | (~vb10 & vd10)) + xk9 + ti10) >> 15U); abcd[2U] = v9; uint32_t va10 = abcd[1U]; uint32_t vb11 = abcd[2U]; uint32_t vc11 = abcd[3U]; uint32_t vd11 = abcd[0U]; - uint8_t *b11 = x + (uint32_t)44U; + uint8_t *b11 = x + 44U; uint32_t u10 = load32_le(b11); uint32_t xk10 = u10; uint32_t ti11 = _t[11U]; @@ -250,14 +242,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb11 + ((va10 + ((vb11 & vc11) | (~vb11 & vd11)) + xk10 + ti11) - << (uint32_t)22U - | (va10 + ((vb11 & vc11) | (~vb11 & vd11)) + xk10 + ti11) >> (uint32_t)10U); + << 22U + | (va10 + ((vb11 & vc11) | (~vb11 & vd11)) + xk10 + ti11) >> 10U); abcd[1U] = v10; uint32_t va11 = abcd[0U]; uint32_t vb12 = abcd[1U]; uint32_t vc12 = abcd[2U]; uint32_t vd12 = abcd[3U]; - uint8_t *b12 = x + (uint32_t)48U; + uint8_t *b12 = x + 48U; uint32_t u11 = load32_le(b12); uint32_t xk11 = u11; uint32_t ti12 = _t[12U]; @@ -266,14 +258,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb12 + ((va11 + ((vb12 & vc12) | (~vb12 & vd12)) + xk11 + ti12) - << (uint32_t)7U - | (va11 + ((vb12 & vc12) | (~vb12 & vd12)) + xk11 + ti12) >> (uint32_t)25U); + << 7U + | (va11 + ((vb12 & vc12) | (~vb12 & vd12)) + xk11 + ti12) >> 25U); abcd[0U] = v11; uint32_t va12 = abcd[3U]; uint32_t vb13 = abcd[0U]; uint32_t vc13 = abcd[1U]; uint32_t vd13 = abcd[2U]; - uint8_t *b13 = x + (uint32_t)52U; + uint8_t *b13 = x + 52U; uint32_t u12 = load32_le(b13); uint32_t xk12 = u12; uint32_t ti13 = _t[13U]; @@ -282,14 +274,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb13 + ((va12 + ((vb13 & vc13) | (~vb13 & vd13)) + xk12 + ti13) - << (uint32_t)12U - | (va12 + ((vb13 & vc13) | (~vb13 & vd13)) + xk12 + ti13) >> (uint32_t)20U); + << 12U + | (va12 + ((vb13 & vc13) | (~vb13 & vd13)) + xk12 + ti13) >> 20U); abcd[3U] = v12; uint32_t va13 = abcd[2U]; uint32_t vb14 = abcd[3U]; uint32_t vc14 = abcd[0U]; uint32_t vd14 = abcd[1U]; - uint8_t *b14 = x + (uint32_t)56U; + uint8_t *b14 = x + 56U; uint32_t u13 = load32_le(b14); uint32_t xk13 = u13; uint32_t ti14 = _t[14U]; @@ -298,14 +290,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb14 + ((va13 + ((vb14 & vc14) | (~vb14 & vd14)) + xk13 + ti14) - << (uint32_t)17U - | (va13 + ((vb14 & vc14) | (~vb14 & vd14)) + xk13 + ti14) >> (uint32_t)15U); + << 17U + | (va13 + ((vb14 & vc14) | (~vb14 & vd14)) + xk13 + ti14) >> 15U); abcd[2U] = v13; uint32_t va14 = abcd[1U]; uint32_t vb15 = abcd[2U]; uint32_t vc15 = abcd[3U]; uint32_t vd15 = abcd[0U]; - uint8_t *b15 = x + (uint32_t)60U; + uint8_t *b15 = x + 60U; uint32_t u14 = load32_le(b15); uint32_t xk14 = u14; uint32_t ti15 = _t[15U]; @@ -314,14 +306,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb15 + ((va14 + ((vb15 & vc15) | (~vb15 & vd15)) + xk14 + ti15) - << (uint32_t)22U - | (va14 + ((vb15 & vc15) | (~vb15 & vd15)) + xk14 + ti15) >> (uint32_t)10U); + << 22U + | (va14 + ((vb15 & vc15) | (~vb15 & vd15)) + xk14 + ti15) >> 10U); abcd[1U] = v14; uint32_t va15 = abcd[0U]; uint32_t vb16 = abcd[1U]; uint32_t vc16 = abcd[2U]; uint32_t vd16 = abcd[3U]; - uint8_t *b16 = x + (uint32_t)4U; + uint8_t *b16 = x + 4U; uint32_t u15 = load32_le(b16); uint32_t xk15 = u15; uint32_t ti16 = _t[16U]; @@ -330,14 +322,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb16 + ((va15 + ((vb16 & vd16) | (vc16 & ~vd16)) + xk15 + ti16) - << (uint32_t)5U - | (va15 + ((vb16 & vd16) | (vc16 & ~vd16)) + xk15 + ti16) >> (uint32_t)27U); + << 5U + | (va15 + ((vb16 & vd16) | (vc16 & ~vd16)) + xk15 + ti16) >> 27U); abcd[0U] = v15; uint32_t va16 = abcd[3U]; uint32_t vb17 = abcd[0U]; uint32_t vc17 = abcd[1U]; uint32_t vd17 = abcd[2U]; - uint8_t *b17 = x + (uint32_t)24U; + uint8_t *b17 = x + 24U; uint32_t u16 = load32_le(b17); uint32_t xk16 = u16; uint32_t ti17 = _t[17U]; @@ -346,14 +338,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb17 + ((va16 + ((vb17 & vd17) | (vc17 & ~vd17)) + xk16 + ti17) - << (uint32_t)9U - | (va16 + ((vb17 & vd17) | (vc17 & ~vd17)) + xk16 + ti17) >> (uint32_t)23U); + << 9U + | (va16 + ((vb17 & vd17) | (vc17 & ~vd17)) + xk16 + ti17) >> 23U); abcd[3U] = v16; uint32_t va17 = abcd[2U]; uint32_t vb18 = abcd[3U]; uint32_t vc18 = abcd[0U]; uint32_t vd18 = abcd[1U]; - uint8_t *b18 = x + (uint32_t)44U; + uint8_t *b18 = x + 44U; uint32_t u17 = load32_le(b18); uint32_t xk17 = u17; uint32_t ti18 = _t[18U]; @@ -362,8 +354,8 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb18 + ((va17 + ((vb18 & vd18) | (vc18 & ~vd18)) + xk17 + ti18) - << (uint32_t)14U - | (va17 + ((vb18 & vd18) | (vc18 & ~vd18)) + xk17 + ti18) >> (uint32_t)18U); + << 14U + | (va17 + ((vb18 & vd18) | (vc18 & ~vd18)) + xk17 + ti18) >> 18U); abcd[2U] = v17; uint32_t va18 = abcd[1U]; uint32_t vb19 = abcd[2U]; @@ -378,14 +370,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb19 + ((va18 + ((vb19 & vd19) | (vc19 & ~vd19)) + xk18 + ti19) - << (uint32_t)20U - | (va18 + ((vb19 & vd19) | (vc19 & ~vd19)) + xk18 + ti19) >> (uint32_t)12U); + << 20U + | (va18 + ((vb19 & vd19) | (vc19 & ~vd19)) + xk18 + ti19) >> 12U); abcd[1U] = v18; uint32_t va19 = abcd[0U]; uint32_t vb20 = abcd[1U]; uint32_t vc20 = abcd[2U]; uint32_t vd20 = abcd[3U]; - uint8_t *b20 = x + (uint32_t)20U; + uint8_t *b20 = x + 20U; uint32_t u19 = load32_le(b20); uint32_t xk19 = u19; uint32_t ti20 = _t[20U]; @@ -394,14 +386,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb20 + ((va19 + ((vb20 & vd20) | (vc20 & ~vd20)) + xk19 + ti20) - << (uint32_t)5U - | (va19 + ((vb20 & vd20) | (vc20 & ~vd20)) + xk19 + ti20) >> (uint32_t)27U); + << 5U + | (va19 + ((vb20 & vd20) | (vc20 & ~vd20)) + xk19 + ti20) >> 27U); abcd[0U] = v19; uint32_t va20 = abcd[3U]; uint32_t vb21 = abcd[0U]; uint32_t vc21 = abcd[1U]; uint32_t vd21 = abcd[2U]; - uint8_t *b21 = x + (uint32_t)40U; + uint8_t *b21 = x + 40U; uint32_t u20 = load32_le(b21); uint32_t xk20 = u20; uint32_t ti21 = _t[21U]; @@ -410,14 +402,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb21 + ((va20 + ((vb21 & vd21) | (vc21 & ~vd21)) + xk20 + ti21) - << (uint32_t)9U - | (va20 + ((vb21 & vd21) | (vc21 & ~vd21)) + xk20 + ti21) >> (uint32_t)23U); + << 9U + | (va20 + ((vb21 & vd21) | (vc21 & ~vd21)) + xk20 + ti21) >> 23U); abcd[3U] = v20; uint32_t va21 = abcd[2U]; uint32_t vb22 = abcd[3U]; uint32_t vc22 = abcd[0U]; uint32_t vd22 = abcd[1U]; - uint8_t *b22 = x + (uint32_t)60U; + uint8_t *b22 = x + 60U; uint32_t u21 = load32_le(b22); uint32_t xk21 = u21; uint32_t ti22 = _t[22U]; @@ -426,14 +418,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb22 + ((va21 + ((vb22 & vd22) | (vc22 & ~vd22)) + xk21 + ti22) - << (uint32_t)14U - | (va21 + ((vb22 & vd22) | (vc22 & ~vd22)) + xk21 + ti22) >> (uint32_t)18U); + << 14U + | (va21 + ((vb22 & vd22) | (vc22 & ~vd22)) + xk21 + ti22) >> 18U); abcd[2U] = v21; uint32_t va22 = abcd[1U]; uint32_t vb23 = abcd[2U]; uint32_t vc23 = abcd[3U]; uint32_t vd23 = abcd[0U]; - uint8_t *b23 = x + (uint32_t)16U; + uint8_t *b23 = x + 16U; uint32_t u22 = load32_le(b23); uint32_t xk22 = u22; uint32_t ti23 = _t[23U]; @@ -442,14 +434,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb23 + ((va22 + ((vb23 & vd23) | (vc23 & ~vd23)) + xk22 + ti23) - << (uint32_t)20U - | (va22 + ((vb23 & vd23) | (vc23 & ~vd23)) + xk22 + ti23) >> (uint32_t)12U); + << 20U + | (va22 + ((vb23 & vd23) | (vc23 & ~vd23)) + xk22 + ti23) >> 12U); abcd[1U] = v22; uint32_t va23 = abcd[0U]; uint32_t vb24 = abcd[1U]; uint32_t vc24 = abcd[2U]; uint32_t vd24 = abcd[3U]; - uint8_t *b24 = x + (uint32_t)36U; + uint8_t *b24 = x + 36U; uint32_t u23 = load32_le(b24); uint32_t xk23 = u23; uint32_t ti24 = _t[24U]; @@ -458,14 +450,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb24 + ((va23 + ((vb24 & vd24) | (vc24 & ~vd24)) + xk23 + ti24) - << (uint32_t)5U - | (va23 + ((vb24 & vd24) | (vc24 & ~vd24)) + xk23 + ti24) >> (uint32_t)27U); + << 5U + | (va23 + ((vb24 & vd24) | (vc24 & ~vd24)) + xk23 + ti24) >> 27U); abcd[0U] = v23; uint32_t va24 = abcd[3U]; uint32_t vb25 = abcd[0U]; uint32_t vc25 = abcd[1U]; uint32_t vd25 = abcd[2U]; - uint8_t *b25 = x + (uint32_t)56U; + uint8_t *b25 = x + 56U; uint32_t u24 = load32_le(b25); uint32_t xk24 = u24; uint32_t ti25 = _t[25U]; @@ -474,14 +466,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb25 + ((va24 + ((vb25 & vd25) | (vc25 & ~vd25)) + xk24 + ti25) - << (uint32_t)9U - | (va24 + ((vb25 & vd25) | (vc25 & ~vd25)) + xk24 + ti25) >> (uint32_t)23U); + << 9U + | (va24 + ((vb25 & vd25) | (vc25 & ~vd25)) + xk24 + ti25) >> 23U); abcd[3U] = v24; uint32_t va25 = abcd[2U]; uint32_t vb26 = abcd[3U]; uint32_t vc26 = abcd[0U]; uint32_t vd26 = abcd[1U]; - uint8_t *b26 = x + (uint32_t)12U; + uint8_t *b26 = x + 12U; uint32_t u25 = load32_le(b26); uint32_t xk25 = u25; uint32_t ti26 = _t[26U]; @@ -490,14 +482,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb26 + ((va25 + ((vb26 & vd26) | (vc26 & ~vd26)) + xk25 + ti26) - << (uint32_t)14U - | (va25 + ((vb26 & vd26) | (vc26 & ~vd26)) + xk25 + ti26) >> (uint32_t)18U); + << 14U + | (va25 + ((vb26 & vd26) | (vc26 & ~vd26)) + xk25 + ti26) >> 18U); abcd[2U] = v25; uint32_t va26 = abcd[1U]; uint32_t vb27 = abcd[2U]; uint32_t vc27 = abcd[3U]; uint32_t vd27 = abcd[0U]; - uint8_t *b27 = x + (uint32_t)32U; + uint8_t *b27 = x + 32U; uint32_t u26 = load32_le(b27); uint32_t xk26 = u26; uint32_t ti27 = _t[27U]; @@ -506,14 +498,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb27 + ((va26 + ((vb27 & vd27) | (vc27 & ~vd27)) + xk26 + ti27) - << (uint32_t)20U - | (va26 + ((vb27 & vd27) | (vc27 & ~vd27)) + xk26 + ti27) >> (uint32_t)12U); + << 20U + | (va26 + ((vb27 & vd27) | (vc27 & ~vd27)) + xk26 + ti27) >> 12U); abcd[1U] = v26; uint32_t va27 = abcd[0U]; uint32_t vb28 = abcd[1U]; uint32_t vc28 = abcd[2U]; uint32_t vd28 = abcd[3U]; - uint8_t *b28 = x + (uint32_t)52U; + uint8_t *b28 = x + 52U; uint32_t u27 = load32_le(b28); uint32_t xk27 = u27; uint32_t ti28 = _t[28U]; @@ -522,14 +514,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb28 + ((va27 + ((vb28 & vd28) | (vc28 & ~vd28)) + xk27 + ti28) - << (uint32_t)5U - | (va27 + ((vb28 & vd28) | (vc28 & ~vd28)) + xk27 + ti28) >> (uint32_t)27U); + << 5U + | (va27 + ((vb28 & vd28) | (vc28 & ~vd28)) + xk27 + ti28) >> 27U); abcd[0U] = v27; uint32_t va28 = abcd[3U]; uint32_t vb29 = abcd[0U]; uint32_t vc29 = abcd[1U]; uint32_t vd29 = abcd[2U]; - uint8_t *b29 = x + (uint32_t)8U; + uint8_t *b29 = x + 8U; uint32_t u28 = load32_le(b29); uint32_t xk28 = u28; uint32_t ti29 = _t[29U]; @@ -538,14 +530,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb29 + ((va28 + ((vb29 & vd29) | (vc29 & ~vd29)) + xk28 + ti29) - << (uint32_t)9U - | (va28 + ((vb29 & vd29) | (vc29 & ~vd29)) + xk28 + ti29) >> (uint32_t)23U); + << 9U + | (va28 + ((vb29 & vd29) | (vc29 & ~vd29)) + xk28 + ti29) >> 23U); abcd[3U] = v28; uint32_t va29 = abcd[2U]; uint32_t vb30 = abcd[3U]; uint32_t vc30 = abcd[0U]; uint32_t vd30 = abcd[1U]; - uint8_t *b30 = x + (uint32_t)28U; + uint8_t *b30 = x + 28U; uint32_t u29 = load32_le(b30); uint32_t xk29 = u29; uint32_t ti30 = _t[30U]; @@ -554,14 +546,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb30 + ((va29 + ((vb30 & vd30) | (vc30 & ~vd30)) + xk29 + ti30) - << (uint32_t)14U - | (va29 + ((vb30 & vd30) | (vc30 & ~vd30)) + xk29 + ti30) >> (uint32_t)18U); + << 14U + | (va29 + ((vb30 & vd30) | (vc30 & ~vd30)) + xk29 + ti30) >> 18U); abcd[2U] = v29; uint32_t va30 = abcd[1U]; uint32_t vb31 = abcd[2U]; uint32_t vc31 = abcd[3U]; uint32_t vd31 = abcd[0U]; - uint8_t *b31 = x + (uint32_t)48U; + uint8_t *b31 = x + 48U; uint32_t u30 = load32_le(b31); uint32_t xk30 = u30; uint32_t ti31 = _t[31U]; @@ -570,14 +562,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb31 + ((va30 + ((vb31 & vd31) | (vc31 & ~vd31)) + xk30 + ti31) - << (uint32_t)20U - | (va30 + ((vb31 & vd31) | (vc31 & ~vd31)) + xk30 + ti31) >> (uint32_t)12U); + << 20U + | (va30 + ((vb31 & vd31) | (vc31 & ~vd31)) + xk30 + ti31) >> 12U); abcd[1U] = v30; uint32_t va31 = abcd[0U]; uint32_t vb32 = abcd[1U]; uint32_t vc32 = abcd[2U]; uint32_t vd32 = abcd[3U]; - uint8_t *b32 = x + (uint32_t)20U; + uint8_t *b32 = x + 20U; uint32_t u31 = load32_le(b32); uint32_t xk31 = u31; uint32_t ti32 = _t[32U]; @@ -586,14 +578,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb32 + ((va31 + (vb32 ^ (vc32 ^ vd32)) + xk31 + ti32) - << (uint32_t)4U - | (va31 + (vb32 ^ (vc32 ^ vd32)) + xk31 + ti32) >> (uint32_t)28U); + << 4U + | (va31 + (vb32 ^ (vc32 ^ vd32)) + xk31 + ti32) >> 28U); abcd[0U] = v31; uint32_t va32 = abcd[3U]; uint32_t vb33 = abcd[0U]; uint32_t vc33 = abcd[1U]; uint32_t vd33 = abcd[2U]; - uint8_t *b33 = x + (uint32_t)32U; + uint8_t *b33 = x + 32U; uint32_t u32 = load32_le(b33); uint32_t xk32 = u32; uint32_t ti33 = _t[33U]; @@ -602,14 +594,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb33 + ((va32 + (vb33 ^ (vc33 ^ vd33)) + xk32 + ti33) - << (uint32_t)11U - | (va32 + (vb33 ^ (vc33 ^ vd33)) + xk32 + ti33) >> (uint32_t)21U); + << 11U + | (va32 + (vb33 ^ (vc33 ^ vd33)) + xk32 + ti33) >> 21U); abcd[3U] = v32; uint32_t va33 = abcd[2U]; uint32_t vb34 = abcd[3U]; uint32_t vc34 = abcd[0U]; uint32_t vd34 = abcd[1U]; - uint8_t *b34 = x + (uint32_t)44U; + uint8_t *b34 = x + 44U; uint32_t u33 = load32_le(b34); uint32_t xk33 = u33; uint32_t ti34 = _t[34U]; @@ -618,14 +610,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb34 + ((va33 + (vb34 ^ (vc34 ^ vd34)) + xk33 + ti34) - << (uint32_t)16U - | (va33 + (vb34 ^ (vc34 ^ vd34)) + xk33 + ti34) >> (uint32_t)16U); + << 16U + | (va33 + (vb34 ^ (vc34 ^ vd34)) + xk33 + ti34) >> 16U); abcd[2U] = v33; uint32_t va34 = abcd[1U]; uint32_t vb35 = abcd[2U]; uint32_t vc35 = abcd[3U]; uint32_t vd35 = abcd[0U]; - uint8_t *b35 = x + (uint32_t)56U; + uint8_t *b35 = x + 56U; uint32_t u34 = load32_le(b35); uint32_t xk34 = u34; uint32_t ti35 = _t[35U]; @@ -634,14 +626,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb35 + ((va34 + (vb35 ^ (vc35 ^ vd35)) + xk34 + ti35) - << (uint32_t)23U - | (va34 + (vb35 ^ (vc35 ^ vd35)) + xk34 + ti35) >> (uint32_t)9U); + << 23U + | (va34 + (vb35 ^ (vc35 ^ vd35)) + xk34 + ti35) >> 9U); abcd[1U] = v34; uint32_t va35 = abcd[0U]; uint32_t vb36 = abcd[1U]; uint32_t vc36 = abcd[2U]; uint32_t vd36 = abcd[3U]; - uint8_t *b36 = x + (uint32_t)4U; + uint8_t *b36 = x + 4U; uint32_t u35 = load32_le(b36); uint32_t xk35 = u35; uint32_t ti36 = _t[36U]; @@ -650,14 +642,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb36 + ((va35 + (vb36 ^ (vc36 ^ vd36)) + xk35 + ti36) - << (uint32_t)4U - | (va35 + (vb36 ^ (vc36 ^ vd36)) + xk35 + ti36) >> (uint32_t)28U); + << 4U + | (va35 + (vb36 ^ (vc36 ^ vd36)) + xk35 + ti36) >> 28U); abcd[0U] = v35; uint32_t va36 = abcd[3U]; uint32_t vb37 = abcd[0U]; uint32_t vc37 = abcd[1U]; uint32_t vd37 = abcd[2U]; - uint8_t *b37 = x + (uint32_t)16U; + uint8_t *b37 = x + 16U; uint32_t u36 = load32_le(b37); uint32_t xk36 = u36; uint32_t ti37 = _t[37U]; @@ -666,14 +658,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb37 + ((va36 + (vb37 ^ (vc37 ^ vd37)) + xk36 + ti37) - << (uint32_t)11U - | (va36 + (vb37 ^ (vc37 ^ vd37)) + xk36 + ti37) >> (uint32_t)21U); + << 11U + | (va36 + (vb37 ^ (vc37 ^ vd37)) + xk36 + ti37) >> 21U); abcd[3U] = v36; uint32_t va37 = abcd[2U]; uint32_t vb38 = abcd[3U]; uint32_t vc38 = abcd[0U]; uint32_t vd38 = abcd[1U]; - uint8_t *b38 = x + (uint32_t)28U; + uint8_t *b38 = x + 28U; uint32_t u37 = load32_le(b38); uint32_t xk37 = u37; uint32_t ti38 = _t[38U]; @@ -682,14 +674,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb38 + ((va37 + (vb38 ^ (vc38 ^ vd38)) + xk37 + ti38) - << (uint32_t)16U - | (va37 + (vb38 ^ (vc38 ^ vd38)) + xk37 + ti38) >> (uint32_t)16U); + << 16U + | (va37 + (vb38 ^ (vc38 ^ vd38)) + xk37 + ti38) >> 16U); abcd[2U] = v37; uint32_t va38 = abcd[1U]; uint32_t vb39 = abcd[2U]; uint32_t vc39 = abcd[3U]; uint32_t vd39 = abcd[0U]; - uint8_t *b39 = x + (uint32_t)40U; + uint8_t *b39 = x + 40U; uint32_t u38 = load32_le(b39); uint32_t xk38 = u38; uint32_t ti39 = _t[39U]; @@ -698,14 +690,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb39 + ((va38 + (vb39 ^ (vc39 ^ vd39)) + xk38 + ti39) - << (uint32_t)23U - | (va38 + (vb39 ^ (vc39 ^ vd39)) + xk38 + ti39) >> (uint32_t)9U); + << 23U + | (va38 + (vb39 ^ (vc39 ^ vd39)) + xk38 + ti39) >> 9U); abcd[1U] = v38; uint32_t va39 = abcd[0U]; uint32_t vb40 = abcd[1U]; uint32_t vc40 = abcd[2U]; uint32_t vd40 = abcd[3U]; - uint8_t *b40 = x + (uint32_t)52U; + uint8_t *b40 = x + 52U; uint32_t u39 = load32_le(b40); uint32_t xk39 = u39; uint32_t ti40 = _t[40U]; @@ -714,8 +706,8 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb40 + ((va39 + (vb40 ^ (vc40 ^ vd40)) + xk39 + ti40) - << (uint32_t)4U - | (va39 + (vb40 ^ (vc40 ^ vd40)) + xk39 + ti40) >> (uint32_t)28U); + << 4U + | (va39 + (vb40 ^ (vc40 ^ vd40)) + xk39 + ti40) >> 28U); abcd[0U] = v39; uint32_t va40 = abcd[3U]; uint32_t vb41 = abcd[0U]; @@ -730,14 +722,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb41 + ((va40 + (vb41 ^ (vc41 ^ vd41)) + xk40 + ti41) - << (uint32_t)11U - | (va40 + (vb41 ^ (vc41 ^ vd41)) + xk40 + ti41) >> (uint32_t)21U); + << 11U + | (va40 + (vb41 ^ (vc41 ^ vd41)) + xk40 + ti41) >> 21U); abcd[3U] = v40; uint32_t va41 = abcd[2U]; uint32_t vb42 = abcd[3U]; uint32_t vc42 = abcd[0U]; uint32_t vd42 = abcd[1U]; - uint8_t *b42 = x + (uint32_t)12U; + uint8_t *b42 = x + 12U; uint32_t u41 = load32_le(b42); uint32_t xk41 = u41; uint32_t ti42 = _t[42U]; @@ -746,14 +738,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb42 + ((va41 + (vb42 ^ (vc42 ^ vd42)) + xk41 + ti42) - << (uint32_t)16U - | (va41 + (vb42 ^ (vc42 ^ vd42)) + xk41 + ti42) >> (uint32_t)16U); + << 16U + | (va41 + (vb42 ^ (vc42 ^ vd42)) + xk41 + ti42) >> 16U); abcd[2U] = v41; uint32_t va42 = abcd[1U]; uint32_t vb43 = abcd[2U]; uint32_t vc43 = abcd[3U]; uint32_t vd43 = abcd[0U]; - uint8_t *b43 = x + (uint32_t)24U; + uint8_t *b43 = x + 24U; uint32_t u42 = load32_le(b43); uint32_t xk42 = u42; uint32_t ti43 = _t[43U]; @@ -762,14 +754,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb43 + ((va42 + (vb43 ^ (vc43 ^ vd43)) + xk42 + ti43) - << (uint32_t)23U - | (va42 + (vb43 ^ (vc43 ^ vd43)) + xk42 + ti43) >> (uint32_t)9U); + << 23U + | (va42 + (vb43 ^ (vc43 ^ vd43)) + xk42 + ti43) >> 9U); abcd[1U] = v42; uint32_t va43 = abcd[0U]; uint32_t vb44 = abcd[1U]; uint32_t vc44 = abcd[2U]; uint32_t vd44 = abcd[3U]; - uint8_t *b44 = x + (uint32_t)36U; + uint8_t *b44 = x + 36U; uint32_t u43 = load32_le(b44); uint32_t xk43 = u43; uint32_t ti44 = _t[44U]; @@ -778,14 +770,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb44 + ((va43 + (vb44 ^ (vc44 ^ vd44)) + xk43 + ti44) - << (uint32_t)4U - | (va43 + (vb44 ^ (vc44 ^ vd44)) + xk43 + ti44) >> (uint32_t)28U); + << 4U + | (va43 + (vb44 ^ (vc44 ^ vd44)) + xk43 + ti44) >> 28U); abcd[0U] = v43; uint32_t va44 = abcd[3U]; uint32_t vb45 = abcd[0U]; uint32_t vc45 = abcd[1U]; uint32_t vd45 = abcd[2U]; - uint8_t *b45 = x + (uint32_t)48U; + uint8_t *b45 = x + 48U; uint32_t u44 = load32_le(b45); uint32_t xk44 = u44; uint32_t ti45 = _t[45U]; @@ -794,14 +786,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb45 + ((va44 + (vb45 ^ (vc45 ^ vd45)) + xk44 + ti45) - << (uint32_t)11U - | (va44 + (vb45 ^ (vc45 ^ vd45)) + xk44 + ti45) >> (uint32_t)21U); + << 11U + | (va44 + (vb45 ^ (vc45 ^ vd45)) + xk44 + ti45) >> 21U); abcd[3U] = v44; uint32_t va45 = abcd[2U]; uint32_t vb46 = abcd[3U]; uint32_t vc46 = abcd[0U]; uint32_t vd46 = abcd[1U]; - uint8_t *b46 = x + (uint32_t)60U; + uint8_t *b46 = x + 60U; uint32_t u45 = load32_le(b46); uint32_t xk45 = u45; uint32_t ti46 = _t[46U]; @@ -810,14 +802,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb46 + ((va45 + (vb46 ^ (vc46 ^ vd46)) + xk45 + ti46) - << (uint32_t)16U - | (va45 + (vb46 ^ (vc46 ^ vd46)) + xk45 + ti46) >> (uint32_t)16U); + << 16U + | (va45 + (vb46 ^ (vc46 ^ vd46)) + xk45 + ti46) >> 16U); abcd[2U] = v45; uint32_t va46 = abcd[1U]; uint32_t vb47 = abcd[2U]; uint32_t vc47 = abcd[3U]; uint32_t vd47 = abcd[0U]; - uint8_t *b47 = x + (uint32_t)8U; + uint8_t *b47 = x + 8U; uint32_t u46 = load32_le(b47); uint32_t xk46 = u46; uint32_t ti47 = _t[47U]; @@ -826,8 +818,8 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb47 + ((va46 + (vb47 ^ (vc47 ^ vd47)) + xk46 + ti47) - << (uint32_t)23U - | (va46 + (vb47 ^ (vc47 ^ vd47)) + xk46 + ti47) >> (uint32_t)9U); + << 23U + | (va46 + (vb47 ^ (vc47 ^ vd47)) + xk46 + ti47) >> 9U); abcd[1U] = v46; uint32_t va47 = abcd[0U]; uint32_t vb48 = abcd[1U]; @@ -842,14 +834,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb48 + ((va47 + (vc48 ^ (vb48 | ~vd48)) + xk47 + ti48) - << (uint32_t)6U - | (va47 + (vc48 ^ (vb48 | ~vd48)) + xk47 + ti48) >> (uint32_t)26U); + << 6U + | (va47 + (vc48 ^ (vb48 | ~vd48)) + xk47 + ti48) >> 26U); abcd[0U] = v47; uint32_t va48 = abcd[3U]; uint32_t vb49 = abcd[0U]; uint32_t vc49 = abcd[1U]; uint32_t vd49 = abcd[2U]; - uint8_t *b49 = x + (uint32_t)28U; + uint8_t *b49 = x + 28U; uint32_t u48 = load32_le(b49); uint32_t xk48 = u48; uint32_t ti49 = _t[49U]; @@ -858,14 +850,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb49 + ((va48 + (vc49 ^ (vb49 | ~vd49)) + xk48 + ti49) - << (uint32_t)10U - | (va48 + (vc49 ^ (vb49 | ~vd49)) + xk48 + ti49) >> (uint32_t)22U); + << 10U + | (va48 + (vc49 ^ (vb49 | ~vd49)) + xk48 + ti49) >> 22U); abcd[3U] = v48; uint32_t va49 = abcd[2U]; uint32_t vb50 = abcd[3U]; uint32_t vc50 = abcd[0U]; uint32_t vd50 = abcd[1U]; - uint8_t *b50 = x + (uint32_t)56U; + uint8_t *b50 = x + 56U; uint32_t u49 = load32_le(b50); uint32_t xk49 = u49; uint32_t ti50 = _t[50U]; @@ -874,14 +866,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb50 + ((va49 + (vc50 ^ (vb50 | ~vd50)) + xk49 + ti50) - << (uint32_t)15U - | (va49 + (vc50 ^ (vb50 | ~vd50)) + xk49 + ti50) >> (uint32_t)17U); + << 15U + | (va49 + (vc50 ^ (vb50 | ~vd50)) + xk49 + ti50) >> 17U); abcd[2U] = v49; uint32_t va50 = abcd[1U]; uint32_t vb51 = abcd[2U]; uint32_t vc51 = abcd[3U]; uint32_t vd51 = abcd[0U]; - uint8_t *b51 = x + (uint32_t)20U; + uint8_t *b51 = x + 20U; uint32_t u50 = load32_le(b51); uint32_t xk50 = u50; uint32_t ti51 = _t[51U]; @@ -890,14 +882,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb51 + ((va50 + (vc51 ^ (vb51 | ~vd51)) + xk50 + ti51) - << (uint32_t)21U - | (va50 + (vc51 ^ (vb51 | ~vd51)) + xk50 + ti51) >> (uint32_t)11U); + << 21U + | (va50 + (vc51 ^ (vb51 | ~vd51)) + xk50 + ti51) >> 11U); abcd[1U] = v50; uint32_t va51 = abcd[0U]; uint32_t vb52 = abcd[1U]; uint32_t vc52 = abcd[2U]; uint32_t vd52 = abcd[3U]; - uint8_t *b52 = x + (uint32_t)48U; + uint8_t *b52 = x + 48U; uint32_t u51 = load32_le(b52); uint32_t xk51 = u51; uint32_t ti52 = _t[52U]; @@ -906,14 +898,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb52 + ((va51 + (vc52 ^ (vb52 | ~vd52)) + xk51 + ti52) - << (uint32_t)6U - | (va51 + (vc52 ^ (vb52 | ~vd52)) + xk51 + ti52) >> (uint32_t)26U); + << 6U + | (va51 + (vc52 ^ (vb52 | ~vd52)) + xk51 + ti52) >> 26U); abcd[0U] = v51; uint32_t va52 = abcd[3U]; uint32_t vb53 = abcd[0U]; uint32_t vc53 = abcd[1U]; uint32_t vd53 = abcd[2U]; - uint8_t *b53 = x + (uint32_t)12U; + uint8_t *b53 = x + 12U; uint32_t u52 = load32_le(b53); uint32_t xk52 = u52; uint32_t ti53 = _t[53U]; @@ -922,14 +914,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb53 + ((va52 + (vc53 ^ (vb53 | ~vd53)) + xk52 + ti53) - << (uint32_t)10U - | (va52 + (vc53 ^ (vb53 | ~vd53)) + xk52 + ti53) >> (uint32_t)22U); + << 10U + | (va52 + (vc53 ^ (vb53 | ~vd53)) + xk52 + ti53) >> 22U); abcd[3U] = v52; uint32_t va53 = abcd[2U]; uint32_t vb54 = abcd[3U]; uint32_t vc54 = abcd[0U]; uint32_t vd54 = abcd[1U]; - uint8_t *b54 = x + (uint32_t)40U; + uint8_t *b54 = x + 40U; uint32_t u53 = load32_le(b54); uint32_t xk53 = u53; uint32_t ti54 = _t[54U]; @@ -938,14 +930,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb54 + ((va53 + (vc54 ^ (vb54 | ~vd54)) + xk53 + ti54) - << (uint32_t)15U - | (va53 + (vc54 ^ (vb54 | ~vd54)) + xk53 + ti54) >> (uint32_t)17U); + << 15U + | (va53 + (vc54 ^ (vb54 | ~vd54)) + xk53 + ti54) >> 17U); abcd[2U] = v53; uint32_t va54 = abcd[1U]; uint32_t vb55 = abcd[2U]; uint32_t vc55 = abcd[3U]; uint32_t vd55 = abcd[0U]; - uint8_t *b55 = x + (uint32_t)4U; + uint8_t *b55 = x + 4U; uint32_t u54 = load32_le(b55); uint32_t xk54 = u54; uint32_t ti55 = _t[55U]; @@ -954,14 +946,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb55 + ((va54 + (vc55 ^ (vb55 | ~vd55)) + xk54 + ti55) - << (uint32_t)21U - | (va54 + (vc55 ^ (vb55 | ~vd55)) + xk54 + ti55) >> (uint32_t)11U); + << 21U + | (va54 + (vc55 ^ (vb55 | ~vd55)) + xk54 + ti55) >> 11U); abcd[1U] = v54; uint32_t va55 = abcd[0U]; uint32_t vb56 = abcd[1U]; uint32_t vc56 = abcd[2U]; uint32_t vd56 = abcd[3U]; - uint8_t *b56 = x + (uint32_t)32U; + uint8_t *b56 = x + 32U; uint32_t u55 = load32_le(b56); uint32_t xk55 = u55; uint32_t ti56 = _t[56U]; @@ -970,14 +962,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb56 + ((va55 + (vc56 ^ (vb56 | ~vd56)) + xk55 + ti56) - << (uint32_t)6U - | (va55 + (vc56 ^ (vb56 | ~vd56)) + xk55 + ti56) >> (uint32_t)26U); + << 6U + | (va55 + (vc56 ^ (vb56 | ~vd56)) + xk55 + ti56) >> 26U); abcd[0U] = v55; uint32_t va56 = abcd[3U]; uint32_t vb57 = abcd[0U]; uint32_t vc57 = abcd[1U]; uint32_t vd57 = abcd[2U]; - uint8_t *b57 = x + (uint32_t)60U; + uint8_t *b57 = x + 60U; uint32_t u56 = load32_le(b57); uint32_t xk56 = u56; uint32_t ti57 = _t[57U]; @@ -986,14 +978,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb57 + ((va56 + (vc57 ^ (vb57 | ~vd57)) + xk56 + ti57) - << (uint32_t)10U - | (va56 + (vc57 ^ (vb57 | ~vd57)) + xk56 + ti57) >> (uint32_t)22U); + << 10U + | (va56 + (vc57 ^ (vb57 | ~vd57)) + xk56 + ti57) >> 22U); abcd[3U] = v56; uint32_t va57 = abcd[2U]; uint32_t vb58 = abcd[3U]; uint32_t vc58 = abcd[0U]; uint32_t vd58 = abcd[1U]; - uint8_t *b58 = x + (uint32_t)24U; + uint8_t *b58 = x + 24U; uint32_t u57 = load32_le(b58); uint32_t xk57 = u57; uint32_t ti58 = _t[58U]; @@ -1002,14 +994,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb58 + ((va57 + (vc58 ^ (vb58 | ~vd58)) + xk57 + ti58) - << (uint32_t)15U - | (va57 + (vc58 ^ (vb58 | ~vd58)) + xk57 + ti58) >> (uint32_t)17U); + << 15U + | (va57 + (vc58 ^ (vb58 | ~vd58)) + xk57 + ti58) >> 17U); abcd[2U] = v57; uint32_t va58 = abcd[1U]; uint32_t vb59 = abcd[2U]; uint32_t vc59 = abcd[3U]; uint32_t vd59 = abcd[0U]; - uint8_t *b59 = x + (uint32_t)52U; + uint8_t *b59 = x + 52U; uint32_t u58 = load32_le(b59); uint32_t xk58 = u58; uint32_t ti59 = _t[59U]; @@ -1018,14 +1010,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb59 + ((va58 + (vc59 ^ (vb59 | ~vd59)) + xk58 + ti59) - << (uint32_t)21U - | (va58 + (vc59 ^ (vb59 | ~vd59)) + xk58 + ti59) >> (uint32_t)11U); + << 21U + | (va58 + (vc59 ^ (vb59 | ~vd59)) + xk58 + ti59) >> 11U); abcd[1U] = v58; uint32_t va59 = abcd[0U]; uint32_t vb60 = abcd[1U]; uint32_t vc60 = abcd[2U]; uint32_t vd60 = abcd[3U]; - uint8_t *b60 = x + (uint32_t)16U; + uint8_t *b60 = x + 16U; uint32_t u59 = load32_le(b60); uint32_t xk59 = u59; uint32_t ti60 = _t[60U]; @@ -1034,14 +1026,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb60 + ((va59 + (vc60 ^ (vb60 | ~vd60)) + xk59 + ti60) - << (uint32_t)6U - | (va59 + (vc60 ^ (vb60 | ~vd60)) + xk59 + ti60) >> (uint32_t)26U); + << 6U + | (va59 + (vc60 ^ (vb60 | ~vd60)) + xk59 + ti60) >> 26U); abcd[0U] = v59; uint32_t va60 = abcd[3U]; uint32_t vb61 = abcd[0U]; uint32_t vc61 = abcd[1U]; uint32_t vd61 = abcd[2U]; - uint8_t *b61 = x + (uint32_t)44U; + uint8_t *b61 = x + 44U; uint32_t u60 = load32_le(b61); uint32_t xk60 = u60; uint32_t ti61 = _t[61U]; @@ -1050,14 +1042,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb61 + ((va60 + (vc61 ^ (vb61 | ~vd61)) + xk60 + ti61) - << (uint32_t)10U - | (va60 + (vc61 ^ (vb61 | ~vd61)) + xk60 + ti61) >> (uint32_t)22U); + << 10U + | (va60 + (vc61 ^ (vb61 | ~vd61)) + xk60 + ti61) >> 22U); abcd[3U] = v60; uint32_t va61 = abcd[2U]; uint32_t vb62 = abcd[3U]; uint32_t vc62 = abcd[0U]; uint32_t vd62 = abcd[1U]; - uint8_t *b62 = x + (uint32_t)8U; + uint8_t *b62 = x + 8U; uint32_t u61 = load32_le(b62); uint32_t xk61 = u61; uint32_t ti62 = _t[62U]; @@ -1066,14 +1058,14 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb62 + ((va61 + (vc62 ^ (vb62 | ~vd62)) + xk61 + ti62) - << (uint32_t)15U - | (va61 + (vc62 ^ (vb62 | ~vd62)) + xk61 + ti62) >> (uint32_t)17U); + << 15U + | (va61 + (vc62 ^ (vb62 | ~vd62)) + xk61 + ti62) >> 17U); abcd[2U] = v61; uint32_t va62 = abcd[1U]; uint32_t vb = abcd[2U]; uint32_t vc = abcd[3U]; uint32_t vd = abcd[0U]; - uint8_t *b63 = x + (uint32_t)36U; + uint8_t *b63 = x + 36U; uint32_t u62 = load32_le(b63); uint32_t xk62 = u62; uint32_t ti = _t[63U]; @@ -1082,8 +1074,8 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) vb + ((va62 + (vc ^ (vb | ~vd)) + xk62 + ti) - << (uint32_t)21U - | (va62 + (vc ^ (vb | ~vd)) + xk62 + ti) >> (uint32_t)11U); + << 21U + | (va62 + (vc ^ (vb | ~vd)) + xk62 + ti) >> 11U); abcd[1U] = v62; uint32_t a = abcd[0U]; uint32_t b = abcd[1U]; @@ -1095,98 +1087,69 @@ static void legacy_update(uint32_t *abcd, uint8_t *x) abcd[3U] = d + dd; } -static void legacy_pad(uint64_t len, uint8_t *dst) +static void pad(uint64_t len, uint8_t *dst) { uint8_t *dst1 = dst; - dst1[0U] = (uint8_t)0x80U; - uint8_t *dst2 = dst + (uint32_t)1U; - for - (uint32_t - i = (uint32_t)0U; - i - < ((uint32_t)128U - ((uint32_t)9U + (uint32_t)(len % (uint64_t)(uint32_t)64U))) % (uint32_t)64U; - i++) + dst1[0U] = 0x80U; + uint8_t *dst2 = dst + 1U; + for (uint32_t i = 0U; i < (128U - (9U + (uint32_t)(len % (uint64_t)64U))) % 64U; i++) { - dst2[i] = (uint8_t)0U; + dst2[i] = 0U; } - uint8_t - *dst3 = - dst - + - (uint32_t)1U - + - ((uint32_t)128U - ((uint32_t)9U + (uint32_t)(len % (uint64_t)(uint32_t)64U))) - % (uint32_t)64U; - store64_le(dst3, len << (uint32_t)3U); + uint8_t *dst3 = dst + 1U + (128U - (9U + (uint32_t)(len % (uint64_t)64U))) % 64U; + store64_le(dst3, len << 3U); } -void Hacl_Hash_Core_MD5_legacy_finish(uint32_t *s, uint8_t *dst) +void Hacl_Hash_MD5_finish(uint32_t *s, uint8_t *dst) { - KRML_MAYBE_FOR4(i, - (uint32_t)0U, - (uint32_t)4U, - (uint32_t)1U, - store32_le(dst + i * (uint32_t)4U, s[i]);); + KRML_MAYBE_FOR4(i, 0U, 4U, 1U, store32_le(dst + i * 4U, s[i]);); } -void Hacl_Hash_MD5_legacy_update_multi(uint32_t *s, uint8_t *blocks, uint32_t n_blocks) +void Hacl_Hash_MD5_update_multi(uint32_t *s, uint8_t *blocks, uint32_t n_blocks) { - for (uint32_t i = (uint32_t)0U; i < n_blocks; i++) + for (uint32_t i = 0U; i < n_blocks; i++) { - uint32_t sz = (uint32_t)64U; + uint32_t sz = 64U; uint8_t *block = blocks + sz * i; - legacy_update(s, block); + update(s, block); } } void -Hacl_Hash_MD5_legacy_update_last( - uint32_t *s, - uint64_t prev_len, - uint8_t *input, - uint32_t input_len -) +Hacl_Hash_MD5_update_last(uint32_t *s, uint64_t prev_len, uint8_t *input, uint32_t input_len) { - uint32_t blocks_n = input_len / (uint32_t)64U; - uint32_t blocks_len = blocks_n * (uint32_t)64U; + uint32_t blocks_n = input_len / 64U; + uint32_t blocks_len = blocks_n * 64U; uint8_t *blocks = input; uint32_t rest_len = input_len - blocks_len; uint8_t *rest = input + blocks_len; - Hacl_Hash_MD5_legacy_update_multi(s, blocks, blocks_n); + Hacl_Hash_MD5_update_multi(s, blocks, blocks_n); uint64_t total_input_len = prev_len + (uint64_t)input_len; - uint32_t - pad_len = - (uint32_t)1U - + - ((uint32_t)128U - ((uint32_t)9U + (uint32_t)(total_input_len % (uint64_t)(uint32_t)64U))) - % (uint32_t)64U - + (uint32_t)8U; + uint32_t pad_len = 1U + (128U - (9U + (uint32_t)(total_input_len % (uint64_t)64U))) % 64U + 8U; uint32_t tmp_len = rest_len + pad_len; uint8_t tmp_twoblocks[128U] = { 0U }; uint8_t *tmp = tmp_twoblocks; uint8_t *tmp_rest = tmp; uint8_t *tmp_pad = tmp + rest_len; memcpy(tmp_rest, rest, rest_len * sizeof (uint8_t)); - legacy_pad(total_input_len, tmp_pad); - Hacl_Hash_MD5_legacy_update_multi(s, tmp, tmp_len / (uint32_t)64U); + pad(total_input_len, tmp_pad); + Hacl_Hash_MD5_update_multi(s, tmp, tmp_len / 64U); } -void Hacl_Hash_MD5_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst) +void Hacl_Hash_MD5_hash_oneshot(uint8_t *output, uint8_t *input, uint32_t input_len) { - uint32_t - s[4U] = - { (uint32_t)0x67452301U, (uint32_t)0xefcdab89U, (uint32_t)0x98badcfeU, (uint32_t)0x10325476U }; - uint32_t blocks_n0 = input_len / (uint32_t)64U; + uint32_t s[4U] = { 0x67452301U, 0xefcdab89U, 0x98badcfeU, 0x10325476U }; + uint32_t blocks_n0 = input_len / 64U; uint32_t blocks_n1; - if (input_len % (uint32_t)64U == (uint32_t)0U && blocks_n0 > (uint32_t)0U) + if (input_len % 64U == 0U && blocks_n0 > 0U) { - blocks_n1 = blocks_n0 - (uint32_t)1U; + blocks_n1 = blocks_n0 - 1U; } else { blocks_n1 = blocks_n0; } - uint32_t blocks_len0 = blocks_n1 * (uint32_t)64U; + uint32_t blocks_len0 = blocks_n1 * 64U; uint8_t *blocks0 = input; uint32_t rest_len0 = input_len - blocks_len0; uint8_t *rest0 = input + blocks_len0; @@ -1195,75 +1158,75 @@ void Hacl_Hash_MD5_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst) uint8_t *blocks = blocks0; uint32_t rest_len = rest_len0; uint8_t *rest = rest0; - Hacl_Hash_MD5_legacy_update_multi(s, blocks, blocks_n); - Hacl_Hash_MD5_legacy_update_last(s, (uint64_t)blocks_len, rest, rest_len); - Hacl_Hash_Core_MD5_legacy_finish(s, dst); + Hacl_Hash_MD5_update_multi(s, blocks, blocks_n); + Hacl_Hash_MD5_update_last(s, (uint64_t)blocks_len, rest, rest_len); + Hacl_Hash_MD5_finish(s, output); } -Hacl_Streaming_MD_state_32 *Hacl_Streaming_MD5_legacy_create_in(void) +Hacl_Streaming_MD_state_32 *Hacl_Hash_MD5_malloc(void) { - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)64U, sizeof (uint8_t)); - uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC((uint32_t)4U, sizeof (uint32_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(64U, sizeof (uint8_t)); + uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC(4U, sizeof (uint32_t)); Hacl_Streaming_MD_state_32 - s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; + s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; Hacl_Streaming_MD_state_32 *p = (Hacl_Streaming_MD_state_32 *)KRML_HOST_MALLOC(sizeof (Hacl_Streaming_MD_state_32)); p[0U] = s; - Hacl_Hash_Core_MD5_legacy_init(block_state); + Hacl_Hash_MD5_init(block_state); return p; } -void Hacl_Streaming_MD5_legacy_init(Hacl_Streaming_MD_state_32 *s) +void Hacl_Hash_MD5_reset(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s; + Hacl_Streaming_MD_state_32 scrut = *state; uint8_t *buf = scrut.buf; uint32_t *block_state = scrut.block_state; - Hacl_Hash_Core_MD5_legacy_init(block_state); + Hacl_Hash_MD5_init(block_state); Hacl_Streaming_MD_state_32 - tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; - s[0U] = tmp; + tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; + state[0U] = tmp; } /** 0 = success, 1 = max length exceeded */ Hacl_Streaming_Types_error_code -Hacl_Streaming_MD5_legacy_update(Hacl_Streaming_MD_state_32 *p, uint8_t *data, uint32_t len) +Hacl_Hash_MD5_update(Hacl_Streaming_MD_state_32 *state, uint8_t *chunk, uint32_t chunk_len) { - Hacl_Streaming_MD_state_32 s = *p; + Hacl_Streaming_MD_state_32 s = *state; uint64_t total_len = s.total_len; - if ((uint64_t)len > (uint64_t)2305843009213693951U - total_len) + if ((uint64_t)chunk_len > 2305843009213693951ULL - total_len) { return Hacl_Streaming_Types_MaximumLengthExceeded; } uint32_t sz; - if (total_len % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)64U == 0ULL && total_len > 0ULL) { - sz = (uint32_t)64U; + sz = 64U; } else { - sz = (uint32_t)(total_len % (uint64_t)(uint32_t)64U); + sz = (uint32_t)(total_len % (uint64_t)64U); } - if (len <= (uint32_t)64U - sz) + if (chunk_len <= 64U - sz) { - Hacl_Streaming_MD_state_32 s1 = *p; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } uint8_t *buf2 = buf + sz1; - memcpy(buf2, data, len * sizeof (uint8_t)); - uint64_t total_len2 = total_len1 + (uint64_t)len; - *p + memcpy(buf2, chunk, chunk_len * sizeof (uint8_t)); + uint64_t total_len2 = total_len1 + (uint64_t)chunk_len; + *state = ( (Hacl_Streaming_MD_state_32){ @@ -1273,74 +1236,74 @@ Hacl_Streaming_MD5_legacy_update(Hacl_Streaming_MD_state_32 *p, uint8_t *data, u } ); } - else if (sz == (uint32_t)0U) + else if (sz == 0U) { - Hacl_Streaming_MD_state_32 s1 = *p; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { - Hacl_Hash_MD5_legacy_update_multi(block_state1, buf, (uint32_t)1U); + Hacl_Hash_MD5_update_multi(block_state1, buf, 1U); } uint32_t ite; - if ((uint64_t)len % (uint64_t)(uint32_t)64U == (uint64_t)0U && (uint64_t)len > (uint64_t)0U) + if ((uint64_t)chunk_len % (uint64_t)64U == 0ULL && (uint64_t)chunk_len > 0ULL) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = (uint32_t)((uint64_t)len % (uint64_t)(uint32_t)64U); + ite = (uint32_t)((uint64_t)chunk_len % (uint64_t)64U); } - uint32_t n_blocks = (len - ite) / (uint32_t)64U; - uint32_t data1_len = n_blocks * (uint32_t)64U; - uint32_t data2_len = len - data1_len; - uint8_t *data1 = data; - uint8_t *data2 = data + data1_len; - Hacl_Hash_MD5_legacy_update_multi(block_state1, data1, data1_len / (uint32_t)64U); + uint32_t n_blocks = (chunk_len - ite) / 64U; + uint32_t data1_len = n_blocks * 64U; + uint32_t data2_len = chunk_len - data1_len; + uint8_t *data1 = chunk; + uint8_t *data2 = chunk + data1_len; + Hacl_Hash_MD5_update_multi(block_state1, data1, data1_len / 64U); uint8_t *dst = buf; memcpy(dst, data2, data2_len * sizeof (uint8_t)); - *p + *state = ( (Hacl_Streaming_MD_state_32){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)len + .total_len = total_len1 + (uint64_t)chunk_len } ); } else { - uint32_t diff = (uint32_t)64U - sz; - uint8_t *data1 = data; - uint8_t *data2 = data + diff; - Hacl_Streaming_MD_state_32 s1 = *p; + uint32_t diff = 64U - sz; + uint8_t *chunk1 = chunk; + uint8_t *chunk2 = chunk + diff; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state10 = s1.block_state; uint8_t *buf0 = s1.buf; uint64_t total_len10 = s1.total_len; uint32_t sz10; - if (total_len10 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len10 > (uint64_t)0U) + if (total_len10 % (uint64_t)64U == 0ULL && total_len10 > 0ULL) { - sz10 = (uint32_t)64U; + sz10 = 64U; } else { - sz10 = (uint32_t)(total_len10 % (uint64_t)(uint32_t)64U); + sz10 = (uint32_t)(total_len10 % (uint64_t)64U); } uint8_t *buf2 = buf0 + sz10; - memcpy(buf2, data1, diff * sizeof (uint8_t)); + memcpy(buf2, chunk1, diff * sizeof (uint8_t)); uint64_t total_len2 = total_len10 + (uint64_t)diff; - *p + *state = ( (Hacl_Streaming_MD_state_32){ @@ -1349,114 +1312,109 @@ Hacl_Streaming_MD5_legacy_update(Hacl_Streaming_MD_state_32 *p, uint8_t *data, u .total_len = total_len2 } ); - Hacl_Streaming_MD_state_32 s10 = *p; + Hacl_Streaming_MD_state_32 s10 = *state; uint32_t *block_state1 = s10.block_state; uint8_t *buf = s10.buf; uint64_t total_len1 = s10.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { - Hacl_Hash_MD5_legacy_update_multi(block_state1, buf, (uint32_t)1U); + Hacl_Hash_MD5_update_multi(block_state1, buf, 1U); } uint32_t ite; if - ( - (uint64_t)(len - diff) - % (uint64_t)(uint32_t)64U - == (uint64_t)0U - && (uint64_t)(len - diff) > (uint64_t)0U - ) + ((uint64_t)(chunk_len - diff) % (uint64_t)64U == 0ULL && (uint64_t)(chunk_len - diff) > 0ULL) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = (uint32_t)((uint64_t)(len - diff) % (uint64_t)(uint32_t)64U); + ite = (uint32_t)((uint64_t)(chunk_len - diff) % (uint64_t)64U); } - uint32_t n_blocks = (len - diff - ite) / (uint32_t)64U; - uint32_t data1_len = n_blocks * (uint32_t)64U; - uint32_t data2_len = len - diff - data1_len; - uint8_t *data11 = data2; - uint8_t *data21 = data2 + data1_len; - Hacl_Hash_MD5_legacy_update_multi(block_state1, data11, data1_len / (uint32_t)64U); + uint32_t n_blocks = (chunk_len - diff - ite) / 64U; + uint32_t data1_len = n_blocks * 64U; + uint32_t data2_len = chunk_len - diff - data1_len; + uint8_t *data1 = chunk2; + uint8_t *data2 = chunk2 + data1_len; + Hacl_Hash_MD5_update_multi(block_state1, data1, data1_len / 64U); uint8_t *dst = buf; - memcpy(dst, data21, data2_len * sizeof (uint8_t)); - *p + memcpy(dst, data2, data2_len * sizeof (uint8_t)); + *state = ( (Hacl_Streaming_MD_state_32){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)(len - diff) + .total_len = total_len1 + (uint64_t)(chunk_len - diff) } ); } return Hacl_Streaming_Types_Success; } -void Hacl_Streaming_MD5_legacy_finish(Hacl_Streaming_MD_state_32 *p, uint8_t *dst) +void Hacl_Hash_MD5_digest(Hacl_Streaming_MD_state_32 *state, uint8_t *output) { - Hacl_Streaming_MD_state_32 scrut = *p; + Hacl_Streaming_MD_state_32 scrut = *state; uint32_t *block_state = scrut.block_state; uint8_t *buf_ = scrut.buf; uint64_t total_len = scrut.total_len; uint32_t r; - if (total_len % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)64U == 0ULL && total_len > 0ULL) { - r = (uint32_t)64U; + r = 64U; } else { - r = (uint32_t)(total_len % (uint64_t)(uint32_t)64U); + r = (uint32_t)(total_len % (uint64_t)64U); } uint8_t *buf_1 = buf_; uint32_t tmp_block_state[4U] = { 0U }; - memcpy(tmp_block_state, block_state, (uint32_t)4U * sizeof (uint32_t)); + memcpy(tmp_block_state, block_state, 4U * sizeof (uint32_t)); uint32_t ite; - if (r % (uint32_t)64U == (uint32_t)0U && r > (uint32_t)0U) + if (r % 64U == 0U && r > 0U) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = r % (uint32_t)64U; + ite = r % 64U; } uint8_t *buf_last = buf_1 + r - ite; uint8_t *buf_multi = buf_1; - Hacl_Hash_MD5_legacy_update_multi(tmp_block_state, buf_multi, (uint32_t)0U); + Hacl_Hash_MD5_update_multi(tmp_block_state, buf_multi, 0U); uint64_t prev_len_last = total_len - (uint64_t)r; - Hacl_Hash_MD5_legacy_update_last(tmp_block_state, prev_len_last, buf_last, r); - Hacl_Hash_Core_MD5_legacy_finish(tmp_block_state, dst); + Hacl_Hash_MD5_update_last(tmp_block_state, prev_len_last, buf_last, r); + Hacl_Hash_MD5_finish(tmp_block_state, output); } -void Hacl_Streaming_MD5_legacy_free(Hacl_Streaming_MD_state_32 *s) +void Hacl_Hash_MD5_free(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s; + Hacl_Streaming_MD_state_32 scrut = *state; uint8_t *buf = scrut.buf; uint32_t *block_state = scrut.block_state; KRML_HOST_FREE(block_state); KRML_HOST_FREE(buf); - KRML_HOST_FREE(s); + KRML_HOST_FREE(state); } -Hacl_Streaming_MD_state_32 *Hacl_Streaming_MD5_legacy_copy(Hacl_Streaming_MD_state_32 *s0) +Hacl_Streaming_MD_state_32 *Hacl_Hash_MD5_copy(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s0; + Hacl_Streaming_MD_state_32 scrut = *state; uint32_t *block_state0 = scrut.block_state; uint8_t *buf0 = scrut.buf; uint64_t total_len0 = scrut.total_len; - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)64U, sizeof (uint8_t)); - memcpy(buf, buf0, (uint32_t)64U * sizeof (uint8_t)); - uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC((uint32_t)4U, sizeof (uint32_t)); - memcpy(block_state, block_state0, (uint32_t)4U * sizeof (uint32_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(64U, sizeof (uint8_t)); + memcpy(buf, buf0, 64U * sizeof (uint8_t)); + uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC(4U, sizeof (uint32_t)); + memcpy(block_state, block_state0, 4U * sizeof (uint32_t)); Hacl_Streaming_MD_state_32 s = { .block_state = block_state, .buf = buf, .total_len = total_len0 }; Hacl_Streaming_MD_state_32 @@ -1465,8 +1423,8 @@ Hacl_Streaming_MD_state_32 *Hacl_Streaming_MD5_legacy_copy(Hacl_Streaming_MD_sta return p; } -void Hacl_Streaming_MD5_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst) +void Hacl_Hash_MD5_hash(uint8_t *output, uint8_t *input, uint32_t input_len) { - Hacl_Hash_MD5_legacy_hash(input, input_len, dst); + Hacl_Hash_MD5_hash_oneshot(output, input, input_len); } diff --git a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_MD5.h b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_MD5.h index 13c19fd40f..f69d6e5a81 100644 --- a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_MD5.h +++ b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_MD5.h @@ -31,31 +31,32 @@ extern "C" { #endif #include <string.h> +#include "python_hacl_namespaces.h" #include "krml/types.h" #include "krml/lowstar_endianness.h" #include "krml/internal/target.h" #include "Hacl_Streaming_Types.h" -typedef Hacl_Streaming_MD_state_32 Hacl_Streaming_MD5_state; +typedef Hacl_Streaming_MD_state_32 Hacl_Hash_MD5_state_t; -Hacl_Streaming_MD_state_32 *Hacl_Streaming_MD5_legacy_create_in(void); +Hacl_Streaming_MD_state_32 *Hacl_Hash_MD5_malloc(void); -void Hacl_Streaming_MD5_legacy_init(Hacl_Streaming_MD_state_32 *s); +void Hacl_Hash_MD5_reset(Hacl_Streaming_MD_state_32 *state); /** 0 = success, 1 = max length exceeded */ Hacl_Streaming_Types_error_code -Hacl_Streaming_MD5_legacy_update(Hacl_Streaming_MD_state_32 *p, uint8_t *data, uint32_t len); +Hacl_Hash_MD5_update(Hacl_Streaming_MD_state_32 *state, uint8_t *chunk, uint32_t chunk_len); -void Hacl_Streaming_MD5_legacy_finish(Hacl_Streaming_MD_state_32 *p, uint8_t *dst); +void Hacl_Hash_MD5_digest(Hacl_Streaming_MD_state_32 *state, uint8_t *output); -void Hacl_Streaming_MD5_legacy_free(Hacl_Streaming_MD_state_32 *s); +void Hacl_Hash_MD5_free(Hacl_Streaming_MD_state_32 *state); -Hacl_Streaming_MD_state_32 *Hacl_Streaming_MD5_legacy_copy(Hacl_Streaming_MD_state_32 *s0); +Hacl_Streaming_MD_state_32 *Hacl_Hash_MD5_copy(Hacl_Streaming_MD_state_32 *state); -void Hacl_Streaming_MD5_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst); +void Hacl_Hash_MD5_hash(uint8_t *output, uint8_t *input, uint32_t input_len); #if defined(__cplusplus) } diff --git a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA1.c b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA1.c index 5ecb3c0b3a..1a8b09b171 100644 --- a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA1.c +++ b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA1.c @@ -25,19 +25,14 @@ #include "internal/Hacl_Hash_SHA1.h" -static uint32_t -_h0[5U] = - { - (uint32_t)0x67452301U, (uint32_t)0xefcdab89U, (uint32_t)0x98badcfeU, (uint32_t)0x10325476U, - (uint32_t)0xc3d2e1f0U - }; +static uint32_t _h0[5U] = { 0x67452301U, 0xefcdab89U, 0x98badcfeU, 0x10325476U, 0xc3d2e1f0U }; -void Hacl_Hash_Core_SHA1_legacy_init(uint32_t *s) +void Hacl_Hash_SHA1_init(uint32_t *s) { - KRML_MAYBE_FOR5(i, (uint32_t)0U, (uint32_t)5U, (uint32_t)1U, s[i] = _h0[i];); + KRML_MAYBE_FOR5(i, 0U, 5U, 1U, s[i] = _h0[i];); } -static void legacy_update(uint32_t *h, uint8_t *l) +static void update(uint32_t *h, uint8_t *l) { uint32_t ha = h[0U]; uint32_t hb = h[1U]; @@ -45,29 +40,26 @@ static void legacy_update(uint32_t *h, uint8_t *l) uint32_t hd = h[3U]; uint32_t he = h[4U]; uint32_t _w[80U] = { 0U }; - for (uint32_t i = (uint32_t)0U; i < (uint32_t)80U; i++) + for (uint32_t i = 0U; i < 80U; i++) { uint32_t v; - if (i < (uint32_t)16U) + if (i < 16U) { - uint8_t *b = l + i * (uint32_t)4U; + uint8_t *b = l + i * 4U; uint32_t u = load32_be(b); v = u; } else { - uint32_t wmit3 = _w[i - (uint32_t)3U]; - uint32_t wmit8 = _w[i - (uint32_t)8U]; - uint32_t wmit14 = _w[i - (uint32_t)14U]; - uint32_t wmit16 = _w[i - (uint32_t)16U]; - v = - (wmit3 ^ (wmit8 ^ (wmit14 ^ wmit16))) - << (uint32_t)1U - | (wmit3 ^ (wmit8 ^ (wmit14 ^ wmit16))) >> (uint32_t)31U; + uint32_t wmit3 = _w[i - 3U]; + uint32_t wmit8 = _w[i - 8U]; + uint32_t wmit14 = _w[i - 14U]; + uint32_t wmit16 = _w[i - 16U]; + v = (wmit3 ^ (wmit8 ^ (wmit14 ^ wmit16))) << 1U | (wmit3 ^ (wmit8 ^ (wmit14 ^ wmit16))) >> 31U; } _w[i] = v; } - for (uint32_t i = (uint32_t)0U; i < (uint32_t)80U; i++) + for (uint32_t i = 0U; i < 80U; i++) { uint32_t _a = h[0U]; uint32_t _b = h[1U]; @@ -76,11 +68,11 @@ static void legacy_update(uint32_t *h, uint8_t *l) uint32_t _e = h[4U]; uint32_t wmit = _w[i]; uint32_t ite0; - if (i < (uint32_t)20U) + if (i < 20U) { ite0 = (_b & _c) ^ (~_b & _d); } - else if ((uint32_t)39U < i && i < (uint32_t)60U) + else if (39U < i && i < 60U) { ite0 = (_b & _c) ^ ((_b & _d) ^ (_c & _d)); } @@ -89,32 +81,32 @@ static void legacy_update(uint32_t *h, uint8_t *l) ite0 = _b ^ (_c ^ _d); } uint32_t ite; - if (i < (uint32_t)20U) + if (i < 20U) { - ite = (uint32_t)0x5a827999U; + ite = 0x5a827999U; } - else if (i < (uint32_t)40U) + else if (i < 40U) { - ite = (uint32_t)0x6ed9eba1U; + ite = 0x6ed9eba1U; } - else if (i < (uint32_t)60U) + else if (i < 60U) { - ite = (uint32_t)0x8f1bbcdcU; + ite = 0x8f1bbcdcU; } else { - ite = (uint32_t)0xca62c1d6U; + ite = 0xca62c1d6U; } - uint32_t _T = (_a << (uint32_t)5U | _a >> (uint32_t)27U) + ite0 + _e + ite + wmit; + uint32_t _T = (_a << 5U | _a >> 27U) + ite0 + _e + ite + wmit; h[0U] = _T; h[1U] = _a; - h[2U] = _b << (uint32_t)30U | _b >> (uint32_t)2U; + h[2U] = _b << 30U | _b >> 2U; h[3U] = _c; h[4U] = _d; } - for (uint32_t i = (uint32_t)0U; i < (uint32_t)80U; i++) + for (uint32_t i = 0U; i < 80U; i++) { - _w[i] = (uint32_t)0U; + _w[i] = 0U; } uint32_t sta = h[0U]; uint32_t stb = h[1U]; @@ -128,101 +120,69 @@ static void legacy_update(uint32_t *h, uint8_t *l) h[4U] = ste + he; } -static void legacy_pad(uint64_t len, uint8_t *dst) +static void pad(uint64_t len, uint8_t *dst) { uint8_t *dst1 = dst; - dst1[0U] = (uint8_t)0x80U; - uint8_t *dst2 = dst + (uint32_t)1U; - for - (uint32_t - i = (uint32_t)0U; - i - < ((uint32_t)128U - ((uint32_t)9U + (uint32_t)(len % (uint64_t)(uint32_t)64U))) % (uint32_t)64U; - i++) + dst1[0U] = 0x80U; + uint8_t *dst2 = dst + 1U; + for (uint32_t i = 0U; i < (128U - (9U + (uint32_t)(len % (uint64_t)64U))) % 64U; i++) { - dst2[i] = (uint8_t)0U; + dst2[i] = 0U; } - uint8_t - *dst3 = - dst - + - (uint32_t)1U - + - ((uint32_t)128U - ((uint32_t)9U + (uint32_t)(len % (uint64_t)(uint32_t)64U))) - % (uint32_t)64U; - store64_be(dst3, len << (uint32_t)3U); + uint8_t *dst3 = dst + 1U + (128U - (9U + (uint32_t)(len % (uint64_t)64U))) % 64U; + store64_be(dst3, len << 3U); } -void Hacl_Hash_Core_SHA1_legacy_finish(uint32_t *s, uint8_t *dst) +void Hacl_Hash_SHA1_finish(uint32_t *s, uint8_t *dst) { - KRML_MAYBE_FOR5(i, - (uint32_t)0U, - (uint32_t)5U, - (uint32_t)1U, - store32_be(dst + i * (uint32_t)4U, s[i]);); + KRML_MAYBE_FOR5(i, 0U, 5U, 1U, store32_be(dst + i * 4U, s[i]);); } -void Hacl_Hash_SHA1_legacy_update_multi(uint32_t *s, uint8_t *blocks, uint32_t n_blocks) +void Hacl_Hash_SHA1_update_multi(uint32_t *s, uint8_t *blocks, uint32_t n_blocks) { - for (uint32_t i = (uint32_t)0U; i < n_blocks; i++) + for (uint32_t i = 0U; i < n_blocks; i++) { - uint32_t sz = (uint32_t)64U; + uint32_t sz = 64U; uint8_t *block = blocks + sz * i; - legacy_update(s, block); + update(s, block); } } void -Hacl_Hash_SHA1_legacy_update_last( - uint32_t *s, - uint64_t prev_len, - uint8_t *input, - uint32_t input_len -) +Hacl_Hash_SHA1_update_last(uint32_t *s, uint64_t prev_len, uint8_t *input, uint32_t input_len) { - uint32_t blocks_n = input_len / (uint32_t)64U; - uint32_t blocks_len = blocks_n * (uint32_t)64U; + uint32_t blocks_n = input_len / 64U; + uint32_t blocks_len = blocks_n * 64U; uint8_t *blocks = input; uint32_t rest_len = input_len - blocks_len; uint8_t *rest = input + blocks_len; - Hacl_Hash_SHA1_legacy_update_multi(s, blocks, blocks_n); + Hacl_Hash_SHA1_update_multi(s, blocks, blocks_n); uint64_t total_input_len = prev_len + (uint64_t)input_len; - uint32_t - pad_len = - (uint32_t)1U - + - ((uint32_t)128U - ((uint32_t)9U + (uint32_t)(total_input_len % (uint64_t)(uint32_t)64U))) - % (uint32_t)64U - + (uint32_t)8U; + uint32_t pad_len = 1U + (128U - (9U + (uint32_t)(total_input_len % (uint64_t)64U))) % 64U + 8U; uint32_t tmp_len = rest_len + pad_len; uint8_t tmp_twoblocks[128U] = { 0U }; uint8_t *tmp = tmp_twoblocks; uint8_t *tmp_rest = tmp; uint8_t *tmp_pad = tmp + rest_len; memcpy(tmp_rest, rest, rest_len * sizeof (uint8_t)); - legacy_pad(total_input_len, tmp_pad); - Hacl_Hash_SHA1_legacy_update_multi(s, tmp, tmp_len / (uint32_t)64U); + pad(total_input_len, tmp_pad); + Hacl_Hash_SHA1_update_multi(s, tmp, tmp_len / 64U); } -void Hacl_Hash_SHA1_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst) +void Hacl_Hash_SHA1_hash_oneshot(uint8_t *output, uint8_t *input, uint32_t input_len) { - uint32_t - s[5U] = - { - (uint32_t)0x67452301U, (uint32_t)0xefcdab89U, (uint32_t)0x98badcfeU, (uint32_t)0x10325476U, - (uint32_t)0xc3d2e1f0U - }; - uint32_t blocks_n0 = input_len / (uint32_t)64U; + uint32_t s[5U] = { 0x67452301U, 0xefcdab89U, 0x98badcfeU, 0x10325476U, 0xc3d2e1f0U }; + uint32_t blocks_n0 = input_len / 64U; uint32_t blocks_n1; - if (input_len % (uint32_t)64U == (uint32_t)0U && blocks_n0 > (uint32_t)0U) + if (input_len % 64U == 0U && blocks_n0 > 0U) { - blocks_n1 = blocks_n0 - (uint32_t)1U; + blocks_n1 = blocks_n0 - 1U; } else { blocks_n1 = blocks_n0; } - uint32_t blocks_len0 = blocks_n1 * (uint32_t)64U; + uint32_t blocks_len0 = blocks_n1 * 64U; uint8_t *blocks0 = input; uint32_t rest_len0 = input_len - blocks_len0; uint8_t *rest0 = input + blocks_len0; @@ -231,75 +191,75 @@ void Hacl_Hash_SHA1_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst uint8_t *blocks = blocks0; uint32_t rest_len = rest_len0; uint8_t *rest = rest0; - Hacl_Hash_SHA1_legacy_update_multi(s, blocks, blocks_n); - Hacl_Hash_SHA1_legacy_update_last(s, (uint64_t)blocks_len, rest, rest_len); - Hacl_Hash_Core_SHA1_legacy_finish(s, dst); + Hacl_Hash_SHA1_update_multi(s, blocks, blocks_n); + Hacl_Hash_SHA1_update_last(s, (uint64_t)blocks_len, rest, rest_len); + Hacl_Hash_SHA1_finish(s, output); } -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA1_legacy_create_in(void) +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA1_malloc(void) { - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)64U, sizeof (uint8_t)); - uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC((uint32_t)5U, sizeof (uint32_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(64U, sizeof (uint8_t)); + uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC(5U, sizeof (uint32_t)); Hacl_Streaming_MD_state_32 - s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; + s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; Hacl_Streaming_MD_state_32 *p = (Hacl_Streaming_MD_state_32 *)KRML_HOST_MALLOC(sizeof (Hacl_Streaming_MD_state_32)); p[0U] = s; - Hacl_Hash_Core_SHA1_legacy_init(block_state); + Hacl_Hash_SHA1_init(block_state); return p; } -void Hacl_Streaming_SHA1_legacy_init(Hacl_Streaming_MD_state_32 *s) +void Hacl_Hash_SHA1_reset(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s; + Hacl_Streaming_MD_state_32 scrut = *state; uint8_t *buf = scrut.buf; uint32_t *block_state = scrut.block_state; - Hacl_Hash_Core_SHA1_legacy_init(block_state); + Hacl_Hash_SHA1_init(block_state); Hacl_Streaming_MD_state_32 - tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; - s[0U] = tmp; + tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; + state[0U] = tmp; } /** 0 = success, 1 = max length exceeded */ Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA1_legacy_update(Hacl_Streaming_MD_state_32 *p, uint8_t *data, uint32_t len) +Hacl_Hash_SHA1_update(Hacl_Streaming_MD_state_32 *state, uint8_t *chunk, uint32_t chunk_len) { - Hacl_Streaming_MD_state_32 s = *p; + Hacl_Streaming_MD_state_32 s = *state; uint64_t total_len = s.total_len; - if ((uint64_t)len > (uint64_t)2305843009213693951U - total_len) + if ((uint64_t)chunk_len > 2305843009213693951ULL - total_len) { return Hacl_Streaming_Types_MaximumLengthExceeded; } uint32_t sz; - if (total_len % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)64U == 0ULL && total_len > 0ULL) { - sz = (uint32_t)64U; + sz = 64U; } else { - sz = (uint32_t)(total_len % (uint64_t)(uint32_t)64U); + sz = (uint32_t)(total_len % (uint64_t)64U); } - if (len <= (uint32_t)64U - sz) + if (chunk_len <= 64U - sz) { - Hacl_Streaming_MD_state_32 s1 = *p; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } uint8_t *buf2 = buf + sz1; - memcpy(buf2, data, len * sizeof (uint8_t)); - uint64_t total_len2 = total_len1 + (uint64_t)len; - *p + memcpy(buf2, chunk, chunk_len * sizeof (uint8_t)); + uint64_t total_len2 = total_len1 + (uint64_t)chunk_len; + *state = ( (Hacl_Streaming_MD_state_32){ @@ -309,74 +269,74 @@ Hacl_Streaming_SHA1_legacy_update(Hacl_Streaming_MD_state_32 *p, uint8_t *data, } ); } - else if (sz == (uint32_t)0U) + else if (sz == 0U) { - Hacl_Streaming_MD_state_32 s1 = *p; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { - Hacl_Hash_SHA1_legacy_update_multi(block_state1, buf, (uint32_t)1U); + Hacl_Hash_SHA1_update_multi(block_state1, buf, 1U); } uint32_t ite; - if ((uint64_t)len % (uint64_t)(uint32_t)64U == (uint64_t)0U && (uint64_t)len > (uint64_t)0U) + if ((uint64_t)chunk_len % (uint64_t)64U == 0ULL && (uint64_t)chunk_len > 0ULL) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = (uint32_t)((uint64_t)len % (uint64_t)(uint32_t)64U); + ite = (uint32_t)((uint64_t)chunk_len % (uint64_t)64U); } - uint32_t n_blocks = (len - ite) / (uint32_t)64U; - uint32_t data1_len = n_blocks * (uint32_t)64U; - uint32_t data2_len = len - data1_len; - uint8_t *data1 = data; - uint8_t *data2 = data + data1_len; - Hacl_Hash_SHA1_legacy_update_multi(block_state1, data1, data1_len / (uint32_t)64U); + uint32_t n_blocks = (chunk_len - ite) / 64U; + uint32_t data1_len = n_blocks * 64U; + uint32_t data2_len = chunk_len - data1_len; + uint8_t *data1 = chunk; + uint8_t *data2 = chunk + data1_len; + Hacl_Hash_SHA1_update_multi(block_state1, data1, data1_len / 64U); uint8_t *dst = buf; memcpy(dst, data2, data2_len * sizeof (uint8_t)); - *p + *state = ( (Hacl_Streaming_MD_state_32){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)len + .total_len = total_len1 + (uint64_t)chunk_len } ); } else { - uint32_t diff = (uint32_t)64U - sz; - uint8_t *data1 = data; - uint8_t *data2 = data + diff; - Hacl_Streaming_MD_state_32 s1 = *p; + uint32_t diff = 64U - sz; + uint8_t *chunk1 = chunk; + uint8_t *chunk2 = chunk + diff; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state10 = s1.block_state; uint8_t *buf0 = s1.buf; uint64_t total_len10 = s1.total_len; uint32_t sz10; - if (total_len10 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len10 > (uint64_t)0U) + if (total_len10 % (uint64_t)64U == 0ULL && total_len10 > 0ULL) { - sz10 = (uint32_t)64U; + sz10 = 64U; } else { - sz10 = (uint32_t)(total_len10 % (uint64_t)(uint32_t)64U); + sz10 = (uint32_t)(total_len10 % (uint64_t)64U); } uint8_t *buf2 = buf0 + sz10; - memcpy(buf2, data1, diff * sizeof (uint8_t)); + memcpy(buf2, chunk1, diff * sizeof (uint8_t)); uint64_t total_len2 = total_len10 + (uint64_t)diff; - *p + *state = ( (Hacl_Streaming_MD_state_32){ @@ -385,114 +345,109 @@ Hacl_Streaming_SHA1_legacy_update(Hacl_Streaming_MD_state_32 *p, uint8_t *data, .total_len = total_len2 } ); - Hacl_Streaming_MD_state_32 s10 = *p; + Hacl_Streaming_MD_state_32 s10 = *state; uint32_t *block_state1 = s10.block_state; uint8_t *buf = s10.buf; uint64_t total_len1 = s10.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { - Hacl_Hash_SHA1_legacy_update_multi(block_state1, buf, (uint32_t)1U); + Hacl_Hash_SHA1_update_multi(block_state1, buf, 1U); } uint32_t ite; if - ( - (uint64_t)(len - diff) - % (uint64_t)(uint32_t)64U - == (uint64_t)0U - && (uint64_t)(len - diff) > (uint64_t)0U - ) + ((uint64_t)(chunk_len - diff) % (uint64_t)64U == 0ULL && (uint64_t)(chunk_len - diff) > 0ULL) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = (uint32_t)((uint64_t)(len - diff) % (uint64_t)(uint32_t)64U); + ite = (uint32_t)((uint64_t)(chunk_len - diff) % (uint64_t)64U); } - uint32_t n_blocks = (len - diff - ite) / (uint32_t)64U; - uint32_t data1_len = n_blocks * (uint32_t)64U; - uint32_t data2_len = len - diff - data1_len; - uint8_t *data11 = data2; - uint8_t *data21 = data2 + data1_len; - Hacl_Hash_SHA1_legacy_update_multi(block_state1, data11, data1_len / (uint32_t)64U); + uint32_t n_blocks = (chunk_len - diff - ite) / 64U; + uint32_t data1_len = n_blocks * 64U; + uint32_t data2_len = chunk_len - diff - data1_len; + uint8_t *data1 = chunk2; + uint8_t *data2 = chunk2 + data1_len; + Hacl_Hash_SHA1_update_multi(block_state1, data1, data1_len / 64U); uint8_t *dst = buf; - memcpy(dst, data21, data2_len * sizeof (uint8_t)); - *p + memcpy(dst, data2, data2_len * sizeof (uint8_t)); + *state = ( (Hacl_Streaming_MD_state_32){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)(len - diff) + .total_len = total_len1 + (uint64_t)(chunk_len - diff) } ); } return Hacl_Streaming_Types_Success; } -void Hacl_Streaming_SHA1_legacy_finish(Hacl_Streaming_MD_state_32 *p, uint8_t *dst) +void Hacl_Hash_SHA1_digest(Hacl_Streaming_MD_state_32 *state, uint8_t *output) { - Hacl_Streaming_MD_state_32 scrut = *p; + Hacl_Streaming_MD_state_32 scrut = *state; uint32_t *block_state = scrut.block_state; uint8_t *buf_ = scrut.buf; uint64_t total_len = scrut.total_len; uint32_t r; - if (total_len % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)64U == 0ULL && total_len > 0ULL) { - r = (uint32_t)64U; + r = 64U; } else { - r = (uint32_t)(total_len % (uint64_t)(uint32_t)64U); + r = (uint32_t)(total_len % (uint64_t)64U); } uint8_t *buf_1 = buf_; uint32_t tmp_block_state[5U] = { 0U }; - memcpy(tmp_block_state, block_state, (uint32_t)5U * sizeof (uint32_t)); + memcpy(tmp_block_state, block_state, 5U * sizeof (uint32_t)); uint32_t ite; - if (r % (uint32_t)64U == (uint32_t)0U && r > (uint32_t)0U) + if (r % 64U == 0U && r > 0U) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = r % (uint32_t)64U; + ite = r % 64U; } uint8_t *buf_last = buf_1 + r - ite; uint8_t *buf_multi = buf_1; - Hacl_Hash_SHA1_legacy_update_multi(tmp_block_state, buf_multi, (uint32_t)0U); + Hacl_Hash_SHA1_update_multi(tmp_block_state, buf_multi, 0U); uint64_t prev_len_last = total_len - (uint64_t)r; - Hacl_Hash_SHA1_legacy_update_last(tmp_block_state, prev_len_last, buf_last, r); - Hacl_Hash_Core_SHA1_legacy_finish(tmp_block_state, dst); + Hacl_Hash_SHA1_update_last(tmp_block_state, prev_len_last, buf_last, r); + Hacl_Hash_SHA1_finish(tmp_block_state, output); } -void Hacl_Streaming_SHA1_legacy_free(Hacl_Streaming_MD_state_32 *s) +void Hacl_Hash_SHA1_free(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s; + Hacl_Streaming_MD_state_32 scrut = *state; uint8_t *buf = scrut.buf; uint32_t *block_state = scrut.block_state; KRML_HOST_FREE(block_state); KRML_HOST_FREE(buf); - KRML_HOST_FREE(s); + KRML_HOST_FREE(state); } -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA1_legacy_copy(Hacl_Streaming_MD_state_32 *s0) +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA1_copy(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s0; + Hacl_Streaming_MD_state_32 scrut = *state; uint32_t *block_state0 = scrut.block_state; uint8_t *buf0 = scrut.buf; uint64_t total_len0 = scrut.total_len; - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)64U, sizeof (uint8_t)); - memcpy(buf, buf0, (uint32_t)64U * sizeof (uint8_t)); - uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC((uint32_t)5U, sizeof (uint32_t)); - memcpy(block_state, block_state0, (uint32_t)5U * sizeof (uint32_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(64U, sizeof (uint8_t)); + memcpy(buf, buf0, 64U * sizeof (uint8_t)); + uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC(5U, sizeof (uint32_t)); + memcpy(block_state, block_state0, 5U * sizeof (uint32_t)); Hacl_Streaming_MD_state_32 s = { .block_state = block_state, .buf = buf, .total_len = total_len0 }; Hacl_Streaming_MD_state_32 @@ -501,8 +456,8 @@ Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA1_legacy_copy(Hacl_Streaming_MD_st return p; } -void Hacl_Streaming_SHA1_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst) +void Hacl_Hash_SHA1_hash(uint8_t *output, uint8_t *input, uint32_t input_len) { - Hacl_Hash_SHA1_legacy_hash(input, input_len, dst); + Hacl_Hash_SHA1_hash_oneshot(output, input, input_len); } diff --git a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA1.h b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA1.h index dc50aa6f6d..ad1e8e72a7 100644 --- a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA1.h +++ b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA1.h @@ -31,31 +31,32 @@ extern "C" { #endif #include <string.h> +#include "python_hacl_namespaces.h" #include "krml/types.h" #include "krml/lowstar_endianness.h" #include "krml/internal/target.h" #include "Hacl_Streaming_Types.h" -typedef Hacl_Streaming_MD_state_32 Hacl_Streaming_SHA1_state; +typedef Hacl_Streaming_MD_state_32 Hacl_Hash_SHA1_state_t; -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA1_legacy_create_in(void); +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA1_malloc(void); -void Hacl_Streaming_SHA1_legacy_init(Hacl_Streaming_MD_state_32 *s); +void Hacl_Hash_SHA1_reset(Hacl_Streaming_MD_state_32 *state); /** 0 = success, 1 = max length exceeded */ Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA1_legacy_update(Hacl_Streaming_MD_state_32 *p, uint8_t *data, uint32_t len); +Hacl_Hash_SHA1_update(Hacl_Streaming_MD_state_32 *state, uint8_t *chunk, uint32_t chunk_len); -void Hacl_Streaming_SHA1_legacy_finish(Hacl_Streaming_MD_state_32 *p, uint8_t *dst); +void Hacl_Hash_SHA1_digest(Hacl_Streaming_MD_state_32 *state, uint8_t *output); -void Hacl_Streaming_SHA1_legacy_free(Hacl_Streaming_MD_state_32 *s); +void Hacl_Hash_SHA1_free(Hacl_Streaming_MD_state_32 *state); -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA1_legacy_copy(Hacl_Streaming_MD_state_32 *s0); +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA1_copy(Hacl_Streaming_MD_state_32 *state); -void Hacl_Streaming_SHA1_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst); +void Hacl_Hash_SHA1_hash(uint8_t *output, uint8_t *input, uint32_t input_len); #if defined(__cplusplus) } diff --git a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA2.c b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA2.c index 08e3f7edbf..4b6af5fc78 100644 --- a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA2.c +++ b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA2.c @@ -27,14 +27,14 @@ -void Hacl_SHA2_Scalar32_sha256_init(uint32_t *hash) +void Hacl_Hash_SHA2_sha256_init(uint32_t *hash) { KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, + 0U, + 8U, + 1U, uint32_t *os = hash; - uint32_t x = Hacl_Impl_SHA2_Generic_h256[i]; + uint32_t x = Hacl_Hash_SHA2_h256[i]; os[i] = x;); } @@ -42,49 +42,49 @@ static inline void sha256_update(uint8_t *b, uint32_t *hash) { uint32_t hash_old[8U] = { 0U }; uint32_t ws[16U] = { 0U }; - memcpy(hash_old, hash, (uint32_t)8U * sizeof (uint32_t)); + memcpy(hash_old, hash, 8U * sizeof (uint32_t)); uint8_t *b10 = b; uint32_t u = load32_be(b10); ws[0U] = u; - uint32_t u0 = load32_be(b10 + (uint32_t)4U); + uint32_t u0 = load32_be(b10 + 4U); ws[1U] = u0; - uint32_t u1 = load32_be(b10 + (uint32_t)8U); + uint32_t u1 = load32_be(b10 + 8U); ws[2U] = u1; - uint32_t u2 = load32_be(b10 + (uint32_t)12U); + uint32_t u2 = load32_be(b10 + 12U); ws[3U] = u2; - uint32_t u3 = load32_be(b10 + (uint32_t)16U); + uint32_t u3 = load32_be(b10 + 16U); ws[4U] = u3; - uint32_t u4 = load32_be(b10 + (uint32_t)20U); + uint32_t u4 = load32_be(b10 + 20U); ws[5U] = u4; - uint32_t u5 = load32_be(b10 + (uint32_t)24U); + uint32_t u5 = load32_be(b10 + 24U); ws[6U] = u5; - uint32_t u6 = load32_be(b10 + (uint32_t)28U); + uint32_t u6 = load32_be(b10 + 28U); ws[7U] = u6; - uint32_t u7 = load32_be(b10 + (uint32_t)32U); + uint32_t u7 = load32_be(b10 + 32U); ws[8U] = u7; - uint32_t u8 = load32_be(b10 + (uint32_t)36U); + uint32_t u8 = load32_be(b10 + 36U); ws[9U] = u8; - uint32_t u9 = load32_be(b10 + (uint32_t)40U); + uint32_t u9 = load32_be(b10 + 40U); ws[10U] = u9; - uint32_t u10 = load32_be(b10 + (uint32_t)44U); + uint32_t u10 = load32_be(b10 + 44U); ws[11U] = u10; - uint32_t u11 = load32_be(b10 + (uint32_t)48U); + uint32_t u11 = load32_be(b10 + 48U); ws[12U] = u11; - uint32_t u12 = load32_be(b10 + (uint32_t)52U); + uint32_t u12 = load32_be(b10 + 52U); ws[13U] = u12; - uint32_t u13 = load32_be(b10 + (uint32_t)56U); + uint32_t u13 = load32_be(b10 + 56U); ws[14U] = u13; - uint32_t u14 = load32_be(b10 + (uint32_t)60U); + uint32_t u14 = load32_be(b10 + 60U); ws[15U] = u14; KRML_MAYBE_FOR4(i0, - (uint32_t)0U, - (uint32_t)4U, - (uint32_t)1U, + 0U, + 4U, + 1U, KRML_MAYBE_FOR16(i, - (uint32_t)0U, - (uint32_t)16U, - (uint32_t)1U, - uint32_t k_t = Hacl_Impl_SHA2_Generic_k224_256[(uint32_t)16U * i0 + i]; + 0U, + 16U, + 1U, + uint32_t k_t = Hacl_Hash_SHA2_k224_256[16U * i0 + i]; uint32_t ws_t = ws[i]; uint32_t a0 = hash[0U]; uint32_t b0 = hash[1U]; @@ -98,20 +98,13 @@ static inline void sha256_update(uint8_t *b, uint32_t *hash) uint32_t t1 = h02 - + - ((e0 << (uint32_t)26U | e0 >> (uint32_t)6U) - ^ - ((e0 << (uint32_t)21U | e0 >> (uint32_t)11U) - ^ (e0 << (uint32_t)7U | e0 >> (uint32_t)25U))) + + ((e0 << 26U | e0 >> 6U) ^ ((e0 << 21U | e0 >> 11U) ^ (e0 << 7U | e0 >> 25U))) + ((e0 & f0) ^ (~e0 & g0)) + k_e_t + ws_t; uint32_t t2 = - ((a0 << (uint32_t)30U | a0 >> (uint32_t)2U) - ^ - ((a0 << (uint32_t)19U | a0 >> (uint32_t)13U) - ^ (a0 << (uint32_t)10U | a0 >> (uint32_t)22U))) + ((a0 << 30U | a0 >> 2U) ^ ((a0 << 19U | a0 >> 13U) ^ (a0 << 10U | a0 >> 22U))) + ((a0 & b0) ^ ((a0 & c0) ^ (b0 & c0))); uint32_t a1 = t1 + t2; uint32_t b1 = a0; @@ -129,74 +122,63 @@ static inline void sha256_update(uint8_t *b, uint32_t *hash) hash[5U] = f1; hash[6U] = g1; hash[7U] = h12;); - if (i0 < (uint32_t)3U) + if (i0 < 3U) { KRML_MAYBE_FOR16(i, - (uint32_t)0U, - (uint32_t)16U, - (uint32_t)1U, + 0U, + 16U, + 1U, uint32_t t16 = ws[i]; - uint32_t t15 = ws[(i + (uint32_t)1U) % (uint32_t)16U]; - uint32_t t7 = ws[(i + (uint32_t)9U) % (uint32_t)16U]; - uint32_t t2 = ws[(i + (uint32_t)14U) % (uint32_t)16U]; - uint32_t - s1 = - (t2 << (uint32_t)15U | t2 >> (uint32_t)17U) - ^ ((t2 << (uint32_t)13U | t2 >> (uint32_t)19U) ^ t2 >> (uint32_t)10U); - uint32_t - s0 = - (t15 << (uint32_t)25U | t15 >> (uint32_t)7U) - ^ ((t15 << (uint32_t)14U | t15 >> (uint32_t)18U) ^ t15 >> (uint32_t)3U); + uint32_t t15 = ws[(i + 1U) % 16U]; + uint32_t t7 = ws[(i + 9U) % 16U]; + uint32_t t2 = ws[(i + 14U) % 16U]; + uint32_t s1 = (t2 << 15U | t2 >> 17U) ^ ((t2 << 13U | t2 >> 19U) ^ t2 >> 10U); + uint32_t s0 = (t15 << 25U | t15 >> 7U) ^ ((t15 << 14U | t15 >> 18U) ^ t15 >> 3U); ws[i] = s1 + t7 + s0 + t16;); }); KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, + 0U, + 8U, + 1U, uint32_t *os = hash; uint32_t x = hash[i] + hash_old[i]; os[i] = x;); } -void Hacl_SHA2_Scalar32_sha256_update_nblocks(uint32_t len, uint8_t *b, uint32_t *st) +void Hacl_Hash_SHA2_sha256_update_nblocks(uint32_t len, uint8_t *b, uint32_t *st) { - uint32_t blocks = len / (uint32_t)64U; - for (uint32_t i = (uint32_t)0U; i < blocks; i++) + uint32_t blocks = len / 64U; + for (uint32_t i = 0U; i < blocks; i++) { uint8_t *b0 = b; - uint8_t *mb = b0 + i * (uint32_t)64U; + uint8_t *mb = b0 + i * 64U; sha256_update(mb, st); } } void -Hacl_SHA2_Scalar32_sha256_update_last( - uint64_t totlen, - uint32_t len, - uint8_t *b, - uint32_t *hash -) +Hacl_Hash_SHA2_sha256_update_last(uint64_t totlen, uint32_t len, uint8_t *b, uint32_t *hash) { uint32_t blocks; - if (len + (uint32_t)8U + (uint32_t)1U <= (uint32_t)64U) + if (len + 8U + 1U <= 64U) { - blocks = (uint32_t)1U; + blocks = 1U; } else { - blocks = (uint32_t)2U; + blocks = 2U; } - uint32_t fin = blocks * (uint32_t)64U; + uint32_t fin = blocks * 64U; uint8_t last[128U] = { 0U }; uint8_t totlen_buf[8U] = { 0U }; - uint64_t total_len_bits = totlen << (uint32_t)3U; + uint64_t total_len_bits = totlen << 3U; store64_be(totlen_buf, total_len_bits); uint8_t *b0 = b; memcpy(last, b0, len * sizeof (uint8_t)); - last[len] = (uint8_t)0x80U; - memcpy(last + fin - (uint32_t)8U, totlen_buf, (uint32_t)8U * sizeof (uint8_t)); + last[len] = 0x80U; + memcpy(last + fin - 8U, totlen_buf, 8U * sizeof (uint8_t)); uint8_t *last00 = last; - uint8_t *last10 = last + (uint32_t)64U; + uint8_t *last10 = last + 64U; uint8_t *l0 = last00; uint8_t *l1 = last10; uint8_t *lb0 = l0; @@ -204,65 +186,56 @@ Hacl_SHA2_Scalar32_sha256_update_last( uint8_t *last0 = lb0; uint8_t *last1 = lb1; sha256_update(last0, hash); - if (blocks > (uint32_t)1U) + if (blocks > 1U) { sha256_update(last1, hash); return; } } -void Hacl_SHA2_Scalar32_sha256_finish(uint32_t *st, uint8_t *h) +void Hacl_Hash_SHA2_sha256_finish(uint32_t *st, uint8_t *h) { uint8_t hbuf[32U] = { 0U }; - KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, - store32_be(hbuf + i * (uint32_t)4U, st[i]);); - memcpy(h, hbuf, (uint32_t)32U * sizeof (uint8_t)); + KRML_MAYBE_FOR8(i, 0U, 8U, 1U, store32_be(hbuf + i * 4U, st[i]);); + memcpy(h, hbuf, 32U * sizeof (uint8_t)); } -void Hacl_SHA2_Scalar32_sha224_init(uint32_t *hash) +void Hacl_Hash_SHA2_sha224_init(uint32_t *hash) { KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, + 0U, + 8U, + 1U, uint32_t *os = hash; - uint32_t x = Hacl_Impl_SHA2_Generic_h224[i]; + uint32_t x = Hacl_Hash_SHA2_h224[i]; os[i] = x;); } static inline void sha224_update_nblocks(uint32_t len, uint8_t *b, uint32_t *st) { - Hacl_SHA2_Scalar32_sha256_update_nblocks(len, b, st); + Hacl_Hash_SHA2_sha256_update_nblocks(len, b, st); } -void -Hacl_SHA2_Scalar32_sha224_update_last(uint64_t totlen, uint32_t len, uint8_t *b, uint32_t *st) +void Hacl_Hash_SHA2_sha224_update_last(uint64_t totlen, uint32_t len, uint8_t *b, uint32_t *st) { - Hacl_SHA2_Scalar32_sha256_update_last(totlen, len, b, st); + Hacl_Hash_SHA2_sha256_update_last(totlen, len, b, st); } -void Hacl_SHA2_Scalar32_sha224_finish(uint32_t *st, uint8_t *h) +void Hacl_Hash_SHA2_sha224_finish(uint32_t *st, uint8_t *h) { uint8_t hbuf[32U] = { 0U }; - KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, - store32_be(hbuf + i * (uint32_t)4U, st[i]);); - memcpy(h, hbuf, (uint32_t)28U * sizeof (uint8_t)); + KRML_MAYBE_FOR8(i, 0U, 8U, 1U, store32_be(hbuf + i * 4U, st[i]);); + memcpy(h, hbuf, 28U * sizeof (uint8_t)); } -void Hacl_SHA2_Scalar32_sha512_init(uint64_t *hash) +void Hacl_Hash_SHA2_sha512_init(uint64_t *hash) { KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, + 0U, + 8U, + 1U, uint64_t *os = hash; - uint64_t x = Hacl_Impl_SHA2_Generic_h512[i]; + uint64_t x = Hacl_Hash_SHA2_h512[i]; os[i] = x;); } @@ -270,49 +243,49 @@ static inline void sha512_update(uint8_t *b, uint64_t *hash) { uint64_t hash_old[8U] = { 0U }; uint64_t ws[16U] = { 0U }; - memcpy(hash_old, hash, (uint32_t)8U * sizeof (uint64_t)); + memcpy(hash_old, hash, 8U * sizeof (uint64_t)); uint8_t *b10 = b; uint64_t u = load64_be(b10); ws[0U] = u; - uint64_t u0 = load64_be(b10 + (uint32_t)8U); + uint64_t u0 = load64_be(b10 + 8U); ws[1U] = u0; - uint64_t u1 = load64_be(b10 + (uint32_t)16U); + uint64_t u1 = load64_be(b10 + 16U); ws[2U] = u1; - uint64_t u2 = load64_be(b10 + (uint32_t)24U); + uint64_t u2 = load64_be(b10 + 24U); ws[3U] = u2; - uint64_t u3 = load64_be(b10 + (uint32_t)32U); + uint64_t u3 = load64_be(b10 + 32U); ws[4U] = u3; - uint64_t u4 = load64_be(b10 + (uint32_t)40U); + uint64_t u4 = load64_be(b10 + 40U); ws[5U] = u4; - uint64_t u5 = load64_be(b10 + (uint32_t)48U); + uint64_t u5 = load64_be(b10 + 48U); ws[6U] = u5; - uint64_t u6 = load64_be(b10 + (uint32_t)56U); + uint64_t u6 = load64_be(b10 + 56U); ws[7U] = u6; - uint64_t u7 = load64_be(b10 + (uint32_t)64U); + uint64_t u7 = load64_be(b10 + 64U); ws[8U] = u7; - uint64_t u8 = load64_be(b10 + (uint32_t)72U); + uint64_t u8 = load64_be(b10 + 72U); ws[9U] = u8; - uint64_t u9 = load64_be(b10 + (uint32_t)80U); + uint64_t u9 = load64_be(b10 + 80U); ws[10U] = u9; - uint64_t u10 = load64_be(b10 + (uint32_t)88U); + uint64_t u10 = load64_be(b10 + 88U); ws[11U] = u10; - uint64_t u11 = load64_be(b10 + (uint32_t)96U); + uint64_t u11 = load64_be(b10 + 96U); ws[12U] = u11; - uint64_t u12 = load64_be(b10 + (uint32_t)104U); + uint64_t u12 = load64_be(b10 + 104U); ws[13U] = u12; - uint64_t u13 = load64_be(b10 + (uint32_t)112U); + uint64_t u13 = load64_be(b10 + 112U); ws[14U] = u13; - uint64_t u14 = load64_be(b10 + (uint32_t)120U); + uint64_t u14 = load64_be(b10 + 120U); ws[15U] = u14; KRML_MAYBE_FOR5(i0, - (uint32_t)0U, - (uint32_t)5U, - (uint32_t)1U, + 0U, + 5U, + 1U, KRML_MAYBE_FOR16(i, - (uint32_t)0U, - (uint32_t)16U, - (uint32_t)1U, - uint64_t k_t = Hacl_Impl_SHA2_Generic_k384_512[(uint32_t)16U * i0 + i]; + 0U, + 16U, + 1U, + uint64_t k_t = Hacl_Hash_SHA2_k384_512[16U * i0 + i]; uint64_t ws_t = ws[i]; uint64_t a0 = hash[0U]; uint64_t b0 = hash[1U]; @@ -326,20 +299,13 @@ static inline void sha512_update(uint8_t *b, uint64_t *hash) uint64_t t1 = h02 - + - ((e0 << (uint32_t)50U | e0 >> (uint32_t)14U) - ^ - ((e0 << (uint32_t)46U | e0 >> (uint32_t)18U) - ^ (e0 << (uint32_t)23U | e0 >> (uint32_t)41U))) + + ((e0 << 50U | e0 >> 14U) ^ ((e0 << 46U | e0 >> 18U) ^ (e0 << 23U | e0 >> 41U))) + ((e0 & f0) ^ (~e0 & g0)) + k_e_t + ws_t; uint64_t t2 = - ((a0 << (uint32_t)36U | a0 >> (uint32_t)28U) - ^ - ((a0 << (uint32_t)30U | a0 >> (uint32_t)34U) - ^ (a0 << (uint32_t)25U | a0 >> (uint32_t)39U))) + ((a0 << 36U | a0 >> 28U) ^ ((a0 << 30U | a0 >> 34U) ^ (a0 << 25U | a0 >> 39U))) + ((a0 & b0) ^ ((a0 & c0) ^ (b0 & c0))); uint64_t a1 = t1 + t2; uint64_t b1 = a0; @@ -357,48 +323,42 @@ static inline void sha512_update(uint8_t *b, uint64_t *hash) hash[5U] = f1; hash[6U] = g1; hash[7U] = h12;); - if (i0 < (uint32_t)4U) + if (i0 < 4U) { KRML_MAYBE_FOR16(i, - (uint32_t)0U, - (uint32_t)16U, - (uint32_t)1U, + 0U, + 16U, + 1U, uint64_t t16 = ws[i]; - uint64_t t15 = ws[(i + (uint32_t)1U) % (uint32_t)16U]; - uint64_t t7 = ws[(i + (uint32_t)9U) % (uint32_t)16U]; - uint64_t t2 = ws[(i + (uint32_t)14U) % (uint32_t)16U]; - uint64_t - s1 = - (t2 << (uint32_t)45U | t2 >> (uint32_t)19U) - ^ ((t2 << (uint32_t)3U | t2 >> (uint32_t)61U) ^ t2 >> (uint32_t)6U); - uint64_t - s0 = - (t15 << (uint32_t)63U | t15 >> (uint32_t)1U) - ^ ((t15 << (uint32_t)56U | t15 >> (uint32_t)8U) ^ t15 >> (uint32_t)7U); + uint64_t t15 = ws[(i + 1U) % 16U]; + uint64_t t7 = ws[(i + 9U) % 16U]; + uint64_t t2 = ws[(i + 14U) % 16U]; + uint64_t s1 = (t2 << 45U | t2 >> 19U) ^ ((t2 << 3U | t2 >> 61U) ^ t2 >> 6U); + uint64_t s0 = (t15 << 63U | t15 >> 1U) ^ ((t15 << 56U | t15 >> 8U) ^ t15 >> 7U); ws[i] = s1 + t7 + s0 + t16;); }); KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, + 0U, + 8U, + 1U, uint64_t *os = hash; uint64_t x = hash[i] + hash_old[i]; os[i] = x;); } -void Hacl_SHA2_Scalar32_sha512_update_nblocks(uint32_t len, uint8_t *b, uint64_t *st) +void Hacl_Hash_SHA2_sha512_update_nblocks(uint32_t len, uint8_t *b, uint64_t *st) { - uint32_t blocks = len / (uint32_t)128U; - for (uint32_t i = (uint32_t)0U; i < blocks; i++) + uint32_t blocks = len / 128U; + for (uint32_t i = 0U; i < blocks; i++) { uint8_t *b0 = b; - uint8_t *mb = b0 + i * (uint32_t)128U; + uint8_t *mb = b0 + i * 128U; sha512_update(mb, st); } } void -Hacl_SHA2_Scalar32_sha512_update_last( +Hacl_Hash_SHA2_sha512_update_last( FStar_UInt128_uint128 totlen, uint32_t len, uint8_t *b, @@ -406,25 +366,25 @@ Hacl_SHA2_Scalar32_sha512_update_last( ) { uint32_t blocks; - if (len + (uint32_t)16U + (uint32_t)1U <= (uint32_t)128U) + if (len + 16U + 1U <= 128U) { - blocks = (uint32_t)1U; + blocks = 1U; } else { - blocks = (uint32_t)2U; + blocks = 2U; } - uint32_t fin = blocks * (uint32_t)128U; + uint32_t fin = blocks * 128U; uint8_t last[256U] = { 0U }; uint8_t totlen_buf[16U] = { 0U }; - FStar_UInt128_uint128 total_len_bits = FStar_UInt128_shift_left(totlen, (uint32_t)3U); + FStar_UInt128_uint128 total_len_bits = FStar_UInt128_shift_left(totlen, 3U); store128_be(totlen_buf, total_len_bits); uint8_t *b0 = b; memcpy(last, b0, len * sizeof (uint8_t)); - last[len] = (uint8_t)0x80U; - memcpy(last + fin - (uint32_t)16U, totlen_buf, (uint32_t)16U * sizeof (uint8_t)); + last[len] = 0x80U; + memcpy(last + fin - 16U, totlen_buf, 16U * sizeof (uint8_t)); uint8_t *last00 = last; - uint8_t *last10 = last + (uint32_t)128U; + uint8_t *last10 = last + 128U; uint8_t *l0 = last00; uint8_t *l1 = last10; uint8_t *lb0 = l0; @@ -432,76 +392,68 @@ Hacl_SHA2_Scalar32_sha512_update_last( uint8_t *last0 = lb0; uint8_t *last1 = lb1; sha512_update(last0, hash); - if (blocks > (uint32_t)1U) + if (blocks > 1U) { sha512_update(last1, hash); return; } } -void Hacl_SHA2_Scalar32_sha512_finish(uint64_t *st, uint8_t *h) +void Hacl_Hash_SHA2_sha512_finish(uint64_t *st, uint8_t *h) { uint8_t hbuf[64U] = { 0U }; - KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, - store64_be(hbuf + i * (uint32_t)8U, st[i]);); - memcpy(h, hbuf, (uint32_t)64U * sizeof (uint8_t)); + KRML_MAYBE_FOR8(i, 0U, 8U, 1U, store64_be(hbuf + i * 8U, st[i]);); + memcpy(h, hbuf, 64U * sizeof (uint8_t)); } -void Hacl_SHA2_Scalar32_sha384_init(uint64_t *hash) +void Hacl_Hash_SHA2_sha384_init(uint64_t *hash) { KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, + 0U, + 8U, + 1U, uint64_t *os = hash; - uint64_t x = Hacl_Impl_SHA2_Generic_h384[i]; + uint64_t x = Hacl_Hash_SHA2_h384[i]; os[i] = x;); } -void Hacl_SHA2_Scalar32_sha384_update_nblocks(uint32_t len, uint8_t *b, uint64_t *st) +void Hacl_Hash_SHA2_sha384_update_nblocks(uint32_t len, uint8_t *b, uint64_t *st) { - Hacl_SHA2_Scalar32_sha512_update_nblocks(len, b, st); + Hacl_Hash_SHA2_sha512_update_nblocks(len, b, st); } void -Hacl_SHA2_Scalar32_sha384_update_last( +Hacl_Hash_SHA2_sha384_update_last( FStar_UInt128_uint128 totlen, uint32_t len, uint8_t *b, uint64_t *st ) { - Hacl_SHA2_Scalar32_sha512_update_last(totlen, len, b, st); + Hacl_Hash_SHA2_sha512_update_last(totlen, len, b, st); } -void Hacl_SHA2_Scalar32_sha384_finish(uint64_t *st, uint8_t *h) +void Hacl_Hash_SHA2_sha384_finish(uint64_t *st, uint8_t *h) { uint8_t hbuf[64U] = { 0U }; - KRML_MAYBE_FOR8(i, - (uint32_t)0U, - (uint32_t)8U, - (uint32_t)1U, - store64_be(hbuf + i * (uint32_t)8U, st[i]);); - memcpy(h, hbuf, (uint32_t)48U * sizeof (uint8_t)); + KRML_MAYBE_FOR8(i, 0U, 8U, 1U, store64_be(hbuf + i * 8U, st[i]);); + memcpy(h, hbuf, 48U * sizeof (uint8_t)); } /** Allocate initial state for the SHA2_256 hash. The state is to be freed by calling `free_256`. */ -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA2_create_in_256(void) +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_malloc_256(void) { - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)64U, sizeof (uint8_t)); - uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC((uint32_t)8U, sizeof (uint32_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(64U, sizeof (uint8_t)); + uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC(8U, sizeof (uint32_t)); Hacl_Streaming_MD_state_32 - s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; + s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; Hacl_Streaming_MD_state_32 *p = (Hacl_Streaming_MD_state_32 *)KRML_HOST_MALLOC(sizeof (Hacl_Streaming_MD_state_32)); p[0U] = s; - Hacl_SHA2_Scalar32_sha256_init(block_state); + Hacl_Hash_SHA2_sha256_init(block_state); return p; } @@ -511,16 +463,16 @@ The state is to be freed by calling `free_256`. Cloning the state this way is useful, for instance, if your control-flow diverges and you need to feed more (different) data into the hash in each branch. */ -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA2_copy_256(Hacl_Streaming_MD_state_32 *s0) +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_copy_256(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s0; + Hacl_Streaming_MD_state_32 scrut = *state; uint32_t *block_state0 = scrut.block_state; uint8_t *buf0 = scrut.buf; uint64_t total_len0 = scrut.total_len; - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)64U, sizeof (uint8_t)); - memcpy(buf, buf0, (uint32_t)64U * sizeof (uint8_t)); - uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC((uint32_t)8U, sizeof (uint32_t)); - memcpy(block_state, block_state0, (uint32_t)8U * sizeof (uint32_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(64U, sizeof (uint8_t)); + memcpy(buf, buf0, 64U * sizeof (uint8_t)); + uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC(8U, sizeof (uint32_t)); + memcpy(block_state, block_state0, 8U * sizeof (uint32_t)); Hacl_Streaming_MD_state_32 s = { .block_state = block_state, .buf = buf, .total_len = total_len0 }; Hacl_Streaming_MD_state_32 @@ -532,54 +484,54 @@ Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA2_copy_256(Hacl_Streaming_MD_state /** Reset an existing state to the initial hash state with empty data. */ -void Hacl_Streaming_SHA2_init_256(Hacl_Streaming_MD_state_32 *s) +void Hacl_Hash_SHA2_reset_256(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s; + Hacl_Streaming_MD_state_32 scrut = *state; uint8_t *buf = scrut.buf; uint32_t *block_state = scrut.block_state; - Hacl_SHA2_Scalar32_sha256_init(block_state); + Hacl_Hash_SHA2_sha256_init(block_state); Hacl_Streaming_MD_state_32 - tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; - s[0U] = tmp; + tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; + state[0U] = tmp; } static inline Hacl_Streaming_Types_error_code -update_224_256(Hacl_Streaming_MD_state_32 *p, uint8_t *data, uint32_t len) +update_224_256(Hacl_Streaming_MD_state_32 *state, uint8_t *chunk, uint32_t chunk_len) { - Hacl_Streaming_MD_state_32 s = *p; + Hacl_Streaming_MD_state_32 s = *state; uint64_t total_len = s.total_len; - if ((uint64_t)len > (uint64_t)2305843009213693951U - total_len) + if ((uint64_t)chunk_len > 2305843009213693951ULL - total_len) { return Hacl_Streaming_Types_MaximumLengthExceeded; } uint32_t sz; - if (total_len % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)64U == 0ULL && total_len > 0ULL) { - sz = (uint32_t)64U; + sz = 64U; } else { - sz = (uint32_t)(total_len % (uint64_t)(uint32_t)64U); + sz = (uint32_t)(total_len % (uint64_t)64U); } - if (len <= (uint32_t)64U - sz) + if (chunk_len <= 64U - sz) { - Hacl_Streaming_MD_state_32 s1 = *p; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } uint8_t *buf2 = buf + sz1; - memcpy(buf2, data, len * sizeof (uint8_t)); - uint64_t total_len2 = total_len1 + (uint64_t)len; - *p + memcpy(buf2, chunk, chunk_len * sizeof (uint8_t)); + uint64_t total_len2 = total_len1 + (uint64_t)chunk_len; + *state = ( (Hacl_Streaming_MD_state_32){ @@ -589,76 +541,74 @@ update_224_256(Hacl_Streaming_MD_state_32 *p, uint8_t *data, uint32_t len) } ); } - else if (sz == (uint32_t)0U) + else if (sz == 0U) { - Hacl_Streaming_MD_state_32 s1 = *p; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { - Hacl_SHA2_Scalar32_sha256_update_nblocks((uint32_t)64U, buf, block_state1); + Hacl_Hash_SHA2_sha256_update_nblocks(64U, buf, block_state1); } uint32_t ite; - if ((uint64_t)len % (uint64_t)(uint32_t)64U == (uint64_t)0U && (uint64_t)len > (uint64_t)0U) + if ((uint64_t)chunk_len % (uint64_t)64U == 0ULL && (uint64_t)chunk_len > 0ULL) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = (uint32_t)((uint64_t)len % (uint64_t)(uint32_t)64U); + ite = (uint32_t)((uint64_t)chunk_len % (uint64_t)64U); } - uint32_t n_blocks = (len - ite) / (uint32_t)64U; - uint32_t data1_len = n_blocks * (uint32_t)64U; - uint32_t data2_len = len - data1_len; - uint8_t *data1 = data; - uint8_t *data2 = data + data1_len; - Hacl_SHA2_Scalar32_sha256_update_nblocks(data1_len / (uint32_t)64U * (uint32_t)64U, - data1, - block_state1); + uint32_t n_blocks = (chunk_len - ite) / 64U; + uint32_t data1_len = n_blocks * 64U; + uint32_t data2_len = chunk_len - data1_len; + uint8_t *data1 = chunk; + uint8_t *data2 = chunk + data1_len; + Hacl_Hash_SHA2_sha256_update_nblocks(data1_len / 64U * 64U, data1, block_state1); uint8_t *dst = buf; memcpy(dst, data2, data2_len * sizeof (uint8_t)); - *p + *state = ( (Hacl_Streaming_MD_state_32){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)len + .total_len = total_len1 + (uint64_t)chunk_len } ); } else { - uint32_t diff = (uint32_t)64U - sz; - uint8_t *data1 = data; - uint8_t *data2 = data + diff; - Hacl_Streaming_MD_state_32 s1 = *p; + uint32_t diff = 64U - sz; + uint8_t *chunk1 = chunk; + uint8_t *chunk2 = chunk + diff; + Hacl_Streaming_MD_state_32 s1 = *state; uint32_t *block_state10 = s1.block_state; uint8_t *buf0 = s1.buf; uint64_t total_len10 = s1.total_len; uint32_t sz10; - if (total_len10 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len10 > (uint64_t)0U) + if (total_len10 % (uint64_t)64U == 0ULL && total_len10 > 0ULL) { - sz10 = (uint32_t)64U; + sz10 = 64U; } else { - sz10 = (uint32_t)(total_len10 % (uint64_t)(uint32_t)64U); + sz10 = (uint32_t)(total_len10 % (uint64_t)64U); } uint8_t *buf2 = buf0 + sz10; - memcpy(buf2, data1, diff * sizeof (uint8_t)); + memcpy(buf2, chunk1, diff * sizeof (uint8_t)); uint64_t total_len2 = total_len10 + (uint64_t)diff; - *p + *state = ( (Hacl_Streaming_MD_state_32){ @@ -667,55 +617,48 @@ update_224_256(Hacl_Streaming_MD_state_32 *p, uint8_t *data, uint32_t len) .total_len = total_len2 } ); - Hacl_Streaming_MD_state_32 s10 = *p; + Hacl_Streaming_MD_state_32 s10 = *state; uint32_t *block_state1 = s10.block_state; uint8_t *buf = s10.buf; uint64_t total_len1 = s10.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)64U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)64U; + sz1 = 64U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)64U); + sz1 = (uint32_t)(total_len1 % (uint64_t)64U); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { - Hacl_SHA2_Scalar32_sha256_update_nblocks((uint32_t)64U, buf, block_state1); + Hacl_Hash_SHA2_sha256_update_nblocks(64U, buf, block_state1); } uint32_t ite; if - ( - (uint64_t)(len - diff) - % (uint64_t)(uint32_t)64U - == (uint64_t)0U - && (uint64_t)(len - diff) > (uint64_t)0U - ) + ((uint64_t)(chunk_len - diff) % (uint64_t)64U == 0ULL && (uint64_t)(chunk_len - diff) > 0ULL) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = (uint32_t)((uint64_t)(len - diff) % (uint64_t)(uint32_t)64U); + ite = (uint32_t)((uint64_t)(chunk_len - diff) % (uint64_t)64U); } - uint32_t n_blocks = (len - diff - ite) / (uint32_t)64U; - uint32_t data1_len = n_blocks * (uint32_t)64U; - uint32_t data2_len = len - diff - data1_len; - uint8_t *data11 = data2; - uint8_t *data21 = data2 + data1_len; - Hacl_SHA2_Scalar32_sha256_update_nblocks(data1_len / (uint32_t)64U * (uint32_t)64U, - data11, - block_state1); + uint32_t n_blocks = (chunk_len - diff - ite) / 64U; + uint32_t data1_len = n_blocks * 64U; + uint32_t data2_len = chunk_len - diff - data1_len; + uint8_t *data1 = chunk2; + uint8_t *data2 = chunk2 + data1_len; + Hacl_Hash_SHA2_sha256_update_nblocks(data1_len / 64U * 64U, data1, block_state1); uint8_t *dst = buf; - memcpy(dst, data21, data2_len * sizeof (uint8_t)); - *p + memcpy(dst, data2, data2_len * sizeof (uint8_t)); + *state = ( (Hacl_Streaming_MD_state_32){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)(len - diff) + .total_len = total_len1 + (uint64_t)(chunk_len - diff) } ); } @@ -725,209 +668,203 @@ update_224_256(Hacl_Streaming_MD_state_32 *p, uint8_t *data, uint32_t len) /** Feed an arbitrary amount of data into the hash. This function returns 0 for success, or 1 if the combined length of all of the data passed to `update_256` -(since the last call to `init_256`) exceeds 2^61-1 bytes. +(since the last call to `reset_256`) exceeds 2^61-1 bytes. This function is identical to the update function for SHA2_224. */ Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA2_update_256( - Hacl_Streaming_MD_state_32 *p, +Hacl_Hash_SHA2_update_256( + Hacl_Streaming_MD_state_32 *state, uint8_t *input, uint32_t input_len ) { - return update_224_256(p, input, input_len); + return update_224_256(state, input, input_len); } /** -Write the resulting hash into `dst`, an array of 32 bytes. The state remains -valid after a call to `finish_256`, meaning the user may feed more data into -the hash via `update_256`. (The finish_256 function operates on an internal copy of +Write the resulting hash into `output`, an array of 32 bytes. The state remains +valid after a call to `digest_256`, meaning the user may feed more data into +the hash via `update_256`. (The digest_256 function operates on an internal copy of the state and therefore does not invalidate the client-held state `p`.) */ -void Hacl_Streaming_SHA2_finish_256(Hacl_Streaming_MD_state_32 *p, uint8_t *dst) +void Hacl_Hash_SHA2_digest_256(Hacl_Streaming_MD_state_32 *state, uint8_t *output) { - Hacl_Streaming_MD_state_32 scrut = *p; + Hacl_Streaming_MD_state_32 scrut = *state; uint32_t *block_state = scrut.block_state; uint8_t *buf_ = scrut.buf; uint64_t total_len = scrut.total_len; uint32_t r; - if (total_len % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)64U == 0ULL && total_len > 0ULL) { - r = (uint32_t)64U; + r = 64U; } else { - r = (uint32_t)(total_len % (uint64_t)(uint32_t)64U); + r = (uint32_t)(total_len % (uint64_t)64U); } uint8_t *buf_1 = buf_; uint32_t tmp_block_state[8U] = { 0U }; - memcpy(tmp_block_state, block_state, (uint32_t)8U * sizeof (uint32_t)); + memcpy(tmp_block_state, block_state, 8U * sizeof (uint32_t)); uint32_t ite; - if (r % (uint32_t)64U == (uint32_t)0U && r > (uint32_t)0U) + if (r % 64U == 0U && r > 0U) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = r % (uint32_t)64U; + ite = r % 64U; } uint8_t *buf_last = buf_1 + r - ite; uint8_t *buf_multi = buf_1; - Hacl_SHA2_Scalar32_sha256_update_nblocks((uint32_t)0U, buf_multi, tmp_block_state); + Hacl_Hash_SHA2_sha256_update_nblocks(0U, buf_multi, tmp_block_state); uint64_t prev_len_last = total_len - (uint64_t)r; - Hacl_SHA2_Scalar32_sha256_update_last(prev_len_last + (uint64_t)r, - r, - buf_last, - tmp_block_state); - Hacl_SHA2_Scalar32_sha256_finish(tmp_block_state, dst); + Hacl_Hash_SHA2_sha256_update_last(prev_len_last + (uint64_t)r, r, buf_last, tmp_block_state); + Hacl_Hash_SHA2_sha256_finish(tmp_block_state, output); } /** -Free a state allocated with `create_in_256`. +Free a state allocated with `malloc_256`. This function is identical to the free function for SHA2_224. */ -void Hacl_Streaming_SHA2_free_256(Hacl_Streaming_MD_state_32 *s) +void Hacl_Hash_SHA2_free_256(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s; + Hacl_Streaming_MD_state_32 scrut = *state; uint8_t *buf = scrut.buf; uint32_t *block_state = scrut.block_state; KRML_HOST_FREE(block_state); KRML_HOST_FREE(buf); - KRML_HOST_FREE(s); + KRML_HOST_FREE(state); } /** -Hash `input`, of len `input_len`, into `dst`, an array of 32 bytes. +Hash `input`, of len `input_len`, into `output`, an array of 32 bytes. */ -void Hacl_Streaming_SHA2_hash_256(uint8_t *input, uint32_t input_len, uint8_t *dst) +void Hacl_Hash_SHA2_hash_256(uint8_t *output, uint8_t *input, uint32_t input_len) { uint8_t *ib = input; - uint8_t *rb = dst; + uint8_t *rb = output; uint32_t st[8U] = { 0U }; - Hacl_SHA2_Scalar32_sha256_init(st); - uint32_t rem = input_len % (uint32_t)64U; + Hacl_Hash_SHA2_sha256_init(st); + uint32_t rem = input_len % 64U; uint64_t len_ = (uint64_t)input_len; - Hacl_SHA2_Scalar32_sha256_update_nblocks(input_len, ib, st); - uint32_t rem1 = input_len % (uint32_t)64U; + Hacl_Hash_SHA2_sha256_update_nblocks(input_len, ib, st); + uint32_t rem1 = input_len % 64U; uint8_t *b0 = ib; uint8_t *lb = b0 + input_len - rem1; - Hacl_SHA2_Scalar32_sha256_update_last(len_, rem, lb, st); - Hacl_SHA2_Scalar32_sha256_finish(st, rb); + Hacl_Hash_SHA2_sha256_update_last(len_, rem, lb, st); + Hacl_Hash_SHA2_sha256_finish(st, rb); } -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA2_create_in_224(void) +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_malloc_224(void) { - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)64U, sizeof (uint8_t)); - uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC((uint32_t)8U, sizeof (uint32_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(64U, sizeof (uint8_t)); + uint32_t *block_state = (uint32_t *)KRML_HOST_CALLOC(8U, sizeof (uint32_t)); Hacl_Streaming_MD_state_32 - s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; + s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; Hacl_Streaming_MD_state_32 *p = (Hacl_Streaming_MD_state_32 *)KRML_HOST_MALLOC(sizeof (Hacl_Streaming_MD_state_32)); p[0U] = s; - Hacl_SHA2_Scalar32_sha224_init(block_state); + Hacl_Hash_SHA2_sha224_init(block_state); return p; } -void Hacl_Streaming_SHA2_init_224(Hacl_Streaming_MD_state_32 *s) +void Hacl_Hash_SHA2_reset_224(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_MD_state_32 scrut = *s; + Hacl_Streaming_MD_state_32 scrut = *state; uint8_t *buf = scrut.buf; uint32_t *block_state = scrut.block_state; - Hacl_SHA2_Scalar32_sha224_init(block_state); + Hacl_Hash_SHA2_sha224_init(block_state); Hacl_Streaming_MD_state_32 - tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; - s[0U] = tmp; + tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; + state[0U] = tmp; } Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA2_update_224( - Hacl_Streaming_MD_state_32 *p, +Hacl_Hash_SHA2_update_224( + Hacl_Streaming_MD_state_32 *state, uint8_t *input, uint32_t input_len ) { - return update_224_256(p, input, input_len); + return update_224_256(state, input, input_len); } /** -Write the resulting hash into `dst`, an array of 28 bytes. The state remains -valid after a call to `finish_224`, meaning the user may feed more data into +Write the resulting hash into `output`, an array of 28 bytes. The state remains +valid after a call to `digest_224`, meaning the user may feed more data into the hash via `update_224`. */ -void Hacl_Streaming_SHA2_finish_224(Hacl_Streaming_MD_state_32 *p, uint8_t *dst) +void Hacl_Hash_SHA2_digest_224(Hacl_Streaming_MD_state_32 *state, uint8_t *output) { - Hacl_Streaming_MD_state_32 scrut = *p; + Hacl_Streaming_MD_state_32 scrut = *state; uint32_t *block_state = scrut.block_state; uint8_t *buf_ = scrut.buf; uint64_t total_len = scrut.total_len; uint32_t r; - if (total_len % (uint64_t)(uint32_t)64U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)64U == 0ULL && total_len > 0ULL) { - r = (uint32_t)64U; + r = 64U; } else { - r = (uint32_t)(total_len % (uint64_t)(uint32_t)64U); + r = (uint32_t)(total_len % (uint64_t)64U); } uint8_t *buf_1 = buf_; uint32_t tmp_block_state[8U] = { 0U }; - memcpy(tmp_block_state, block_state, (uint32_t)8U * sizeof (uint32_t)); + memcpy(tmp_block_state, block_state, 8U * sizeof (uint32_t)); uint32_t ite; - if (r % (uint32_t)64U == (uint32_t)0U && r > (uint32_t)0U) + if (r % 64U == 0U && r > 0U) { - ite = (uint32_t)64U; + ite = 64U; } else { - ite = r % (uint32_t)64U; + ite = r % 64U; } uint8_t *buf_last = buf_1 + r - ite; uint8_t *buf_multi = buf_1; - sha224_update_nblocks((uint32_t)0U, buf_multi, tmp_block_state); + sha224_update_nblocks(0U, buf_multi, tmp_block_state); uint64_t prev_len_last = total_len - (uint64_t)r; - Hacl_SHA2_Scalar32_sha224_update_last(prev_len_last + (uint64_t)r, - r, - buf_last, - tmp_block_state); - Hacl_SHA2_Scalar32_sha224_finish(tmp_block_state, dst); + Hacl_Hash_SHA2_sha224_update_last(prev_len_last + (uint64_t)r, r, buf_last, tmp_block_state); + Hacl_Hash_SHA2_sha224_finish(tmp_block_state, output); } -void Hacl_Streaming_SHA2_free_224(Hacl_Streaming_MD_state_32 *p) +void Hacl_Hash_SHA2_free_224(Hacl_Streaming_MD_state_32 *state) { - Hacl_Streaming_SHA2_free_256(p); + Hacl_Hash_SHA2_free_256(state); } /** -Hash `input`, of len `input_len`, into `dst`, an array of 28 bytes. +Hash `input`, of len `input_len`, into `output`, an array of 28 bytes. */ -void Hacl_Streaming_SHA2_hash_224(uint8_t *input, uint32_t input_len, uint8_t *dst) +void Hacl_Hash_SHA2_hash_224(uint8_t *output, uint8_t *input, uint32_t input_len) { uint8_t *ib = input; - uint8_t *rb = dst; + uint8_t *rb = output; uint32_t st[8U] = { 0U }; - Hacl_SHA2_Scalar32_sha224_init(st); - uint32_t rem = input_len % (uint32_t)64U; + Hacl_Hash_SHA2_sha224_init(st); + uint32_t rem = input_len % 64U; uint64_t len_ = (uint64_t)input_len; sha224_update_nblocks(input_len, ib, st); - uint32_t rem1 = input_len % (uint32_t)64U; + uint32_t rem1 = input_len % 64U; uint8_t *b0 = ib; uint8_t *lb = b0 + input_len - rem1; - Hacl_SHA2_Scalar32_sha224_update_last(len_, rem, lb, st); - Hacl_SHA2_Scalar32_sha224_finish(st, rb); + Hacl_Hash_SHA2_sha224_update_last(len_, rem, lb, st); + Hacl_Hash_SHA2_sha224_finish(st, rb); } -Hacl_Streaming_MD_state_64 *Hacl_Streaming_SHA2_create_in_512(void) +Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_malloc_512(void) { - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)128U, sizeof (uint8_t)); - uint64_t *block_state = (uint64_t *)KRML_HOST_CALLOC((uint32_t)8U, sizeof (uint64_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(128U, sizeof (uint8_t)); + uint64_t *block_state = (uint64_t *)KRML_HOST_CALLOC(8U, sizeof (uint64_t)); Hacl_Streaming_MD_state_64 - s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; + s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; Hacl_Streaming_MD_state_64 *p = (Hacl_Streaming_MD_state_64 *)KRML_HOST_MALLOC(sizeof (Hacl_Streaming_MD_state_64)); p[0U] = s; - Hacl_SHA2_Scalar32_sha512_init(block_state); + Hacl_Hash_SHA2_sha512_init(block_state); return p; } @@ -937,16 +874,16 @@ The state is to be freed by calling `free_512`. Cloning the state this way is useful, for instance, if your control-flow diverges and you need to feed more (different) data into the hash in each branch. */ -Hacl_Streaming_MD_state_64 *Hacl_Streaming_SHA2_copy_512(Hacl_Streaming_MD_state_64 *s0) +Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_copy_512(Hacl_Streaming_MD_state_64 *state) { - Hacl_Streaming_MD_state_64 scrut = *s0; + Hacl_Streaming_MD_state_64 scrut = *state; uint64_t *block_state0 = scrut.block_state; uint8_t *buf0 = scrut.buf; uint64_t total_len0 = scrut.total_len; - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)128U, sizeof (uint8_t)); - memcpy(buf, buf0, (uint32_t)128U * sizeof (uint8_t)); - uint64_t *block_state = (uint64_t *)KRML_HOST_CALLOC((uint32_t)8U, sizeof (uint64_t)); - memcpy(block_state, block_state0, (uint32_t)8U * sizeof (uint64_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(128U, sizeof (uint8_t)); + memcpy(buf, buf0, 128U * sizeof (uint8_t)); + uint64_t *block_state = (uint64_t *)KRML_HOST_CALLOC(8U, sizeof (uint64_t)); + memcpy(block_state, block_state0, 8U * sizeof (uint64_t)); Hacl_Streaming_MD_state_64 s = { .block_state = block_state, .buf = buf, .total_len = total_len0 }; Hacl_Streaming_MD_state_64 @@ -955,54 +892,54 @@ Hacl_Streaming_MD_state_64 *Hacl_Streaming_SHA2_copy_512(Hacl_Streaming_MD_state return p; } -void Hacl_Streaming_SHA2_init_512(Hacl_Streaming_MD_state_64 *s) +void Hacl_Hash_SHA2_reset_512(Hacl_Streaming_MD_state_64 *state) { - Hacl_Streaming_MD_state_64 scrut = *s; + Hacl_Streaming_MD_state_64 scrut = *state; uint8_t *buf = scrut.buf; uint64_t *block_state = scrut.block_state; - Hacl_SHA2_Scalar32_sha512_init(block_state); + Hacl_Hash_SHA2_sha512_init(block_state); Hacl_Streaming_MD_state_64 - tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; - s[0U] = tmp; + tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; + state[0U] = tmp; } static inline Hacl_Streaming_Types_error_code -update_384_512(Hacl_Streaming_MD_state_64 *p, uint8_t *data, uint32_t len) +update_384_512(Hacl_Streaming_MD_state_64 *state, uint8_t *chunk, uint32_t chunk_len) { - Hacl_Streaming_MD_state_64 s = *p; + Hacl_Streaming_MD_state_64 s = *state; uint64_t total_len = s.total_len; - if ((uint64_t)len > (uint64_t)18446744073709551615U - total_len) + if ((uint64_t)chunk_len > 18446744073709551615ULL - total_len) { return Hacl_Streaming_Types_MaximumLengthExceeded; } uint32_t sz; - if (total_len % (uint64_t)(uint32_t)128U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)128U == 0ULL && total_len > 0ULL) { - sz = (uint32_t)128U; + sz = 128U; } else { - sz = (uint32_t)(total_len % (uint64_t)(uint32_t)128U); + sz = (uint32_t)(total_len % (uint64_t)128U); } - if (len <= (uint32_t)128U - sz) + if (chunk_len <= 128U - sz) { - Hacl_Streaming_MD_state_64 s1 = *p; + Hacl_Streaming_MD_state_64 s1 = *state; uint64_t *block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)128U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)128U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)128U; + sz1 = 128U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)128U); + sz1 = (uint32_t)(total_len1 % (uint64_t)128U); } uint8_t *buf2 = buf + sz1; - memcpy(buf2, data, len * sizeof (uint8_t)); - uint64_t total_len2 = total_len1 + (uint64_t)len; - *p + memcpy(buf2, chunk, chunk_len * sizeof (uint8_t)); + uint64_t total_len2 = total_len1 + (uint64_t)chunk_len; + *state = ( (Hacl_Streaming_MD_state_64){ @@ -1012,76 +949,74 @@ update_384_512(Hacl_Streaming_MD_state_64 *p, uint8_t *data, uint32_t len) } ); } - else if (sz == (uint32_t)0U) + else if (sz == 0U) { - Hacl_Streaming_MD_state_64 s1 = *p; + Hacl_Streaming_MD_state_64 s1 = *state; uint64_t *block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)128U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)128U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)128U; + sz1 = 128U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)128U); + sz1 = (uint32_t)(total_len1 % (uint64_t)128U); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { - Hacl_SHA2_Scalar32_sha512_update_nblocks((uint32_t)128U, buf, block_state1); + Hacl_Hash_SHA2_sha512_update_nblocks(128U, buf, block_state1); } uint32_t ite; - if ((uint64_t)len % (uint64_t)(uint32_t)128U == (uint64_t)0U && (uint64_t)len > (uint64_t)0U) + if ((uint64_t)chunk_len % (uint64_t)128U == 0ULL && (uint64_t)chunk_len > 0ULL) { - ite = (uint32_t)128U; + ite = 128U; } else { - ite = (uint32_t)((uint64_t)len % (uint64_t)(uint32_t)128U); + ite = (uint32_t)((uint64_t)chunk_len % (uint64_t)128U); } - uint32_t n_blocks = (len - ite) / (uint32_t)128U; - uint32_t data1_len = n_blocks * (uint32_t)128U; - uint32_t data2_len = len - data1_len; - uint8_t *data1 = data; - uint8_t *data2 = data + data1_len; - Hacl_SHA2_Scalar32_sha512_update_nblocks(data1_len / (uint32_t)128U * (uint32_t)128U, - data1, - block_state1); + uint32_t n_blocks = (chunk_len - ite) / 128U; + uint32_t data1_len = n_blocks * 128U; + uint32_t data2_len = chunk_len - data1_len; + uint8_t *data1 = chunk; + uint8_t *data2 = chunk + data1_len; + Hacl_Hash_SHA2_sha512_update_nblocks(data1_len / 128U * 128U, data1, block_state1); uint8_t *dst = buf; memcpy(dst, data2, data2_len * sizeof (uint8_t)); - *p + *state = ( (Hacl_Streaming_MD_state_64){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)len + .total_len = total_len1 + (uint64_t)chunk_len } ); } else { - uint32_t diff = (uint32_t)128U - sz; - uint8_t *data1 = data; - uint8_t *data2 = data + diff; - Hacl_Streaming_MD_state_64 s1 = *p; + uint32_t diff = 128U - sz; + uint8_t *chunk1 = chunk; + uint8_t *chunk2 = chunk + diff; + Hacl_Streaming_MD_state_64 s1 = *state; uint64_t *block_state10 = s1.block_state; uint8_t *buf0 = s1.buf; uint64_t total_len10 = s1.total_len; uint32_t sz10; - if (total_len10 % (uint64_t)(uint32_t)128U == (uint64_t)0U && total_len10 > (uint64_t)0U) + if (total_len10 % (uint64_t)128U == 0ULL && total_len10 > 0ULL) { - sz10 = (uint32_t)128U; + sz10 = 128U; } else { - sz10 = (uint32_t)(total_len10 % (uint64_t)(uint32_t)128U); + sz10 = (uint32_t)(total_len10 % (uint64_t)128U); } uint8_t *buf2 = buf0 + sz10; - memcpy(buf2, data1, diff * sizeof (uint8_t)); + memcpy(buf2, chunk1, diff * sizeof (uint8_t)); uint64_t total_len2 = total_len10 + (uint64_t)diff; - *p + *state = ( (Hacl_Streaming_MD_state_64){ @@ -1090,55 +1025,48 @@ update_384_512(Hacl_Streaming_MD_state_64 *p, uint8_t *data, uint32_t len) .total_len = total_len2 } ); - Hacl_Streaming_MD_state_64 s10 = *p; + Hacl_Streaming_MD_state_64 s10 = *state; uint64_t *block_state1 = s10.block_state; uint8_t *buf = s10.buf; uint64_t total_len1 = s10.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)(uint32_t)128U == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)128U == 0ULL && total_len1 > 0ULL) { - sz1 = (uint32_t)128U; + sz1 = 128U; } else { - sz1 = (uint32_t)(total_len1 % (uint64_t)(uint32_t)128U); + sz1 = (uint32_t)(total_len1 % (uint64_t)128U); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { - Hacl_SHA2_Scalar32_sha512_update_nblocks((uint32_t)128U, buf, block_state1); + Hacl_Hash_SHA2_sha512_update_nblocks(128U, buf, block_state1); } uint32_t ite; if - ( - (uint64_t)(len - diff) - % (uint64_t)(uint32_t)128U - == (uint64_t)0U - && (uint64_t)(len - diff) > (uint64_t)0U - ) + ((uint64_t)(chunk_len - diff) % (uint64_t)128U == 0ULL && (uint64_t)(chunk_len - diff) > 0ULL) { - ite = (uint32_t)128U; + ite = 128U; } else { - ite = (uint32_t)((uint64_t)(len - diff) % (uint64_t)(uint32_t)128U); + ite = (uint32_t)((uint64_t)(chunk_len - diff) % (uint64_t)128U); } - uint32_t n_blocks = (len - diff - ite) / (uint32_t)128U; - uint32_t data1_len = n_blocks * (uint32_t)128U; - uint32_t data2_len = len - diff - data1_len; - uint8_t *data11 = data2; - uint8_t *data21 = data2 + data1_len; - Hacl_SHA2_Scalar32_sha512_update_nblocks(data1_len / (uint32_t)128U * (uint32_t)128U, - data11, - block_state1); + uint32_t n_blocks = (chunk_len - diff - ite) / 128U; + uint32_t data1_len = n_blocks * 128U; + uint32_t data2_len = chunk_len - diff - data1_len; + uint8_t *data1 = chunk2; + uint8_t *data2 = chunk2 + data1_len; + Hacl_Hash_SHA2_sha512_update_nblocks(data1_len / 128U * 128U, data1, block_state1); uint8_t *dst = buf; - memcpy(dst, data21, data2_len * sizeof (uint8_t)); - *p + memcpy(dst, data2, data2_len * sizeof (uint8_t)); + *state = ( (Hacl_Streaming_MD_state_64){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)(len - diff) + .total_len = total_len1 + (uint64_t)(chunk_len - diff) } ); } @@ -1148,198 +1076,198 @@ update_384_512(Hacl_Streaming_MD_state_64 *p, uint8_t *data, uint32_t len) /** Feed an arbitrary amount of data into the hash. This function returns 0 for success, or 1 if the combined length of all of the data passed to `update_512` -(since the last call to `init_512`) exceeds 2^125-1 bytes. +(since the last call to `reset_512`) exceeds 2^125-1 bytes. This function is identical to the update function for SHA2_384. */ Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA2_update_512( - Hacl_Streaming_MD_state_64 *p, +Hacl_Hash_SHA2_update_512( + Hacl_Streaming_MD_state_64 *state, uint8_t *input, uint32_t input_len ) { - return update_384_512(p, input, input_len); + return update_384_512(state, input, input_len); } /** -Write the resulting hash into `dst`, an array of 64 bytes. The state remains -valid after a call to `finish_512`, meaning the user may feed more data into -the hash via `update_512`. (The finish_512 function operates on an internal copy of +Write the resulting hash into `output`, an array of 64 bytes. The state remains +valid after a call to `digest_512`, meaning the user may feed more data into +the hash via `update_512`. (The digest_512 function operates on an internal copy of the state and therefore does not invalidate the client-held state `p`.) */ -void Hacl_Streaming_SHA2_finish_512(Hacl_Streaming_MD_state_64 *p, uint8_t *dst) +void Hacl_Hash_SHA2_digest_512(Hacl_Streaming_MD_state_64 *state, uint8_t *output) { - Hacl_Streaming_MD_state_64 scrut = *p; + Hacl_Streaming_MD_state_64 scrut = *state; uint64_t *block_state = scrut.block_state; uint8_t *buf_ = scrut.buf; uint64_t total_len = scrut.total_len; uint32_t r; - if (total_len % (uint64_t)(uint32_t)128U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)128U == 0ULL && total_len > 0ULL) { - r = (uint32_t)128U; + r = 128U; } else { - r = (uint32_t)(total_len % (uint64_t)(uint32_t)128U); + r = (uint32_t)(total_len % (uint64_t)128U); } uint8_t *buf_1 = buf_; uint64_t tmp_block_state[8U] = { 0U }; - memcpy(tmp_block_state, block_state, (uint32_t)8U * sizeof (uint64_t)); + memcpy(tmp_block_state, block_state, 8U * sizeof (uint64_t)); uint32_t ite; - if (r % (uint32_t)128U == (uint32_t)0U && r > (uint32_t)0U) + if (r % 128U == 0U && r > 0U) { - ite = (uint32_t)128U; + ite = 128U; } else { - ite = r % (uint32_t)128U; + ite = r % 128U; } uint8_t *buf_last = buf_1 + r - ite; uint8_t *buf_multi = buf_1; - Hacl_SHA2_Scalar32_sha512_update_nblocks((uint32_t)0U, buf_multi, tmp_block_state); + Hacl_Hash_SHA2_sha512_update_nblocks(0U, buf_multi, tmp_block_state); uint64_t prev_len_last = total_len - (uint64_t)r; - Hacl_SHA2_Scalar32_sha512_update_last(FStar_UInt128_add(FStar_UInt128_uint64_to_uint128(prev_len_last), + Hacl_Hash_SHA2_sha512_update_last(FStar_UInt128_add(FStar_UInt128_uint64_to_uint128(prev_len_last), FStar_UInt128_uint64_to_uint128((uint64_t)r)), r, buf_last, tmp_block_state); - Hacl_SHA2_Scalar32_sha512_finish(tmp_block_state, dst); + Hacl_Hash_SHA2_sha512_finish(tmp_block_state, output); } /** -Free a state allocated with `create_in_512`. +Free a state allocated with `malloc_512`. This function is identical to the free function for SHA2_384. */ -void Hacl_Streaming_SHA2_free_512(Hacl_Streaming_MD_state_64 *s) +void Hacl_Hash_SHA2_free_512(Hacl_Streaming_MD_state_64 *state) { - Hacl_Streaming_MD_state_64 scrut = *s; + Hacl_Streaming_MD_state_64 scrut = *state; uint8_t *buf = scrut.buf; uint64_t *block_state = scrut.block_state; KRML_HOST_FREE(block_state); KRML_HOST_FREE(buf); - KRML_HOST_FREE(s); + KRML_HOST_FREE(state); } /** -Hash `input`, of len `input_len`, into `dst`, an array of 64 bytes. +Hash `input`, of len `input_len`, into `output`, an array of 64 bytes. */ -void Hacl_Streaming_SHA2_hash_512(uint8_t *input, uint32_t input_len, uint8_t *dst) +void Hacl_Hash_SHA2_hash_512(uint8_t *output, uint8_t *input, uint32_t input_len) { uint8_t *ib = input; - uint8_t *rb = dst; + uint8_t *rb = output; uint64_t st[8U] = { 0U }; - Hacl_SHA2_Scalar32_sha512_init(st); - uint32_t rem = input_len % (uint32_t)128U; + Hacl_Hash_SHA2_sha512_init(st); + uint32_t rem = input_len % 128U; FStar_UInt128_uint128 len_ = FStar_UInt128_uint64_to_uint128((uint64_t)input_len); - Hacl_SHA2_Scalar32_sha512_update_nblocks(input_len, ib, st); - uint32_t rem1 = input_len % (uint32_t)128U; + Hacl_Hash_SHA2_sha512_update_nblocks(input_len, ib, st); + uint32_t rem1 = input_len % 128U; uint8_t *b0 = ib; uint8_t *lb = b0 + input_len - rem1; - Hacl_SHA2_Scalar32_sha512_update_last(len_, rem, lb, st); - Hacl_SHA2_Scalar32_sha512_finish(st, rb); + Hacl_Hash_SHA2_sha512_update_last(len_, rem, lb, st); + Hacl_Hash_SHA2_sha512_finish(st, rb); } -Hacl_Streaming_MD_state_64 *Hacl_Streaming_SHA2_create_in_384(void) +Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_malloc_384(void) { - uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC((uint32_t)128U, sizeof (uint8_t)); - uint64_t *block_state = (uint64_t *)KRML_HOST_CALLOC((uint32_t)8U, sizeof (uint64_t)); + uint8_t *buf = (uint8_t *)KRML_HOST_CALLOC(128U, sizeof (uint8_t)); + uint64_t *block_state = (uint64_t *)KRML_HOST_CALLOC(8U, sizeof (uint64_t)); Hacl_Streaming_MD_state_64 - s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; + s = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; Hacl_Streaming_MD_state_64 *p = (Hacl_Streaming_MD_state_64 *)KRML_HOST_MALLOC(sizeof (Hacl_Streaming_MD_state_64)); p[0U] = s; - Hacl_SHA2_Scalar32_sha384_init(block_state); + Hacl_Hash_SHA2_sha384_init(block_state); return p; } -void Hacl_Streaming_SHA2_init_384(Hacl_Streaming_MD_state_64 *s) +void Hacl_Hash_SHA2_reset_384(Hacl_Streaming_MD_state_64 *state) { - Hacl_Streaming_MD_state_64 scrut = *s; + Hacl_Streaming_MD_state_64 scrut = *state; uint8_t *buf = scrut.buf; uint64_t *block_state = scrut.block_state; - Hacl_SHA2_Scalar32_sha384_init(block_state); + Hacl_Hash_SHA2_sha384_init(block_state); Hacl_Streaming_MD_state_64 - tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; - s[0U] = tmp; + tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; + state[0U] = tmp; } Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA2_update_384( - Hacl_Streaming_MD_state_64 *p, +Hacl_Hash_SHA2_update_384( + Hacl_Streaming_MD_state_64 *state, uint8_t *input, uint32_t input_len ) { - return update_384_512(p, input, input_len); + return update_384_512(state, input, input_len); } /** -Write the resulting hash into `dst`, an array of 48 bytes. The state remains -valid after a call to `finish_384`, meaning the user may feed more data into +Write the resulting hash into `output`, an array of 48 bytes. The state remains +valid after a call to `digest_384`, meaning the user may feed more data into the hash via `update_384`. */ -void Hacl_Streaming_SHA2_finish_384(Hacl_Streaming_MD_state_64 *p, uint8_t *dst) +void Hacl_Hash_SHA2_digest_384(Hacl_Streaming_MD_state_64 *state, uint8_t *output) { - Hacl_Streaming_MD_state_64 scrut = *p; + Hacl_Streaming_MD_state_64 scrut = *state; uint64_t *block_state = scrut.block_state; uint8_t *buf_ = scrut.buf; uint64_t total_len = scrut.total_len; uint32_t r; - if (total_len % (uint64_t)(uint32_t)128U == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)128U == 0ULL && total_len > 0ULL) { - r = (uint32_t)128U; + r = 128U; } else { - r = (uint32_t)(total_len % (uint64_t)(uint32_t)128U); + r = (uint32_t)(total_len % (uint64_t)128U); } uint8_t *buf_1 = buf_; uint64_t tmp_block_state[8U] = { 0U }; - memcpy(tmp_block_state, block_state, (uint32_t)8U * sizeof (uint64_t)); + memcpy(tmp_block_state, block_state, 8U * sizeof (uint64_t)); uint32_t ite; - if (r % (uint32_t)128U == (uint32_t)0U && r > (uint32_t)0U) + if (r % 128U == 0U && r > 0U) { - ite = (uint32_t)128U; + ite = 128U; } else { - ite = r % (uint32_t)128U; + ite = r % 128U; } uint8_t *buf_last = buf_1 + r - ite; uint8_t *buf_multi = buf_1; - Hacl_SHA2_Scalar32_sha384_update_nblocks((uint32_t)0U, buf_multi, tmp_block_state); + Hacl_Hash_SHA2_sha384_update_nblocks(0U, buf_multi, tmp_block_state); uint64_t prev_len_last = total_len - (uint64_t)r; - Hacl_SHA2_Scalar32_sha384_update_last(FStar_UInt128_add(FStar_UInt128_uint64_to_uint128(prev_len_last), + Hacl_Hash_SHA2_sha384_update_last(FStar_UInt128_add(FStar_UInt128_uint64_to_uint128(prev_len_last), FStar_UInt128_uint64_to_uint128((uint64_t)r)), r, buf_last, tmp_block_state); - Hacl_SHA2_Scalar32_sha384_finish(tmp_block_state, dst); + Hacl_Hash_SHA2_sha384_finish(tmp_block_state, output); } -void Hacl_Streaming_SHA2_free_384(Hacl_Streaming_MD_state_64 *p) +void Hacl_Hash_SHA2_free_384(Hacl_Streaming_MD_state_64 *state) { - Hacl_Streaming_SHA2_free_512(p); + Hacl_Hash_SHA2_free_512(state); } /** -Hash `input`, of len `input_len`, into `dst`, an array of 48 bytes. +Hash `input`, of len `input_len`, into `output`, an array of 48 bytes. */ -void Hacl_Streaming_SHA2_hash_384(uint8_t *input, uint32_t input_len, uint8_t *dst) +void Hacl_Hash_SHA2_hash_384(uint8_t *output, uint8_t *input, uint32_t input_len) { uint8_t *ib = input; - uint8_t *rb = dst; + uint8_t *rb = output; uint64_t st[8U] = { 0U }; - Hacl_SHA2_Scalar32_sha384_init(st); - uint32_t rem = input_len % (uint32_t)128U; + Hacl_Hash_SHA2_sha384_init(st); + uint32_t rem = input_len % 128U; FStar_UInt128_uint128 len_ = FStar_UInt128_uint64_to_uint128((uint64_t)input_len); - Hacl_SHA2_Scalar32_sha384_update_nblocks(input_len, ib, st); - uint32_t rem1 = input_len % (uint32_t)128U; + Hacl_Hash_SHA2_sha384_update_nblocks(input_len, ib, st); + uint32_t rem1 = input_len % 128U; uint8_t *b0 = ib; uint8_t *lb = b0 + input_len - rem1; - Hacl_SHA2_Scalar32_sha384_update_last(len_, rem, lb, st); - Hacl_SHA2_Scalar32_sha384_finish(st, rb); + Hacl_Hash_SHA2_sha384_update_last(len_, rem, lb, st); + Hacl_Hash_SHA2_sha384_finish(st, rb); } diff --git a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA2.h b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA2.h index a0e731094d..d8204b504b 100644 --- a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA2.h +++ b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA2.h @@ -39,19 +39,19 @@ extern "C" { #include "Hacl_Streaming_Types.h" -typedef Hacl_Streaming_MD_state_32 Hacl_Streaming_SHA2_state_sha2_224; +typedef Hacl_Streaming_MD_state_32 Hacl_Hash_SHA2_state_t_224; -typedef Hacl_Streaming_MD_state_32 Hacl_Streaming_SHA2_state_sha2_256; +typedef Hacl_Streaming_MD_state_32 Hacl_Hash_SHA2_state_t_256; -typedef Hacl_Streaming_MD_state_64 Hacl_Streaming_SHA2_state_sha2_384; +typedef Hacl_Streaming_MD_state_64 Hacl_Hash_SHA2_state_t_384; -typedef Hacl_Streaming_MD_state_64 Hacl_Streaming_SHA2_state_sha2_512; +typedef Hacl_Streaming_MD_state_64 Hacl_Hash_SHA2_state_t_512; /** Allocate initial state for the SHA2_256 hash. The state is to be freed by calling `free_256`. */ -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA2_create_in_256(void); +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_malloc_256(void); /** Copies the state passed as argument into a newly allocated state (deep copy). @@ -59,73 +59,73 @@ The state is to be freed by calling `free_256`. Cloning the state this way is useful, for instance, if your control-flow diverges and you need to feed more (different) data into the hash in each branch. */ -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA2_copy_256(Hacl_Streaming_MD_state_32 *s0); +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_copy_256(Hacl_Streaming_MD_state_32 *state); /** Reset an existing state to the initial hash state with empty data. */ -void Hacl_Streaming_SHA2_init_256(Hacl_Streaming_MD_state_32 *s); +void Hacl_Hash_SHA2_reset_256(Hacl_Streaming_MD_state_32 *state); /** Feed an arbitrary amount of data into the hash. This function returns 0 for success, or 1 if the combined length of all of the data passed to `update_256` -(since the last call to `init_256`) exceeds 2^61-1 bytes. +(since the last call to `reset_256`) exceeds 2^61-1 bytes. This function is identical to the update function for SHA2_224. */ Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA2_update_256( - Hacl_Streaming_MD_state_32 *p, +Hacl_Hash_SHA2_update_256( + Hacl_Streaming_MD_state_32 *state, uint8_t *input, uint32_t input_len ); /** -Write the resulting hash into `dst`, an array of 32 bytes. The state remains -valid after a call to `finish_256`, meaning the user may feed more data into -the hash via `update_256`. (The finish_256 function operates on an internal copy of +Write the resulting hash into `output`, an array of 32 bytes. The state remains +valid after a call to `digest_256`, meaning the user may feed more data into +the hash via `update_256`. (The digest_256 function operates on an internal copy of the state and therefore does not invalidate the client-held state `p`.) */ -void Hacl_Streaming_SHA2_finish_256(Hacl_Streaming_MD_state_32 *p, uint8_t *dst); +void Hacl_Hash_SHA2_digest_256(Hacl_Streaming_MD_state_32 *state, uint8_t *output); /** -Free a state allocated with `create_in_256`. +Free a state allocated with `malloc_256`. This function is identical to the free function for SHA2_224. */ -void Hacl_Streaming_SHA2_free_256(Hacl_Streaming_MD_state_32 *s); +void Hacl_Hash_SHA2_free_256(Hacl_Streaming_MD_state_32 *state); /** -Hash `input`, of len `input_len`, into `dst`, an array of 32 bytes. +Hash `input`, of len `input_len`, into `output`, an array of 32 bytes. */ -void Hacl_Streaming_SHA2_hash_256(uint8_t *input, uint32_t input_len, uint8_t *dst); +void Hacl_Hash_SHA2_hash_256(uint8_t *output, uint8_t *input, uint32_t input_len); -Hacl_Streaming_MD_state_32 *Hacl_Streaming_SHA2_create_in_224(void); +Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_malloc_224(void); -void Hacl_Streaming_SHA2_init_224(Hacl_Streaming_MD_state_32 *s); +void Hacl_Hash_SHA2_reset_224(Hacl_Streaming_MD_state_32 *state); Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA2_update_224( - Hacl_Streaming_MD_state_32 *p, +Hacl_Hash_SHA2_update_224( + Hacl_Streaming_MD_state_32 *state, uint8_t *input, uint32_t input_len ); /** -Write the resulting hash into `dst`, an array of 28 bytes. The state remains -valid after a call to `finish_224`, meaning the user may feed more data into +Write the resulting hash into `output`, an array of 28 bytes. The state remains +valid after a call to `digest_224`, meaning the user may feed more data into the hash via `update_224`. */ -void Hacl_Streaming_SHA2_finish_224(Hacl_Streaming_MD_state_32 *p, uint8_t *dst); +void Hacl_Hash_SHA2_digest_224(Hacl_Streaming_MD_state_32 *state, uint8_t *output); -void Hacl_Streaming_SHA2_free_224(Hacl_Streaming_MD_state_32 *p); +void Hacl_Hash_SHA2_free_224(Hacl_Streaming_MD_state_32 *state); /** -Hash `input`, of len `input_len`, into `dst`, an array of 28 bytes. +Hash `input`, of len `input_len`, into `output`, an array of 28 bytes. */ -void Hacl_Streaming_SHA2_hash_224(uint8_t *input, uint32_t input_len, uint8_t *dst); +void Hacl_Hash_SHA2_hash_224(uint8_t *output, uint8_t *input, uint32_t input_len); -Hacl_Streaming_MD_state_64 *Hacl_Streaming_SHA2_create_in_512(void); +Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_malloc_512(void); /** Copies the state passed as argument into a newly allocated state (deep copy). @@ -133,68 +133,68 @@ The state is to be freed by calling `free_512`. Cloning the state this way is useful, for instance, if your control-flow diverges and you need to feed more (different) data into the hash in each branch. */ -Hacl_Streaming_MD_state_64 *Hacl_Streaming_SHA2_copy_512(Hacl_Streaming_MD_state_64 *s0); +Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_copy_512(Hacl_Streaming_MD_state_64 *state); -void Hacl_Streaming_SHA2_init_512(Hacl_Streaming_MD_state_64 *s); +void Hacl_Hash_SHA2_reset_512(Hacl_Streaming_MD_state_64 *state); /** Feed an arbitrary amount of data into the hash. This function returns 0 for success, or 1 if the combined length of all of the data passed to `update_512` -(since the last call to `init_512`) exceeds 2^125-1 bytes. +(since the last call to `reset_512`) exceeds 2^125-1 bytes. This function is identical to the update function for SHA2_384. */ Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA2_update_512( - Hacl_Streaming_MD_state_64 *p, +Hacl_Hash_SHA2_update_512( + Hacl_Streaming_MD_state_64 *state, uint8_t *input, uint32_t input_len ); /** -Write the resulting hash into `dst`, an array of 64 bytes. The state remains -valid after a call to `finish_512`, meaning the user may feed more data into -the hash via `update_512`. (The finish_512 function operates on an internal copy of +Write the resulting hash into `output`, an array of 64 bytes. The state remains +valid after a call to `digest_512`, meaning the user may feed more data into +the hash via `update_512`. (The digest_512 function operates on an internal copy of the state and therefore does not invalidate the client-held state `p`.) */ -void Hacl_Streaming_SHA2_finish_512(Hacl_Streaming_MD_state_64 *p, uint8_t *dst); +void Hacl_Hash_SHA2_digest_512(Hacl_Streaming_MD_state_64 *state, uint8_t *output); /** -Free a state allocated with `create_in_512`. +Free a state allocated with `malloc_512`. This function is identical to the free function for SHA2_384. */ -void Hacl_Streaming_SHA2_free_512(Hacl_Streaming_MD_state_64 *s); +void Hacl_Hash_SHA2_free_512(Hacl_Streaming_MD_state_64 *state); /** -Hash `input`, of len `input_len`, into `dst`, an array of 64 bytes. +Hash `input`, of len `input_len`, into `output`, an array of 64 bytes. */ -void Hacl_Streaming_SHA2_hash_512(uint8_t *input, uint32_t input_len, uint8_t *dst); +void Hacl_Hash_SHA2_hash_512(uint8_t *output, uint8_t *input, uint32_t input_len); -Hacl_Streaming_MD_state_64 *Hacl_Streaming_SHA2_create_in_384(void); +Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_malloc_384(void); -void Hacl_Streaming_SHA2_init_384(Hacl_Streaming_MD_state_64 *s); +void Hacl_Hash_SHA2_reset_384(Hacl_Streaming_MD_state_64 *state); Hacl_Streaming_Types_error_code -Hacl_Streaming_SHA2_update_384( - Hacl_Streaming_MD_state_64 *p, +Hacl_Hash_SHA2_update_384( + Hacl_Streaming_MD_state_64 *state, uint8_t *input, uint32_t input_len ); /** -Write the resulting hash into `dst`, an array of 48 bytes. The state remains -valid after a call to `finish_384`, meaning the user may feed more data into +Write the resulting hash into `output`, an array of 48 bytes. The state remains +valid after a call to `digest_384`, meaning the user may feed more data into the hash via `update_384`. */ -void Hacl_Streaming_SHA2_finish_384(Hacl_Streaming_MD_state_64 *p, uint8_t *dst); +void Hacl_Hash_SHA2_digest_384(Hacl_Streaming_MD_state_64 *state, uint8_t *output); -void Hacl_Streaming_SHA2_free_384(Hacl_Streaming_MD_state_64 *p); +void Hacl_Hash_SHA2_free_384(Hacl_Streaming_MD_state_64 *state); /** -Hash `input`, of len `input_len`, into `dst`, an array of 48 bytes. +Hash `input`, of len `input_len`, into `output`, an array of 48 bytes. */ -void Hacl_Streaming_SHA2_hash_384(uint8_t *input, uint32_t input_len, uint8_t *dst); +void Hacl_Hash_SHA2_hash_384(uint8_t *output, uint8_t *input, uint32_t input_len); #if defined(__cplusplus) } diff --git a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA3.c b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA3.c index b3febdfeb2..4f502866fe 100644 --- a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA3.c +++ b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA3.c @@ -31,27 +31,27 @@ static uint32_t block_len(Spec_Hash_Definitions_hash_alg a) { case Spec_Hash_Definitions_SHA3_224: { - return (uint32_t)144U; + return 144U; } case Spec_Hash_Definitions_SHA3_256: { - return (uint32_t)136U; + return 136U; } case Spec_Hash_Definitions_SHA3_384: { - return (uint32_t)104U; + return 104U; } case Spec_Hash_Definitions_SHA3_512: { - return (uint32_t)72U; + return 72U; } case Spec_Hash_Definitions_Shake128: { - return (uint32_t)168U; + return 168U; } case Spec_Hash_Definitions_Shake256: { - return (uint32_t)136U; + return 136U; } default: { @@ -67,19 +67,19 @@ static uint32_t hash_len(Spec_Hash_Definitions_hash_alg a) { case Spec_Hash_Definitions_SHA3_224: { - return (uint32_t)28U; + return 28U; } case Spec_Hash_Definitions_SHA3_256: { - return (uint32_t)32U; + return 32U; } case Spec_Hash_Definitions_SHA3_384: { - return (uint32_t)48U; + return 48U; } case Spec_Hash_Definitions_SHA3_512: { - return (uint32_t)64U; + return 64U; } default: { @@ -97,10 +97,10 @@ Hacl_Hash_SHA3_update_multi_sha3( uint32_t n_blocks ) { - for (uint32_t i = (uint32_t)0U; i < n_blocks; i++) + for (uint32_t i = 0U; i < n_blocks; i++) { uint8_t *block = blocks + i * block_len(a); - Hacl_Impl_SHA3_absorb_inner(block_len(a), block, s); + Hacl_Hash_SHA3_absorb_inner(block_len(a), block, s); } } @@ -115,139 +115,139 @@ Hacl_Hash_SHA3_update_last_sha3( uint8_t suffix; if (a == Spec_Hash_Definitions_Shake128 || a == Spec_Hash_Definitions_Shake256) { - suffix = (uint8_t)0x1fU; + suffix = 0x1fU; } else { - suffix = (uint8_t)0x06U; + suffix = 0x06U; } uint32_t len = block_len(a); if (input_len == len) { - Hacl_Impl_SHA3_absorb_inner(len, input, s); - uint8_t *uu____0 = input + input_len; + Hacl_Hash_SHA3_absorb_inner(len, input, s); uint8_t lastBlock_[200U] = { 0U }; uint8_t *lastBlock = lastBlock_; - memcpy(lastBlock, uu____0, (uint32_t)0U * sizeof (uint8_t)); + memcpy(lastBlock, input + input_len, 0U * sizeof (uint8_t)); lastBlock[0U] = suffix; - Hacl_Impl_SHA3_loadState(len, lastBlock, s); - if (!((suffix & (uint8_t)0x80U) == (uint8_t)0U) && (uint32_t)0U == len - (uint32_t)1U) + Hacl_Hash_SHA3_loadState(len, lastBlock, s); + if (!(((uint32_t)suffix & 0x80U) == 0U) && 0U == len - 1U) { - Hacl_Impl_SHA3_state_permute(s); + Hacl_Hash_SHA3_state_permute(s); } uint8_t nextBlock_[200U] = { 0U }; uint8_t *nextBlock = nextBlock_; - nextBlock[len - (uint32_t)1U] = (uint8_t)0x80U; - Hacl_Impl_SHA3_loadState(len, nextBlock, s); - Hacl_Impl_SHA3_state_permute(s); + nextBlock[len - 1U] = 0x80U; + Hacl_Hash_SHA3_loadState(len, nextBlock, s); + Hacl_Hash_SHA3_state_permute(s); return; } uint8_t lastBlock_[200U] = { 0U }; uint8_t *lastBlock = lastBlock_; memcpy(lastBlock, input, input_len * sizeof (uint8_t)); lastBlock[input_len] = suffix; - Hacl_Impl_SHA3_loadState(len, lastBlock, s); - if (!((suffix & (uint8_t)0x80U) == (uint8_t)0U) && input_len == len - (uint32_t)1U) + Hacl_Hash_SHA3_loadState(len, lastBlock, s); + if (!(((uint32_t)suffix & 0x80U) == 0U) && input_len == len - 1U) { - Hacl_Impl_SHA3_state_permute(s); + Hacl_Hash_SHA3_state_permute(s); } uint8_t nextBlock_[200U] = { 0U }; uint8_t *nextBlock = nextBlock_; - nextBlock[len - (uint32_t)1U] = (uint8_t)0x80U; - Hacl_Impl_SHA3_loadState(len, nextBlock, s); - Hacl_Impl_SHA3_state_permute(s); + nextBlock[len - 1U] = 0x80U; + Hacl_Hash_SHA3_loadState(len, nextBlock, s); + Hacl_Hash_SHA3_state_permute(s); } typedef struct hash_buf2_s { - Hacl_Streaming_Keccak_hash_buf fst; - Hacl_Streaming_Keccak_hash_buf snd; + Hacl_Hash_SHA3_hash_buf fst; + Hacl_Hash_SHA3_hash_buf snd; } hash_buf2; -Spec_Hash_Definitions_hash_alg Hacl_Streaming_Keccak_get_alg(Hacl_Streaming_Keccak_state *s) +Spec_Hash_Definitions_hash_alg Hacl_Hash_SHA3_get_alg(Hacl_Hash_SHA3_state_t *s) { - Hacl_Streaming_Keccak_state scrut = *s; - Hacl_Streaming_Keccak_hash_buf block_state = scrut.block_state; + Hacl_Hash_SHA3_hash_buf block_state = (*s).block_state; return block_state.fst; } -Hacl_Streaming_Keccak_state *Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_hash_alg a) +Hacl_Hash_SHA3_state_t *Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_hash_alg a) { KRML_CHECK_SIZE(sizeof (uint8_t), block_len(a)); uint8_t *buf0 = (uint8_t *)KRML_HOST_CALLOC(block_len(a), sizeof (uint8_t)); - uint64_t *buf = (uint64_t *)KRML_HOST_CALLOC((uint32_t)25U, sizeof (uint64_t)); - Hacl_Streaming_Keccak_hash_buf block_state = { .fst = a, .snd = buf }; - Hacl_Streaming_Keccak_state - s = { .block_state = block_state, .buf = buf0, .total_len = (uint64_t)(uint32_t)0U }; - Hacl_Streaming_Keccak_state - *p = (Hacl_Streaming_Keccak_state *)KRML_HOST_MALLOC(sizeof (Hacl_Streaming_Keccak_state)); + uint64_t *buf = (uint64_t *)KRML_HOST_CALLOC(25U, sizeof (uint64_t)); + Hacl_Hash_SHA3_hash_buf block_state = { .fst = a, .snd = buf }; + Hacl_Hash_SHA3_state_t + s = { .block_state = block_state, .buf = buf0, .total_len = (uint64_t)0U }; + Hacl_Hash_SHA3_state_t + *p = (Hacl_Hash_SHA3_state_t *)KRML_HOST_MALLOC(sizeof (Hacl_Hash_SHA3_state_t)); p[0U] = s; uint64_t *s1 = block_state.snd; - memset(s1, 0U, (uint32_t)25U * sizeof (uint64_t)); + memset(s1, 0U, 25U * sizeof (uint64_t)); return p; } -void Hacl_Streaming_Keccak_free(Hacl_Streaming_Keccak_state *s) +void Hacl_Hash_SHA3_free(Hacl_Hash_SHA3_state_t *state) { - Hacl_Streaming_Keccak_state scrut = *s; + Hacl_Hash_SHA3_state_t scrut = *state; uint8_t *buf = scrut.buf; - Hacl_Streaming_Keccak_hash_buf block_state = scrut.block_state; - uint64_t *s1 = block_state.snd; - KRML_HOST_FREE(s1); - KRML_HOST_FREE(buf); + Hacl_Hash_SHA3_hash_buf block_state = scrut.block_state; + uint64_t *s = block_state.snd; KRML_HOST_FREE(s); + KRML_HOST_FREE(buf); + KRML_HOST_FREE(state); } -Hacl_Streaming_Keccak_state *Hacl_Streaming_Keccak_copy(Hacl_Streaming_Keccak_state *s0) +Hacl_Hash_SHA3_state_t *Hacl_Hash_SHA3_copy(Hacl_Hash_SHA3_state_t *state) { - Hacl_Streaming_Keccak_state scrut0 = *s0; - Hacl_Streaming_Keccak_hash_buf block_state0 = scrut0.block_state; + Hacl_Hash_SHA3_state_t scrut0 = *state; + Hacl_Hash_SHA3_hash_buf block_state0 = scrut0.block_state; uint8_t *buf0 = scrut0.buf; uint64_t total_len0 = scrut0.total_len; Spec_Hash_Definitions_hash_alg i = block_state0.fst; KRML_CHECK_SIZE(sizeof (uint8_t), block_len(i)); uint8_t *buf1 = (uint8_t *)KRML_HOST_CALLOC(block_len(i), sizeof (uint8_t)); memcpy(buf1, buf0, block_len(i) * sizeof (uint8_t)); - uint64_t *buf = (uint64_t *)KRML_HOST_CALLOC((uint32_t)25U, sizeof (uint64_t)); - Hacl_Streaming_Keccak_hash_buf block_state = { .fst = i, .snd = buf }; + uint64_t *buf = (uint64_t *)KRML_HOST_CALLOC(25U, sizeof (uint64_t)); + Hacl_Hash_SHA3_hash_buf block_state = { .fst = i, .snd = buf }; hash_buf2 scrut = { .fst = block_state0, .snd = block_state }; uint64_t *s_dst = scrut.snd.snd; uint64_t *s_src = scrut.fst.snd; - memcpy(s_dst, s_src, (uint32_t)25U * sizeof (uint64_t)); - Hacl_Streaming_Keccak_state + memcpy(s_dst, s_src, 25U * sizeof (uint64_t)); + Hacl_Hash_SHA3_state_t s = { .block_state = block_state, .buf = buf1, .total_len = total_len0 }; - Hacl_Streaming_Keccak_state - *p = (Hacl_Streaming_Keccak_state *)KRML_HOST_MALLOC(sizeof (Hacl_Streaming_Keccak_state)); + Hacl_Hash_SHA3_state_t + *p = (Hacl_Hash_SHA3_state_t *)KRML_HOST_MALLOC(sizeof (Hacl_Hash_SHA3_state_t)); p[0U] = s; return p; } -void Hacl_Streaming_Keccak_reset(Hacl_Streaming_Keccak_state *s) +void Hacl_Hash_SHA3_reset(Hacl_Hash_SHA3_state_t *state) { - Hacl_Streaming_Keccak_state scrut = *s; + Hacl_Hash_SHA3_state_t scrut = *state; uint8_t *buf = scrut.buf; - Hacl_Streaming_Keccak_hash_buf block_state = scrut.block_state; - uint64_t *s1 = block_state.snd; - memset(s1, 0U, (uint32_t)25U * sizeof (uint64_t)); - Hacl_Streaming_Keccak_state - tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)(uint32_t)0U }; - s[0U] = tmp; + Hacl_Hash_SHA3_hash_buf block_state = scrut.block_state; + Spec_Hash_Definitions_hash_alg i = block_state.fst; + KRML_MAYBE_UNUSED_VAR(i); + uint64_t *s = block_state.snd; + memset(s, 0U, 25U * sizeof (uint64_t)); + Hacl_Hash_SHA3_state_t + tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U }; + state[0U] = tmp; } Hacl_Streaming_Types_error_code -Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint32_t len) +Hacl_Hash_SHA3_update(Hacl_Hash_SHA3_state_t *state, uint8_t *chunk, uint32_t chunk_len) { - Hacl_Streaming_Keccak_state s = *p; - Hacl_Streaming_Keccak_hash_buf block_state = s.block_state; + Hacl_Hash_SHA3_state_t s = *state; + Hacl_Hash_SHA3_hash_buf block_state = s.block_state; uint64_t total_len = s.total_len; Spec_Hash_Definitions_hash_alg i = block_state.fst; - if ((uint64_t)len > (uint64_t)0xFFFFFFFFFFFFFFFFU - total_len) + if ((uint64_t)chunk_len > 0xFFFFFFFFFFFFFFFFULL - total_len) { return Hacl_Streaming_Types_MaximumLengthExceeded; } uint32_t sz; - if (total_len % (uint64_t)block_len(i) == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)block_len(i) == 0ULL && total_len > 0ULL) { sz = block_len(i); } @@ -255,14 +255,14 @@ Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint { sz = (uint32_t)(total_len % (uint64_t)block_len(i)); } - if (len <= block_len(i) - sz) + if (chunk_len <= block_len(i) - sz) { - Hacl_Streaming_Keccak_state s1 = *p; - Hacl_Streaming_Keccak_hash_buf block_state1 = s1.block_state; + Hacl_Hash_SHA3_state_t s1 = *state; + Hacl_Hash_SHA3_hash_buf block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)block_len(i) == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)block_len(i) == 0ULL && total_len1 > 0ULL) { sz1 = block_len(i); } @@ -271,26 +271,20 @@ Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint sz1 = (uint32_t)(total_len1 % (uint64_t)block_len(i)); } uint8_t *buf2 = buf + sz1; - memcpy(buf2, data, len * sizeof (uint8_t)); - uint64_t total_len2 = total_len1 + (uint64_t)len; - *p + memcpy(buf2, chunk, chunk_len * sizeof (uint8_t)); + uint64_t total_len2 = total_len1 + (uint64_t)chunk_len; + *state = - ( - (Hacl_Streaming_Keccak_state){ - .block_state = block_state1, - .buf = buf, - .total_len = total_len2 - } - ); + ((Hacl_Hash_SHA3_state_t){ .block_state = block_state1, .buf = buf, .total_len = total_len2 }); } - else if (sz == (uint32_t)0U) + else if (sz == 0U) { - Hacl_Streaming_Keccak_state s1 = *p; - Hacl_Streaming_Keccak_hash_buf block_state1 = s1.block_state; + Hacl_Hash_SHA3_state_t s1 = *state; + Hacl_Hash_SHA3_hash_buf block_state1 = s1.block_state; uint8_t *buf = s1.buf; uint64_t total_len1 = s1.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)block_len(i) == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)block_len(i) == 0ULL && total_len1 > 0ULL) { sz1 = block_len(i); } @@ -298,52 +292,52 @@ Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint { sz1 = (uint32_t)(total_len1 % (uint64_t)block_len(i)); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { Spec_Hash_Definitions_hash_alg a1 = block_state1.fst; uint64_t *s2 = block_state1.snd; Hacl_Hash_SHA3_update_multi_sha3(a1, s2, buf, block_len(i) / block_len(a1)); } uint32_t ite; - if ((uint64_t)len % (uint64_t)block_len(i) == (uint64_t)0U && (uint64_t)len > (uint64_t)0U) + if ((uint64_t)chunk_len % (uint64_t)block_len(i) == 0ULL && (uint64_t)chunk_len > 0ULL) { ite = block_len(i); } else { - ite = (uint32_t)((uint64_t)len % (uint64_t)block_len(i)); + ite = (uint32_t)((uint64_t)chunk_len % (uint64_t)block_len(i)); } - uint32_t n_blocks = (len - ite) / block_len(i); + uint32_t n_blocks = (chunk_len - ite) / block_len(i); uint32_t data1_len = n_blocks * block_len(i); - uint32_t data2_len = len - data1_len; - uint8_t *data1 = data; - uint8_t *data2 = data + data1_len; + uint32_t data2_len = chunk_len - data1_len; + uint8_t *data1 = chunk; + uint8_t *data2 = chunk + data1_len; Spec_Hash_Definitions_hash_alg a1 = block_state1.fst; uint64_t *s2 = block_state1.snd; Hacl_Hash_SHA3_update_multi_sha3(a1, s2, data1, data1_len / block_len(a1)); uint8_t *dst = buf; memcpy(dst, data2, data2_len * sizeof (uint8_t)); - *p + *state = ( - (Hacl_Streaming_Keccak_state){ + (Hacl_Hash_SHA3_state_t){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)len + .total_len = total_len1 + (uint64_t)chunk_len } ); } else { uint32_t diff = block_len(i) - sz; - uint8_t *data1 = data; - uint8_t *data2 = data + diff; - Hacl_Streaming_Keccak_state s1 = *p; - Hacl_Streaming_Keccak_hash_buf block_state10 = s1.block_state; + uint8_t *chunk1 = chunk; + uint8_t *chunk2 = chunk + diff; + Hacl_Hash_SHA3_state_t s1 = *state; + Hacl_Hash_SHA3_hash_buf block_state10 = s1.block_state; uint8_t *buf0 = s1.buf; uint64_t total_len10 = s1.total_len; uint32_t sz10; - if (total_len10 % (uint64_t)block_len(i) == (uint64_t)0U && total_len10 > (uint64_t)0U) + if (total_len10 % (uint64_t)block_len(i) == 0ULL && total_len10 > 0ULL) { sz10 = block_len(i); } @@ -352,23 +346,23 @@ Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint sz10 = (uint32_t)(total_len10 % (uint64_t)block_len(i)); } uint8_t *buf2 = buf0 + sz10; - memcpy(buf2, data1, diff * sizeof (uint8_t)); + memcpy(buf2, chunk1, diff * sizeof (uint8_t)); uint64_t total_len2 = total_len10 + (uint64_t)diff; - *p + *state = ( - (Hacl_Streaming_Keccak_state){ + (Hacl_Hash_SHA3_state_t){ .block_state = block_state10, .buf = buf0, .total_len = total_len2 } ); - Hacl_Streaming_Keccak_state s10 = *p; - Hacl_Streaming_Keccak_hash_buf block_state1 = s10.block_state; + Hacl_Hash_SHA3_state_t s10 = *state; + Hacl_Hash_SHA3_hash_buf block_state1 = s10.block_state; uint8_t *buf = s10.buf; uint64_t total_len1 = s10.total_len; uint32_t sz1; - if (total_len1 % (uint64_t)block_len(i) == (uint64_t)0U && total_len1 > (uint64_t)0U) + if (total_len1 % (uint64_t)block_len(i) == 0ULL && total_len1 > 0ULL) { sz1 = block_len(i); } @@ -376,7 +370,7 @@ Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint { sz1 = (uint32_t)(total_len1 % (uint64_t)block_len(i)); } - if (!(sz1 == (uint32_t)0U)) + if (!(sz1 == 0U)) { Spec_Hash_Definitions_hash_alg a1 = block_state1.fst; uint64_t *s2 = block_state1.snd; @@ -385,35 +379,35 @@ Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint uint32_t ite; if ( - (uint64_t)(len - diff) + (uint64_t)(chunk_len - diff) % (uint64_t)block_len(i) - == (uint64_t)0U - && (uint64_t)(len - diff) > (uint64_t)0U + == 0ULL + && (uint64_t)(chunk_len - diff) > 0ULL ) { ite = block_len(i); } else { - ite = (uint32_t)((uint64_t)(len - diff) % (uint64_t)block_len(i)); + ite = (uint32_t)((uint64_t)(chunk_len - diff) % (uint64_t)block_len(i)); } - uint32_t n_blocks = (len - diff - ite) / block_len(i); + uint32_t n_blocks = (chunk_len - diff - ite) / block_len(i); uint32_t data1_len = n_blocks * block_len(i); - uint32_t data2_len = len - diff - data1_len; - uint8_t *data11 = data2; - uint8_t *data21 = data2 + data1_len; + uint32_t data2_len = chunk_len - diff - data1_len; + uint8_t *data1 = chunk2; + uint8_t *data2 = chunk2 + data1_len; Spec_Hash_Definitions_hash_alg a1 = block_state1.fst; uint64_t *s2 = block_state1.snd; - Hacl_Hash_SHA3_update_multi_sha3(a1, s2, data11, data1_len / block_len(a1)); + Hacl_Hash_SHA3_update_multi_sha3(a1, s2, data1, data1_len / block_len(a1)); uint8_t *dst = buf; - memcpy(dst, data21, data2_len * sizeof (uint8_t)); - *p + memcpy(dst, data2, data2_len * sizeof (uint8_t)); + *state = ( - (Hacl_Streaming_Keccak_state){ + (Hacl_Hash_SHA3_state_t){ .block_state = block_state1, .buf = buf, - .total_len = total_len1 + (uint64_t)(len - diff) + .total_len = total_len1 + (uint64_t)(chunk_len - diff) } ); } @@ -421,19 +415,19 @@ Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint } static void -finish_( +digest_( Spec_Hash_Definitions_hash_alg a, - Hacl_Streaming_Keccak_state *p, - uint8_t *dst, + Hacl_Hash_SHA3_state_t *state, + uint8_t *output, uint32_t l ) { - Hacl_Streaming_Keccak_state scrut0 = *p; - Hacl_Streaming_Keccak_hash_buf block_state = scrut0.block_state; + Hacl_Hash_SHA3_state_t scrut0 = *state; + Hacl_Hash_SHA3_hash_buf block_state = scrut0.block_state; uint8_t *buf_ = scrut0.buf; uint64_t total_len = scrut0.total_len; uint32_t r; - if (total_len % (uint64_t)block_len(a) == (uint64_t)0U && total_len > (uint64_t)0U) + if (total_len % (uint64_t)block_len(a) == 0ULL && total_len > 0ULL) { r = block_len(a); } @@ -443,25 +437,25 @@ finish_( } uint8_t *buf_1 = buf_; uint64_t buf[25U] = { 0U }; - Hacl_Streaming_Keccak_hash_buf tmp_block_state = { .fst = a, .snd = buf }; + Hacl_Hash_SHA3_hash_buf tmp_block_state = { .fst = a, .snd = buf }; hash_buf2 scrut = { .fst = block_state, .snd = tmp_block_state }; uint64_t *s_dst = scrut.snd.snd; uint64_t *s_src = scrut.fst.snd; - memcpy(s_dst, s_src, (uint32_t)25U * sizeof (uint64_t)); - uint32_t ite0; - if (r % block_len(a) == (uint32_t)0U && r > (uint32_t)0U) + memcpy(s_dst, s_src, 25U * sizeof (uint64_t)); + uint32_t ite; + if (r % block_len(a) == 0U && r > 0U) { - ite0 = block_len(a); + ite = block_len(a); } else { - ite0 = r % block_len(a); + ite = r % block_len(a); } - uint8_t *buf_last = buf_1 + r - ite0; + uint8_t *buf_last = buf_1 + r - ite; uint8_t *buf_multi = buf_1; Spec_Hash_Definitions_hash_alg a1 = tmp_block_state.fst; uint64_t *s0 = tmp_block_state.snd; - Hacl_Hash_SHA3_update_multi_sha3(a1, s0, buf_multi, (uint32_t)0U / block_len(a1)); + Hacl_Hash_SHA3_update_multi_sha3(a1, s0, buf_multi, 0U / block_len(a1)); Spec_Hash_Definitions_hash_alg a10 = tmp_block_state.fst; uint64_t *s1 = tmp_block_state.snd; Hacl_Hash_SHA3_update_last_sha3(a10, s1, buf_last, r); @@ -469,267 +463,182 @@ finish_( uint64_t *s = tmp_block_state.snd; if (a11 == Spec_Hash_Definitions_Shake128 || a11 == Spec_Hash_Definitions_Shake256) { - uint32_t ite; - if (a11 == Spec_Hash_Definitions_Shake128 || a11 == Spec_Hash_Definitions_Shake256) - { - ite = l; - } - else - { - ite = hash_len(a11); - } - Hacl_Impl_SHA3_squeeze(s, block_len(a11), ite, dst); + Hacl_Hash_SHA3_squeeze0(s, block_len(a11), l, output); return; } - Hacl_Impl_SHA3_squeeze(s, block_len(a11), hash_len(a11), dst); + Hacl_Hash_SHA3_squeeze0(s, block_len(a11), hash_len(a11), output); } Hacl_Streaming_Types_error_code -Hacl_Streaming_Keccak_finish(Hacl_Streaming_Keccak_state *s, uint8_t *dst) +Hacl_Hash_SHA3_digest(Hacl_Hash_SHA3_state_t *state, uint8_t *output) { - Spec_Hash_Definitions_hash_alg a1 = Hacl_Streaming_Keccak_get_alg(s); + Spec_Hash_Definitions_hash_alg a1 = Hacl_Hash_SHA3_get_alg(state); if (a1 == Spec_Hash_Definitions_Shake128 || a1 == Spec_Hash_Definitions_Shake256) { return Hacl_Streaming_Types_InvalidAlgorithm; } - finish_(a1, s, dst, hash_len(a1)); + digest_(a1, state, output, hash_len(a1)); return Hacl_Streaming_Types_Success; } Hacl_Streaming_Types_error_code -Hacl_Streaming_Keccak_squeeze(Hacl_Streaming_Keccak_state *s, uint8_t *dst, uint32_t l) +Hacl_Hash_SHA3_squeeze(Hacl_Hash_SHA3_state_t *s, uint8_t *dst, uint32_t l) { - Spec_Hash_Definitions_hash_alg a1 = Hacl_Streaming_Keccak_get_alg(s); + Spec_Hash_Definitions_hash_alg a1 = Hacl_Hash_SHA3_get_alg(s); if (!(a1 == Spec_Hash_Definitions_Shake128 || a1 == Spec_Hash_Definitions_Shake256)) { return Hacl_Streaming_Types_InvalidAlgorithm; } - if (l == (uint32_t)0U) + if (l == 0U) { return Hacl_Streaming_Types_InvalidLength; } - finish_(a1, s, dst, l); + digest_(a1, s, dst, l); return Hacl_Streaming_Types_Success; } -uint32_t Hacl_Streaming_Keccak_block_len(Hacl_Streaming_Keccak_state *s) +uint32_t Hacl_Hash_SHA3_block_len(Hacl_Hash_SHA3_state_t *s) { - Spec_Hash_Definitions_hash_alg a1 = Hacl_Streaming_Keccak_get_alg(s); + Spec_Hash_Definitions_hash_alg a1 = Hacl_Hash_SHA3_get_alg(s); return block_len(a1); } -uint32_t Hacl_Streaming_Keccak_hash_len(Hacl_Streaming_Keccak_state *s) +uint32_t Hacl_Hash_SHA3_hash_len(Hacl_Hash_SHA3_state_t *s) { - Spec_Hash_Definitions_hash_alg a1 = Hacl_Streaming_Keccak_get_alg(s); + Spec_Hash_Definitions_hash_alg a1 = Hacl_Hash_SHA3_get_alg(s); return hash_len(a1); } -bool Hacl_Streaming_Keccak_is_shake(Hacl_Streaming_Keccak_state *s) +bool Hacl_Hash_SHA3_is_shake(Hacl_Hash_SHA3_state_t *s) { - Spec_Hash_Definitions_hash_alg uu____0 = Hacl_Streaming_Keccak_get_alg(s); + Spec_Hash_Definitions_hash_alg uu____0 = Hacl_Hash_SHA3_get_alg(s); return uu____0 == Spec_Hash_Definitions_Shake128 || uu____0 == Spec_Hash_Definitions_Shake256; } void -Hacl_SHA3_shake128_hacl( +Hacl_Hash_SHA3_shake128_hacl( uint32_t inputByteLen, uint8_t *input, uint32_t outputByteLen, uint8_t *output ) { - Hacl_Impl_SHA3_keccak((uint32_t)1344U, - (uint32_t)256U, - inputByteLen, - input, - (uint8_t)0x1FU, - outputByteLen, - output); + Hacl_Hash_SHA3_keccak(1344U, 256U, inputByteLen, input, 0x1FU, outputByteLen, output); } void -Hacl_SHA3_shake256_hacl( +Hacl_Hash_SHA3_shake256_hacl( uint32_t inputByteLen, uint8_t *input, uint32_t outputByteLen, uint8_t *output ) { - Hacl_Impl_SHA3_keccak((uint32_t)1088U, - (uint32_t)512U, - inputByteLen, - input, - (uint8_t)0x1FU, - outputByteLen, - output); + Hacl_Hash_SHA3_keccak(1088U, 512U, inputByteLen, input, 0x1FU, outputByteLen, output); } -void Hacl_SHA3_sha3_224(uint32_t inputByteLen, uint8_t *input, uint8_t *output) +void Hacl_Hash_SHA3_sha3_224(uint8_t *output, uint8_t *input, uint32_t input_len) { - Hacl_Impl_SHA3_keccak((uint32_t)1152U, - (uint32_t)448U, - inputByteLen, - input, - (uint8_t)0x06U, - (uint32_t)28U, - output); + Hacl_Hash_SHA3_keccak(1152U, 448U, input_len, input, 0x06U, 28U, output); } -void Hacl_SHA3_sha3_256(uint32_t inputByteLen, uint8_t *input, uint8_t *output) +void Hacl_Hash_SHA3_sha3_256(uint8_t *output, uint8_t *input, uint32_t input_len) { - Hacl_Impl_SHA3_keccak((uint32_t)1088U, - (uint32_t)512U, - inputByteLen, - input, - (uint8_t)0x06U, - (uint32_t)32U, - output); + Hacl_Hash_SHA3_keccak(1088U, 512U, input_len, input, 0x06U, 32U, output); } -void Hacl_SHA3_sha3_384(uint32_t inputByteLen, uint8_t *input, uint8_t *output) +void Hacl_Hash_SHA3_sha3_384(uint8_t *output, uint8_t *input, uint32_t input_len) { - Hacl_Impl_SHA3_keccak((uint32_t)832U, - (uint32_t)768U, - inputByteLen, - input, - (uint8_t)0x06U, - (uint32_t)48U, - output); + Hacl_Hash_SHA3_keccak(832U, 768U, input_len, input, 0x06U, 48U, output); } -void Hacl_SHA3_sha3_512(uint32_t inputByteLen, uint8_t *input, uint8_t *output) +void Hacl_Hash_SHA3_sha3_512(uint8_t *output, uint8_t *input, uint32_t input_len) { - Hacl_Impl_SHA3_keccak((uint32_t)576U, - (uint32_t)1024U, - inputByteLen, - input, - (uint8_t)0x06U, - (uint32_t)64U, - output); + Hacl_Hash_SHA3_keccak(576U, 1024U, input_len, input, 0x06U, 64U, output); } static const uint32_t keccak_rotc[24U] = { - (uint32_t)1U, (uint32_t)3U, (uint32_t)6U, (uint32_t)10U, (uint32_t)15U, (uint32_t)21U, - (uint32_t)28U, (uint32_t)36U, (uint32_t)45U, (uint32_t)55U, (uint32_t)2U, (uint32_t)14U, - (uint32_t)27U, (uint32_t)41U, (uint32_t)56U, (uint32_t)8U, (uint32_t)25U, (uint32_t)43U, - (uint32_t)62U, (uint32_t)18U, (uint32_t)39U, (uint32_t)61U, (uint32_t)20U, (uint32_t)44U + 1U, 3U, 6U, 10U, 15U, 21U, 28U, 36U, 45U, 55U, 2U, 14U, 27U, 41U, 56U, 8U, 25U, 43U, 62U, 18U, + 39U, 61U, 20U, 44U }; static const uint32_t keccak_piln[24U] = { - (uint32_t)10U, (uint32_t)7U, (uint32_t)11U, (uint32_t)17U, (uint32_t)18U, (uint32_t)3U, - (uint32_t)5U, (uint32_t)16U, (uint32_t)8U, (uint32_t)21U, (uint32_t)24U, (uint32_t)4U, - (uint32_t)15U, (uint32_t)23U, (uint32_t)19U, (uint32_t)13U, (uint32_t)12U, (uint32_t)2U, - (uint32_t)20U, (uint32_t)14U, (uint32_t)22U, (uint32_t)9U, (uint32_t)6U, (uint32_t)1U + 10U, 7U, 11U, 17U, 18U, 3U, 5U, 16U, 8U, 21U, 24U, 4U, 15U, 23U, 19U, 13U, 12U, 2U, 20U, 14U, + 22U, 9U, 6U, 1U }; static const uint64_t keccak_rndc[24U] = { - (uint64_t)0x0000000000000001U, (uint64_t)0x0000000000008082U, (uint64_t)0x800000000000808aU, - (uint64_t)0x8000000080008000U, (uint64_t)0x000000000000808bU, (uint64_t)0x0000000080000001U, - (uint64_t)0x8000000080008081U, (uint64_t)0x8000000000008009U, (uint64_t)0x000000000000008aU, - (uint64_t)0x0000000000000088U, (uint64_t)0x0000000080008009U, (uint64_t)0x000000008000000aU, - (uint64_t)0x000000008000808bU, (uint64_t)0x800000000000008bU, (uint64_t)0x8000000000008089U, - (uint64_t)0x8000000000008003U, (uint64_t)0x8000000000008002U, (uint64_t)0x8000000000000080U, - (uint64_t)0x000000000000800aU, (uint64_t)0x800000008000000aU, (uint64_t)0x8000000080008081U, - (uint64_t)0x8000000000008080U, (uint64_t)0x0000000080000001U, (uint64_t)0x8000000080008008U + 0x0000000000000001ULL, 0x0000000000008082ULL, 0x800000000000808aULL, 0x8000000080008000ULL, + 0x000000000000808bULL, 0x0000000080000001ULL, 0x8000000080008081ULL, 0x8000000000008009ULL, + 0x000000000000008aULL, 0x0000000000000088ULL, 0x0000000080008009ULL, 0x000000008000000aULL, + 0x000000008000808bULL, 0x800000000000008bULL, 0x8000000000008089ULL, 0x8000000000008003ULL, + 0x8000000000008002ULL, 0x8000000000000080ULL, 0x000000000000800aULL, 0x800000008000000aULL, + 0x8000000080008081ULL, 0x8000000000008080ULL, 0x0000000080000001ULL, 0x8000000080008008ULL }; -void Hacl_Impl_SHA3_state_permute(uint64_t *s) +void Hacl_Hash_SHA3_state_permute(uint64_t *s) { - for (uint32_t i0 = (uint32_t)0U; i0 < (uint32_t)24U; i0++) + for (uint32_t i0 = 0U; i0 < 24U; i0++) { uint64_t _C[5U] = { 0U }; KRML_MAYBE_FOR5(i, - (uint32_t)0U, - (uint32_t)5U, - (uint32_t)1U, - _C[i] = - s[i - + (uint32_t)0U] - ^ - (s[i - + (uint32_t)5U] - ^ (s[i + (uint32_t)10U] ^ (s[i + (uint32_t)15U] ^ s[i + (uint32_t)20U])));); + 0U, + 5U, + 1U, + _C[i] = s[i + 0U] ^ (s[i + 5U] ^ (s[i + 10U] ^ (s[i + 15U] ^ s[i + 20U])));); KRML_MAYBE_FOR5(i1, - (uint32_t)0U, - (uint32_t)5U, - (uint32_t)1U, - uint64_t uu____0 = _C[(i1 + (uint32_t)1U) % (uint32_t)5U]; - uint64_t - _D = - _C[(i1 + (uint32_t)4U) - % (uint32_t)5U] - ^ (uu____0 << (uint32_t)1U | uu____0 >> (uint32_t)63U); - KRML_MAYBE_FOR5(i, - (uint32_t)0U, - (uint32_t)5U, - (uint32_t)1U, - s[i1 + (uint32_t)5U * i] = s[i1 + (uint32_t)5U * i] ^ _D;);); + 0U, + 5U, + 1U, + uint64_t uu____0 = _C[(i1 + 1U) % 5U]; + uint64_t _D = _C[(i1 + 4U) % 5U] ^ (uu____0 << 1U | uu____0 >> 63U); + KRML_MAYBE_FOR5(i, 0U, 5U, 1U, s[i1 + 5U * i] = s[i1 + 5U * i] ^ _D;);); uint64_t x = s[1U]; uint64_t current = x; - for (uint32_t i = (uint32_t)0U; i < (uint32_t)24U; i++) + for (uint32_t i = 0U; i < 24U; i++) { uint32_t _Y = keccak_piln[i]; uint32_t r = keccak_rotc[i]; uint64_t temp = s[_Y]; uint64_t uu____1 = current; - s[_Y] = uu____1 << r | uu____1 >> ((uint32_t)64U - r); + s[_Y] = uu____1 << r | uu____1 >> (64U - r); current = temp; } KRML_MAYBE_FOR5(i, - (uint32_t)0U, - (uint32_t)5U, - (uint32_t)1U, - uint64_t - v0 = - s[(uint32_t)0U - + (uint32_t)5U * i] - ^ (~s[(uint32_t)1U + (uint32_t)5U * i] & s[(uint32_t)2U + (uint32_t)5U * i]); - uint64_t - v1 = - s[(uint32_t)1U - + (uint32_t)5U * i] - ^ (~s[(uint32_t)2U + (uint32_t)5U * i] & s[(uint32_t)3U + (uint32_t)5U * i]); - uint64_t - v2 = - s[(uint32_t)2U - + (uint32_t)5U * i] - ^ (~s[(uint32_t)3U + (uint32_t)5U * i] & s[(uint32_t)4U + (uint32_t)5U * i]); - uint64_t - v3 = - s[(uint32_t)3U - + (uint32_t)5U * i] - ^ (~s[(uint32_t)4U + (uint32_t)5U * i] & s[(uint32_t)0U + (uint32_t)5U * i]); - uint64_t - v4 = - s[(uint32_t)4U - + (uint32_t)5U * i] - ^ (~s[(uint32_t)0U + (uint32_t)5U * i] & s[(uint32_t)1U + (uint32_t)5U * i]); - s[(uint32_t)0U + (uint32_t)5U * i] = v0; - s[(uint32_t)1U + (uint32_t)5U * i] = v1; - s[(uint32_t)2U + (uint32_t)5U * i] = v2; - s[(uint32_t)3U + (uint32_t)5U * i] = v3; - s[(uint32_t)4U + (uint32_t)5U * i] = v4;); + 0U, + 5U, + 1U, + uint64_t v0 = s[0U + 5U * i] ^ (~s[1U + 5U * i] & s[2U + 5U * i]); + uint64_t v1 = s[1U + 5U * i] ^ (~s[2U + 5U * i] & s[3U + 5U * i]); + uint64_t v2 = s[2U + 5U * i] ^ (~s[3U + 5U * i] & s[4U + 5U * i]); + uint64_t v3 = s[3U + 5U * i] ^ (~s[4U + 5U * i] & s[0U + 5U * i]); + uint64_t v4 = s[4U + 5U * i] ^ (~s[0U + 5U * i] & s[1U + 5U * i]); + s[0U + 5U * i] = v0; + s[1U + 5U * i] = v1; + s[2U + 5U * i] = v2; + s[3U + 5U * i] = v3; + s[4U + 5U * i] = v4;); uint64_t c = keccak_rndc[i0]; s[0U] = s[0U] ^ c; } } -void Hacl_Impl_SHA3_loadState(uint32_t rateInBytes, uint8_t *input, uint64_t *s) +void Hacl_Hash_SHA3_loadState(uint32_t rateInBytes, uint8_t *input, uint64_t *s) { uint8_t block[200U] = { 0U }; memcpy(block, input, rateInBytes * sizeof (uint8_t)); - for (uint32_t i = (uint32_t)0U; i < (uint32_t)25U; i++) + for (uint32_t i = 0U; i < 25U; i++) { - uint64_t u = load64_le(block + i * (uint32_t)8U); + uint64_t u = load64_le(block + i * 8U); uint64_t x = u; s[i] = s[i] ^ x; } @@ -738,18 +647,18 @@ void Hacl_Impl_SHA3_loadState(uint32_t rateInBytes, uint8_t *input, uint64_t *s) static void storeState(uint32_t rateInBytes, uint64_t *s, uint8_t *res) { uint8_t block[200U] = { 0U }; - for (uint32_t i = (uint32_t)0U; i < (uint32_t)25U; i++) + for (uint32_t i = 0U; i < 25U; i++) { uint64_t sj = s[i]; - store64_le(block + i * (uint32_t)8U, sj); + store64_le(block + i * 8U, sj); } memcpy(res, block, rateInBytes * sizeof (uint8_t)); } -void Hacl_Impl_SHA3_absorb_inner(uint32_t rateInBytes, uint8_t *block, uint64_t *s) +void Hacl_Hash_SHA3_absorb_inner(uint32_t rateInBytes, uint8_t *block, uint64_t *s) { - Hacl_Impl_SHA3_loadState(rateInBytes, block, s); - Hacl_Impl_SHA3_state_permute(s); + Hacl_Hash_SHA3_loadState(rateInBytes, block, s); + Hacl_Hash_SHA3_state_permute(s); } static void @@ -763,30 +672,30 @@ absorb( { uint32_t n_blocks = inputByteLen / rateInBytes; uint32_t rem = inputByteLen % rateInBytes; - for (uint32_t i = (uint32_t)0U; i < n_blocks; i++) + for (uint32_t i = 0U; i < n_blocks; i++) { uint8_t *block = input + i * rateInBytes; - Hacl_Impl_SHA3_absorb_inner(rateInBytes, block, s); + Hacl_Hash_SHA3_absorb_inner(rateInBytes, block, s); } uint8_t *last = input + n_blocks * rateInBytes; uint8_t lastBlock_[200U] = { 0U }; uint8_t *lastBlock = lastBlock_; memcpy(lastBlock, last, rem * sizeof (uint8_t)); lastBlock[rem] = delimitedSuffix; - Hacl_Impl_SHA3_loadState(rateInBytes, lastBlock, s); - if (!((delimitedSuffix & (uint8_t)0x80U) == (uint8_t)0U) && rem == rateInBytes - (uint32_t)1U) + Hacl_Hash_SHA3_loadState(rateInBytes, lastBlock, s); + if (!(((uint32_t)delimitedSuffix & 0x80U) == 0U) && rem == rateInBytes - 1U) { - Hacl_Impl_SHA3_state_permute(s); + Hacl_Hash_SHA3_state_permute(s); } uint8_t nextBlock_[200U] = { 0U }; uint8_t *nextBlock = nextBlock_; - nextBlock[rateInBytes - (uint32_t)1U] = (uint8_t)0x80U; - Hacl_Impl_SHA3_loadState(rateInBytes, nextBlock, s); - Hacl_Impl_SHA3_state_permute(s); + nextBlock[rateInBytes - 1U] = 0x80U; + Hacl_Hash_SHA3_loadState(rateInBytes, nextBlock, s); + Hacl_Hash_SHA3_state_permute(s); } void -Hacl_Impl_SHA3_squeeze( +Hacl_Hash_SHA3_squeeze0( uint64_t *s, uint32_t rateInBytes, uint32_t outputByteLen, @@ -797,16 +706,16 @@ Hacl_Impl_SHA3_squeeze( uint32_t remOut = outputByteLen % rateInBytes; uint8_t *last = output + outputByteLen - remOut; uint8_t *blocks = output; - for (uint32_t i = (uint32_t)0U; i < outBlocks; i++) + for (uint32_t i = 0U; i < outBlocks; i++) { storeState(rateInBytes, s, blocks + i * rateInBytes); - Hacl_Impl_SHA3_state_permute(s); + Hacl_Hash_SHA3_state_permute(s); } storeState(remOut, s, last); } void -Hacl_Impl_SHA3_keccak( +Hacl_Hash_SHA3_keccak( uint32_t rate, uint32_t capacity, uint32_t inputByteLen, @@ -816,9 +725,10 @@ Hacl_Impl_SHA3_keccak( uint8_t *output ) { - uint32_t rateInBytes = rate / (uint32_t)8U; + KRML_MAYBE_UNUSED_VAR(capacity); + uint32_t rateInBytes = rate / 8U; uint64_t s[25U] = { 0U }; absorb(s, rateInBytes, inputByteLen, input, delimitedSuffix); - Hacl_Impl_SHA3_squeeze(s, rateInBytes, outputByteLen, output); + Hacl_Hash_SHA3_squeeze0(s, rateInBytes, outputByteLen, output); } diff --git a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA3.h b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA3.h index 681b6af4a8..678e9f2fbe 100644 --- a/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA3.h +++ b/contrib/tools/python3/Modules/_hacl/Hacl_Hash_SHA3.h @@ -31,54 +31,55 @@ extern "C" { #endif #include <string.h> +#include "python_hacl_namespaces.h" #include "krml/types.h" #include "krml/lowstar_endianness.h" #include "krml/internal/target.h" #include "Hacl_Streaming_Types.h" -typedef struct Hacl_Streaming_Keccak_hash_buf_s +typedef struct Hacl_Hash_SHA3_hash_buf_s { Spec_Hash_Definitions_hash_alg fst; uint64_t *snd; } -Hacl_Streaming_Keccak_hash_buf; +Hacl_Hash_SHA3_hash_buf; -typedef struct Hacl_Streaming_Keccak_state_s +typedef struct Hacl_Hash_SHA3_state_t_s { - Hacl_Streaming_Keccak_hash_buf block_state; + Hacl_Hash_SHA3_hash_buf block_state; uint8_t *buf; uint64_t total_len; } -Hacl_Streaming_Keccak_state; +Hacl_Hash_SHA3_state_t; -Spec_Hash_Definitions_hash_alg Hacl_Streaming_Keccak_get_alg(Hacl_Streaming_Keccak_state *s); +Spec_Hash_Definitions_hash_alg Hacl_Hash_SHA3_get_alg(Hacl_Hash_SHA3_state_t *s); -Hacl_Streaming_Keccak_state *Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_hash_alg a); +Hacl_Hash_SHA3_state_t *Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_hash_alg a); -void Hacl_Streaming_Keccak_free(Hacl_Streaming_Keccak_state *s); +void Hacl_Hash_SHA3_free(Hacl_Hash_SHA3_state_t *state); -Hacl_Streaming_Keccak_state *Hacl_Streaming_Keccak_copy(Hacl_Streaming_Keccak_state *s0); +Hacl_Hash_SHA3_state_t *Hacl_Hash_SHA3_copy(Hacl_Hash_SHA3_state_t *state); -void Hacl_Streaming_Keccak_reset(Hacl_Streaming_Keccak_state *s); +void Hacl_Hash_SHA3_reset(Hacl_Hash_SHA3_state_t *state); Hacl_Streaming_Types_error_code -Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint32_t len); +Hacl_Hash_SHA3_update(Hacl_Hash_SHA3_state_t *state, uint8_t *chunk, uint32_t chunk_len); Hacl_Streaming_Types_error_code -Hacl_Streaming_Keccak_finish(Hacl_Streaming_Keccak_state *s, uint8_t *dst); +Hacl_Hash_SHA3_digest(Hacl_Hash_SHA3_state_t *state, uint8_t *output); Hacl_Streaming_Types_error_code -Hacl_Streaming_Keccak_squeeze(Hacl_Streaming_Keccak_state *s, uint8_t *dst, uint32_t l); +Hacl_Hash_SHA3_squeeze(Hacl_Hash_SHA3_state_t *s, uint8_t *dst, uint32_t l); -uint32_t Hacl_Streaming_Keccak_block_len(Hacl_Streaming_Keccak_state *s); +uint32_t Hacl_Hash_SHA3_block_len(Hacl_Hash_SHA3_state_t *s); -uint32_t Hacl_Streaming_Keccak_hash_len(Hacl_Streaming_Keccak_state *s); +uint32_t Hacl_Hash_SHA3_hash_len(Hacl_Hash_SHA3_state_t *s); -bool Hacl_Streaming_Keccak_is_shake(Hacl_Streaming_Keccak_state *s); +bool Hacl_Hash_SHA3_is_shake(Hacl_Hash_SHA3_state_t *s); void -Hacl_SHA3_shake128_hacl( +Hacl_Hash_SHA3_shake128_hacl( uint32_t inputByteLen, uint8_t *input, uint32_t outputByteLen, @@ -86,25 +87,25 @@ Hacl_SHA3_shake128_hacl( ); void -Hacl_SHA3_shake256_hacl( +Hacl_Hash_SHA3_shake256_hacl( uint32_t inputByteLen, uint8_t *input, uint32_t outputByteLen, uint8_t *output ); -void Hacl_SHA3_sha3_224(uint32_t inputByteLen, uint8_t *input, uint8_t *output); +void Hacl_Hash_SHA3_sha3_224(uint8_t *output, uint8_t *input, uint32_t input_len); -void Hacl_SHA3_sha3_256(uint32_t inputByteLen, uint8_t *input, uint8_t *output); +void Hacl_Hash_SHA3_sha3_256(uint8_t *output, uint8_t *input, uint32_t input_len); -void Hacl_SHA3_sha3_384(uint32_t inputByteLen, uint8_t *input, uint8_t *output); +void Hacl_Hash_SHA3_sha3_384(uint8_t *output, uint8_t *input, uint32_t input_len); -void Hacl_SHA3_sha3_512(uint32_t inputByteLen, uint8_t *input, uint8_t *output); +void Hacl_Hash_SHA3_sha3_512(uint8_t *output, uint8_t *input, uint32_t input_len); -void Hacl_Impl_SHA3_absorb_inner(uint32_t rateInBytes, uint8_t *block, uint64_t *s); +void Hacl_Hash_SHA3_absorb_inner(uint32_t rateInBytes, uint8_t *block, uint64_t *s); void -Hacl_Impl_SHA3_squeeze( +Hacl_Hash_SHA3_squeeze0( uint64_t *s, uint32_t rateInBytes, uint32_t outputByteLen, @@ -112,7 +113,7 @@ Hacl_Impl_SHA3_squeeze( ); void -Hacl_Impl_SHA3_keccak( +Hacl_Hash_SHA3_keccak( uint32_t rate, uint32_t capacity, uint32_t inputByteLen, diff --git a/contrib/tools/python3/Modules/_hacl/include/krml/FStar_UInt128_Verified.h b/contrib/tools/python3/Modules/_hacl/include/krml/FStar_UInt128_Verified.h index 3d36d44073..bdf25898f2 100644 --- a/contrib/tools/python3/Modules/_hacl/include/krml/FStar_UInt128_Verified.h +++ b/contrib/tools/python3/Modules/_hacl/include/krml/FStar_UInt128_Verified.h @@ -15,7 +15,7 @@ static inline uint64_t FStar_UInt128_constant_time_carry(uint64_t a, uint64_t b) { - return (a ^ ((a ^ b) | ((a - b) ^ b))) >> (uint32_t)63U; + return (a ^ ((a ^ b) | ((a - b) ^ b))) >> 63U; } static inline uint64_t FStar_UInt128_carry(uint64_t a, uint64_t b) @@ -118,7 +118,7 @@ static inline FStar_UInt128_uint128 FStar_UInt128_lognot(FStar_UInt128_uint128 a return lit; } -static uint32_t FStar_UInt128_u32_64 = (uint32_t)64U; +static uint32_t FStar_UInt128_u32_64 = 64U; static inline uint64_t FStar_UInt128_add_u64_shift_left(uint64_t hi, uint64_t lo, uint32_t s) { @@ -134,7 +134,7 @@ FStar_UInt128_add_u64_shift_left_respec(uint64_t hi, uint64_t lo, uint32_t s) static inline FStar_UInt128_uint128 FStar_UInt128_shift_left_small(FStar_UInt128_uint128 a, uint32_t s) { - if (s == (uint32_t)0U) + if (s == 0U) { return a; } @@ -151,7 +151,7 @@ static inline FStar_UInt128_uint128 FStar_UInt128_shift_left_large(FStar_UInt128_uint128 a, uint32_t s) { FStar_UInt128_uint128 lit; - lit.low = (uint64_t)0U; + lit.low = 0ULL; lit.high = a.low << (s - FStar_UInt128_u32_64); return lit; } @@ -183,7 +183,7 @@ FStar_UInt128_add_u64_shift_right_respec(uint64_t hi, uint64_t lo, uint32_t s) static inline FStar_UInt128_uint128 FStar_UInt128_shift_right_small(FStar_UInt128_uint128 a, uint32_t s) { - if (s == (uint32_t)0U) + if (s == 0U) { return a; } @@ -201,7 +201,7 @@ FStar_UInt128_shift_right_large(FStar_UInt128_uint128 a, uint32_t s) { FStar_UInt128_uint128 lit; lit.low = a.high >> (s - FStar_UInt128_u32_64); - lit.high = (uint64_t)0U; + lit.high = 0ULL; return lit; } @@ -269,7 +269,7 @@ static inline FStar_UInt128_uint128 FStar_UInt128_uint64_to_uint128(uint64_t a) { FStar_UInt128_uint128 lit; lit.low = a; - lit.high = (uint64_t)0U; + lit.high = 0ULL; return lit; } @@ -280,10 +280,10 @@ static inline uint64_t FStar_UInt128_uint128_to_uint64(FStar_UInt128_uint128 a) static inline uint64_t FStar_UInt128_u64_mod_32(uint64_t a) { - return a & (uint64_t)0xffffffffU; + return a & 0xffffffffULL; } -static uint32_t FStar_UInt128_u32_32 = (uint32_t)32U; +static uint32_t FStar_UInt128_u32_32 = 32U; static inline uint64_t FStar_UInt128_u32_combine(uint64_t hi, uint64_t lo) { diff --git a/contrib/tools/python3/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h b/contrib/tools/python3/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h index a56c7d6134..1bdec972a2 100644 --- a/contrib/tools/python3/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h +++ b/contrib/tools/python3/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h @@ -14,16 +14,16 @@ #include "krml/types.h" #include "krml/internal/target.h" -static inline uint64_t FStar_UInt64_eq_mask(uint64_t a, uint64_t b) +static KRML_NOINLINE uint64_t FStar_UInt64_eq_mask(uint64_t a, uint64_t b) { uint64_t x = a ^ b; - uint64_t minus_x = ~x + (uint64_t)1U; + uint64_t minus_x = ~x + 1ULL; uint64_t x_or_minus_x = x | minus_x; - uint64_t xnx = x_or_minus_x >> (uint32_t)63U; - return xnx - (uint64_t)1U; + uint64_t xnx = x_or_minus_x >> 63U; + return xnx - 1ULL; } -static inline uint64_t FStar_UInt64_gte_mask(uint64_t a, uint64_t b) +static KRML_NOINLINE uint64_t FStar_UInt64_gte_mask(uint64_t a, uint64_t b) { uint64_t x = a; uint64_t y = b; @@ -32,20 +32,20 @@ static inline uint64_t FStar_UInt64_gte_mask(uint64_t a, uint64_t b) uint64_t x_sub_y_xor_y = x_sub_y ^ y; uint64_t q = x_xor_y | x_sub_y_xor_y; uint64_t x_xor_q = x ^ q; - uint64_t x_xor_q_ = x_xor_q >> (uint32_t)63U; - return x_xor_q_ - (uint64_t)1U; + uint64_t x_xor_q_ = x_xor_q >> 63U; + return x_xor_q_ - 1ULL; } -static inline uint32_t FStar_UInt32_eq_mask(uint32_t a, uint32_t b) +static KRML_NOINLINE uint32_t FStar_UInt32_eq_mask(uint32_t a, uint32_t b) { uint32_t x = a ^ b; - uint32_t minus_x = ~x + (uint32_t)1U; + uint32_t minus_x = ~x + 1U; uint32_t x_or_minus_x = x | minus_x; - uint32_t xnx = x_or_minus_x >> (uint32_t)31U; - return xnx - (uint32_t)1U; + uint32_t xnx = x_or_minus_x >> 31U; + return xnx - 1U; } -static inline uint32_t FStar_UInt32_gte_mask(uint32_t a, uint32_t b) +static KRML_NOINLINE uint32_t FStar_UInt32_gte_mask(uint32_t a, uint32_t b) { uint32_t x = a; uint32_t y = b; @@ -54,52 +54,52 @@ static inline uint32_t FStar_UInt32_gte_mask(uint32_t a, uint32_t b) uint32_t x_sub_y_xor_y = x_sub_y ^ y; uint32_t q = x_xor_y | x_sub_y_xor_y; uint32_t x_xor_q = x ^ q; - uint32_t x_xor_q_ = x_xor_q >> (uint32_t)31U; - return x_xor_q_ - (uint32_t)1U; + uint32_t x_xor_q_ = x_xor_q >> 31U; + return x_xor_q_ - 1U; } -static inline uint16_t FStar_UInt16_eq_mask(uint16_t a, uint16_t b) +static KRML_NOINLINE uint16_t FStar_UInt16_eq_mask(uint16_t a, uint16_t b) { - uint16_t x = a ^ b; - uint16_t minus_x = ~x + (uint16_t)1U; - uint16_t x_or_minus_x = x | minus_x; - uint16_t xnx = x_or_minus_x >> (uint32_t)15U; - return xnx - (uint16_t)1U; + uint16_t x = (uint32_t)a ^ (uint32_t)b; + uint16_t minus_x = (uint32_t)~x + 1U; + uint16_t x_or_minus_x = (uint32_t)x | (uint32_t)minus_x; + uint16_t xnx = (uint32_t)x_or_minus_x >> 15U; + return (uint32_t)xnx - 1U; } -static inline uint16_t FStar_UInt16_gte_mask(uint16_t a, uint16_t b) +static KRML_NOINLINE uint16_t FStar_UInt16_gte_mask(uint16_t a, uint16_t b) { uint16_t x = a; uint16_t y = b; - uint16_t x_xor_y = x ^ y; - uint16_t x_sub_y = x - y; - uint16_t x_sub_y_xor_y = x_sub_y ^ y; - uint16_t q = x_xor_y | x_sub_y_xor_y; - uint16_t x_xor_q = x ^ q; - uint16_t x_xor_q_ = x_xor_q >> (uint32_t)15U; - return x_xor_q_ - (uint16_t)1U; + uint16_t x_xor_y = (uint32_t)x ^ (uint32_t)y; + uint16_t x_sub_y = (uint32_t)x - (uint32_t)y; + uint16_t x_sub_y_xor_y = (uint32_t)x_sub_y ^ (uint32_t)y; + uint16_t q = (uint32_t)x_xor_y | (uint32_t)x_sub_y_xor_y; + uint16_t x_xor_q = (uint32_t)x ^ (uint32_t)q; + uint16_t x_xor_q_ = (uint32_t)x_xor_q >> 15U; + return (uint32_t)x_xor_q_ - 1U; } -static inline uint8_t FStar_UInt8_eq_mask(uint8_t a, uint8_t b) +static KRML_NOINLINE uint8_t FStar_UInt8_eq_mask(uint8_t a, uint8_t b) { - uint8_t x = a ^ b; - uint8_t minus_x = ~x + (uint8_t)1U; - uint8_t x_or_minus_x = x | minus_x; - uint8_t xnx = x_or_minus_x >> (uint32_t)7U; - return xnx - (uint8_t)1U; + uint8_t x = (uint32_t)a ^ (uint32_t)b; + uint8_t minus_x = (uint32_t)~x + 1U; + uint8_t x_or_minus_x = (uint32_t)x | (uint32_t)minus_x; + uint8_t xnx = (uint32_t)x_or_minus_x >> 7U; + return (uint32_t)xnx - 1U; } -static inline uint8_t FStar_UInt8_gte_mask(uint8_t a, uint8_t b) +static KRML_NOINLINE uint8_t FStar_UInt8_gte_mask(uint8_t a, uint8_t b) { uint8_t x = a; uint8_t y = b; - uint8_t x_xor_y = x ^ y; - uint8_t x_sub_y = x - y; - uint8_t x_sub_y_xor_y = x_sub_y ^ y; - uint8_t q = x_xor_y | x_sub_y_xor_y; - uint8_t x_xor_q = x ^ q; - uint8_t x_xor_q_ = x_xor_q >> (uint32_t)7U; - return x_xor_q_ - (uint8_t)1U; + uint8_t x_xor_y = (uint32_t)x ^ (uint32_t)y; + uint8_t x_sub_y = (uint32_t)x - (uint32_t)y; + uint8_t x_sub_y_xor_y = (uint32_t)x_sub_y ^ (uint32_t)y; + uint8_t q = (uint32_t)x_xor_y | (uint32_t)x_sub_y_xor_y; + uint8_t x_xor_q = (uint32_t)x ^ (uint32_t)q; + uint8_t x_xor_q_ = (uint32_t)x_xor_q >> 7U; + return (uint32_t)x_xor_q_ - 1U; } diff --git a/contrib/tools/python3/Modules/_hacl/include/krml/internal/target.h b/contrib/tools/python3/Modules/_hacl/include/krml/internal/target.h index 5a2f94eb2e..c7fcc0151e 100644 --- a/contrib/tools/python3/Modules/_hacl/include/krml/internal/target.h +++ b/contrib/tools/python3/Modules/_hacl/include/krml/internal/target.h @@ -4,13 +4,13 @@ #ifndef __KRML_TARGET_H #define __KRML_TARGET_H -#include <stdlib.h> -#include <stddef.h> -#include <stdio.h> -#include <stdbool.h> +#include <assert.h> #include <inttypes.h> #include <limits.h> -#include <assert.h> +#include <stdbool.h> +#include <stddef.h> +#include <stdio.h> +#include <stdlib.h> /* Since KaRaMeL emits the inline keyword unconditionally, we follow the * guidelines at https://gcc.gnu.org/onlinedocs/gcc/Inline.html and make this @@ -57,6 +57,31 @@ # define KRML_HOST_IGNORE(x) (void)(x) #endif +#ifndef KRML_MAYBE_UNUSED_VAR +# define KRML_MAYBE_UNUSED_VAR(x) KRML_HOST_IGNORE(x) +#endif + +#ifndef KRML_MAYBE_UNUSED +# if defined(__GNUC__) +# define KRML_MAYBE_UNUSED __attribute__((unused)) +# else +# define KRML_MAYBE_UNUSED +# endif +#endif + +#ifndef KRML_NOINLINE +# if defined(_MSC_VER) +# define KRML_NOINLINE __declspec(noinline) +# elif defined (__GNUC__) +# define KRML_NOINLINE __attribute__((noinline,unused)) +# else +# define KRML_NOINLINE +# warning "The KRML_NOINLINE macro is not defined for this toolchain!" +# warning "The compiler may defeat side-channel resistance with optimizations." +# warning "Please locate target.h and try to fill it out with a suitable definition for this compiler." +# endif +#endif + /* In FStar.Buffer.fst, the size of arrays is uint32_t, but it's a number of * *elements*. Do an ugly, run-time check (some of which KaRaMeL can eliminate). */ @@ -83,184 +108,186 @@ #define KRML_LOOP1(i, n, x) { \ x \ i += n; \ + (void) i; \ } -#define KRML_LOOP2(i, n, x) \ - KRML_LOOP1(i, n, x) \ +#define KRML_LOOP2(i, n, x) \ + KRML_LOOP1(i, n, x) \ KRML_LOOP1(i, n, x) -#define KRML_LOOP3(i, n, x) \ - KRML_LOOP2(i, n, x) \ +#define KRML_LOOP3(i, n, x) \ + KRML_LOOP2(i, n, x) \ KRML_LOOP1(i, n, x) -#define KRML_LOOP4(i, n, x) \ - KRML_LOOP2(i, n, x) \ +#define KRML_LOOP4(i, n, x) \ + KRML_LOOP2(i, n, x) \ KRML_LOOP2(i, n, x) -#define KRML_LOOP5(i, n, x) \ - KRML_LOOP4(i, n, x) \ +#define KRML_LOOP5(i, n, x) \ + KRML_LOOP4(i, n, x) \ KRML_LOOP1(i, n, x) -#define KRML_LOOP6(i, n, x) \ - KRML_LOOP4(i, n, x) \ +#define KRML_LOOP6(i, n, x) \ + KRML_LOOP4(i, n, x) \ KRML_LOOP2(i, n, x) -#define KRML_LOOP7(i, n, x) \ - KRML_LOOP4(i, n, x) \ +#define KRML_LOOP7(i, n, x) \ + KRML_LOOP4(i, n, x) \ KRML_LOOP3(i, n, x) -#define KRML_LOOP8(i, n, x) \ - KRML_LOOP4(i, n, x) \ +#define KRML_LOOP8(i, n, x) \ + KRML_LOOP4(i, n, x) \ KRML_LOOP4(i, n, x) -#define KRML_LOOP9(i, n, x) \ - KRML_LOOP8(i, n, x) \ +#define KRML_LOOP9(i, n, x) \ + KRML_LOOP8(i, n, x) \ KRML_LOOP1(i, n, x) -#define KRML_LOOP10(i, n, x) \ - KRML_LOOP8(i, n, x) \ +#define KRML_LOOP10(i, n, x) \ + KRML_LOOP8(i, n, x) \ KRML_LOOP2(i, n, x) -#define KRML_LOOP11(i, n, x) \ - KRML_LOOP8(i, n, x) \ +#define KRML_LOOP11(i, n, x) \ + KRML_LOOP8(i, n, x) \ KRML_LOOP3(i, n, x) -#define KRML_LOOP12(i, n, x) \ - KRML_LOOP8(i, n, x) \ +#define KRML_LOOP12(i, n, x) \ + KRML_LOOP8(i, n, x) \ KRML_LOOP4(i, n, x) -#define KRML_LOOP13(i, n, x) \ - KRML_LOOP8(i, n, x) \ +#define KRML_LOOP13(i, n, x) \ + KRML_LOOP8(i, n, x) \ KRML_LOOP5(i, n, x) -#define KRML_LOOP14(i, n, x) \ - KRML_LOOP8(i, n, x) \ +#define KRML_LOOP14(i, n, x) \ + KRML_LOOP8(i, n, x) \ KRML_LOOP6(i, n, x) -#define KRML_LOOP15(i, n, x) \ - KRML_LOOP8(i, n, x) \ +#define KRML_LOOP15(i, n, x) \ + KRML_LOOP8(i, n, x) \ KRML_LOOP7(i, n, x) -#define KRML_LOOP16(i, n, x) \ - KRML_LOOP8(i, n, x) \ +#define KRML_LOOP16(i, n, x) \ + KRML_LOOP8(i, n, x) \ KRML_LOOP8(i, n, x) -#define KRML_UNROLL_FOR(i, z, n, k, x) do { \ - uint32_t i = z; \ - KRML_LOOP##n(i, k, x) \ -} while (0) +#define KRML_UNROLL_FOR(i, z, n, k, x) \ + do { \ + uint32_t i = z; \ + KRML_LOOP##n(i, k, x) \ + } while (0) -#define KRML_ACTUAL_FOR(i, z, n, k, x) \ - do { \ - for (uint32_t i = z; i < n; i += k) { \ - x \ - } \ +#define KRML_ACTUAL_FOR(i, z, n, k, x) \ + do { \ + for (uint32_t i = z; i < n; i += k) { \ + x \ + } \ } while (0) #ifndef KRML_UNROLL_MAX -#define KRML_UNROLL_MAX 16 +# define KRML_UNROLL_MAX 16 #endif /* 1 is the number of loop iterations, i.e. (n - z)/k as evaluated by krml */ #if 0 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR0(i, z, n, k, x) +# define KRML_MAYBE_FOR0(i, z, n, k, x) #else -#define KRML_MAYBE_FOR0(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR0(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 1 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR1(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 1, k, x) +# define KRML_MAYBE_FOR1(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 1, k, x) #else -#define KRML_MAYBE_FOR1(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR1(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 2 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR2(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 2, k, x) +# define KRML_MAYBE_FOR2(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 2, k, x) #else -#define KRML_MAYBE_FOR2(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR2(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 3 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR3(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 3, k, x) +# define KRML_MAYBE_FOR3(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 3, k, x) #else -#define KRML_MAYBE_FOR3(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR3(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 4 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR4(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 4, k, x) +# define KRML_MAYBE_FOR4(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 4, k, x) #else -#define KRML_MAYBE_FOR4(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR4(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 5 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR5(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 5, k, x) +# define KRML_MAYBE_FOR5(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 5, k, x) #else -#define KRML_MAYBE_FOR5(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR5(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 6 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR6(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 6, k, x) +# define KRML_MAYBE_FOR6(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 6, k, x) #else -#define KRML_MAYBE_FOR6(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR6(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 7 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR7(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 7, k, x) +# define KRML_MAYBE_FOR7(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 7, k, x) #else -#define KRML_MAYBE_FOR7(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR7(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 8 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR8(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 8, k, x) +# define KRML_MAYBE_FOR8(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 8, k, x) #else -#define KRML_MAYBE_FOR8(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR8(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 9 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR9(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 9, k, x) +# define KRML_MAYBE_FOR9(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 9, k, x) #else -#define KRML_MAYBE_FOR9(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR9(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 10 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR10(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 10, k, x) +# define KRML_MAYBE_FOR10(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 10, k, x) #else -#define KRML_MAYBE_FOR10(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR10(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 11 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR11(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 11, k, x) +# define KRML_MAYBE_FOR11(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 11, k, x) #else -#define KRML_MAYBE_FOR11(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR11(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 12 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR12(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 12, k, x) +# define KRML_MAYBE_FOR12(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 12, k, x) #else -#define KRML_MAYBE_FOR12(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR12(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 13 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR13(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 13, k, x) +# define KRML_MAYBE_FOR13(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 13, k, x) #else -#define KRML_MAYBE_FOR13(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR13(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 14 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR14(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 14, k, x) +# define KRML_MAYBE_FOR14(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 14, k, x) #else -#define KRML_MAYBE_FOR14(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR14(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 15 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR15(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 15, k, x) +# define KRML_MAYBE_FOR15(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 15, k, x) #else -#define KRML_MAYBE_FOR15(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR15(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #if 16 <= KRML_UNROLL_MAX -#define KRML_MAYBE_FOR16(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 16, k, x) +# define KRML_MAYBE_FOR16(i, z, n, k, x) KRML_UNROLL_FOR(i, z, 16, k, x) #else -#define KRML_MAYBE_FOR16(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) +# define KRML_MAYBE_FOR16(i, z, n, k, x) KRML_ACTUAL_FOR(i, z, n, k, x) #endif #endif diff --git a/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_MD5.h b/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_MD5.h index 87ad4cf228..a50ec407f5 100644 --- a/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_MD5.h +++ b/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_MD5.h @@ -37,21 +37,16 @@ extern "C" { #include "../Hacl_Hash_MD5.h" -void Hacl_Hash_Core_MD5_legacy_init(uint32_t *s); +void Hacl_Hash_MD5_init(uint32_t *s); -void Hacl_Hash_Core_MD5_legacy_finish(uint32_t *s, uint8_t *dst); +void Hacl_Hash_MD5_finish(uint32_t *s, uint8_t *dst); -void Hacl_Hash_MD5_legacy_update_multi(uint32_t *s, uint8_t *blocks, uint32_t n_blocks); +void Hacl_Hash_MD5_update_multi(uint32_t *s, uint8_t *blocks, uint32_t n_blocks); void -Hacl_Hash_MD5_legacy_update_last( - uint32_t *s, - uint64_t prev_len, - uint8_t *input, - uint32_t input_len -); - -void Hacl_Hash_MD5_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst); +Hacl_Hash_MD5_update_last(uint32_t *s, uint64_t prev_len, uint8_t *input, uint32_t input_len); + +void Hacl_Hash_MD5_hash_oneshot(uint8_t *output, uint8_t *input, uint32_t input_len); #if defined(__cplusplus) } diff --git a/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA1.h b/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA1.h index d2d9df44c6..b39bad3f3b 100644 --- a/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA1.h +++ b/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA1.h @@ -37,21 +37,16 @@ extern "C" { #include "../Hacl_Hash_SHA1.h" -void Hacl_Hash_Core_SHA1_legacy_init(uint32_t *s); +void Hacl_Hash_SHA1_init(uint32_t *s); -void Hacl_Hash_Core_SHA1_legacy_finish(uint32_t *s, uint8_t *dst); +void Hacl_Hash_SHA1_finish(uint32_t *s, uint8_t *dst); -void Hacl_Hash_SHA1_legacy_update_multi(uint32_t *s, uint8_t *blocks, uint32_t n_blocks); +void Hacl_Hash_SHA1_update_multi(uint32_t *s, uint8_t *blocks, uint32_t n_blocks); void -Hacl_Hash_SHA1_legacy_update_last( - uint32_t *s, - uint64_t prev_len, - uint8_t *input, - uint32_t input_len -); - -void Hacl_Hash_SHA1_legacy_hash(uint8_t *input, uint32_t input_len, uint8_t *dst); +Hacl_Hash_SHA1_update_last(uint32_t *s, uint64_t prev_len, uint8_t *input, uint32_t input_len); + +void Hacl_Hash_SHA1_hash_oneshot(uint8_t *output, uint8_t *input, uint32_t input_len); #if defined(__cplusplus) } diff --git a/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA2.h b/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA2.h index 851f7dc60c..0127f4373f 100644 --- a/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA2.h +++ b/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA2.h @@ -40,141 +40,121 @@ extern "C" { static const uint32_t -Hacl_Impl_SHA2_Generic_h224[8U] = +Hacl_Hash_SHA2_h224[8U] = { - (uint32_t)0xc1059ed8U, (uint32_t)0x367cd507U, (uint32_t)0x3070dd17U, (uint32_t)0xf70e5939U, - (uint32_t)0xffc00b31U, (uint32_t)0x68581511U, (uint32_t)0x64f98fa7U, (uint32_t)0xbefa4fa4U + 0xc1059ed8U, 0x367cd507U, 0x3070dd17U, 0xf70e5939U, 0xffc00b31U, 0x68581511U, 0x64f98fa7U, + 0xbefa4fa4U }; static const uint32_t -Hacl_Impl_SHA2_Generic_h256[8U] = +Hacl_Hash_SHA2_h256[8U] = { - (uint32_t)0x6a09e667U, (uint32_t)0xbb67ae85U, (uint32_t)0x3c6ef372U, (uint32_t)0xa54ff53aU, - (uint32_t)0x510e527fU, (uint32_t)0x9b05688cU, (uint32_t)0x1f83d9abU, (uint32_t)0x5be0cd19U + 0x6a09e667U, 0xbb67ae85U, 0x3c6ef372U, 0xa54ff53aU, 0x510e527fU, 0x9b05688cU, 0x1f83d9abU, + 0x5be0cd19U }; static const uint64_t -Hacl_Impl_SHA2_Generic_h384[8U] = +Hacl_Hash_SHA2_h384[8U] = { - (uint64_t)0xcbbb9d5dc1059ed8U, (uint64_t)0x629a292a367cd507U, (uint64_t)0x9159015a3070dd17U, - (uint64_t)0x152fecd8f70e5939U, (uint64_t)0x67332667ffc00b31U, (uint64_t)0x8eb44a8768581511U, - (uint64_t)0xdb0c2e0d64f98fa7U, (uint64_t)0x47b5481dbefa4fa4U + 0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL, 0x9159015a3070dd17ULL, 0x152fecd8f70e5939ULL, + 0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL, 0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL }; static const uint64_t -Hacl_Impl_SHA2_Generic_h512[8U] = +Hacl_Hash_SHA2_h512[8U] = { - (uint64_t)0x6a09e667f3bcc908U, (uint64_t)0xbb67ae8584caa73bU, (uint64_t)0x3c6ef372fe94f82bU, - (uint64_t)0xa54ff53a5f1d36f1U, (uint64_t)0x510e527fade682d1U, (uint64_t)0x9b05688c2b3e6c1fU, - (uint64_t)0x1f83d9abfb41bd6bU, (uint64_t)0x5be0cd19137e2179U + 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL }; static const uint32_t -Hacl_Impl_SHA2_Generic_k224_256[64U] = +Hacl_Hash_SHA2_k224_256[64U] = { - (uint32_t)0x428a2f98U, (uint32_t)0x71374491U, (uint32_t)0xb5c0fbcfU, (uint32_t)0xe9b5dba5U, - (uint32_t)0x3956c25bU, (uint32_t)0x59f111f1U, (uint32_t)0x923f82a4U, (uint32_t)0xab1c5ed5U, - (uint32_t)0xd807aa98U, (uint32_t)0x12835b01U, (uint32_t)0x243185beU, (uint32_t)0x550c7dc3U, - (uint32_t)0x72be5d74U, (uint32_t)0x80deb1feU, (uint32_t)0x9bdc06a7U, (uint32_t)0xc19bf174U, - (uint32_t)0xe49b69c1U, (uint32_t)0xefbe4786U, (uint32_t)0x0fc19dc6U, (uint32_t)0x240ca1ccU, - (uint32_t)0x2de92c6fU, (uint32_t)0x4a7484aaU, (uint32_t)0x5cb0a9dcU, (uint32_t)0x76f988daU, - (uint32_t)0x983e5152U, (uint32_t)0xa831c66dU, (uint32_t)0xb00327c8U, (uint32_t)0xbf597fc7U, - (uint32_t)0xc6e00bf3U, (uint32_t)0xd5a79147U, (uint32_t)0x06ca6351U, (uint32_t)0x14292967U, - (uint32_t)0x27b70a85U, (uint32_t)0x2e1b2138U, (uint32_t)0x4d2c6dfcU, (uint32_t)0x53380d13U, - (uint32_t)0x650a7354U, (uint32_t)0x766a0abbU, (uint32_t)0x81c2c92eU, (uint32_t)0x92722c85U, - (uint32_t)0xa2bfe8a1U, (uint32_t)0xa81a664bU, (uint32_t)0xc24b8b70U, (uint32_t)0xc76c51a3U, - (uint32_t)0xd192e819U, (uint32_t)0xd6990624U, (uint32_t)0xf40e3585U, (uint32_t)0x106aa070U, - (uint32_t)0x19a4c116U, (uint32_t)0x1e376c08U, (uint32_t)0x2748774cU, (uint32_t)0x34b0bcb5U, - (uint32_t)0x391c0cb3U, (uint32_t)0x4ed8aa4aU, (uint32_t)0x5b9cca4fU, (uint32_t)0x682e6ff3U, - (uint32_t)0x748f82eeU, (uint32_t)0x78a5636fU, (uint32_t)0x84c87814U, (uint32_t)0x8cc70208U, - (uint32_t)0x90befffaU, (uint32_t)0xa4506cebU, (uint32_t)0xbef9a3f7U, (uint32_t)0xc67178f2U + 0x428a2f98U, 0x71374491U, 0xb5c0fbcfU, 0xe9b5dba5U, 0x3956c25bU, 0x59f111f1U, 0x923f82a4U, + 0xab1c5ed5U, 0xd807aa98U, 0x12835b01U, 0x243185beU, 0x550c7dc3U, 0x72be5d74U, 0x80deb1feU, + 0x9bdc06a7U, 0xc19bf174U, 0xe49b69c1U, 0xefbe4786U, 0x0fc19dc6U, 0x240ca1ccU, 0x2de92c6fU, + 0x4a7484aaU, 0x5cb0a9dcU, 0x76f988daU, 0x983e5152U, 0xa831c66dU, 0xb00327c8U, 0xbf597fc7U, + 0xc6e00bf3U, 0xd5a79147U, 0x06ca6351U, 0x14292967U, 0x27b70a85U, 0x2e1b2138U, 0x4d2c6dfcU, + 0x53380d13U, 0x650a7354U, 0x766a0abbU, 0x81c2c92eU, 0x92722c85U, 0xa2bfe8a1U, 0xa81a664bU, + 0xc24b8b70U, 0xc76c51a3U, 0xd192e819U, 0xd6990624U, 0xf40e3585U, 0x106aa070U, 0x19a4c116U, + 0x1e376c08U, 0x2748774cU, 0x34b0bcb5U, 0x391c0cb3U, 0x4ed8aa4aU, 0x5b9cca4fU, 0x682e6ff3U, + 0x748f82eeU, 0x78a5636fU, 0x84c87814U, 0x8cc70208U, 0x90befffaU, 0xa4506cebU, 0xbef9a3f7U, + 0xc67178f2U }; static const uint64_t -Hacl_Impl_SHA2_Generic_k384_512[80U] = +Hacl_Hash_SHA2_k384_512[80U] = { - (uint64_t)0x428a2f98d728ae22U, (uint64_t)0x7137449123ef65cdU, (uint64_t)0xb5c0fbcfec4d3b2fU, - (uint64_t)0xe9b5dba58189dbbcU, (uint64_t)0x3956c25bf348b538U, (uint64_t)0x59f111f1b605d019U, - (uint64_t)0x923f82a4af194f9bU, (uint64_t)0xab1c5ed5da6d8118U, (uint64_t)0xd807aa98a3030242U, - (uint64_t)0x12835b0145706fbeU, (uint64_t)0x243185be4ee4b28cU, (uint64_t)0x550c7dc3d5ffb4e2U, - (uint64_t)0x72be5d74f27b896fU, (uint64_t)0x80deb1fe3b1696b1U, (uint64_t)0x9bdc06a725c71235U, - (uint64_t)0xc19bf174cf692694U, (uint64_t)0xe49b69c19ef14ad2U, (uint64_t)0xefbe4786384f25e3U, - (uint64_t)0x0fc19dc68b8cd5b5U, (uint64_t)0x240ca1cc77ac9c65U, (uint64_t)0x2de92c6f592b0275U, - (uint64_t)0x4a7484aa6ea6e483U, (uint64_t)0x5cb0a9dcbd41fbd4U, (uint64_t)0x76f988da831153b5U, - (uint64_t)0x983e5152ee66dfabU, (uint64_t)0xa831c66d2db43210U, (uint64_t)0xb00327c898fb213fU, - (uint64_t)0xbf597fc7beef0ee4U, (uint64_t)0xc6e00bf33da88fc2U, (uint64_t)0xd5a79147930aa725U, - (uint64_t)0x06ca6351e003826fU, (uint64_t)0x142929670a0e6e70U, (uint64_t)0x27b70a8546d22ffcU, - (uint64_t)0x2e1b21385c26c926U, (uint64_t)0x4d2c6dfc5ac42aedU, (uint64_t)0x53380d139d95b3dfU, - (uint64_t)0x650a73548baf63deU, (uint64_t)0x766a0abb3c77b2a8U, (uint64_t)0x81c2c92e47edaee6U, - (uint64_t)0x92722c851482353bU, (uint64_t)0xa2bfe8a14cf10364U, (uint64_t)0xa81a664bbc423001U, - (uint64_t)0xc24b8b70d0f89791U, (uint64_t)0xc76c51a30654be30U, (uint64_t)0xd192e819d6ef5218U, - (uint64_t)0xd69906245565a910U, (uint64_t)0xf40e35855771202aU, (uint64_t)0x106aa07032bbd1b8U, - (uint64_t)0x19a4c116b8d2d0c8U, (uint64_t)0x1e376c085141ab53U, (uint64_t)0x2748774cdf8eeb99U, - (uint64_t)0x34b0bcb5e19b48a8U, (uint64_t)0x391c0cb3c5c95a63U, (uint64_t)0x4ed8aa4ae3418acbU, - (uint64_t)0x5b9cca4f7763e373U, (uint64_t)0x682e6ff3d6b2b8a3U, (uint64_t)0x748f82ee5defb2fcU, - (uint64_t)0x78a5636f43172f60U, (uint64_t)0x84c87814a1f0ab72U, (uint64_t)0x8cc702081a6439ecU, - (uint64_t)0x90befffa23631e28U, (uint64_t)0xa4506cebde82bde9U, (uint64_t)0xbef9a3f7b2c67915U, - (uint64_t)0xc67178f2e372532bU, (uint64_t)0xca273eceea26619cU, (uint64_t)0xd186b8c721c0c207U, - (uint64_t)0xeada7dd6cde0eb1eU, (uint64_t)0xf57d4f7fee6ed178U, (uint64_t)0x06f067aa72176fbaU, - (uint64_t)0x0a637dc5a2c898a6U, (uint64_t)0x113f9804bef90daeU, (uint64_t)0x1b710b35131c471bU, - (uint64_t)0x28db77f523047d84U, (uint64_t)0x32caab7b40c72493U, (uint64_t)0x3c9ebe0a15c9bebcU, - (uint64_t)0x431d67c49c100d4cU, (uint64_t)0x4cc5d4becb3e42b6U, (uint64_t)0x597f299cfc657e2aU, - (uint64_t)0x5fcb6fab3ad6faecU, (uint64_t)0x6c44198c4a475817U + 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, + 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, + 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, + 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL, + 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, + 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, + 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, + 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, + 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL, + 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, + 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, + 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, + 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, + 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, + 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, + 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, + 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL, 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, + 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, + 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL, + 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL }; -void Hacl_SHA2_Scalar32_sha256_init(uint32_t *hash); +void Hacl_Hash_SHA2_sha256_init(uint32_t *hash); -void Hacl_SHA2_Scalar32_sha256_update_nblocks(uint32_t len, uint8_t *b, uint32_t *st); +void Hacl_Hash_SHA2_sha256_update_nblocks(uint32_t len, uint8_t *b, uint32_t *st); void -Hacl_SHA2_Scalar32_sha256_update_last( - uint64_t totlen, - uint32_t len, - uint8_t *b, - uint32_t *hash -); +Hacl_Hash_SHA2_sha256_update_last(uint64_t totlen, uint32_t len, uint8_t *b, uint32_t *hash); -void Hacl_SHA2_Scalar32_sha256_finish(uint32_t *st, uint8_t *h); +void Hacl_Hash_SHA2_sha256_finish(uint32_t *st, uint8_t *h); -void Hacl_SHA2_Scalar32_sha224_init(uint32_t *hash); +void Hacl_Hash_SHA2_sha224_init(uint32_t *hash); void -Hacl_SHA2_Scalar32_sha224_update_last(uint64_t totlen, uint32_t len, uint8_t *b, uint32_t *st); +Hacl_Hash_SHA2_sha224_update_last(uint64_t totlen, uint32_t len, uint8_t *b, uint32_t *st); -void Hacl_SHA2_Scalar32_sha224_finish(uint32_t *st, uint8_t *h); +void Hacl_Hash_SHA2_sha224_finish(uint32_t *st, uint8_t *h); -void Hacl_SHA2_Scalar32_sha512_init(uint64_t *hash); +void Hacl_Hash_SHA2_sha512_init(uint64_t *hash); -void Hacl_SHA2_Scalar32_sha512_update_nblocks(uint32_t len, uint8_t *b, uint64_t *st); +void Hacl_Hash_SHA2_sha512_update_nblocks(uint32_t len, uint8_t *b, uint64_t *st); void -Hacl_SHA2_Scalar32_sha512_update_last( +Hacl_Hash_SHA2_sha512_update_last( FStar_UInt128_uint128 totlen, uint32_t len, uint8_t *b, uint64_t *hash ); -void Hacl_SHA2_Scalar32_sha512_finish(uint64_t *st, uint8_t *h); +void Hacl_Hash_SHA2_sha512_finish(uint64_t *st, uint8_t *h); -void Hacl_SHA2_Scalar32_sha384_init(uint64_t *hash); +void Hacl_Hash_SHA2_sha384_init(uint64_t *hash); -void Hacl_SHA2_Scalar32_sha384_update_nblocks(uint32_t len, uint8_t *b, uint64_t *st); +void Hacl_Hash_SHA2_sha384_update_nblocks(uint32_t len, uint8_t *b, uint64_t *st); void -Hacl_SHA2_Scalar32_sha384_update_last( +Hacl_Hash_SHA2_sha384_update_last( FStar_UInt128_uint128 totlen, uint32_t len, uint8_t *b, uint64_t *st ); -void Hacl_SHA2_Scalar32_sha384_finish(uint64_t *st, uint8_t *h); +void Hacl_Hash_SHA2_sha384_finish(uint64_t *st, uint8_t *h); #if defined(__cplusplus) } diff --git a/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA3.h b/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA3.h index 1c9808b8dd..b80e81fafb 100644 --- a/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA3.h +++ b/contrib/tools/python3/Modules/_hacl/internal/Hacl_Hash_SHA3.h @@ -53,9 +53,9 @@ Hacl_Hash_SHA3_update_last_sha3( uint32_t input_len ); -void Hacl_Impl_SHA3_state_permute(uint64_t *s); +void Hacl_Hash_SHA3_state_permute(uint64_t *s); -void Hacl_Impl_SHA3_loadState(uint32_t rateInBytes, uint8_t *input, uint64_t *s); +void Hacl_Hash_SHA3_loadState(uint32_t rateInBytes, uint8_t *input, uint64_t *s); #if defined(__cplusplus) } diff --git a/contrib/tools/python3/Modules/_hacl/python_hacl_namespaces.h b/contrib/tools/python3/Modules/_hacl/python_hacl_namespaces.h index 0df236282a..684e7fd2fb 100644 --- a/contrib/tools/python3/Modules/_hacl/python_hacl_namespaces.h +++ b/contrib/tools/python3/Modules/_hacl/python_hacl_namespaces.h @@ -5,59 +5,61 @@ * C's excuse for namespaces: Use globally unique names to avoid linkage * conflicts with builds linking or dynamically loading other code potentially * using HACL* libraries. + * + * To make sure this is effective: cd Modules && nm -a *.o | grep Hacl */ -#define Hacl_Streaming_SHA2_state_sha2_224_s python_hashlib_Hacl_Streaming_SHA2_state_sha2_224_s -#define Hacl_Streaming_SHA2_state_sha2_224 python_hashlib_Hacl_Streaming_SHA2_state_sha2_224 -#define Hacl_Streaming_SHA2_state_sha2_256 python_hashlib_Hacl_Streaming_SHA2_state_sha2_256 -#define Hacl_Streaming_SHA2_state_sha2_384_s python_hashlib_Hacl_Streaming_SHA2_state_sha2_384_s -#define Hacl_Streaming_SHA2_state_sha2_384 python_hashlib_Hacl_Streaming_SHA2_state_sha2_384 -#define Hacl_Streaming_SHA2_state_sha2_512 python_hashlib_Hacl_Streaming_SHA2_state_sha2_512 -#define Hacl_Streaming_SHA2_create_in_256 python_hashlib_Hacl_Streaming_SHA2_create_in_256 -#define Hacl_Streaming_SHA2_create_in_224 python_hashlib_Hacl_Streaming_SHA2_create_in_224 -#define Hacl_Streaming_SHA2_create_in_512 python_hashlib_Hacl_Streaming_SHA2_create_in_512 -#define Hacl_Streaming_SHA2_create_in_384 python_hashlib_Hacl_Streaming_SHA2_create_in_384 -#define Hacl_Streaming_SHA2_copy_256 python_hashlib_Hacl_Streaming_SHA2_copy_256 -#define Hacl_Streaming_SHA2_copy_224 python_hashlib_Hacl_Streaming_SHA2_copy_224 -#define Hacl_Streaming_SHA2_copy_512 python_hashlib_Hacl_Streaming_SHA2_copy_512 -#define Hacl_Streaming_SHA2_copy_384 python_hashlib_Hacl_Streaming_SHA2_copy_384 -#define Hacl_Streaming_SHA2_init_256 python_hashlib_Hacl_Streaming_SHA2_init_256 -#define Hacl_Streaming_SHA2_init_224 python_hashlib_Hacl_Streaming_SHA2_init_224 -#define Hacl_Streaming_SHA2_init_512 python_hashlib_Hacl_Streaming_SHA2_init_512 -#define Hacl_Streaming_SHA2_init_384 python_hashlib_Hacl_Streaming_SHA2_init_384 +#define Hacl_Hash_SHA2_state_sha2_224_s python_hashlib_Hacl_Hash_SHA2_state_sha2_224_s +#define Hacl_Hash_SHA2_state_sha2_224 python_hashlib_Hacl_Hash_SHA2_state_sha2_224 +#define Hacl_Hash_SHA2_state_sha2_256 python_hashlib_Hacl_Hash_SHA2_state_sha2_256 +#define Hacl_Hash_SHA2_state_sha2_384_s python_hashlib_Hacl_Hash_SHA2_state_sha2_384_s +#define Hacl_Hash_SHA2_state_sha2_384 python_hashlib_Hacl_Hash_SHA2_state_sha2_384 +#define Hacl_Hash_SHA2_state_sha2_512 python_hashlib_Hacl_Hash_SHA2_state_sha2_512 +#define Hacl_Hash_SHA2_malloc_256 python_hashlib_Hacl_Hash_SHA2_malloc_256 +#define Hacl_Hash_SHA2_malloc_224 python_hashlib_Hacl_Hash_SHA2_malloc_224 +#define Hacl_Hash_SHA2_malloc_512 python_hashlib_Hacl_Hash_SHA2_malloc_512 +#define Hacl_Hash_SHA2_malloc_384 python_hashlib_Hacl_Hash_SHA2_malloc_384 +#define Hacl_Hash_SHA2_copy_256 python_hashlib_Hacl_Hash_SHA2_copy_256 +#define Hacl_Hash_SHA2_copy_224 python_hashlib_Hacl_Hash_SHA2_copy_224 +#define Hacl_Hash_SHA2_copy_512 python_hashlib_Hacl_Hash_SHA2_copy_512 +#define Hacl_Hash_SHA2_copy_384 python_hashlib_Hacl_Hash_SHA2_copy_384 +#define Hacl_Hash_SHA2_init_256 python_hashlib_Hacl_Hash_SHA2_init_256 +#define Hacl_Hash_SHA2_init_224 python_hashlib_Hacl_Hash_SHA2_init_224 +#define Hacl_Hash_SHA2_init_512 python_hashlib_Hacl_Hash_SHA2_init_512 +#define Hacl_Hash_SHA2_init_384 python_hashlib_Hacl_Hash_SHA2_init_384 #define Hacl_SHA2_Scalar32_sha512_init python_hashlib_Hacl_SHA2_Scalar32_sha512_init -#define Hacl_Streaming_SHA2_update_256 python_hashlib_Hacl_Streaming_SHA2_update_256 -#define Hacl_Streaming_SHA2_update_224 python_hashlib_Hacl_Streaming_SHA2_update_224 -#define Hacl_Streaming_SHA2_update_512 python_hashlib_Hacl_Streaming_SHA2_update_512 -#define Hacl_Streaming_SHA2_update_384 python_hashlib_Hacl_Streaming_SHA2_update_384 -#define Hacl_Streaming_SHA2_finish_256 python_hashlib_Hacl_Streaming_SHA2_finish_256 -#define Hacl_Streaming_SHA2_finish_224 python_hashlib_Hacl_Streaming_SHA2_finish_224 -#define Hacl_Streaming_SHA2_finish_512 python_hashlib_Hacl_Streaming_SHA2_finish_512 -#define Hacl_Streaming_SHA2_finish_384 python_hashlib_Hacl_Streaming_SHA2_finish_384 -#define Hacl_Streaming_SHA2_free_256 python_hashlib_Hacl_Streaming_SHA2_free_256 -#define Hacl_Streaming_SHA2_free_224 python_hashlib_Hacl_Streaming_SHA2_free_224 -#define Hacl_Streaming_SHA2_free_512 python_hashlib_Hacl_Streaming_SHA2_free_512 -#define Hacl_Streaming_SHA2_free_384 python_hashlib_Hacl_Streaming_SHA2_free_384 -#define Hacl_Streaming_SHA2_sha256 python_hashlib_Hacl_Streaming_SHA2_sha256 -#define Hacl_Streaming_SHA2_sha224 python_hashlib_Hacl_Streaming_SHA2_sha224 -#define Hacl_Streaming_SHA2_sha512 python_hashlib_Hacl_Streaming_SHA2_sha512 -#define Hacl_Streaming_SHA2_sha384 python_hashlib_Hacl_Streaming_SHA2_sha384 +#define Hacl_Hash_SHA2_update_256 python_hashlib_Hacl_Hash_SHA2_update_256 +#define Hacl_Hash_SHA2_update_224 python_hashlib_Hacl_Hash_SHA2_update_224 +#define Hacl_Hash_SHA2_update_512 python_hashlib_Hacl_Hash_SHA2_update_512 +#define Hacl_Hash_SHA2_update_384 python_hashlib_Hacl_Hash_SHA2_update_384 +#define Hacl_Hash_SHA2_digest_256 python_hashlib_Hacl_Hash_SHA2_digest_256 +#define Hacl_Hash_SHA2_digest_224 python_hashlib_Hacl_Hash_SHA2_digest_224 +#define Hacl_Hash_SHA2_digest_512 python_hashlib_Hacl_Hash_SHA2_digest_512 +#define Hacl_Hash_SHA2_digest_384 python_hashlib_Hacl_Hash_SHA2_digest_384 +#define Hacl_Hash_SHA2_free_256 python_hashlib_Hacl_Hash_SHA2_free_256 +#define Hacl_Hash_SHA2_free_224 python_hashlib_Hacl_Hash_SHA2_free_224 +#define Hacl_Hash_SHA2_free_512 python_hashlib_Hacl_Hash_SHA2_free_512 +#define Hacl_Hash_SHA2_free_384 python_hashlib_Hacl_Hash_SHA2_free_384 +#define Hacl_Hash_SHA2_sha256 python_hashlib_Hacl_Hash_SHA2_sha256 +#define Hacl_Hash_SHA2_sha224 python_hashlib_Hacl_Hash_SHA2_sha224 +#define Hacl_Hash_SHA2_sha512 python_hashlib_Hacl_Hash_SHA2_sha512 +#define Hacl_Hash_SHA2_sha384 python_hashlib_Hacl_Hash_SHA2_sha384 -#define Hacl_Streaming_MD5_legacy_create_in python_hashlib_Hacl_Streaming_MD5_legacy_create_in -#define Hacl_Streaming_MD5_legacy_init python_hashlib_Hacl_Streaming_MD5_legacy_init -#define Hacl_Streaming_MD5_legacy_update python_hashlib_Hacl_Streaming_MD5_legacy_update -#define Hacl_Streaming_MD5_legacy_finish python_hashlib_Hacl_Streaming_MD5_legacy_finish -#define Hacl_Streaming_MD5_legacy_free python_hashlib_Hacl_Streaming_MD5_legacy_free -#define Hacl_Streaming_MD5_legacy_copy python_hashlib_Hacl_Streaming_MD5_legacy_copy -#define Hacl_Streaming_MD5_legacy_hash python_hashlib_Hacl_Streaming_MD5_legacy_hash +#define Hacl_Hash_MD5_malloc python_hashlib_Hacl_Hash_MD5_malloc +#define Hacl_Hash_MD5_init python_hashlib_Hacl_Hash_MD5_init +#define Hacl_Hash_MD5_update python_hashlib_Hacl_Hash_MD5_update +#define Hacl_Hash_MD5_digest python_hashlib_Hacl_Hash_MD5_digest +#define Hacl_Hash_MD5_free python_hashlib_Hacl_Hash_MD5_free +#define Hacl_Hash_MD5_copy python_hashlib_Hacl_Hash_MD5_copy +#define Hacl_Hash_MD5_hash python_hashlib_Hacl_Hash_MD5_hash -#define Hacl_Streaming_SHA1_legacy_create_in python_hashlib_Hacl_Streaming_SHA1_legacy_create_in -#define Hacl_Streaming_SHA1_legacy_init python_hashlib_Hacl_Streaming_SHA1_legacy_init -#define Hacl_Streaming_SHA1_legacy_update python_hashlib_Hacl_Streaming_SHA1_legacy_update -#define Hacl_Streaming_SHA1_legacy_finish python_hashlib_Hacl_Streaming_SHA1_legacy_finish -#define Hacl_Streaming_SHA1_legacy_free python_hashlib_Hacl_Streaming_SHA1_legacy_free -#define Hacl_Streaming_SHA1_legacy_copy python_hashlib_Hacl_Streaming_SHA1_legacy_copy -#define Hacl_Streaming_SHA1_legacy_hash python_hashlib_Hacl_Streaming_SHA1_legacy_hash +#define Hacl_Hash_SHA1_malloc python_hashlib_Hacl_Hash_SHA1_malloc +#define Hacl_Hash_SHA1_init python_hashlib_Hacl_Hash_SHA1_init +#define Hacl_Hash_SHA1_update python_hashlib_Hacl_Hash_SHA1_update +#define Hacl_Hash_SHA1_digest python_hashlib_Hacl_Hash_SHA1_digest +#define Hacl_Hash_SHA1_free python_hashlib_Hacl_Hash_SHA1_free +#define Hacl_Hash_SHA1_copy python_hashlib_Hacl_Hash_SHA1_copy +#define Hacl_Hash_SHA1_hash python_hashlib_Hacl_Hash_SHA1_hash #define Hacl_Hash_SHA3_update_last_sha3 python_hashlib_Hacl_Hash_SHA3_update_last_sha3 #define Hacl_Hash_SHA3_update_multi_sha3 python_hashlib_Hacl_Hash_SHA3_update_multi_sha3 @@ -72,15 +74,16 @@ #define Hacl_SHA3_sha3_512 python_hashlib_Hacl_SHA3_sha3_512 #define Hacl_SHA3_shake128_hacl python_hashlib_Hacl_SHA3_shake128_hacl #define Hacl_SHA3_shake256_hacl python_hashlib_Hacl_SHA3_shake256_hacl -#define Hacl_Streaming_Keccak_block_len python_hashlib_Hacl_Streaming_Keccak_block_len -#define Hacl_Streaming_Keccak_copy python_hashlib_Hacl_Streaming_Keccak_copy -#define Hacl_Streaming_Keccak_finish python_hashlib_Hacl_Streaming_Keccak_finish -#define Hacl_Streaming_Keccak_free python_hashlib_Hacl_Streaming_Keccak_free -#define Hacl_Streaming_Keccak_get_alg python_hashlib_Hacl_Streaming_Keccak_get_alg -#define Hacl_Streaming_Keccak_hash_len python_hashlib_Hacl_Streaming_Keccak_hash_len -#define Hacl_Streaming_Keccak_is_shake python_hashlib_Hacl_Streaming_Keccak_is_shake -#define Hacl_Streaming_Keccak_malloc python_hashlib_Hacl_Streaming_Keccak_malloc -#define Hacl_Streaming_Keccak_reset python_hashlib_Hacl_Streaming_Keccak_reset -#define Hacl_Streaming_Keccak_update python_hashlib_Hacl_Streaming_Keccak_update +#define Hacl_Hash_SHA3_block_len python_hashlib_Hacl_Hash_SHA3_block_len +#define Hacl_Hash_SHA3_copy python_hashlib_Hacl_Hash_SHA3_copy +#define Hacl_Hash_SHA3_digest python_hashlib_Hacl_Hash_SHA3_digest +#define Hacl_Hash_SHA3_free python_hashlib_Hacl_Hash_SHA3_free +#define Hacl_Hash_SHA3_get_alg python_hashlib_Hacl_Hash_SHA3_get_alg +#define Hacl_Hash_SHA3_hash_len python_hashlib_Hacl_Hash_SHA3_hash_len +#define Hacl_Hash_SHA3_is_shake python_hashlib_Hacl_Hash_SHA3_is_shake +#define Hacl_Hash_SHA3_malloc python_hashlib_Hacl_Hash_SHA3_malloc +#define Hacl_Hash_SHA3_reset python_hashlib_Hacl_Hash_SHA3_reset +#define Hacl_Hash_SHA3_update python_hashlib_Hacl_Hash_SHA3_update +#define Hacl_Hash_SHA3_squeeze python_hashlib_Hacl_Hash_SHA3_squeeze #endif // _PYTHON_HACL_NAMESPACES_H diff --git a/contrib/tools/python3/Modules/_io/bufferedio.c b/contrib/tools/python3/Modules/_io/bufferedio.c index f30d54a5e1..e87d04bd07 100644 --- a/contrib/tools/python3/Modules/_io/bufferedio.c +++ b/contrib/tools/python3/Modules/_io/bufferedio.c @@ -1015,6 +1015,16 @@ _io__Buffered_read1_impl(buffered *self, Py_ssize_t n) Py_DECREF(res); return NULL; } + /* Flush the write buffer if necessary */ + if (self->writable) { + PyObject *r = buffered_flush_and_rewind_unlocked(self); + if (r == NULL) { + LEAVE_BUFFERED(self) + Py_DECREF(res); + return NULL; + } + Py_DECREF(r); + } _bufferedreader_reset_buf(self); r = _bufferedreader_raw_read(self, PyBytes_AS_STRING(res), n); LEAVE_BUFFERED(self) @@ -1276,7 +1286,11 @@ _io__Buffered_tell_impl(buffered *self) if (pos == -1) return NULL; pos -= RAW_OFFSET(self); - /* TODO: sanity check (pos >= 0) */ + + // GH-95782 + if (pos < 0) + pos = 0; + return PyLong_FromOff_t(pos); } @@ -1345,6 +1359,11 @@ _io__Buffered_seek_impl(buffered *self, PyObject *targetobj, int whence) offset = target; if (offset >= -self->pos && offset <= avail) { self->pos += offset; + + // GH-95782 + if (current - avail + offset < 0) + return PyLong_FromOff_t(0); + return PyLong_FromOff_t(current - avail + offset); } } diff --git a/contrib/tools/python3/Modules/_multiprocessing/posixshmem.c b/contrib/tools/python3/Modules/_multiprocessing/posixshmem.c index 88c93fe313..7af995b396 100644 --- a/contrib/tools/python3/Modules/_multiprocessing/posixshmem.c +++ b/contrib/tools/python3/Modules/_multiprocessing/posixshmem.c @@ -42,10 +42,15 @@ _posixshmem_shm_open_impl(PyObject *module, PyObject *path, int flags, { int fd; int async_err = 0; - const char *name = PyUnicode_AsUTF8(path); + Py_ssize_t name_size; + const char *name = PyUnicode_AsUTF8AndSize(path, &name_size); if (name == NULL) { return -1; } + if (strlen(name) != (size_t)name_size) { + PyErr_SetString(PyExc_ValueError, "embedded null character"); + return -1; + } do { Py_BEGIN_ALLOW_THREADS fd = shm_open(name, flags, mode); @@ -81,10 +86,15 @@ _posixshmem_shm_unlink_impl(PyObject *module, PyObject *path) { int rv; int async_err = 0; - const char *name = PyUnicode_AsUTF8(path); + Py_ssize_t name_size; + const char *name = PyUnicode_AsUTF8AndSize(path, &name_size); if (name == NULL) { return NULL; } + if (strlen(name) != (size_t)name_size) { + PyErr_SetString(PyExc_ValueError, "embedded null character"); + return NULL; + } do { Py_BEGIN_ALLOW_THREADS rv = shm_unlink(name); diff --git a/contrib/tools/python3/Modules/_posixsubprocess.c b/contrib/tools/python3/Modules/_posixsubprocess.c index d75bb92757..35ea2ac306 100644 --- a/contrib/tools/python3/Modules/_posixsubprocess.c +++ b/contrib/tools/python3/Modules/_posixsubprocess.c @@ -946,7 +946,9 @@ subprocess_fork_exec_impl(PyObject *module, PyObject *process_args, Py_ssize_t fds_to_keep_len = PyTuple_GET_SIZE(py_fds_to_keep); PyInterpreterState *interp = PyInterpreterState_Get(); - if ((preexec_fn != Py_None) && interp->finalizing) { + if ((preexec_fn != Py_None) && + _PyInterpreterState_GetFinalizing(interp) != NULL) + { PyErr_SetString(PyExc_RuntimeError, "preexec_fn not supported at interpreter shutdown"); return NULL; diff --git a/contrib/tools/python3/Modules/_sqlite/ya.make b/contrib/tools/python3/Modules/_sqlite/ya.make index c8e770686f..49635c2d57 100644 --- a/contrib/tools/python3/Modules/_sqlite/ya.make +++ b/contrib/tools/python3/Modules/_sqlite/ya.make @@ -2,9 +2,9 @@ LIBRARY() -VERSION(3.12.2) +VERSION(3.12.3) -ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.2.tar.gz) +ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.3.tar.gz) LICENSE(Python-2.0) diff --git a/contrib/tools/python3/Modules/_ssl.c b/contrib/tools/python3/Modules/_ssl.c index 7b4e9b5d69..e72675c6b5 100644 --- a/contrib/tools/python3/Modules/_ssl.c +++ b/contrib/tools/python3/Modules/_ssl.c @@ -3143,7 +3143,6 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version) result = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL"); } if (result == 0) { - Py_DECREF(self); ERR_clear_error(); PyErr_SetString(get_state_ctx(self)->PySSLErrorObject, "No cipher can be selected."); @@ -4520,6 +4519,50 @@ set_sni_callback(PySSLContext *self, PyObject *arg, void *c) return 0; } +#if OPENSSL_VERSION_NUMBER < 0x30300000L +static X509_OBJECT *x509_object_dup(const X509_OBJECT *obj) +{ + int ok; + X509_OBJECT *ret = X509_OBJECT_new(); + if (ret == NULL) { + return NULL; + } + switch (X509_OBJECT_get_type(obj)) { + case X509_LU_X509: + ok = X509_OBJECT_set1_X509(ret, X509_OBJECT_get0_X509(obj)); + break; + case X509_LU_CRL: + /* X509_OBJECT_get0_X509_CRL was not const-correct prior to 3.0.*/ + ok = X509_OBJECT_set1_X509_CRL( + ret, X509_OBJECT_get0_X509_CRL((X509_OBJECT *)obj)); + break; + default: + /* We cannot duplicate unrecognized types in a polyfill, but it is + * safe to leave an empty object. The caller will ignore it. */ + ok = 1; + break; + } + if (!ok) { + X509_OBJECT_free(ret); + return NULL; + } + return ret; +} + +static STACK_OF(X509_OBJECT) * +X509_STORE_get1_objects(X509_STORE *store) +{ + STACK_OF(X509_OBJECT) *ret; + if (!X509_STORE_lock(store)) { + return NULL; + } + ret = sk_X509_OBJECT_deep_copy(X509_STORE_get0_objects(store), + x509_object_dup, X509_OBJECT_free); + X509_STORE_unlock(store); + return ret; +} +#endif + PyDoc_STRVAR(PySSLContext_sni_callback_doc, "Set a callback that will be called when a server name is provided by the SSL/TLS client in the SNI extension.\n\ \n\ @@ -4549,7 +4592,12 @@ _ssl__SSLContext_cert_store_stats_impl(PySSLContext *self) int x509 = 0, crl = 0, ca = 0, i; store = SSL_CTX_get_cert_store(self->ctx); - objs = X509_STORE_get0_objects(store); + objs = X509_STORE_get1_objects(store); + if (objs == NULL) { + PyErr_SetString(PyExc_MemoryError, "failed to query cert store"); + return NULL; + } + for (i = 0; i < sk_X509_OBJECT_num(objs); i++) { obj = sk_X509_OBJECT_value(objs, i); switch (X509_OBJECT_get_type(obj)) { @@ -4563,12 +4611,11 @@ _ssl__SSLContext_cert_store_stats_impl(PySSLContext *self) crl++; break; default: - /* Ignore X509_LU_FAIL, X509_LU_RETRY, X509_LU_PKEY. - * As far as I can tell they are internal states and never - * stored in a cert store */ + /* Ignore unrecognized types. */ break; } } + sk_X509_OBJECT_pop_free(objs, X509_OBJECT_free); return Py_BuildValue("{sisisi}", "x509", x509, "crl", crl, "x509_ca", ca); } @@ -4600,7 +4647,12 @@ _ssl__SSLContext_get_ca_certs_impl(PySSLContext *self, int binary_form) } store = SSL_CTX_get_cert_store(self->ctx); - objs = X509_STORE_get0_objects(store); + objs = X509_STORE_get1_objects(store); + if (objs == NULL) { + PyErr_SetString(PyExc_MemoryError, "failed to query cert store"); + goto error; + } + for (i = 0; i < sk_X509_OBJECT_num(objs); i++) { X509_OBJECT *obj; X509 *cert; @@ -4628,9 +4680,11 @@ _ssl__SSLContext_get_ca_certs_impl(PySSLContext *self, int binary_form) } Py_CLEAR(ci); } + sk_X509_OBJECT_pop_free(objs, X509_OBJECT_free); return rlist; error: + sk_X509_OBJECT_pop_free(objs, X509_OBJECT_free); Py_XDECREF(ci); Py_XDECREF(rlist); return NULL; diff --git a/contrib/tools/python3/Modules/_threadmodule.c b/contrib/tools/python3/Modules/_threadmodule.c index 568fe8375d..365f446008 100644 --- a/contrib/tools/python3/Modules/_threadmodule.c +++ b/contrib/tools/python3/Modules/_threadmodule.c @@ -1190,7 +1190,7 @@ thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs) "thread is not supported for isolated subinterpreters"); return NULL; } - if (interp->finalizing) { + if (_PyInterpreterState_GetFinalizing(interp) != NULL) { PyErr_SetString(PyExc_RuntimeError, "can't create new thread at interpreter shutdown"); return NULL; diff --git a/contrib/tools/python3/Modules/arraymodule.c b/contrib/tools/python3/Modules/arraymodule.c index 6680820d8e..19ee83d24c 100644 --- a/contrib/tools/python3/Modules/arraymodule.c +++ b/contrib/tools/python3/Modules/arraymodule.c @@ -244,7 +244,7 @@ BB_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v) if (!PyArg_Parse(v, "b;array item must be integer", &x)) return -1; if (i >= 0) - ((char *)ap->ob_item)[i] = x; + ((unsigned char *)ap->ob_item)[i] = x; return 0; } diff --git a/contrib/tools/python3/Modules/clinic/_elementtree.c.h b/contrib/tools/python3/Modules/clinic/_elementtree.c.h index 0b3a86159c..d635d33d85 100644 --- a/contrib/tools/python3/Modules/clinic/_elementtree.c.h +++ b/contrib/tools/python3/Modules/clinic/_elementtree.c.h @@ -1168,6 +1168,23 @@ _elementtree_XMLParser_close(XMLParserObject *self, PyObject *Py_UNUSED(ignored) return _elementtree_XMLParser_close_impl(self); } +PyDoc_STRVAR(_elementtree_XMLParser_flush__doc__, +"flush($self, /)\n" +"--\n" +"\n"); + +#define _ELEMENTTREE_XMLPARSER_FLUSH_METHODDEF \ + {"flush", (PyCFunction)_elementtree_XMLParser_flush, METH_NOARGS, _elementtree_XMLParser_flush__doc__}, + +static PyObject * +_elementtree_XMLParser_flush_impl(XMLParserObject *self); + +static PyObject * +_elementtree_XMLParser_flush(XMLParserObject *self, PyObject *Py_UNUSED(ignored)) +{ + return _elementtree_XMLParser_flush_impl(self); +} + PyDoc_STRVAR(_elementtree_XMLParser_feed__doc__, "feed($self, data, /)\n" "--\n" @@ -1218,4 +1235,4 @@ skip_optional: exit: return return_value; } -/*[clinic end generated code: output=31c4780c4df68441 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ec30550fd83b2791 input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Modules/clinic/pyexpat.c.h b/contrib/tools/python3/Modules/clinic/pyexpat.c.h index 34937c5d59..20a28dc6a7 100644 --- a/contrib/tools/python3/Modules/clinic/pyexpat.c.h +++ b/contrib/tools/python3/Modules/clinic/pyexpat.c.h @@ -8,6 +8,53 @@ preserve #endif +PyDoc_STRVAR(pyexpat_xmlparser_SetReparseDeferralEnabled__doc__, +"SetReparseDeferralEnabled($self, enabled, /)\n" +"--\n" +"\n" +"Enable/Disable reparse deferral; enabled by default with Expat >=2.6.0."); + +#define PYEXPAT_XMLPARSER_SETREPARSEDEFERRALENABLED_METHODDEF \ + {"SetReparseDeferralEnabled", (PyCFunction)pyexpat_xmlparser_SetReparseDeferralEnabled, METH_O, pyexpat_xmlparser_SetReparseDeferralEnabled__doc__}, + +static PyObject * +pyexpat_xmlparser_SetReparseDeferralEnabled_impl(xmlparseobject *self, + int enabled); + +static PyObject * +pyexpat_xmlparser_SetReparseDeferralEnabled(xmlparseobject *self, PyObject *arg) +{ + PyObject *return_value = NULL; + int enabled; + + enabled = PyObject_IsTrue(arg); + if (enabled < 0) { + goto exit; + } + return_value = pyexpat_xmlparser_SetReparseDeferralEnabled_impl(self, enabled); + +exit: + return return_value; +} + +PyDoc_STRVAR(pyexpat_xmlparser_GetReparseDeferralEnabled__doc__, +"GetReparseDeferralEnabled($self, /)\n" +"--\n" +"\n" +"Retrieve reparse deferral enabled status; always returns false with Expat <2.6.0."); + +#define PYEXPAT_XMLPARSER_GETREPARSEDEFERRALENABLED_METHODDEF \ + {"GetReparseDeferralEnabled", (PyCFunction)pyexpat_xmlparser_GetReparseDeferralEnabled, METH_NOARGS, pyexpat_xmlparser_GetReparseDeferralEnabled__doc__}, + +static PyObject * +pyexpat_xmlparser_GetReparseDeferralEnabled_impl(xmlparseobject *self); + +static PyObject * +pyexpat_xmlparser_GetReparseDeferralEnabled(xmlparseobject *self, PyObject *Py_UNUSED(ignored)) +{ + return pyexpat_xmlparser_GetReparseDeferralEnabled_impl(self); +} + PyDoc_STRVAR(pyexpat_xmlparser_Parse__doc__, "Parse($self, data, isfinal=False, /)\n" "--\n" @@ -498,4 +545,4 @@ exit: #ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF #define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF #endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */ -/*[clinic end generated code: output=63efc62e24a7b5a7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=8625852bb44a5e56 input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Modules/gcmodule.c b/contrib/tools/python3/Modules/gcmodule.c index b7cb30ab7e..5f2820c848 100644 --- a/contrib/tools/python3/Modules/gcmodule.c +++ b/contrib/tools/python3/Modules/gcmodule.c @@ -2290,6 +2290,9 @@ void _Py_RunGC(PyThreadState *tstate) { GCState *gcstate = &tstate->interp->gc; + if (!gcstate->enabled) { + return; + } gcstate->collecting = 1; gc_collect_generations(tstate); gcstate->collecting = 0; diff --git a/contrib/tools/python3/Modules/getpath.c b/contrib/tools/python3/Modules/getpath.c index bd6920cf06..9dbe2c2505 100644 --- a/contrib/tools/python3/Modules/getpath.c +++ b/contrib/tools/python3/Modules/getpath.c @@ -260,6 +260,10 @@ getpath_joinpath(PyObject *Py_UNUSED(self), PyObject *args) } /* Convert all parts to wchar and accumulate max final length */ wchar_t **parts = (wchar_t **)PyMem_Malloc(n * sizeof(wchar_t *)); + if (parts == NULL) { + PyErr_NoMemory(); + return NULL; + } memset(parts, 0, n * sizeof(wchar_t *)); Py_ssize_t cchFinal = 0; Py_ssize_t first = 0; diff --git a/contrib/tools/python3/Modules/itertoolsmodule.c b/contrib/tools/python3/Modules/itertoolsmodule.c index 24e77c485d..d42f9dd076 100644 --- a/contrib/tools/python3/Modules/itertoolsmodule.c +++ b/contrib/tools/python3/Modules/itertoolsmodule.c @@ -810,10 +810,9 @@ teedataobject_traverse(teedataobject *tdo, visitproc visit, void * arg) } static void -teedataobject_safe_decref(PyObject *obj, PyTypeObject *tdo_type) +teedataobject_safe_decref(PyObject *obj) { - while (obj && Py_IS_TYPE(obj, tdo_type) && - Py_REFCNT(obj) == 1) { + while (obj && Py_REFCNT(obj) == 1) { PyObject *nextlink = ((teedataobject *)obj)->nextlink; ((teedataobject *)obj)->nextlink = NULL; Py_SETREF(obj, nextlink); @@ -832,8 +831,7 @@ teedataobject_clear(teedataobject *tdo) Py_CLEAR(tdo->values[i]); tmp = tdo->nextlink; tdo->nextlink = NULL; - itertools_state *state = get_module_state_by_cls(Py_TYPE(tdo)); - teedataobject_safe_decref(tmp, state->teedataobject_type); + teedataobject_safe_decref(tmp); return 0; } @@ -4618,15 +4616,15 @@ batched(p, n) --> [p0, p1, ..., p_n-1], [p_n, p_n+1, ..., p_2n-1], ...\n\ chain(p, q, ...) --> p0, p1, ... plast, q0, q1, ...\n\ chain.from_iterable([p, q, ...]) --> p0, p1, ... plast, q0, q1, ...\n\ compress(data, selectors) --> (d[0] if s[0]), (d[1] if s[1]), ...\n\ -dropwhile(pred, seq) --> seq[n], seq[n+1], starting when pred fails\n\ +dropwhile(predicate, seq) --> seq[n], seq[n+1], starting when predicate fails\n\ groupby(iterable[, keyfunc]) --> sub-iterators grouped by value of keyfunc(v)\n\ -filterfalse(pred, seq) --> elements of seq where pred(elem) is False\n\ +filterfalse(predicate, seq) --> elements of seq where predicate(elem) is False\n\ islice(seq, [start,] stop [, step]) --> elements from\n\ seq[start:stop:step]\n\ pairwise(s) --> (s[0],s[1]), (s[1],s[2]), (s[2], s[3]), ...\n\ starmap(fun, seq) --> fun(*seq[0]), fun(*seq[1]), ...\n\ tee(it, n=2) --> (it1, it2 , ... itn) splits one iterator into n\n\ -takewhile(pred, seq) --> seq[0], seq[1], until pred fails\n\ +takewhile(predicate, seq) --> seq[0], seq[1], until predicate fails\n\ zip_longest(p, q, ...) --> (p[0], q[0]), (p[1], q[1]), ...\n\ \n\ Combinatoric generators:\n\ diff --git a/contrib/tools/python3/Modules/md5module.c b/contrib/tools/python3/Modules/md5module.c index 2122f8b18b..dcc9da38d7 100644 --- a/contrib/tools/python3/Modules/md5module.c +++ b/contrib/tools/python3/Modules/md5module.c @@ -52,7 +52,7 @@ typedef struct { // Prevents undefined behavior via multiple threads entering the C API. // The lock will be NULL before threaded access has been enabled. PyThread_type_lock lock; - Hacl_Streaming_MD5_state *hash_state; + Hacl_Hash_MD5_state_t *hash_state; } MD5object; #include "clinic/md5module.c.h" @@ -90,11 +90,11 @@ MD5_traverse(PyObject *ptr, visitproc visit, void *arg) static void MD5_dealloc(MD5object *ptr) { - Hacl_Streaming_MD5_legacy_free(ptr->hash_state); + Hacl_Hash_MD5_free(ptr->hash_state); if (ptr->lock != NULL) { PyThread_free_lock(ptr->lock); } - PyTypeObject *tp = Py_TYPE(ptr); + PyTypeObject *tp = Py_TYPE((PyObject*)ptr); PyObject_GC_UnTrack(ptr); PyObject_GC_Del(ptr); Py_DECREF(tp); @@ -122,7 +122,7 @@ MD5Type_copy_impl(MD5object *self, PyTypeObject *cls) return NULL; ENTER_HASHLIB(self); - newobj->hash_state = Hacl_Streaming_MD5_legacy_copy(self->hash_state); + newobj->hash_state = Hacl_Hash_MD5_copy(self->hash_state); LEAVE_HASHLIB(self); return (PyObject *)newobj; } @@ -139,7 +139,7 @@ MD5Type_digest_impl(MD5object *self) { unsigned char digest[MD5_DIGESTSIZE]; ENTER_HASHLIB(self); - Hacl_Streaming_MD5_legacy_finish(self->hash_state, digest); + Hacl_Hash_MD5_digest(self->hash_state, digest); LEAVE_HASHLIB(self); return PyBytes_FromStringAndSize((const char *)digest, MD5_DIGESTSIZE); } @@ -156,20 +156,20 @@ MD5Type_hexdigest_impl(MD5object *self) { unsigned char digest[MD5_DIGESTSIZE]; ENTER_HASHLIB(self); - Hacl_Streaming_MD5_legacy_finish(self->hash_state, digest); + Hacl_Hash_MD5_digest(self->hash_state, digest); LEAVE_HASHLIB(self); return _Py_strhex((const char*)digest, MD5_DIGESTSIZE); } -static void update(Hacl_Streaming_MD5_state *state, uint8_t *buf, Py_ssize_t len) { +static void update(Hacl_Hash_MD5_state_t *state, uint8_t *buf, Py_ssize_t len) { #if PY_SSIZE_T_MAX > UINT32_MAX while (len > UINT32_MAX) { - Hacl_Streaming_MD5_legacy_update(state, buf, UINT32_MAX); + Hacl_Hash_MD5_update(state, buf, UINT32_MAX); len -= UINT32_MAX; buf += UINT32_MAX; } #endif - Hacl_Streaming_MD5_legacy_update(state, buf, (uint32_t) len); + Hacl_Hash_MD5_update(state, buf, (uint32_t) len); } /*[clinic input] @@ -293,7 +293,7 @@ _md5_md5_impl(PyObject *module, PyObject *string, int usedforsecurity) return NULL; } - new->hash_state = Hacl_Streaming_MD5_legacy_create_in(); + new->hash_state = Hacl_Hash_MD5_malloc(); if (PyErr_Occurred()) { Py_DECREF(new); diff --git a/contrib/tools/python3/Modules/overlapped.c b/contrib/tools/python3/Modules/overlapped.c index afdd78d1bc..686ecf8b33 100644 --- a/contrib/tools/python3/Modules/overlapped.c +++ b/contrib/tools/python3/Modules/overlapped.c @@ -719,6 +719,24 @@ Overlapped_dealloc(OverlappedObject *self) if (!HasOverlappedIoCompleted(&self->overlapped) && self->type != TYPE_NOT_STARTED) { + // NOTE: We should not get here, if we do then something is wrong in + // the IocpProactor or ProactorEventLoop. Since everything uses IOCP if + // the overlapped IO hasn't completed yet then we should not be + // deallocating! + // + // The problem is likely that this OverlappedObject was removed from + // the IocpProactor._cache before it was complete. The _cache holds a + // reference while IO is pending so that it does not get deallocated + // while the kernel has retained the OVERLAPPED structure. + // + // CancelIoEx (likely called from self.cancel()) may have successfully + // completed, but the OVERLAPPED is still in use until either + // HasOverlappedIoCompleted() is true or GetQueuedCompletionStatus has + // returned this OVERLAPPED object. + // + // NOTE: Waiting when IOCP is in use can hang indefinitely, but this + // CancelIoEx is superfluous in that self.cancel() was already called, + // so I've only ever seen this return FALSE with GLE=ERROR_NOT_FOUND Py_BEGIN_ALLOW_THREADS if (CancelIoEx(self->handle, &self->overlapped)) wait = TRUE; @@ -2039,6 +2057,7 @@ overlapped_exec(PyObject *module) WINAPI_CONSTANT(F_DWORD, ERROR_OPERATION_ABORTED); WINAPI_CONSTANT(F_DWORD, ERROR_SEM_TIMEOUT); WINAPI_CONSTANT(F_DWORD, ERROR_PIPE_BUSY); + WINAPI_CONSTANT(F_DWORD, ERROR_PORT_UNREACHABLE); WINAPI_CONSTANT(F_DWORD, INFINITE); WINAPI_CONSTANT(F_HANDLE, INVALID_HANDLE_VALUE); WINAPI_CONSTANT(F_HANDLE, NULL); diff --git a/contrib/tools/python3/Modules/posixmodule.c b/contrib/tools/python3/Modules/posixmodule.c index c99c69d018..8fb0d3ceda 100644 --- a/contrib/tools/python3/Modules/posixmodule.c +++ b/contrib/tools/python3/Modules/posixmodule.c @@ -7664,7 +7664,7 @@ os_fork1_impl(PyObject *module) pid_t pid; PyInterpreterState *interp = _PyInterpreterState_GET(); - if (interp->finalizing) { + if (_PyInterpreterState_GetFinalizing(interp) != NULL) { PyErr_SetString(PyExc_RuntimeError, "can't fork at interpreter shutdown"); return NULL; @@ -7708,7 +7708,7 @@ os_fork_impl(PyObject *module) { pid_t pid; PyInterpreterState *interp = _PyInterpreterState_GET(); - if (interp->finalizing) { + if (_PyInterpreterState_GetFinalizing(interp) != NULL) { PyErr_SetString(PyExc_RuntimeError, "can't fork at interpreter shutdown"); return NULL; @@ -8395,7 +8395,7 @@ os_forkpty_impl(PyObject *module) pid_t pid; PyInterpreterState *interp = _PyInterpreterState_GET(); - if (interp->finalizing) { + if (_PyInterpreterState_GetFinalizing(interp) != NULL) { PyErr_SetString(PyExc_RuntimeError, "can't fork at interpreter shutdown"); return NULL; @@ -9249,36 +9249,39 @@ wait_helper(PyObject *module, pid_t pid, int status, struct rusage *ru) if (!result) return NULL; + int pos = 0; + #ifndef doubletime #define doubletime(TV) ((double)(TV).tv_sec + (TV).tv_usec * 0.000001) #endif - PyStructSequence_SET_ITEM(result, 0, - PyFloat_FromDouble(doubletime(ru->ru_utime))); - PyStructSequence_SET_ITEM(result, 1, - PyFloat_FromDouble(doubletime(ru->ru_stime))); -#define SET_INT(result, index, value)\ - PyStructSequence_SET_ITEM(result, index, PyLong_FromLong(value)) - SET_INT(result, 2, ru->ru_maxrss); - SET_INT(result, 3, ru->ru_ixrss); - SET_INT(result, 4, ru->ru_idrss); - SET_INT(result, 5, ru->ru_isrss); - SET_INT(result, 6, ru->ru_minflt); - SET_INT(result, 7, ru->ru_majflt); - SET_INT(result, 8, ru->ru_nswap); - SET_INT(result, 9, ru->ru_inblock); - SET_INT(result, 10, ru->ru_oublock); - SET_INT(result, 11, ru->ru_msgsnd); - SET_INT(result, 12, ru->ru_msgrcv); - SET_INT(result, 13, ru->ru_nsignals); - SET_INT(result, 14, ru->ru_nvcsw); - SET_INT(result, 15, ru->ru_nivcsw); -#undef SET_INT - - if (PyErr_Occurred()) { - Py_DECREF(result); - return NULL; - } +#define SET_RESULT(CALL) \ + do { \ + PyObject *item = (CALL); \ + if (item == NULL) { \ + Py_DECREF(result); \ + return NULL; \ + } \ + PyStructSequence_SET_ITEM(result, pos++, item); \ + } while(0) + + SET_RESULT(PyFloat_FromDouble(doubletime(ru->ru_utime))); + SET_RESULT(PyFloat_FromDouble(doubletime(ru->ru_stime))); + SET_RESULT(PyLong_FromLong(ru->ru_maxrss)); + SET_RESULT(PyLong_FromLong(ru->ru_ixrss)); + SET_RESULT(PyLong_FromLong(ru->ru_idrss)); + SET_RESULT(PyLong_FromLong(ru->ru_isrss)); + SET_RESULT(PyLong_FromLong(ru->ru_minflt)); + SET_RESULT(PyLong_FromLong(ru->ru_majflt)); + SET_RESULT(PyLong_FromLong(ru->ru_nswap)); + SET_RESULT(PyLong_FromLong(ru->ru_inblock)); + SET_RESULT(PyLong_FromLong(ru->ru_oublock)); + SET_RESULT(PyLong_FromLong(ru->ru_msgsnd)); + SET_RESULT(PyLong_FromLong(ru->ru_msgrcv)); + SET_RESULT(PyLong_FromLong(ru->ru_nsignals)); + SET_RESULT(PyLong_FromLong(ru->ru_nvcsw)); + SET_RESULT(PyLong_FromLong(ru->ru_nivcsw)); +#undef SET_RESULT return Py_BuildValue("NiN", PyLong_FromPid(pid), status, result); } @@ -9401,15 +9404,25 @@ os_waitid_impl(PyObject *module, idtype_t idtype, id_t id, int options) if (!result) return NULL; - PyStructSequence_SET_ITEM(result, 0, PyLong_FromPid(si.si_pid)); - PyStructSequence_SET_ITEM(result, 1, _PyLong_FromUid(si.si_uid)); - PyStructSequence_SET_ITEM(result, 2, PyLong_FromLong((long)(si.si_signo))); - PyStructSequence_SET_ITEM(result, 3, PyLong_FromLong((long)(si.si_status))); - PyStructSequence_SET_ITEM(result, 4, PyLong_FromLong((long)(si.si_code))); - if (PyErr_Occurred()) { - Py_DECREF(result); - return NULL; - } + int pos = 0; + +#define SET_RESULT(CALL) \ + do { \ + PyObject *item = (CALL); \ + if (item == NULL) { \ + Py_DECREF(result); \ + return NULL; \ + } \ + PyStructSequence_SET_ITEM(result, pos++, item); \ + } while(0) + + SET_RESULT(PyLong_FromPid(si.si_pid)); + SET_RESULT(_PyLong_FromUid(si.si_uid)); + SET_RESULT(PyLong_FromLong((long)(si.si_signo))); + SET_RESULT(PyLong_FromLong((long)(si.si_status))); + SET_RESULT(PyLong_FromLong((long)(si.si_code))); + +#undef SET_RESULT return result; } @@ -12362,46 +12375,50 @@ _pystatvfs_fromstructstatvfs(PyObject *module, struct statvfs st) { if (v == NULL) return NULL; + int pos = 0; + +#define SET_RESULT(CALL) \ + do { \ + PyObject *item = (CALL); \ + if (item == NULL) { \ + Py_DECREF(v); \ + return NULL; \ + } \ + PyStructSequence_SET_ITEM(v, pos++, item); \ + } while(0) + #if !defined(HAVE_LARGEFILE_SUPPORT) - PyStructSequence_SET_ITEM(v, 0, PyLong_FromLong((long) st.f_bsize)); - PyStructSequence_SET_ITEM(v, 1, PyLong_FromLong((long) st.f_frsize)); - PyStructSequence_SET_ITEM(v, 2, PyLong_FromLong((long) st.f_blocks)); - PyStructSequence_SET_ITEM(v, 3, PyLong_FromLong((long) st.f_bfree)); - PyStructSequence_SET_ITEM(v, 4, PyLong_FromLong((long) st.f_bavail)); - PyStructSequence_SET_ITEM(v, 5, PyLong_FromLong((long) st.f_files)); - PyStructSequence_SET_ITEM(v, 6, PyLong_FromLong((long) st.f_ffree)); - PyStructSequence_SET_ITEM(v, 7, PyLong_FromLong((long) st.f_favail)); - PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flag)); - PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namemax)); + SET_RESULT(PyLong_FromLong((long) st.f_bsize)); + SET_RESULT(PyLong_FromLong((long) st.f_frsize)); + SET_RESULT(PyLong_FromLong((long) st.f_blocks)); + SET_RESULT(PyLong_FromLong((long) st.f_bfree)); + SET_RESULT(PyLong_FromLong((long) st.f_bavail)); + SET_RESULT(PyLong_FromLong((long) st.f_files)); + SET_RESULT(PyLong_FromLong((long) st.f_ffree)); + SET_RESULT(PyLong_FromLong((long) st.f_favail)); + SET_RESULT(PyLong_FromLong((long) st.f_flag)); + SET_RESULT(PyLong_FromLong((long) st.f_namemax)); #else - PyStructSequence_SET_ITEM(v, 0, PyLong_FromLong((long) st.f_bsize)); - PyStructSequence_SET_ITEM(v, 1, PyLong_FromLong((long) st.f_frsize)); - PyStructSequence_SET_ITEM(v, 2, - PyLong_FromLongLong((long long) st.f_blocks)); - PyStructSequence_SET_ITEM(v, 3, - PyLong_FromLongLong((long long) st.f_bfree)); - PyStructSequence_SET_ITEM(v, 4, - PyLong_FromLongLong((long long) st.f_bavail)); - PyStructSequence_SET_ITEM(v, 5, - PyLong_FromLongLong((long long) st.f_files)); - PyStructSequence_SET_ITEM(v, 6, - PyLong_FromLongLong((long long) st.f_ffree)); - PyStructSequence_SET_ITEM(v, 7, - PyLong_FromLongLong((long long) st.f_favail)); - PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flag)); - PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namemax)); + SET_RESULT(PyLong_FromLong((long) st.f_bsize)); + SET_RESULT(PyLong_FromLong((long) st.f_frsize)); + SET_RESULT(PyLong_FromLongLong((long long) st.f_blocks)); + SET_RESULT(PyLong_FromLongLong((long long) st.f_bfree)); + SET_RESULT(PyLong_FromLongLong((long long) st.f_bavail)); + SET_RESULT(PyLong_FromLongLong((long long) st.f_files)); + SET_RESULT(PyLong_FromLongLong((long long) st.f_ffree)); + SET_RESULT(PyLong_FromLongLong((long long) st.f_favail)); + SET_RESULT(PyLong_FromLong((long) st.f_flag)); + SET_RESULT(PyLong_FromLong((long) st.f_namemax)); #endif /* The _ALL_SOURCE feature test macro defines f_fsid as a structure * (issue #32390). */ #if defined(_AIX) && defined(_ALL_SOURCE) - PyStructSequence_SET_ITEM(v, 10, PyLong_FromUnsignedLong(st.f_fsid.val[0])); + SET_RESULT(PyLong_FromUnsignedLong(st.f_fsid.val[0])); #else - PyStructSequence_SET_ITEM(v, 10, PyLong_FromUnsignedLong(st.f_fsid)); + SET_RESULT(PyLong_FromUnsignedLong(st.f_fsid)); #endif - if (PyErr_Occurred()) { - Py_DECREF(v); - return NULL; - } + +#undef SET_RESULT return v; } @@ -14331,12 +14348,23 @@ os_get_terminal_size_impl(PyObject *module, int fd) termsize = PyStructSequence_New((PyTypeObject *)TerminalSizeType); if (termsize == NULL) return NULL; - PyStructSequence_SET_ITEM(termsize, 0, PyLong_FromLong(columns)); - PyStructSequence_SET_ITEM(termsize, 1, PyLong_FromLong(lines)); - if (PyErr_Occurred()) { - Py_DECREF(termsize); - return NULL; - } + + int pos = 0; + +#define SET_TERMSIZE(CALL) \ + do { \ + PyObject *item = (CALL); \ + if (item == NULL) { \ + Py_DECREF(termsize); \ + return NULL; \ + } \ + PyStructSequence_SET_ITEM(termsize, pos++, item); \ + } while(0) + + SET_TERMSIZE(PyLong_FromLong(columns)); + SET_TERMSIZE(PyLong_FromLong(lines)); +#undef SET_TERMSIZE + return termsize; } #endif /* defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL) */ @@ -15026,6 +15054,10 @@ DirEntry_from_find_data(PyObject *module, path_t *path, WIN32_FIND_DATAW *dataW) find_data_to_file_info(dataW, &file_info, &reparse_tag); _Py_attribute_data_to_stat(&file_info, reparse_tag, NULL, NULL, &entry->win32_lstat); + /* ctime is only deprecated from 3.12, so we copy birthtime across */ + entry->win32_lstat.st_ctime = entry->win32_lstat.st_birthtime; + entry->win32_lstat.st_ctime_nsec = entry->win32_lstat.st_birthtime_nsec; + return (PyObject *)entry; error: diff --git a/contrib/tools/python3/Modules/pwdmodule.c b/contrib/tools/python3/Modules/pwdmodule.c index cc2e2a4389..920259a62c 100644 --- a/contrib/tools/python3/Modules/pwdmodule.c +++ b/contrib/tools/python3/Modules/pwdmodule.c @@ -63,53 +63,52 @@ static struct PyModuleDef pwdmodule; #define DEFAULT_BUFFER_SIZE 1024 -static void -sets(PyObject *v, int i, const char* val) -{ - if (val) { - PyObject *o = PyUnicode_DecodeFSDefault(val); - PyStructSequence_SET_ITEM(v, i, o); - } - else { - PyStructSequence_SET_ITEM(v, i, Py_None); - Py_INCREF(Py_None); - } -} - static PyObject * mkpwent(PyObject *module, struct passwd *p) { - int setIndex = 0; PyObject *v = PyStructSequence_New(get_pwd_state(module)->StructPwdType); - if (v == NULL) + if (v == NULL) { return NULL; + } + + int setIndex = 0; + +#define SET_STRING(VAL) \ + SET_RESULT((VAL) ? PyUnicode_DecodeFSDefault((VAL)) : Py_NewRef(Py_None)) -#define SETS(i,val) sets(v, i, val) +#define SET_RESULT(CALL) \ + do { \ + PyObject *item = (CALL); \ + if (item == NULL) { \ + goto error; \ + } \ + PyStructSequence_SET_ITEM(v, setIndex++, item); \ + } while(0) - SETS(setIndex++, p->pw_name); + SET_STRING(p->pw_name); #if defined(HAVE_STRUCT_PASSWD_PW_PASSWD) && !defined(__ANDROID__) - SETS(setIndex++, p->pw_passwd); + SET_STRING(p->pw_passwd); #else - SETS(setIndex++, ""); + SET_STRING(""); #endif - PyStructSequence_SET_ITEM(v, setIndex++, _PyLong_FromUid(p->pw_uid)); - PyStructSequence_SET_ITEM(v, setIndex++, _PyLong_FromGid(p->pw_gid)); + SET_RESULT(_PyLong_FromUid(p->pw_uid)); + SET_RESULT(_PyLong_FromGid(p->pw_gid)); #if defined(HAVE_STRUCT_PASSWD_PW_GECOS) - SETS(setIndex++, p->pw_gecos); + SET_STRING(p->pw_gecos); #else - SETS(setIndex++, ""); + SET_STRING(""); #endif - SETS(setIndex++, p->pw_dir); - SETS(setIndex++, p->pw_shell); - -#undef SETS + SET_STRING(p->pw_dir); + SET_STRING(p->pw_shell); - if (PyErr_Occurred()) { - Py_XDECREF(v); - return NULL; - } +#undef SET_STRING +#undef SET_RESULT return v; + +error: + Py_DECREF(v); + return NULL; } /*[clinic input] diff --git a/contrib/tools/python3/Modules/pyexpat.c b/contrib/tools/python3/Modules/pyexpat.c index b21360419d..be31c637fc 100644 --- a/contrib/tools/python3/Modules/pyexpat.c +++ b/contrib/tools/python3/Modules/pyexpat.c @@ -1,6 +1,7 @@ #include "Python.h" #include <ctype.h> +#include <stdbool.h> #include "structmember.h" // PyMemberDef #include "expat.h" @@ -76,6 +77,12 @@ typedef struct { /* NULL if not enabled */ int buffer_size; /* Size of buffer, in XML_Char units */ int buffer_used; /* Buffer units in use */ + bool reparse_deferral_enabled; /* Whether to defer reparsing of + unfinished XML tokens; a de-facto cache of + what Expat has the authority on, for lack + of a getter API function + "XML_GetReparseDeferralEnabled" in Expat + 2.6.0 */ PyObject *intern; /* Dictionary to intern strings */ PyObject **handlers; } xmlparseobject; @@ -706,6 +713,40 @@ get_parse_result(pyexpat_state *state, xmlparseobject *self, int rv) #define MAX_CHUNK_SIZE (1 << 20) /*[clinic input] +pyexpat.xmlparser.SetReparseDeferralEnabled + + enabled: bool + / + +Enable/Disable reparse deferral; enabled by default with Expat >=2.6.0. +[clinic start generated code]*/ + +static PyObject * +pyexpat_xmlparser_SetReparseDeferralEnabled_impl(xmlparseobject *self, + int enabled) +/*[clinic end generated code: output=5ec539e3b63c8c49 input=021eb9e0bafc32c5]*/ +{ +#if XML_COMBINED_VERSION >= 20600 + XML_SetReparseDeferralEnabled(self->itself, enabled ? XML_TRUE : XML_FALSE); + self->reparse_deferral_enabled = (bool)enabled; +#endif + Py_RETURN_NONE; +} + +/*[clinic input] +pyexpat.xmlparser.GetReparseDeferralEnabled + +Retrieve reparse deferral enabled status; always returns false with Expat <2.6.0. +[clinic start generated code]*/ + +static PyObject * +pyexpat_xmlparser_GetReparseDeferralEnabled_impl(xmlparseobject *self) +/*[clinic end generated code: output=4e91312e88a595a8 input=54b5f11d32b20f3e]*/ +{ + return PyBool_FromLong(self->reparse_deferral_enabled); +} + +/*[clinic input] pyexpat.xmlparser.Parse cls: defining_class @@ -1065,6 +1106,8 @@ static struct PyMethodDef xmlparse_methods[] = { #if XML_COMBINED_VERSION >= 19505 PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF #endif + PYEXPAT_XMLPARSER_SETREPARSEDEFERRALENABLED_METHODDEF + PYEXPAT_XMLPARSER_GETREPARSEDEFERRALENABLED_METHODDEF {NULL, NULL} /* sentinel */ }; @@ -1160,6 +1203,11 @@ newxmlparseobject(pyexpat_state *state, const char *encoding, self->ns_prefixes = 0; self->handlers = NULL; self->intern = Py_XNewRef(intern); +#if XML_COMBINED_VERSION >= 20600 + self->reparse_deferral_enabled = true; +#else + self->reparse_deferral_enabled = false; +#endif /* namespace_separator is either NULL or contains one char + \0 */ self->itself = XML_ParserCreate_MM(encoding, &ExpatMemoryHandler, @@ -2028,6 +2076,11 @@ pyexpat_exec(PyObject *mod) #else capi->SetHashSalt = NULL; #endif +#if XML_COMBINED_VERSION >= 20600 + capi->SetReparseDeferralEnabled = XML_SetReparseDeferralEnabled; +#else + capi->SetReparseDeferralEnabled = NULL; +#endif /* export using capsule */ PyObject *capi_object = PyCapsule_New(capi, PyExpat_CAPSULE_NAME, diff --git a/contrib/tools/python3/Modules/selectmodule.c b/contrib/tools/python3/Modules/selectmodule.c index b7c6b1b539..97f1db20f6 100644 --- a/contrib/tools/python3/Modules/selectmodule.c +++ b/contrib/tools/python3/Modules/selectmodule.c @@ -818,10 +818,10 @@ static int devpoll_flush(devpollObject *self) ** clear what to do if a partial write occurred. For now, raise ** an exception and see if we actually found this problem in ** the wild. - ** See http://bugs.python.org/issue6397. + ** See https://github.com/python/cpython/issues/50646. */ PyErr_Format(PyExc_OSError, "failed to write all pollfds. " - "Please, report at http://bugs.python.org/. " + "Please, report at https://github.com/python/cpython/issues/. " "Data to report: Size tried: %d, actual size written: %d.", size, n); return -1; diff --git a/contrib/tools/python3/Modules/sha1module.c b/contrib/tools/python3/Modules/sha1module.c index c66269b5f5..624dc57b0a 100644 --- a/contrib/tools/python3/Modules/sha1module.c +++ b/contrib/tools/python3/Modules/sha1module.c @@ -51,7 +51,7 @@ typedef struct { // Prevents undefined behavior via multiple threads entering the C API. // The lock will be NULL before threaded access has been enabled. PyThread_type_lock lock; - Hacl_Streaming_SHA1_state *hash_state; + Hacl_Hash_SHA1_state_t *hash_state; } SHA1object; #include "clinic/sha1module.c.h" @@ -90,7 +90,7 @@ SHA1_traverse(PyObject *ptr, visitproc visit, void *arg) static void SHA1_dealloc(SHA1object *ptr) { - Hacl_Streaming_SHA1_legacy_free(ptr->hash_state); + Hacl_Hash_SHA1_free(ptr->hash_state); if (ptr->lock != NULL) { PyThread_free_lock(ptr->lock); } @@ -122,7 +122,7 @@ SHA1Type_copy_impl(SHA1object *self, PyTypeObject *cls) return NULL; ENTER_HASHLIB(self); - newobj->hash_state = Hacl_Streaming_SHA1_legacy_copy(self->hash_state); + newobj->hash_state = Hacl_Hash_SHA1_copy(self->hash_state); LEAVE_HASHLIB(self); return (PyObject *)newobj; } @@ -139,7 +139,7 @@ SHA1Type_digest_impl(SHA1object *self) { unsigned char digest[SHA1_DIGESTSIZE]; ENTER_HASHLIB(self); - Hacl_Streaming_SHA1_legacy_finish(self->hash_state, digest); + Hacl_Hash_SHA1_digest(self->hash_state, digest); LEAVE_HASHLIB(self); return PyBytes_FromStringAndSize((const char *)digest, SHA1_DIGESTSIZE); } @@ -156,20 +156,20 @@ SHA1Type_hexdigest_impl(SHA1object *self) { unsigned char digest[SHA1_DIGESTSIZE]; ENTER_HASHLIB(self); - Hacl_Streaming_SHA1_legacy_finish(self->hash_state, digest); + Hacl_Hash_SHA1_digest(self->hash_state, digest); LEAVE_HASHLIB(self); return _Py_strhex((const char *)digest, SHA1_DIGESTSIZE); } -static void update(Hacl_Streaming_SHA1_state *state, uint8_t *buf, Py_ssize_t len) { +static void update(Hacl_Hash_SHA1_state_t *state, uint8_t *buf, Py_ssize_t len) { #if PY_SSIZE_T_MAX > UINT32_MAX while (len > UINT32_MAX) { - Hacl_Streaming_SHA1_legacy_update(state, buf, UINT32_MAX); + Hacl_Hash_SHA1_update(state, buf, UINT32_MAX); len -= UINT32_MAX; buf += UINT32_MAX; } #endif - Hacl_Streaming_SHA1_legacy_update(state, buf, (uint32_t) len); + Hacl_Hash_SHA1_update(state, buf, (uint32_t) len); } /*[clinic input] @@ -293,7 +293,7 @@ _sha1_sha1_impl(PyObject *module, PyObject *string, int usedforsecurity) return NULL; } - new->hash_state = Hacl_Streaming_SHA1_legacy_create_in(); + new->hash_state = Hacl_Hash_SHA1_malloc(); if (PyErr_Occurred()) { Py_DECREF(new); diff --git a/contrib/tools/python3/Modules/sha2module.c b/contrib/tools/python3/Modules/sha2module.c index db3774c81e..f5dab39a8c 100644 --- a/contrib/tools/python3/Modules/sha2module.c +++ b/contrib/tools/python3/Modules/sha2module.c @@ -55,7 +55,7 @@ typedef struct { // Prevents undefined behavior via multiple threads entering the C API. // The lock will be NULL before threaded access has been enabled. PyThread_type_lock lock; - Hacl_Streaming_SHA2_state_sha2_256 *state; + Hacl_Hash_SHA2_state_t_256 *state; } SHA256object; typedef struct { @@ -64,7 +64,7 @@ typedef struct { // Prevents undefined behavior via multiple threads entering the C API. // The lock will be NULL before threaded access has been enabled. PyThread_type_lock lock; - Hacl_Streaming_SHA2_state_sha2_512 *state; + Hacl_Hash_SHA2_state_t_512 *state; } SHA512object; #include "clinic/sha2module.c.h" @@ -89,13 +89,13 @@ sha2_get_state(PyObject *module) static void SHA256copy(SHA256object *src, SHA256object *dest) { dest->digestsize = src->digestsize; - dest->state = Hacl_Streaming_SHA2_copy_256(src->state); + dest->state = Hacl_Hash_SHA2_copy_256(src->state); } static void SHA512copy(SHA512object *src, SHA512object *dest) { dest->digestsize = src->digestsize; - dest->state = Hacl_Streaming_SHA2_copy_512(src->state); + dest->state = Hacl_Hash_SHA2_copy_512(src->state); } static SHA256object * @@ -162,7 +162,7 @@ SHA2_traverse(PyObject *ptr, visitproc visit, void *arg) static void SHA256_dealloc(SHA256object *ptr) { - Hacl_Streaming_SHA2_free_256(ptr->state); + Hacl_Hash_SHA2_free_256(ptr->state); if (ptr->lock != NULL) { PyThread_free_lock(ptr->lock); } @@ -175,7 +175,7 @@ SHA256_dealloc(SHA256object *ptr) static void SHA512_dealloc(SHA512object *ptr) { - Hacl_Streaming_SHA2_free_512(ptr->state); + Hacl_Hash_SHA2_free_512(ptr->state); if (ptr->lock != NULL) { PyThread_free_lock(ptr->lock); } @@ -188,34 +188,34 @@ SHA512_dealloc(SHA512object *ptr) /* HACL* takes a uint32_t for the length of its parameter, but Py_ssize_t can be * 64 bits so we loop in <4gig chunks when needed. */ -static void update_256(Hacl_Streaming_SHA2_state_sha2_256 *state, uint8_t *buf, Py_ssize_t len) { +static void update_256(Hacl_Hash_SHA2_state_t_256 *state, uint8_t *buf, Py_ssize_t len) { /* Note: we explicitly ignore the error code on the basis that it would take > * 1 billion years to overflow the maximum admissible length for SHA2-256 * (namely, 2^61-1 bytes). */ #if PY_SSIZE_T_MAX > UINT32_MAX while (len > UINT32_MAX) { - Hacl_Streaming_SHA2_update_256(state, buf, UINT32_MAX); + Hacl_Hash_SHA2_update_256(state, buf, UINT32_MAX); len -= UINT32_MAX; buf += UINT32_MAX; } #endif /* Cast to uint32_t is safe: len <= UINT32_MAX at this point. */ - Hacl_Streaming_SHA2_update_256(state, buf, (uint32_t) len); + Hacl_Hash_SHA2_update_256(state, buf, (uint32_t) len); } -static void update_512(Hacl_Streaming_SHA2_state_sha2_512 *state, uint8_t *buf, Py_ssize_t len) { +static void update_512(Hacl_Hash_SHA2_state_t_512 *state, uint8_t *buf, Py_ssize_t len) { /* Note: we explicitly ignore the error code on the basis that it would take > * 1 billion years to overflow the maximum admissible length for this API * (namely, 2^64-1 bytes). */ #if PY_SSIZE_T_MAX > UINT32_MAX while (len > UINT32_MAX) { - Hacl_Streaming_SHA2_update_512(state, buf, UINT32_MAX); + Hacl_Hash_SHA2_update_512(state, buf, UINT32_MAX); len -= UINT32_MAX; buf += UINT32_MAX; } #endif /* Cast to uint32_t is safe: len <= UINT32_MAX at this point. */ - Hacl_Streaming_SHA2_update_512(state, buf, (uint32_t) len); + Hacl_Hash_SHA2_update_512(state, buf, (uint32_t) len); } @@ -298,7 +298,7 @@ SHA256Type_digest_impl(SHA256object *self) ENTER_HASHLIB(self); // HACL* performs copies under the hood so that self->state remains valid // after this call. - Hacl_Streaming_SHA2_finish_256(self->state, digest); + Hacl_Hash_SHA2_digest_256(self->state, digest); LEAVE_HASHLIB(self); return PyBytes_FromStringAndSize((const char *)digest, self->digestsize); } @@ -318,7 +318,7 @@ SHA512Type_digest_impl(SHA512object *self) ENTER_HASHLIB(self); // HACL* performs copies under the hood so that self->state remains valid // after this call. - Hacl_Streaming_SHA2_finish_512(self->state, digest); + Hacl_Hash_SHA2_digest_512(self->state, digest); LEAVE_HASHLIB(self); return PyBytes_FromStringAndSize((const char *)digest, self->digestsize); } @@ -336,7 +336,7 @@ SHA256Type_hexdigest_impl(SHA256object *self) uint8_t digest[SHA256_DIGESTSIZE]; assert(self->digestsize <= SHA256_DIGESTSIZE); ENTER_HASHLIB(self); - Hacl_Streaming_SHA2_finish_256(self->state, digest); + Hacl_Hash_SHA2_digest_256(self->state, digest); LEAVE_HASHLIB(self); return _Py_strhex((const char *)digest, self->digestsize); } @@ -354,7 +354,7 @@ SHA512Type_hexdigest_impl(SHA512object *self) uint8_t digest[SHA512_DIGESTSIZE]; assert(self->digestsize <= SHA512_DIGESTSIZE); ENTER_HASHLIB(self); - Hacl_Streaming_SHA2_finish_512(self->state, digest); + Hacl_Hash_SHA2_digest_512(self->state, digest); LEAVE_HASHLIB(self); return _Py_strhex((const char *)digest, self->digestsize); } @@ -599,7 +599,7 @@ _sha2_sha256_impl(PyObject *module, PyObject *string, int usedforsecurity) return NULL; } - new->state = Hacl_Streaming_SHA2_create_in_256(); + new->state = Hacl_Hash_SHA2_malloc_256(); new->digestsize = 32; if (PyErr_Occurred()) { @@ -653,7 +653,7 @@ _sha2_sha224_impl(PyObject *module, PyObject *string, int usedforsecurity) return NULL; } - new->state = Hacl_Streaming_SHA2_create_in_224(); + new->state = Hacl_Hash_SHA2_malloc_224(); new->digestsize = 28; if (PyErr_Occurred()) { @@ -707,7 +707,7 @@ _sha2_sha512_impl(PyObject *module, PyObject *string, int usedforsecurity) return NULL; } - new->state = Hacl_Streaming_SHA2_create_in_512(); + new->state = Hacl_Hash_SHA2_malloc_512(); new->digestsize = 64; if (PyErr_Occurred()) { @@ -760,7 +760,7 @@ _sha2_sha384_impl(PyObject *module, PyObject *string, int usedforsecurity) return NULL; } - new->state = Hacl_Streaming_SHA2_create_in_384(); + new->state = Hacl_Hash_SHA2_malloc_384(); new->digestsize = 48; if (PyErr_Occurred()) { diff --git a/contrib/tools/python3/Modules/sha3module.c b/contrib/tools/python3/Modules/sha3module.c index 558d2005cf..f3c6a7fced 100644 --- a/contrib/tools/python3/Modules/sha3module.c +++ b/contrib/tools/python3/Modules/sha3module.c @@ -63,7 +63,7 @@ typedef struct { // Prevents undefined behavior via multiple threads entering the C API. // The lock will be NULL before threaded access has been enabled. PyThread_type_lock lock; - Hacl_Streaming_Keccak_state *hash_state; + Hacl_Hash_SHA3_state_t *hash_state; } SHA3object; #include "clinic/sha3module.c.h" @@ -80,18 +80,18 @@ newSHA3object(PyTypeObject *type) return newobj; } -static void sha3_update(Hacl_Streaming_Keccak_state *state, uint8_t *buf, Py_ssize_t len) { +static void sha3_update(Hacl_Hash_SHA3_state_t *state, uint8_t *buf, Py_ssize_t len) { /* Note: we explicitly ignore the error code on the basis that it would take > * 1 billion years to hash more than 2^64 bytes. */ #if PY_SSIZE_T_MAX > UINT32_MAX while (len > UINT32_MAX) { - Hacl_Streaming_Keccak_update(state, buf, UINT32_MAX); + Hacl_Hash_SHA3_update(state, buf, UINT32_MAX); len -= UINT32_MAX; buf += UINT32_MAX; } #endif /* Cast to uint32_t is safe: len <= UINT32_MAX at this point. */ - Hacl_Streaming_Keccak_update(state, buf, (uint32_t) len); + Hacl_Hash_SHA3_update(state, buf, (uint32_t) len); } /*[clinic input] @@ -119,17 +119,17 @@ py_sha3_new_impl(PyTypeObject *type, PyObject *data, int usedforsecurity) assert(state != NULL); if (type == state->sha3_224_type) { - self->hash_state = Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_SHA3_224); + self->hash_state = Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_SHA3_224); } else if (type == state->sha3_256_type) { - self->hash_state = Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_SHA3_256); + self->hash_state = Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_SHA3_256); } else if (type == state->sha3_384_type) { - self->hash_state = Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_SHA3_384); + self->hash_state = Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_SHA3_384); } else if (type == state->sha3_512_type) { - self->hash_state = Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_SHA3_512); + self->hash_state = Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_SHA3_512); } else if (type == state->shake_128_type) { - self->hash_state = Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_Shake128); + self->hash_state = Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_Shake128); } else if (type == state->shake_256_type) { - self->hash_state = Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_Shake256); + self->hash_state = Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_Shake256); } else { PyErr_BadInternalCall(); goto error; @@ -168,7 +168,7 @@ py_sha3_new_impl(PyTypeObject *type, PyObject *data, int usedforsecurity) static void SHA3_dealloc(SHA3object *self) { - Hacl_Streaming_Keccak_free(self->hash_state); + Hacl_Hash_SHA3_free(self->hash_state); if (self->lock != NULL) { PyThread_free_lock(self->lock); } @@ -197,7 +197,7 @@ _sha3_sha3_224_copy_impl(SHA3object *self) return NULL; } ENTER_HASHLIB(self); - newobj->hash_state = Hacl_Streaming_Keccak_copy(self->hash_state); + newobj->hash_state = Hacl_Hash_SHA3_copy(self->hash_state); LEAVE_HASHLIB(self); return (PyObject *)newobj; } @@ -217,10 +217,10 @@ _sha3_sha3_224_digest_impl(SHA3object *self) // This function errors out if the algorithm is Shake. Here, we know this // not to be the case, and therefore do not perform error checking. ENTER_HASHLIB(self); - Hacl_Streaming_Keccak_finish(self->hash_state, digest); + Hacl_Hash_SHA3_digest(self->hash_state, digest); LEAVE_HASHLIB(self); return PyBytes_FromStringAndSize((const char *)digest, - Hacl_Streaming_Keccak_hash_len(self->hash_state)); + Hacl_Hash_SHA3_hash_len(self->hash_state)); } @@ -236,10 +236,10 @@ _sha3_sha3_224_hexdigest_impl(SHA3object *self) { unsigned char digest[SHA3_MAX_DIGESTSIZE]; ENTER_HASHLIB(self); - Hacl_Streaming_Keccak_finish(self->hash_state, digest); + Hacl_Hash_SHA3_digest(self->hash_state, digest); LEAVE_HASHLIB(self); return _Py_strhex((const char *)digest, - Hacl_Streaming_Keccak_hash_len(self->hash_state)); + Hacl_Hash_SHA3_hash_len(self->hash_state)); } @@ -287,7 +287,7 @@ static PyMethodDef SHA3_methods[] = { static PyObject * SHA3_get_block_size(SHA3object *self, void *closure) { - uint32_t rate = Hacl_Streaming_Keccak_block_len(self->hash_state); + uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state); return PyLong_FromLong(rate); } @@ -323,17 +323,17 @@ static PyObject * SHA3_get_digest_size(SHA3object *self, void *closure) { // Preserving previous behavior: variable-length algorithms return 0 - if (Hacl_Streaming_Keccak_is_shake(self->hash_state)) + if (Hacl_Hash_SHA3_is_shake(self->hash_state)) return PyLong_FromLong(0); else - return PyLong_FromLong(Hacl_Streaming_Keccak_hash_len(self->hash_state)); + return PyLong_FromLong(Hacl_Hash_SHA3_hash_len(self->hash_state)); } static PyObject * SHA3_get_capacity_bits(SHA3object *self, void *closure) { - uint32_t rate = Hacl_Streaming_Keccak_block_len(self->hash_state) * 8; + uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state) * 8; int capacity = 1600 - rate; return PyLong_FromLong(capacity); } @@ -342,7 +342,7 @@ SHA3_get_capacity_bits(SHA3object *self, void *closure) static PyObject * SHA3_get_rate_bits(SHA3object *self, void *closure) { - uint32_t rate = Hacl_Streaming_Keccak_block_len(self->hash_state) * 8; + uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state) * 8; return PyLong_FromLong(rate); } @@ -435,7 +435,7 @@ _SHAKE_digest(SHA3object *self, unsigned long digestlen, int hex) * - the output length is zero -- we follow the existing behavior and return * an empty digest, without raising an error */ if (digestlen > 0) { - Hacl_Streaming_Keccak_squeeze(self->hash_state, digest, digestlen); + Hacl_Hash_SHA3_squeeze(self->hash_state, digest, digestlen); } if (hex) { result = _Py_strhex((const char *)digest, digestlen); diff --git a/contrib/tools/python3/Objects/descrobject.c b/contrib/tools/python3/Objects/descrobject.c index d5e88dcf1c..55c0491cfd 100644 --- a/contrib/tools/python3/Objects/descrobject.c +++ b/contrib/tools/python3/Objects/descrobject.c @@ -1697,15 +1697,12 @@ property_copy(PyObject *old, PyObject *get, PyObject *set, PyObject *del) return NULL; if (get == NULL || get == Py_None) { - Py_XDECREF(get); get = pold->prop_get ? pold->prop_get : Py_None; } if (set == NULL || set == Py_None) { - Py_XDECREF(set); set = pold->prop_set ? pold->prop_set : Py_None; } if (del == NULL || del == Py_None) { - Py_XDECREF(del); del = pold->prop_del ? pold->prop_del : Py_None; } if (pold->getter_doc && get != Py_None) { diff --git a/contrib/tools/python3/Objects/floatobject.c b/contrib/tools/python3/Objects/floatobject.c index 83a263c0d9..7a882bfd88 100644 --- a/contrib/tools/python3/Objects/floatobject.c +++ b/contrib/tools/python3/Objects/floatobject.c @@ -101,10 +101,18 @@ PyFloat_GetInfo(void) return NULL; } -#define SetIntFlag(flag) \ - PyStructSequence_SET_ITEM(floatinfo, pos++, PyLong_FromLong(flag)) -#define SetDblFlag(flag) \ - PyStructSequence_SET_ITEM(floatinfo, pos++, PyFloat_FromDouble(flag)) +#define SetFlag(CALL) \ + do { \ + PyObject *flag = (CALL); \ + if (flag == NULL) { \ + Py_CLEAR(floatinfo); \ + return NULL; \ + } \ + PyStructSequence_SET_ITEM(floatinfo, pos++, flag); \ + } while (0) + +#define SetIntFlag(FLAG) SetFlag(PyLong_FromLong((FLAG))) +#define SetDblFlag(FLAG) SetFlag(PyFloat_FromDouble((FLAG))) SetDblFlag(DBL_MAX); SetIntFlag(DBL_MAX_EXP); @@ -119,11 +127,8 @@ PyFloat_GetInfo(void) SetIntFlag(FLT_ROUNDS); #undef SetIntFlag #undef SetDblFlag +#undef SetFlag - if (PyErr_Occurred()) { - Py_CLEAR(floatinfo); - return NULL; - } return floatinfo; } diff --git a/contrib/tools/python3/Objects/genobject.c b/contrib/tools/python3/Objects/genobject.c index 3b9e4a6036..bc58409c18 100644 --- a/contrib/tools/python3/Objects/genobject.c +++ b/contrib/tools/python3/Objects/genobject.c @@ -374,7 +374,6 @@ static PyObject * gen_close(PyGenObject *gen, PyObject *args) { PyObject *retval; - PyObject *yf = _PyGen_yf(gen); int err = 0; if (gen->gi_frame_state == FRAME_CREATED) { @@ -384,6 +383,7 @@ gen_close(PyGenObject *gen, PyObject *args) if (gen->gi_frame_state >= FRAME_COMPLETED) { Py_RETURN_NONE; } + PyObject *yf = _PyGen_yf(gen); if (yf) { PyFrameState state = gen->gi_frame_state; gen->gi_frame_state = FRAME_EXECUTING; @@ -396,12 +396,13 @@ gen_close(PyGenObject *gen, PyObject *args) * YIELD_VALUE if the debugger has changed the lineno. */ if (err == 0 && is_yield(frame->prev_instr)) { assert(is_resume(frame->prev_instr + 1)); - int exception_handler_depth = frame->prev_instr[0].op.code; + int exception_handler_depth = frame->prev_instr[0].op.arg; assert(exception_handler_depth > 0); /* We can safely ignore the outermost try block * as it automatically generated to handle * StopIteration. */ if (exception_handler_depth == 1) { + gen->gi_frame_state = FRAME_COMPLETED; Py_RETURN_NONE; } } diff --git a/contrib/tools/python3/Objects/listobject.c b/contrib/tools/python3/Objects/listobject.c index f1edfb3a9a..f59abe2e64 100644 --- a/contrib/tools/python3/Objects/listobject.c +++ b/contrib/tools/python3/Objects/listobject.c @@ -3441,6 +3441,7 @@ static PyObject * listiter_reduce_general(void *_it, int forward) { PyObject *list; + PyObject *iter; /* _PyEval_GetBuiltin can invoke arbitrary code, * call must be before access of iterator pointers. @@ -3448,7 +3449,7 @@ listiter_reduce_general(void *_it, int forward) /* the objects are not the same, index is of different types! */ if (forward) { - PyObject *iter = _PyEval_GetBuiltin(&_Py_ID(iter)); + iter = _PyEval_GetBuiltin(&_Py_ID(iter)); if (!iter) { return NULL; } @@ -3456,21 +3457,19 @@ listiter_reduce_general(void *_it, int forward) if (it->it_seq) { return Py_BuildValue("N(O)n", iter, it->it_seq, it->it_index); } - Py_DECREF(iter); } else { - PyObject *reversed = _PyEval_GetBuiltin(&_Py_ID(reversed)); - if (!reversed) { + iter = _PyEval_GetBuiltin(&_Py_ID(reversed)); + if (!iter) { return NULL; } listreviterobject *it = (listreviterobject *)_it; if (it->it_seq) { - return Py_BuildValue("N(O)n", reversed, it->it_seq, it->it_index); + return Py_BuildValue("N(O)n", iter, it->it_seq, it->it_index); } - Py_DECREF(reversed); } /* empty iterator, create an empty list */ list = PyList_New(0); if (list == NULL) return NULL; - return Py_BuildValue("N(N)", _PyEval_GetBuiltin(&_Py_ID(iter)), list); + return Py_BuildValue("N(N)", iter, list); } diff --git a/contrib/tools/python3/Objects/longobject.c b/contrib/tools/python3/Objects/longobject.c index 5d9b413861..c72e1643c9 100644 --- a/contrib/tools/python3/Objects/longobject.c +++ b/contrib/tools/python3/Objects/longobject.c @@ -1766,7 +1766,9 @@ long_to_decimal_string_internal(PyObject *aa, digit *pout, *pin, rem, tenpow; int negative; int d; - int kind; + + // writer or bytes_writer can be used, but not both at the same time. + assert(writer == NULL || bytes_writer == NULL); a = (PyLongObject *)aa; if (a == NULL || !PyLong_Check(a)) { @@ -1879,7 +1881,6 @@ long_to_decimal_string_internal(PyObject *aa, Py_DECREF(scratch); return -1; } - kind = writer->kind; } else if (bytes_writer) { *bytes_str = _PyBytesWriter_Prepare(bytes_writer, *bytes_str, strlen); @@ -1894,7 +1895,6 @@ long_to_decimal_string_internal(PyObject *aa, Py_DECREF(scratch); return -1; } - kind = PyUnicode_KIND(str); } #define WRITE_DIGITS(p) \ @@ -1942,19 +1942,23 @@ long_to_decimal_string_internal(PyObject *aa, WRITE_DIGITS(p); assert(p == *bytes_str); } - else if (kind == PyUnicode_1BYTE_KIND) { - Py_UCS1 *p; - WRITE_UNICODE_DIGITS(Py_UCS1); - } - else if (kind == PyUnicode_2BYTE_KIND) { - Py_UCS2 *p; - WRITE_UNICODE_DIGITS(Py_UCS2); - } else { - Py_UCS4 *p; - assert (kind == PyUnicode_4BYTE_KIND); - WRITE_UNICODE_DIGITS(Py_UCS4); + int kind = writer ? writer->kind : PyUnicode_KIND(str); + if (kind == PyUnicode_1BYTE_KIND) { + Py_UCS1 *p; + WRITE_UNICODE_DIGITS(Py_UCS1); + } + else if (kind == PyUnicode_2BYTE_KIND) { + Py_UCS2 *p; + WRITE_UNICODE_DIGITS(Py_UCS2); + } + else { + assert (kind == PyUnicode_4BYTE_KIND); + Py_UCS4 *p; + WRITE_UNICODE_DIGITS(Py_UCS4); + } } + #undef WRITE_DIGITS #undef WRITE_UNICODE_DIGITS @@ -1995,11 +1999,12 @@ long_format_binary(PyObject *aa, int base, int alternate, PyObject *v = NULL; Py_ssize_t sz; Py_ssize_t size_a; - int kind; int negative; int bits; assert(base == 2 || base == 8 || base == 16); + // writer or bytes_writer can be used, but not both at the same time. + assert(writer == NULL || bytes_writer == NULL); if (a == NULL || !PyLong_Check(a)) { PyErr_BadInternalCall(); return -1; @@ -2047,7 +2052,6 @@ long_format_binary(PyObject *aa, int base, int alternate, if (writer) { if (_PyUnicodeWriter_Prepare(writer, sz, 'x') == -1) return -1; - kind = writer->kind; } else if (bytes_writer) { *bytes_str = _PyBytesWriter_Prepare(bytes_writer, *bytes_str, sz); @@ -2058,7 +2062,6 @@ long_format_binary(PyObject *aa, int base, int alternate, v = PyUnicode_New(sz, 'x'); if (v == NULL) return -1; - kind = PyUnicode_KIND(v); } #define WRITE_DIGITS(p) \ @@ -2119,19 +2122,23 @@ long_format_binary(PyObject *aa, int base, int alternate, WRITE_DIGITS(p); assert(p == *bytes_str); } - else if (kind == PyUnicode_1BYTE_KIND) { - Py_UCS1 *p; - WRITE_UNICODE_DIGITS(Py_UCS1); - } - else if (kind == PyUnicode_2BYTE_KIND) { - Py_UCS2 *p; - WRITE_UNICODE_DIGITS(Py_UCS2); - } else { - Py_UCS4 *p; - assert (kind == PyUnicode_4BYTE_KIND); - WRITE_UNICODE_DIGITS(Py_UCS4); + int kind = writer ? writer->kind : PyUnicode_KIND(v); + if (kind == PyUnicode_1BYTE_KIND) { + Py_UCS1 *p; + WRITE_UNICODE_DIGITS(Py_UCS1); + } + else if (kind == PyUnicode_2BYTE_KIND) { + Py_UCS2 *p; + WRITE_UNICODE_DIGITS(Py_UCS2); + } + else { + assert (kind == PyUnicode_4BYTE_KIND); + Py_UCS4 *p; + WRITE_UNICODE_DIGITS(Py_UCS4); + } } + #undef WRITE_DIGITS #undef WRITE_UNICODE_DIGITS diff --git a/contrib/tools/python3/Objects/typeobject.c b/contrib/tools/python3/Objects/typeobject.c index 8aa07d8528..0c9a876f70 100644 --- a/contrib/tools/python3/Objects/typeobject.c +++ b/contrib/tools/python3/Objects/typeobject.c @@ -6269,6 +6269,7 @@ reduce_newobj(PyObject *obj) } else { /* args == NULL */ + Py_DECREF(copyreg); Py_DECREF(kwargs); PyErr_BadInternalCall(); return NULL; diff --git a/contrib/tools/python3/Objects/unicodeobject.c b/contrib/tools/python3/Objects/unicodeobject.c index f6787c8f8a..ad6defb629 100644 --- a/contrib/tools/python3/Objects/unicodeobject.c +++ b/contrib/tools/python3/Objects/unicodeobject.c @@ -516,7 +516,7 @@ unicode_check_encoding_errors(const char *encoding, const char *errors) /* Disable checks during Python finalization. For example, it allows to call _PyObject_Dump() during finalization for debugging purpose. */ - if (interp->finalizing) { + if (_PyInterpreterState_GetFinalizing(interp) != NULL) { return 0; } diff --git a/contrib/tools/python3/Parser/parser.c b/contrib/tools/python3/Parser/parser.c index 25b4ead781..a413486708 100644 --- a/contrib/tools/python3/Parser/parser.c +++ b/contrib/tools/python3/Parser/parser.c @@ -472,8 +472,8 @@ static char *soft_keywords[] = { #define _gather_147_type 1391 #define _tmp_149_type 1392 #define _tmp_150_type 1393 -#define _tmp_151_type 1394 -#define _tmp_152_type 1395 +#define _loop0_152_type 1394 +#define _gather_151_type 1395 #define _tmp_153_type 1396 #define _tmp_154_type 1397 #define _tmp_155_type 1398 @@ -482,50 +482,50 @@ static char *soft_keywords[] = { #define _tmp_158_type 1401 #define _tmp_159_type 1402 #define _tmp_160_type 1403 -#define _loop0_161_type 1404 -#define _loop0_162_type 1405 +#define _tmp_161_type 1404 +#define _tmp_162_type 1405 #define _loop0_163_type 1406 -#define _tmp_164_type 1407 -#define _tmp_165_type 1408 +#define _loop0_164_type 1407 +#define _loop0_165_type 1408 #define _tmp_166_type 1409 #define _tmp_167_type 1410 #define _tmp_168_type 1411 -#define _loop0_169_type 1412 -#define _loop0_170_type 1413 +#define _tmp_169_type 1412 +#define _tmp_170_type 1413 #define _loop0_171_type 1414 -#define _loop1_172_type 1415 -#define _tmp_173_type 1416 -#define _loop0_174_type 1417 +#define _loop0_172_type 1415 +#define _loop0_173_type 1416 +#define _loop1_174_type 1417 #define _tmp_175_type 1418 #define _loop0_176_type 1419 -#define _loop1_177_type 1420 -#define _tmp_178_type 1421 -#define _tmp_179_type 1422 +#define _tmp_177_type 1420 +#define _loop0_178_type 1421 +#define _loop1_179_type 1422 #define _tmp_180_type 1423 -#define _loop0_181_type 1424 +#define _tmp_181_type 1424 #define _tmp_182_type 1425 -#define _tmp_183_type 1426 -#define _loop1_184_type 1427 +#define _loop0_183_type 1426 +#define _tmp_184_type 1427 #define _tmp_185_type 1428 -#define _loop0_186_type 1429 -#define _loop0_187_type 1430 +#define _loop1_186_type 1429 +#define _tmp_187_type 1430 #define _loop0_188_type 1431 -#define _loop0_190_type 1432 -#define _gather_189_type 1433 -#define _tmp_191_type 1434 -#define _loop0_192_type 1435 +#define _loop0_189_type 1432 +#define _loop0_190_type 1433 +#define _loop0_192_type 1434 +#define _gather_191_type 1435 #define _tmp_193_type 1436 #define _loop0_194_type 1437 -#define _loop1_195_type 1438 -#define _loop1_196_type 1439 -#define _tmp_197_type 1440 -#define _tmp_198_type 1441 -#define _loop0_199_type 1442 +#define _tmp_195_type 1438 +#define _loop0_196_type 1439 +#define _loop1_197_type 1440 +#define _loop1_198_type 1441 +#define _tmp_199_type 1442 #define _tmp_200_type 1443 -#define _tmp_201_type 1444 +#define _loop0_201_type 1444 #define _tmp_202_type 1445 -#define _loop0_204_type 1446 -#define _gather_203_type 1447 +#define _tmp_203_type 1446 +#define _tmp_204_type 1447 #define _loop0_206_type 1448 #define _gather_205_type 1449 #define _loop0_208_type 1450 @@ -534,14 +534,14 @@ static char *soft_keywords[] = { #define _gather_209_type 1453 #define _loop0_212_type 1454 #define _gather_211_type 1455 -#define _tmp_213_type 1456 -#define _loop0_214_type 1457 -#define _loop1_215_type 1458 -#define _tmp_216_type 1459 -#define _loop0_217_type 1460 -#define _loop1_218_type 1461 -#define _tmp_219_type 1462 -#define _tmp_220_type 1463 +#define _loop0_214_type 1456 +#define _gather_213_type 1457 +#define _tmp_215_type 1458 +#define _loop0_216_type 1459 +#define _loop1_217_type 1460 +#define _tmp_218_type 1461 +#define _loop0_219_type 1462 +#define _loop1_220_type 1463 #define _tmp_221_type 1464 #define _tmp_222_type 1465 #define _tmp_223_type 1466 @@ -550,10 +550,10 @@ static char *soft_keywords[] = { #define _tmp_226_type 1469 #define _tmp_227_type 1470 #define _tmp_228_type 1471 -#define _loop0_230_type 1472 -#define _gather_229_type 1473 -#define _tmp_231_type 1474 -#define _tmp_232_type 1475 +#define _tmp_229_type 1472 +#define _tmp_230_type 1473 +#define _loop0_232_type 1474 +#define _gather_231_type 1475 #define _tmp_233_type 1476 #define _tmp_234_type 1477 #define _tmp_235_type 1478 @@ -565,9 +565,9 @@ static char *soft_keywords[] = { #define _tmp_241_type 1484 #define _tmp_242_type 1485 #define _tmp_243_type 1486 -#define _loop0_244_type 1487 +#define _tmp_244_type 1487 #define _tmp_245_type 1488 -#define _tmp_246_type 1489 +#define _loop0_246_type 1489 #define _tmp_247_type 1490 #define _tmp_248_type 1491 #define _tmp_249_type 1492 @@ -595,14 +595,17 @@ static char *soft_keywords[] = { #define _tmp_271_type 1514 #define _tmp_272_type 1515 #define _tmp_273_type 1516 -#define _loop0_275_type 1517 -#define _gather_274_type 1518 +#define _tmp_274_type 1517 +#define _tmp_275_type 1518 #define _tmp_276_type 1519 -#define _tmp_277_type 1520 -#define _tmp_278_type 1521 +#define _loop0_278_type 1520 +#define _gather_277_type 1521 #define _tmp_279_type 1522 #define _tmp_280_type 1523 #define _tmp_281_type 1524 +#define _tmp_282_type 1525 +#define _tmp_283_type 1526 +#define _tmp_284_type 1527 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -998,8 +1001,8 @@ static asdl_seq *_loop0_148_rule(Parser *p); static asdl_seq *_gather_147_rule(Parser *p); static void *_tmp_149_rule(Parser *p); static void *_tmp_150_rule(Parser *p); -static void *_tmp_151_rule(Parser *p); -static void *_tmp_152_rule(Parser *p); +static asdl_seq *_loop0_152_rule(Parser *p); +static asdl_seq *_gather_151_rule(Parser *p); static void *_tmp_153_rule(Parser *p); static void *_tmp_154_rule(Parser *p); static void *_tmp_155_rule(Parser *p); @@ -1008,50 +1011,50 @@ static void *_tmp_157_rule(Parser *p); static void *_tmp_158_rule(Parser *p); static void *_tmp_159_rule(Parser *p); static void *_tmp_160_rule(Parser *p); -static asdl_seq *_loop0_161_rule(Parser *p); -static asdl_seq *_loop0_162_rule(Parser *p); +static void *_tmp_161_rule(Parser *p); +static void *_tmp_162_rule(Parser *p); static asdl_seq *_loop0_163_rule(Parser *p); -static void *_tmp_164_rule(Parser *p); -static void *_tmp_165_rule(Parser *p); +static asdl_seq *_loop0_164_rule(Parser *p); +static asdl_seq *_loop0_165_rule(Parser *p); static void *_tmp_166_rule(Parser *p); static void *_tmp_167_rule(Parser *p); static void *_tmp_168_rule(Parser *p); -static asdl_seq *_loop0_169_rule(Parser *p); -static asdl_seq *_loop0_170_rule(Parser *p); +static void *_tmp_169_rule(Parser *p); +static void *_tmp_170_rule(Parser *p); static asdl_seq *_loop0_171_rule(Parser *p); -static asdl_seq *_loop1_172_rule(Parser *p); -static void *_tmp_173_rule(Parser *p); -static asdl_seq *_loop0_174_rule(Parser *p); +static asdl_seq *_loop0_172_rule(Parser *p); +static asdl_seq *_loop0_173_rule(Parser *p); +static asdl_seq *_loop1_174_rule(Parser *p); static void *_tmp_175_rule(Parser *p); static asdl_seq *_loop0_176_rule(Parser *p); -static asdl_seq *_loop1_177_rule(Parser *p); -static void *_tmp_178_rule(Parser *p); -static void *_tmp_179_rule(Parser *p); +static void *_tmp_177_rule(Parser *p); +static asdl_seq *_loop0_178_rule(Parser *p); +static asdl_seq *_loop1_179_rule(Parser *p); static void *_tmp_180_rule(Parser *p); -static asdl_seq *_loop0_181_rule(Parser *p); +static void *_tmp_181_rule(Parser *p); static void *_tmp_182_rule(Parser *p); -static void *_tmp_183_rule(Parser *p); -static asdl_seq *_loop1_184_rule(Parser *p); +static asdl_seq *_loop0_183_rule(Parser *p); +static void *_tmp_184_rule(Parser *p); static void *_tmp_185_rule(Parser *p); -static asdl_seq *_loop0_186_rule(Parser *p); -static asdl_seq *_loop0_187_rule(Parser *p); +static asdl_seq *_loop1_186_rule(Parser *p); +static void *_tmp_187_rule(Parser *p); static asdl_seq *_loop0_188_rule(Parser *p); +static asdl_seq *_loop0_189_rule(Parser *p); static asdl_seq *_loop0_190_rule(Parser *p); -static asdl_seq *_gather_189_rule(Parser *p); -static void *_tmp_191_rule(Parser *p); static asdl_seq *_loop0_192_rule(Parser *p); +static asdl_seq *_gather_191_rule(Parser *p); static void *_tmp_193_rule(Parser *p); static asdl_seq *_loop0_194_rule(Parser *p); -static asdl_seq *_loop1_195_rule(Parser *p); -static asdl_seq *_loop1_196_rule(Parser *p); -static void *_tmp_197_rule(Parser *p); -static void *_tmp_198_rule(Parser *p); -static asdl_seq *_loop0_199_rule(Parser *p); +static void *_tmp_195_rule(Parser *p); +static asdl_seq *_loop0_196_rule(Parser *p); +static asdl_seq *_loop1_197_rule(Parser *p); +static asdl_seq *_loop1_198_rule(Parser *p); +static void *_tmp_199_rule(Parser *p); static void *_tmp_200_rule(Parser *p); -static void *_tmp_201_rule(Parser *p); +static asdl_seq *_loop0_201_rule(Parser *p); static void *_tmp_202_rule(Parser *p); -static asdl_seq *_loop0_204_rule(Parser *p); -static asdl_seq *_gather_203_rule(Parser *p); +static void *_tmp_203_rule(Parser *p); +static void *_tmp_204_rule(Parser *p); static asdl_seq *_loop0_206_rule(Parser *p); static asdl_seq *_gather_205_rule(Parser *p); static asdl_seq *_loop0_208_rule(Parser *p); @@ -1060,14 +1063,14 @@ static asdl_seq *_loop0_210_rule(Parser *p); static asdl_seq *_gather_209_rule(Parser *p); static asdl_seq *_loop0_212_rule(Parser *p); static asdl_seq *_gather_211_rule(Parser *p); -static void *_tmp_213_rule(Parser *p); static asdl_seq *_loop0_214_rule(Parser *p); -static asdl_seq *_loop1_215_rule(Parser *p); -static void *_tmp_216_rule(Parser *p); -static asdl_seq *_loop0_217_rule(Parser *p); -static asdl_seq *_loop1_218_rule(Parser *p); -static void *_tmp_219_rule(Parser *p); -static void *_tmp_220_rule(Parser *p); +static asdl_seq *_gather_213_rule(Parser *p); +static void *_tmp_215_rule(Parser *p); +static asdl_seq *_loop0_216_rule(Parser *p); +static asdl_seq *_loop1_217_rule(Parser *p); +static void *_tmp_218_rule(Parser *p); +static asdl_seq *_loop0_219_rule(Parser *p); +static asdl_seq *_loop1_220_rule(Parser *p); static void *_tmp_221_rule(Parser *p); static void *_tmp_222_rule(Parser *p); static void *_tmp_223_rule(Parser *p); @@ -1076,10 +1079,10 @@ static void *_tmp_225_rule(Parser *p); static void *_tmp_226_rule(Parser *p); static void *_tmp_227_rule(Parser *p); static void *_tmp_228_rule(Parser *p); -static asdl_seq *_loop0_230_rule(Parser *p); -static asdl_seq *_gather_229_rule(Parser *p); -static void *_tmp_231_rule(Parser *p); -static void *_tmp_232_rule(Parser *p); +static void *_tmp_229_rule(Parser *p); +static void *_tmp_230_rule(Parser *p); +static asdl_seq *_loop0_232_rule(Parser *p); +static asdl_seq *_gather_231_rule(Parser *p); static void *_tmp_233_rule(Parser *p); static void *_tmp_234_rule(Parser *p); static void *_tmp_235_rule(Parser *p); @@ -1091,9 +1094,9 @@ static void *_tmp_240_rule(Parser *p); static void *_tmp_241_rule(Parser *p); static void *_tmp_242_rule(Parser *p); static void *_tmp_243_rule(Parser *p); -static asdl_seq *_loop0_244_rule(Parser *p); +static void *_tmp_244_rule(Parser *p); static void *_tmp_245_rule(Parser *p); -static void *_tmp_246_rule(Parser *p); +static asdl_seq *_loop0_246_rule(Parser *p); static void *_tmp_247_rule(Parser *p); static void *_tmp_248_rule(Parser *p); static void *_tmp_249_rule(Parser *p); @@ -1121,14 +1124,17 @@ static void *_tmp_270_rule(Parser *p); static void *_tmp_271_rule(Parser *p); static void *_tmp_272_rule(Parser *p); static void *_tmp_273_rule(Parser *p); -static asdl_seq *_loop0_275_rule(Parser *p); -static asdl_seq *_gather_274_rule(Parser *p); +static void *_tmp_274_rule(Parser *p); +static void *_tmp_275_rule(Parser *p); static void *_tmp_276_rule(Parser *p); -static void *_tmp_277_rule(Parser *p); -static void *_tmp_278_rule(Parser *p); +static asdl_seq *_loop0_278_rule(Parser *p); +static asdl_seq *_gather_277_rule(Parser *p); static void *_tmp_279_rule(Parser *p); static void *_tmp_280_rule(Parser *p); static void *_tmp_281_rule(Parser *p); +static void *_tmp_282_rule(Parser *p); +static void *_tmp_283_rule(Parser *p); +static void *_tmp_284_rule(Parser *p); // file: statements? $ @@ -6566,7 +6572,7 @@ with_stmt_rule(Parser *p) UNUSED(_end_lineno); // Only used by EXTRA macro int _end_col_offset = _token->end_col_offset; UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = CHECK_VERSION ( stmt_ty , 9 , "Parenthesized context managers are" , _PyAST_With ( a , b , NULL , EXTRA ) ); + _res = _PyAST_With ( a , b , NULL , EXTRA ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -17564,7 +17570,7 @@ kwargs_rule(Parser *p) return _res; } -// starred_expression: invalid_starred_expression | '*' expression +// starred_expression: invalid_starred_expression | '*' expression | '*' static expr_ty starred_expression_rule(Parser *p) { @@ -17641,6 +17647,30 @@ starred_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression")); } + { // '*' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 16)) // token='*' + ) + { + D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + _res = RAISE_SYNTAX_ERROR ( "Invalid star expression" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); + } _res = NULL; done: p->level--; @@ -19719,7 +19749,7 @@ func_type_comment_rule(Parser *p) } // invalid_arguments: -// | ((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' '*' +// | ((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+ // | expression for_if_clauses ',' [args | expression for_if_clauses] // | NAME '=' expression for_if_clauses // | [(args ',')] NAME '=' &(',' | ')') @@ -19738,25 +19768,25 @@ invalid_arguments_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // ((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' '*' + { // ((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+ if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' '*'")); - Token * _literal; + D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+")); + asdl_seq * _gather_151_var; void *_tmp_150_var; - Token * b; + Token * a; if ( (_tmp_150_var = _tmp_150_rule(p)) // (','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs && - (_literal = _PyPegen_expect_token(p, 12)) // token=',' + (a = _PyPegen_expect_token(p, 12)) // token=',' && - (b = _PyPegen_expect_token(p, 16)) // token='*' + (_gather_151_var = _gather_151_rule(p)) // ','.(starred_expression !'=')+ ) { - D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' '*'")); - _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( b , "iterable argument unpacking follows keyword argument unpacking" ); + D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+")); + _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "iterable argument unpacking follows keyword argument unpacking" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -19766,7 +19796,7 @@ invalid_arguments_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' '*'")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+")); } { // expression for_if_clauses ',' [args | expression for_if_clauses] if (p->error_indicator) { @@ -19786,7 +19816,7 @@ invalid_arguments_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_opt_var = _tmp_151_rule(p), !p->error_indicator) // [args | expression for_if_clauses] + (_opt_var = _tmp_153_rule(p), !p->error_indicator) // [args | expression for_if_clauses] ) { D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]")); @@ -19846,13 +19876,13 @@ invalid_arguments_rule(Parser *p) expr_ty a; Token * b; if ( - (_opt_var = _tmp_152_rule(p), !p->error_indicator) // [(args ',')] + (_opt_var = _tmp_154_rule(p), !p->error_indicator) // [(args ',')] && (a = _PyPegen_name_token(p)) // NAME && (b = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(1, _tmp_153_rule, p) + _PyPegen_lookahead(1, _tmp_155_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[(args ',')] NAME '=' &(',' | ')')")); @@ -19990,7 +20020,7 @@ invalid_kwarg_rule(Parser *p) Token* a; Token * b; if ( - (a = (Token*)_tmp_154_rule(p)) // 'True' | 'False' | 'None' + (a = (Token*)_tmp_156_rule(p)) // 'True' | 'False' | 'None' && (b = _PyPegen_expect_token(p, 22)) // token='=' ) @@ -20050,7 +20080,7 @@ invalid_kwarg_rule(Parser *p) expr_ty a; Token * b; if ( - _PyPegen_lookahead(0, _tmp_155_rule, p) + _PyPegen_lookahead(0, _tmp_157_rule, p) && (a = expression_rule(p)) // expression && @@ -20306,7 +20336,7 @@ invalid_expression_rule(Parser *p) expr_ty a; expr_ty b; if ( - _PyPegen_lookahead(0, _tmp_156_rule, p) + _PyPegen_lookahead(0, _tmp_158_rule, p) && (a = disjunction_rule(p)) // disjunction && @@ -20342,7 +20372,7 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - _PyPegen_lookahead(0, _tmp_157_rule, p) + _PyPegen_lookahead(0, _tmp_159_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); @@ -20463,7 +20493,7 @@ invalid_named_expression_rule(Parser *p) && (b = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, _tmp_158_rule, p) + _PyPegen_lookahead(0, _tmp_160_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')")); @@ -20489,7 +20519,7 @@ invalid_named_expression_rule(Parser *p) Token * b; expr_ty bitwise_or_var; if ( - _PyPegen_lookahead(0, _tmp_159_rule, p) + _PyPegen_lookahead(0, _tmp_161_rule, p) && (a = bitwise_or_rule(p)) // bitwise_or && @@ -20497,7 +20527,7 @@ invalid_named_expression_rule(Parser *p) && (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, _tmp_160_rule, p) + _PyPegen_lookahead(0, _tmp_162_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')")); @@ -20577,7 +20607,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression")); Token * _literal; Token * _literal_1; - asdl_seq * _loop0_161_var; + asdl_seq * _loop0_163_var; expr_ty a; expr_ty expression_var; if ( @@ -20585,7 +20615,7 @@ invalid_assignment_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_loop0_161_var = _loop0_161_rule(p)) // star_named_expressions* + (_loop0_163_var = _loop0_163_rule(p)) // star_named_expressions* && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20642,10 +20672,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='")); Token * _literal; - asdl_seq * _loop0_162_var; + asdl_seq * _loop0_164_var; expr_ty a; if ( - (_loop0_162_var = _loop0_162_rule(p)) // ((star_targets '='))* + (_loop0_164_var = _loop0_164_rule(p)) // ((star_targets '='))* && (a = star_expressions_rule(p)) // star_expressions && @@ -20672,10 +20702,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='")); Token * _literal; - asdl_seq * _loop0_163_var; + asdl_seq * _loop0_165_var; expr_ty a; if ( - (_loop0_163_var = _loop0_163_rule(p)) // ((star_targets '='))* + (_loop0_165_var = _loop0_165_rule(p)) // ((star_targets '='))* && (a = yield_expr_rule(p)) // yield_expr && @@ -20701,7 +20731,7 @@ invalid_assignment_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)")); - void *_tmp_164_var; + void *_tmp_166_var; expr_ty a; AugOperator* augassign_var; if ( @@ -20709,7 +20739,7 @@ invalid_assignment_rule(Parser *p) && (augassign_var = augassign_rule(p)) // augassign && - (_tmp_164_var = _tmp_164_rule(p)) // yield_expr | star_expressions + (_tmp_166_var = _tmp_166_rule(p)) // yield_expr | star_expressions ) { D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)")); @@ -20931,11 +20961,11 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses")); - void *_tmp_165_var; + void *_tmp_167_var; expr_ty a; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_165_var = _tmp_165_rule(p)) // '[' | '(' | '{' + (_tmp_167_var = _tmp_167_rule(p)) // '[' | '(' | '{' && (a = starred_expression_rule(p)) // starred_expression && @@ -20962,12 +20992,12 @@ invalid_comprehension_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses")); Token * _literal; - void *_tmp_166_var; + void *_tmp_168_var; expr_ty a; asdl_expr_seq* b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_166_var = _tmp_166_rule(p)) // '[' | '{' + (_tmp_168_var = _tmp_168_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -20997,12 +21027,12 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses")); - void *_tmp_167_var; + void *_tmp_169_var; expr_ty a; Token * b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_167_var = _tmp_167_rule(p)) // '[' | '{' + (_tmp_169_var = _tmp_169_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -21137,13 +21167,13 @@ invalid_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'")); - asdl_seq * _loop0_169_var; - void *_tmp_168_var; + asdl_seq * _loop0_171_var; + void *_tmp_170_var; Token * a; if ( - (_tmp_168_var = _tmp_168_rule(p)) // slash_no_default | slash_with_default + (_tmp_170_var = _tmp_170_rule(p)) // slash_no_default | slash_with_default && - (_loop0_169_var = _loop0_169_rule(p)) // param_maybe_default* + (_loop0_171_var = _loop0_171_rule(p)) // param_maybe_default* && (a = _PyPegen_expect_token(p, 17)) // token='/' ) @@ -21167,7 +21197,7 @@ invalid_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default? param_no_default* invalid_parameters_helper param_no_default")); - asdl_seq * _loop0_170_var; + asdl_seq * _loop0_172_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings arg_ty a; @@ -21175,7 +21205,7 @@ invalid_parameters_rule(Parser *p) if ( (_opt_var = slash_no_default_rule(p), !p->error_indicator) // slash_no_default? && - (_loop0_170_var = _loop0_170_rule(p)) // param_no_default* + (_loop0_172_var = _loop0_172_rule(p)) // param_no_default* && (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper && @@ -21201,18 +21231,18 @@ invalid_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'")); - asdl_seq * _loop0_171_var; - asdl_seq * _loop1_172_var; + asdl_seq * _loop0_173_var; + asdl_seq * _loop1_174_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; Token * b; if ( - (_loop0_171_var = _loop0_171_rule(p)) // param_no_default* + (_loop0_173_var = _loop0_173_rule(p)) // param_no_default* && (a = _PyPegen_expect_token(p, 7)) // token='(' && - (_loop1_172_var = _loop1_172_rule(p)) // param_no_default+ + (_loop1_174_var = _loop1_174_rule(p)) // param_no_default+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -21239,22 +21269,22 @@ invalid_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'")); Token * _literal; - asdl_seq * _loop0_174_var; asdl_seq * _loop0_176_var; + asdl_seq * _loop0_178_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_175_var; + void *_tmp_177_var; Token * a; if ( - (_opt_var = _tmp_173_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)] + (_opt_var = _tmp_175_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)] && - (_loop0_174_var = _loop0_174_rule(p)) // param_maybe_default* + (_loop0_176_var = _loop0_176_rule(p)) // param_maybe_default* && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_175_var = _tmp_175_rule(p)) // ',' | param_no_default + (_tmp_177_var = _tmp_177_rule(p)) // ',' | param_no_default && - (_loop0_176_var = _loop0_176_rule(p)) // param_maybe_default* + (_loop0_178_var = _loop0_178_rule(p)) // param_maybe_default* && (a = _PyPegen_expect_token(p, 17)) // token='/' ) @@ -21279,10 +21309,10 @@ invalid_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default+ '/' '*'")); Token * _literal; - asdl_seq * _loop1_177_var; + asdl_seq * _loop1_179_var; Token * a; if ( - (_loop1_177_var = _loop1_177_rule(p)) // param_maybe_default+ + (_loop1_179_var = _loop1_179_rule(p)) // param_maybe_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -21331,7 +21361,7 @@ invalid_default_rule(Parser *p) if ( (a = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(1, _tmp_178_rule, p) + _PyPegen_lookahead(1, _tmp_180_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')")); @@ -21376,12 +21406,12 @@ invalid_star_etc_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); - void *_tmp_179_var; + void *_tmp_181_var; Token * a; if ( (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_179_var = _tmp_179_rule(p)) // ')' | ',' (')' | '**') + (_tmp_181_var = _tmp_181_rule(p)) // ')' | ',' (')' | '**') ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); @@ -21464,20 +21494,20 @@ invalid_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')")); Token * _literal; - asdl_seq * _loop0_181_var; - void *_tmp_180_var; + asdl_seq * _loop0_183_var; void *_tmp_182_var; + void *_tmp_184_var; Token * a; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_180_var = _tmp_180_rule(p)) // param_no_default | ',' + (_tmp_182_var = _tmp_182_rule(p)) // param_no_default | ',' && - (_loop0_181_var = _loop0_181_rule(p)) // param_maybe_default* + (_loop0_183_var = _loop0_183_rule(p)) // param_maybe_default* && (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_182_var = _tmp_182_rule(p)) // param_no_default | ',' + (_tmp_184_var = _tmp_184_rule(p)) // param_no_default | ',' ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')")); @@ -21592,7 +21622,7 @@ invalid_kwds_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (a = (Token*)_tmp_183_rule(p)) // '*' | '**' | '/' + (a = (Token*)_tmp_185_rule(p)) // '*' | '**' | '/' ) { D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')")); @@ -21657,13 +21687,13 @@ invalid_parameters_helper_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+")); - asdl_seq * _loop1_184_var; + asdl_seq * _loop1_186_var; if ( - (_loop1_184_var = _loop1_184_rule(p)) // param_with_default+ + (_loop1_186_var = _loop1_186_rule(p)) // param_with_default+ ) { D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+")); - _res = _loop1_184_var; + _res = _loop1_186_var; goto done; } p->mark = _mark; @@ -21728,13 +21758,13 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'")); - asdl_seq * _loop0_186_var; - void *_tmp_185_var; + asdl_seq * _loop0_188_var; + void *_tmp_187_var; Token * a; if ( - (_tmp_185_var = _tmp_185_rule(p)) // lambda_slash_no_default | lambda_slash_with_default + (_tmp_187_var = _tmp_187_rule(p)) // lambda_slash_no_default | lambda_slash_with_default && - (_loop0_186_var = _loop0_186_rule(p)) // lambda_param_maybe_default* + (_loop0_188_var = _loop0_188_rule(p)) // lambda_param_maybe_default* && (a = _PyPegen_expect_token(p, 17)) // token='/' ) @@ -21758,7 +21788,7 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default")); - asdl_seq * _loop0_187_var; + asdl_seq * _loop0_189_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings arg_ty a; @@ -21766,7 +21796,7 @@ invalid_lambda_parameters_rule(Parser *p) if ( (_opt_var = lambda_slash_no_default_rule(p), !p->error_indicator) // lambda_slash_no_default? && - (_loop0_187_var = _loop0_187_rule(p)) // lambda_param_no_default* + (_loop0_189_var = _loop0_189_rule(p)) // lambda_param_no_default* && (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper && @@ -21792,18 +21822,18 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'")); - asdl_seq * _gather_189_var; - asdl_seq * _loop0_188_var; + asdl_seq * _gather_191_var; + asdl_seq * _loop0_190_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; Token * b; if ( - (_loop0_188_var = _loop0_188_rule(p)) // lambda_param_no_default* + (_loop0_190_var = _loop0_190_rule(p)) // lambda_param_no_default* && (a = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_189_var = _gather_189_rule(p)) // ','.lambda_param+ + (_gather_191_var = _gather_191_rule(p)) // ','.lambda_param+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -21830,22 +21860,22 @@ invalid_lambda_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'")); Token * _literal; - asdl_seq * _loop0_192_var; asdl_seq * _loop0_194_var; + asdl_seq * _loop0_196_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_193_var; + void *_tmp_195_var; Token * a; if ( - (_opt_var = _tmp_191_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)] + (_opt_var = _tmp_193_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)] && - (_loop0_192_var = _loop0_192_rule(p)) // lambda_param_maybe_default* + (_loop0_194_var = _loop0_194_rule(p)) // lambda_param_maybe_default* && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_193_var = _tmp_193_rule(p)) // ',' | lambda_param_no_default + (_tmp_195_var = _tmp_195_rule(p)) // ',' | lambda_param_no_default && - (_loop0_194_var = _loop0_194_rule(p)) // lambda_param_maybe_default* + (_loop0_196_var = _loop0_196_rule(p)) // lambda_param_maybe_default* && (a = _PyPegen_expect_token(p, 17)) // token='/' ) @@ -21870,10 +21900,10 @@ invalid_lambda_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default+ '/' '*'")); Token * _literal; - asdl_seq * _loop1_195_var; + asdl_seq * _loop1_197_var; Token * a; if ( - (_loop1_195_var = _loop1_195_rule(p)) // lambda_param_maybe_default+ + (_loop1_197_var = _loop1_197_rule(p)) // lambda_param_maybe_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -21944,13 +21974,13 @@ invalid_lambda_parameters_helper_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+")); - asdl_seq * _loop1_196_var; + asdl_seq * _loop1_198_var; if ( - (_loop1_196_var = _loop1_196_rule(p)) // lambda_param_with_default+ + (_loop1_198_var = _loop1_198_rule(p)) // lambda_param_with_default+ ) { D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+")); - _res = _loop1_196_var; + _res = _loop1_198_var; goto done; } p->mark = _mark; @@ -21986,11 +22016,11 @@ invalid_lambda_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); Token * _literal; - void *_tmp_197_var; + void *_tmp_199_var; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_197_var = _tmp_197_rule(p)) // ':' | ',' (':' | '**') + (_tmp_199_var = _tmp_199_rule(p)) // ':' | ',' (':' | '**') ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); @@ -22043,20 +22073,20 @@ invalid_lambda_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')")); Token * _literal; - asdl_seq * _loop0_199_var; - void *_tmp_198_var; + asdl_seq * _loop0_201_var; void *_tmp_200_var; + void *_tmp_202_var; Token * a; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_198_var = _tmp_198_rule(p)) // lambda_param_no_default | ',' + (_tmp_200_var = _tmp_200_rule(p)) // lambda_param_no_default | ',' && - (_loop0_199_var = _loop0_199_rule(p)) // lambda_param_maybe_default* + (_loop0_201_var = _loop0_201_rule(p)) // lambda_param_maybe_default* && (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_200_var = _tmp_200_rule(p)) // lambda_param_no_default | ',' + (_tmp_202_var = _tmp_202_rule(p)) // lambda_param_no_default | ',' ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')")); @@ -22174,7 +22204,7 @@ invalid_lambda_kwds_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (a = (Token*)_tmp_201_rule(p)) // '*' | '**' | '/' + (a = (Token*)_tmp_203_rule(p)) // '*' | '**' | '/' ) { D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')")); @@ -22280,7 +22310,7 @@ invalid_with_item_rule(Parser *p) && (a = expression_rule(p)) // expression && - _PyPegen_lookahead(1, _tmp_202_rule, p) + _PyPegen_lookahead(1, _tmp_204_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')")); @@ -22453,14 +22483,14 @@ invalid_import_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_import[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' ','.dotted_name+ 'from' dotted_name")); - asdl_seq * _gather_203_var; + asdl_seq * _gather_205_var; Token * _keyword; Token * a; expr_ty dotted_name_var; if ( (a = _PyPegen_expect_token(p, 607)) // token='import' && - (_gather_203_var = _gather_203_rule(p)) // ','.dotted_name+ + (_gather_205_var = _gather_205_rule(p)) // ','.dotted_name+ && (_keyword = _PyPegen_expect_token(p, 608)) // token='from' && @@ -22556,7 +22586,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE")); - asdl_seq * _gather_205_var; + asdl_seq * _gather_207_var; Token * _keyword; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -22566,7 +22596,7 @@ invalid_with_stmt_rule(Parser *p) && (_keyword = _PyPegen_expect_token(p, 615)) // token='with' && - (_gather_205_var = _gather_205_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_207_var = _gather_207_rule(p)) // ','.(expression ['as' star_target])+ && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -22590,7 +22620,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); - asdl_seq * _gather_207_var; + asdl_seq * _gather_209_var; Token * _keyword; Token * _literal; Token * _literal_1; @@ -22606,7 +22636,7 @@ invalid_with_stmt_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_207_var = _gather_207_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_209_var = _gather_209_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -22655,7 +22685,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT")); - asdl_seq * _gather_209_var; + asdl_seq * _gather_211_var; Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -22666,7 +22696,7 @@ invalid_with_stmt_indent_rule(Parser *p) && (a = _PyPegen_expect_token(p, 615)) // token='with' && - (_gather_209_var = _gather_209_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_211_var = _gather_211_rule(p)) // ','.(expression ['as' star_target])+ && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22694,7 +22724,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT")); - asdl_seq * _gather_211_var; + asdl_seq * _gather_213_var; Token * _literal; Token * _literal_1; Token * _literal_2; @@ -22711,7 +22741,7 @@ invalid_with_stmt_indent_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_211_var = _gather_211_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_213_var = _gather_213_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -22808,7 +22838,7 @@ invalid_try_stmt_rule(Parser *p) && (block_var = block_rule(p)) // block && - _PyPegen_lookahead(0, _tmp_213_rule, p) + _PyPegen_lookahead(0, _tmp_215_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')")); @@ -22833,8 +22863,8 @@ invalid_try_stmt_rule(Parser *p) Token * _keyword; Token * _literal; Token * _literal_1; - asdl_seq * _loop0_214_var; - asdl_seq * _loop1_215_var; + asdl_seq * _loop0_216_var; + asdl_seq * _loop1_217_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; @@ -22845,9 +22875,9 @@ invalid_try_stmt_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_214_var = _loop0_214_rule(p)) // block* + (_loop0_216_var = _loop0_216_rule(p)) // block* && - (_loop1_215_var = _loop1_215_rule(p)) // except_block+ + (_loop1_217_var = _loop1_217_rule(p)) // except_block+ && (a = _PyPegen_expect_token(p, 637)) // token='except' && @@ -22855,7 +22885,7 @@ invalid_try_stmt_rule(Parser *p) && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_216_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var = _tmp_218_rule(p), !p->error_indicator) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -22882,8 +22912,8 @@ invalid_try_stmt_rule(Parser *p) Token * _keyword; Token * _literal; Token * _literal_1; - asdl_seq * _loop0_217_var; - asdl_seq * _loop1_218_var; + asdl_seq * _loop0_219_var; + asdl_seq * _loop1_220_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; @@ -22892,13 +22922,13 @@ invalid_try_stmt_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_217_var = _loop0_217_rule(p)) // block* + (_loop0_219_var = _loop0_219_rule(p)) // block* && - (_loop1_218_var = _loop1_218_rule(p)) // except_star_block+ + (_loop1_220_var = _loop1_220_rule(p)) // except_star_block+ && (a = _PyPegen_expect_token(p, 637)) // token='except' && - (_opt_var = _tmp_219_rule(p), !p->error_indicator) // [expression ['as' NAME]] + (_opt_var = _tmp_221_rule(p), !p->error_indicator) // [expression ['as' NAME]] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -22965,7 +22995,7 @@ invalid_except_stmt_rule(Parser *p) && (expressions_var = expressions_rule(p)) // expressions && - (_opt_var_1 = _tmp_220_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var_1 = _tmp_222_rule(p), !p->error_indicator) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -23003,7 +23033,7 @@ invalid_except_stmt_rule(Parser *p) && (expression_var = expression_rule(p)) // expression && - (_opt_var_1 = _tmp_221_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var_1 = _tmp_223_rule(p), !p->error_indicator) // ['as' NAME] && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -23055,14 +23085,14 @@ invalid_except_stmt_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')")); Token * _literal; - void *_tmp_222_var; + void *_tmp_224_var; Token * a; if ( (a = _PyPegen_expect_token(p, 637)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_222_var = _tmp_222_rule(p)) // NEWLINE | ':' + (_tmp_224_var = _tmp_224_rule(p)) // NEWLINE | ':' ) { D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')")); @@ -23167,7 +23197,7 @@ invalid_except_stmt_indent_rule(Parser *p) && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_223_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var = _tmp_225_rule(p), !p->error_indicator) // ['as' NAME] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23261,7 +23291,7 @@ invalid_except_star_stmt_indent_rule(Parser *p) && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_224_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var = _tmp_226_rule(p), !p->error_indicator) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23625,7 +23655,7 @@ invalid_class_argument_pattern_rule(Parser *p) asdl_pattern_seq* a; asdl_seq* keyword_patterns_var; if ( - (_opt_var = _tmp_225_rule(p), !p->error_indicator) // [positional_patterns ','] + (_opt_var = _tmp_227_rule(p), !p->error_indicator) // [positional_patterns ','] && (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns && @@ -24117,7 +24147,7 @@ invalid_def_raw_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' && - (_opt_var_3 = _tmp_226_rule(p), !p->error_indicator) // ['->' expression] + (_opt_var_3 = _tmp_228_rule(p), !p->error_indicator) // ['->' expression] && (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -24180,7 +24210,7 @@ invalid_class_def_raw_rule(Parser *p) && (_opt_var = type_params_rule(p), !p->error_indicator) // type_params? && - (_opt_var_1 = _tmp_227_rule(p), !p->error_indicator) // ['(' arguments? ')'] + (_opt_var_1 = _tmp_229_rule(p), !p->error_indicator) // ['(' arguments? ')'] && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -24219,7 +24249,7 @@ invalid_class_def_raw_rule(Parser *p) && (_opt_var = type_params_rule(p), !p->error_indicator) // type_params? && - (_opt_var_1 = _tmp_228_rule(p), !p->error_indicator) // ['(' arguments? ')'] + (_opt_var_1 = _tmp_230_rule(p), !p->error_indicator) // ['(' arguments? ')'] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -24269,11 +24299,11 @@ invalid_double_starred_kvpairs_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - asdl_seq * _gather_229_var; + asdl_seq * _gather_231_var; Token * _literal; void *invalid_kvpair_var; if ( - (_gather_229_var = _gather_229_rule(p)) // ','.double_starred_kvpair+ + (_gather_231_var = _gather_231_rule(p)) // ','.double_starred_kvpair+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -24281,7 +24311,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - _res = _PyPegen_dummy_name(p, _gather_229_var, _literal, invalid_kvpair_var); + _res = _PyPegen_dummy_name(p, _gather_231_var, _literal, invalid_kvpair_var); goto done; } p->mark = _mark; @@ -24334,7 +24364,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, _tmp_231_rule, p) + _PyPegen_lookahead(1, _tmp_233_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -24444,7 +24474,7 @@ invalid_kvpair_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, _tmp_232_rule, p) + _PyPegen_lookahead(1, _tmp_234_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -24660,7 +24690,7 @@ invalid_replacement_field_rule(Parser *p) if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' && - _PyPegen_lookahead(0, _tmp_233_rule, p) + _PyPegen_lookahead(0, _tmp_235_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' !(yield_expr | star_expressions)")); @@ -24683,13 +24713,13 @@ invalid_replacement_field_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}')")); Token * _literal; - void *_tmp_234_var; + void *_tmp_236_var; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' && - (_tmp_234_var = _tmp_234_rule(p)) // yield_expr | star_expressions + (_tmp_236_var = _tmp_236_rule(p)) // yield_expr | star_expressions && - _PyPegen_lookahead(0, _tmp_235_rule, p) + _PyPegen_lookahead(0, _tmp_237_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}')")); @@ -24713,15 +24743,15 @@ invalid_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '=' !('!' | ':' | '}')")); Token * _literal; Token * _literal_1; - void *_tmp_236_var; + void *_tmp_238_var; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' && - (_tmp_236_var = _tmp_236_rule(p)) // yield_expr | star_expressions + (_tmp_238_var = _tmp_238_rule(p)) // yield_expr | star_expressions && (_literal_1 = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(0, _tmp_237_rule, p) + _PyPegen_lookahead(0, _tmp_239_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '=' !('!' | ':' | '}')")); @@ -24746,12 +24776,12 @@ invalid_replacement_field_rule(Parser *p) Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_238_var; + void *_tmp_240_var; void *invalid_conversion_character_var; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' && - (_tmp_238_var = _tmp_238_rule(p)) // yield_expr | star_expressions + (_tmp_240_var = _tmp_240_rule(p)) // yield_expr | star_expressions && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && @@ -24759,7 +24789,7 @@ invalid_replacement_field_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? invalid_conversion_character")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_238_var, _opt_var, invalid_conversion_character_var); + _res = _PyPegen_dummy_name(p, _literal, _tmp_240_var, _opt_var, invalid_conversion_character_var); goto done; } p->mark = _mark; @@ -24777,17 +24807,17 @@ invalid_replacement_field_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings void *_opt_var_1; UNUSED(_opt_var_1); // Silence compiler warnings - void *_tmp_239_var; + void *_tmp_241_var; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' && - (_tmp_239_var = _tmp_239_rule(p)) // yield_expr | star_expressions + (_tmp_241_var = _tmp_241_rule(p)) // yield_expr | star_expressions && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_240_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_242_rule(p), !p->error_indicator) // ['!' NAME] && - _PyPegen_lookahead(0, _tmp_241_rule, p) + _PyPegen_lookahead(0, _tmp_243_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}')")); @@ -24811,24 +24841,24 @@ invalid_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}'")); Token * _literal; Token * _literal_1; - asdl_seq * _loop0_244_var; + asdl_seq * _loop0_246_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings void *_opt_var_1; UNUSED(_opt_var_1); // Silence compiler warnings - void *_tmp_242_var; + void *_tmp_244_var; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' && - (_tmp_242_var = _tmp_242_rule(p)) // yield_expr | star_expressions + (_tmp_244_var = _tmp_244_rule(p)) // yield_expr | star_expressions && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_243_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_245_rule(p), !p->error_indicator) // ['!' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_244_var = _loop0_244_rule(p)) // fstring_format_spec* + (_loop0_246_var = _loop0_246_rule(p)) // fstring_format_spec* && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26) // token='}' ) @@ -24857,15 +24887,15 @@ invalid_replacement_field_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings void *_opt_var_1; UNUSED(_opt_var_1); // Silence compiler warnings - void *_tmp_245_var; + void *_tmp_247_var; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' && - (_tmp_245_var = _tmp_245_rule(p)) // yield_expr | star_expressions + (_tmp_247_var = _tmp_247_rule(p)) // yield_expr | star_expressions && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_246_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_248_rule(p), !p->error_indicator) // ['!' NAME] && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26) // token='}' ) @@ -24912,7 +24942,7 @@ invalid_conversion_character_rule(Parser *p) if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' && - _PyPegen_lookahead(1, _tmp_247_rule, p) + _PyPegen_lookahead(1, _tmp_249_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')")); @@ -25775,12 +25805,12 @@ _loop1_14_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_248_var; + void *_tmp_250_var; while ( - (_tmp_248_var = _tmp_248_rule(p)) // star_targets '=' + (_tmp_250_var = _tmp_250_rule(p)) // star_targets '=' ) { - _res = _tmp_248_var; + _res = _tmp_250_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26344,12 +26374,12 @@ _loop0_24_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_249_var; + void *_tmp_251_var; while ( - (_tmp_249_var = _tmp_249_rule(p)) // '.' | '...' + (_tmp_251_var = _tmp_251_rule(p)) // '.' | '...' ) { - _res = _tmp_249_var; + _res = _tmp_251_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26411,12 +26441,12 @@ _loop1_25_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_250_var; + void *_tmp_252_var; while ( - (_tmp_250_var = _tmp_250_rule(p)) // '.' | '...' + (_tmp_252_var = _tmp_252_rule(p)) // '.' | '...' ) { - _res = _tmp_250_var; + _res = _tmp_252_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26809,12 +26839,12 @@ _loop1_32_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); - void *_tmp_251_var; + void *_tmp_253_var; while ( - (_tmp_251_var = _tmp_251_rule(p)) // '@' named_expression NEWLINE + (_tmp_253_var = _tmp_253_rule(p)) // '@' named_expression NEWLINE ) { - _res = _tmp_251_var; + _res = _tmp_253_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29939,12 +29969,12 @@ _loop1_82_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)")); - void *_tmp_252_var; + void *_tmp_254_var; while ( - (_tmp_252_var = _tmp_252_rule(p)) // ',' expression + (_tmp_254_var = _tmp_254_rule(p)) // ',' expression ) { - _res = _tmp_252_var; + _res = _tmp_254_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30011,12 +30041,12 @@ _loop1_83_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); - void *_tmp_253_var; + void *_tmp_255_var; while ( - (_tmp_253_var = _tmp_253_rule(p)) // ',' star_expression + (_tmp_255_var = _tmp_255_rule(p)) // ',' star_expression ) { - _res = _tmp_253_var; + _res = _tmp_255_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30200,12 +30230,12 @@ _loop1_86_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); - void *_tmp_254_var; + void *_tmp_256_var; while ( - (_tmp_254_var = _tmp_254_rule(p)) // 'or' conjunction + (_tmp_256_var = _tmp_256_rule(p)) // 'or' conjunction ) { - _res = _tmp_254_var; + _res = _tmp_256_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30272,12 +30302,12 @@ _loop1_87_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); - void *_tmp_255_var; + void *_tmp_257_var; while ( - (_tmp_255_var = _tmp_255_rule(p)) // 'and' inversion + (_tmp_257_var = _tmp_257_rule(p)) // 'and' inversion ) { - _res = _tmp_255_var; + _res = _tmp_257_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30464,7 +30494,7 @@ _loop0_91_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_256_rule(p)) // slice | starred_expression + (elem = _tmp_258_rule(p)) // slice | starred_expression ) { _res = elem; @@ -30529,7 +30559,7 @@ _gather_90_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_256_rule(p)) // slice | starred_expression + (elem = _tmp_258_rule(p)) // slice | starred_expression && (seq = _loop0_91_rule(p)) // _loop0_91 ) @@ -32128,12 +32158,12 @@ _loop1_115_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(fstring | string)")); - void *_tmp_257_var; + void *_tmp_259_var; while ( - (_tmp_257_var = _tmp_257_rule(p)) // fstring | string + (_tmp_259_var = _tmp_259_rule(p)) // fstring | string ) { - _res = _tmp_257_var; + _res = _tmp_259_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -32438,12 +32468,12 @@ _loop0_120_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_258_var; + void *_tmp_260_var; while ( - (_tmp_258_var = _tmp_258_rule(p)) // 'if' disjunction + (_tmp_260_var = _tmp_260_rule(p)) // 'if' disjunction ) { - _res = _tmp_258_var; + _res = _tmp_260_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -32505,12 +32535,12 @@ _loop0_121_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_259_var; + void *_tmp_261_var; while ( - (_tmp_259_var = _tmp_259_rule(p)) // 'if' disjunction + (_tmp_261_var = _tmp_261_rule(p)) // 'if' disjunction ) { - _res = _tmp_259_var; + _res = _tmp_261_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -32636,7 +32666,7 @@ _loop0_124_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_260_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_262_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' ) { _res = elem; @@ -32702,7 +32732,7 @@ _gather_123_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_260_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_262_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' && (seq = _loop0_124_rule(p)) // _loop0_124 ) @@ -33263,12 +33293,12 @@ _loop0_134_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_261_var; + void *_tmp_263_var; while ( - (_tmp_261_var = _tmp_261_rule(p)) // ',' star_target + (_tmp_263_var = _tmp_263_rule(p)) // ',' star_target ) { - _res = _tmp_261_var; + _res = _tmp_263_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33447,12 +33477,12 @@ _loop1_137_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_262_var; + void *_tmp_264_var; while ( - (_tmp_262_var = _tmp_262_rule(p)) // ',' star_target + (_tmp_264_var = _tmp_264_rule(p)) // ',' star_target ) { - _res = _tmp_262_var; + _res = _tmp_264_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -34178,13 +34208,13 @@ _tmp_150_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)")); - void *_tmp_263_var; + void *_tmp_265_var; if ( - (_tmp_263_var = _tmp_263_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs + (_tmp_265_var = _tmp_265_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs ) { D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)")); - _res = _tmp_263_var; + _res = _tmp_265_var; goto done; } p->mark = _mark; @@ -34216,9 +34246,126 @@ _tmp_150_rule(Parser *p) return _res; } -// _tmp_151: args | expression for_if_clauses +// _loop0_152: ',' (starred_expression !'=') +static asdl_seq * +_loop0_152_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void *_res = NULL; + int _mark = p->mark; + void **_children = PyMem_Malloc(sizeof(void *)); + if (!_children) { + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + Py_ssize_t _children_capacity = 1; + Py_ssize_t _n = 0; + { // ',' (starred_expression !'=') + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _loop0_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression !'=')")); + Token * _literal; + void *elem; + while ( + (_literal = _PyPegen_expect_token(p, 12)) // token=',' + && + (elem = _tmp_266_rule(p)) // starred_expression !'=' + ) + { + _res = elem; + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + PyMem_Free(_children); + p->level--; + return NULL; + } + if (_n == _children_capacity) { + _children_capacity *= 2; + void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); + if (!_new_children) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + _children = _new_children; + } + _children[_n++] = _res; + _mark = p->mark; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _loop0_152[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression !'=')")); + } + asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); + if (!_seq) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); + PyMem_Free(_children); + p->level--; + return _seq; +} + +// _gather_151: (starred_expression !'=') _loop0_152 +static asdl_seq * +_gather_151_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + asdl_seq * _res = NULL; + int _mark = p->mark; + { // (starred_expression !'=') _loop0_152 + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _gather_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression !'=') _loop0_152")); + void *elem; + asdl_seq * seq; + if ( + (elem = _tmp_266_rule(p)) // starred_expression !'=' + && + (seq = _loop0_152_rule(p)) // _loop0_152 + ) + { + D(fprintf(stderr, "%*c+ _gather_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression !'=') _loop0_152")); + _res = _PyPegen_seq_insert_in_front(p, elem, seq); + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _gather_151[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression !'=') _loop0_152")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_153: args | expression for_if_clauses static void * -_tmp_151_rule(Parser *p) +_tmp_153_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34234,18 +34381,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args")); expr_ty args_var; if ( (args_var = args_rule(p)) // args ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args")); _res = args_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args")); } { // expression for_if_clauses @@ -34253,7 +34400,7 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses")); expr_ty expression_var; asdl_comprehension_seq* for_if_clauses_var; if ( @@ -34262,12 +34409,12 @@ _tmp_151_rule(Parser *p) (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses")); _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses")); } _res = NULL; @@ -34276,9 +34423,9 @@ _tmp_151_rule(Parser *p) return _res; } -// _tmp_152: args ',' +// _tmp_154: args ',' static void * -_tmp_152_rule(Parser *p) +_tmp_154_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34294,7 +34441,7 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','")); Token * _literal; expr_ty args_var; if ( @@ -34303,12 +34450,12 @@ _tmp_152_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','")); _res = _PyPegen_dummy_name(p, args_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','")); } _res = NULL; @@ -34317,9 +34464,9 @@ _tmp_152_rule(Parser *p) return _res; } -// _tmp_153: ',' | ')' +// _tmp_155: ',' | ')' static void * -_tmp_153_rule(Parser *p) +_tmp_155_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34335,18 +34482,18 @@ _tmp_153_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // ')' @@ -34354,18 +34501,18 @@ _tmp_153_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } _res = NULL; @@ -34374,9 +34521,9 @@ _tmp_153_rule(Parser *p) return _res; } -// _tmp_154: 'True' | 'False' | 'None' +// _tmp_156: 'True' | 'False' | 'None' static void * -_tmp_154_rule(Parser *p) +_tmp_156_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34392,18 +34539,18 @@ _tmp_154_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 601)) // token='True' ) { - D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } { // 'False' @@ -34411,18 +34558,18 @@ _tmp_154_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 603)) // token='False' ) { - D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } { // 'None' @@ -34430,18 +34577,18 @@ _tmp_154_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 602)) // token='None' ) { - D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } _res = NULL; @@ -34450,9 +34597,9 @@ _tmp_154_rule(Parser *p) return _res; } -// _tmp_155: NAME '=' +// _tmp_157: NAME '=' static void * -_tmp_155_rule(Parser *p) +_tmp_157_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34468,7 +34615,7 @@ _tmp_155_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='")); Token * _literal; expr_ty name_var; if ( @@ -34477,12 +34624,12 @@ _tmp_155_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='")); _res = _PyPegen_dummy_name(p, name_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='")); } _res = NULL; @@ -34491,9 +34638,9 @@ _tmp_155_rule(Parser *p) return _res; } -// _tmp_156: NAME STRING | SOFT_KEYWORD +// _tmp_158: NAME STRING | SOFT_KEYWORD static void * -_tmp_156_rule(Parser *p) +_tmp_158_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34509,7 +34656,7 @@ _tmp_156_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING")); + D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING")); expr_ty name_var; expr_ty string_var; if ( @@ -34518,12 +34665,12 @@ _tmp_156_rule(Parser *p) (string_var = _PyPegen_string_token(p)) // STRING ) { - D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING")); + D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING")); _res = _PyPegen_dummy_name(p, name_var, string_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING")); } { // SOFT_KEYWORD @@ -34531,18 +34678,18 @@ _tmp_156_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD")); + D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD")); expr_ty soft_keyword_var; if ( (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD ) { - D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD")); + D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD")); _res = soft_keyword_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD")); } _res = NULL; @@ -34551,9 +34698,9 @@ _tmp_156_rule(Parser *p) return _res; } -// _tmp_157: 'else' | ':' +// _tmp_159: 'else' | ':' static void * -_tmp_157_rule(Parser *p) +_tmp_159_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34569,18 +34716,18 @@ _tmp_157_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 645)) // token='else' ) { - D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'")); } { // ':' @@ -34588,18 +34735,18 @@ _tmp_157_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -34608,9 +34755,9 @@ _tmp_157_rule(Parser *p) return _res; } -// _tmp_158: '=' | ':=' +// _tmp_160: '=' | ':=' static void * -_tmp_158_rule(Parser *p) +_tmp_160_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34626,18 +34773,18 @@ _tmp_158_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -34645,18 +34792,18 @@ _tmp_158_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -34665,9 +34812,9 @@ _tmp_158_rule(Parser *p) return _res; } -// _tmp_159: list | tuple | genexp | 'True' | 'None' | 'False' +// _tmp_161: list | tuple | genexp | 'True' | 'None' | 'False' static void * -_tmp_159_rule(Parser *p) +_tmp_161_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34683,18 +34830,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); expr_ty list_var; if ( (list_var = list_rule(p)) // list ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); _res = list_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } { // tuple @@ -34702,18 +34849,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); expr_ty tuple_var; if ( (tuple_var = tuple_rule(p)) // tuple ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); _res = tuple_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } { // genexp @@ -34721,18 +34868,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); expr_ty genexp_var; if ( (genexp_var = genexp_rule(p)) // genexp ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); _res = genexp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } { // 'True' @@ -34740,18 +34887,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 601)) // token='True' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } { // 'None' @@ -34759,18 +34906,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 602)) // token='None' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } { // 'False' @@ -34778,18 +34925,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 603)) // token='False' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } _res = NULL; @@ -34798,9 +34945,9 @@ _tmp_159_rule(Parser *p) return _res; } -// _tmp_160: '=' | ':=' +// _tmp_162: '=' | ':=' static void * -_tmp_160_rule(Parser *p) +_tmp_162_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34816,18 +34963,18 @@ _tmp_160_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -34835,18 +34982,18 @@ _tmp_160_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -34855,9 +35002,9 @@ _tmp_160_rule(Parser *p) return _res; } -// _loop0_161: star_named_expressions +// _loop0_163: star_named_expressions static asdl_seq * -_loop0_161_rule(Parser *p) +_loop0_163_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34882,7 +35029,7 @@ _loop0_161_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); + D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); asdl_expr_seq* star_named_expressions_var; while ( (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions @@ -34905,7 +35052,7 @@ _loop0_161_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_161[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34922,9 +35069,9 @@ _loop0_161_rule(Parser *p) return _seq; } -// _loop0_162: (star_targets '=') +// _loop0_164: (star_targets '=') static asdl_seq * -_loop0_162_rule(Parser *p) +_loop0_164_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34949,13 +35096,13 @@ _loop0_162_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_264_var; + D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_267_var; while ( - (_tmp_264_var = _tmp_264_rule(p)) // star_targets '=' + (_tmp_267_var = _tmp_267_rule(p)) // star_targets '=' ) { - _res = _tmp_264_var; + _res = _tmp_267_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -34972,7 +35119,7 @@ _loop0_162_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34989,9 +35136,9 @@ _loop0_162_rule(Parser *p) return _seq; } -// _loop0_163: (star_targets '=') +// _loop0_165: (star_targets '=') static asdl_seq * -_loop0_163_rule(Parser *p) +_loop0_165_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35016,13 +35163,13 @@ _loop0_163_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_265_var; + D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_268_var; while ( - (_tmp_265_var = _tmp_265_rule(p)) // star_targets '=' + (_tmp_268_var = _tmp_268_rule(p)) // star_targets '=' ) { - _res = _tmp_265_var; + _res = _tmp_268_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -35039,7 +35186,7 @@ _loop0_163_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35056,9 +35203,9 @@ _loop0_163_rule(Parser *p) return _seq; } -// _tmp_164: yield_expr | star_expressions +// _tmp_166: yield_expr | star_expressions static void * -_tmp_164_rule(Parser *p) +_tmp_166_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35074,18 +35221,18 @@ _tmp_164_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -35093,18 +35240,18 @@ _tmp_164_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -35113,9 +35260,9 @@ _tmp_164_rule(Parser *p) return _res; } -// _tmp_165: '[' | '(' | '{' +// _tmp_167: '[' | '(' | '{' static void * -_tmp_165_rule(Parser *p) +_tmp_167_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35131,18 +35278,18 @@ _tmp_165_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '(' @@ -35150,18 +35297,18 @@ _tmp_165_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' ) { - D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } { // '{' @@ -35169,18 +35316,18 @@ _tmp_165_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -35189,9 +35336,9 @@ _tmp_165_rule(Parser *p) return _res; } -// _tmp_166: '[' | '{' +// _tmp_168: '[' | '{' static void * -_tmp_166_rule(Parser *p) +_tmp_168_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35207,18 +35354,18 @@ _tmp_166_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -35226,18 +35373,18 @@ _tmp_166_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -35246,9 +35393,9 @@ _tmp_166_rule(Parser *p) return _res; } -// _tmp_167: '[' | '{' +// _tmp_169: '[' | '{' static void * -_tmp_167_rule(Parser *p) +_tmp_169_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35264,18 +35411,18 @@ _tmp_167_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -35283,18 +35430,18 @@ _tmp_167_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -35303,9 +35450,9 @@ _tmp_167_rule(Parser *p) return _res; } -// _tmp_168: slash_no_default | slash_with_default +// _tmp_170: slash_no_default | slash_with_default static void * -_tmp_168_rule(Parser *p) +_tmp_170_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35321,18 +35468,18 @@ _tmp_168_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); asdl_arg_seq* slash_no_default_var; if ( (slash_no_default_var = slash_no_default_rule(p)) // slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); _res = slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default")); } { // slash_with_default @@ -35340,18 +35487,18 @@ _tmp_168_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); SlashWithDefault* slash_with_default_var; if ( (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); _res = slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default")); } _res = NULL; @@ -35360,9 +35507,9 @@ _tmp_168_rule(Parser *p) return _res; } -// _loop0_169: param_maybe_default +// _loop0_171: param_maybe_default static asdl_seq * -_loop0_169_rule(Parser *p) +_loop0_171_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35387,7 +35534,7 @@ _loop0_169_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -35410,7 +35557,7 @@ _loop0_169_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35427,9 +35574,9 @@ _loop0_169_rule(Parser *p) return _seq; } -// _loop0_170: param_no_default +// _loop0_172: param_no_default static asdl_seq * -_loop0_170_rule(Parser *p) +_loop0_172_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35454,7 +35601,7 @@ _loop0_170_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -35477,7 +35624,7 @@ _loop0_170_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_170[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_172[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35494,9 +35641,9 @@ _loop0_170_rule(Parser *p) return _seq; } -// _loop0_171: param_no_default +// _loop0_173: param_no_default static asdl_seq * -_loop0_171_rule(Parser *p) +_loop0_173_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35521,7 +35668,7 @@ _loop0_171_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -35544,7 +35691,7 @@ _loop0_171_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_171[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_173[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35561,9 +35708,9 @@ _loop0_171_rule(Parser *p) return _seq; } -// _loop1_172: param_no_default +// _loop1_174: param_no_default static asdl_seq * -_loop1_172_rule(Parser *p) +_loop1_174_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35588,7 +35735,7 @@ _loop1_172_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop1_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -35611,7 +35758,7 @@ _loop1_172_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_172[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_174[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } if (_n == 0 || p->error_indicator) { @@ -35633,9 +35780,9 @@ _loop1_172_rule(Parser *p) return _seq; } -// _tmp_173: slash_no_default | slash_with_default +// _tmp_175: slash_no_default | slash_with_default static void * -_tmp_173_rule(Parser *p) +_tmp_175_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35651,18 +35798,18 @@ _tmp_173_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); asdl_arg_seq* slash_no_default_var; if ( (slash_no_default_var = slash_no_default_rule(p)) // slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); _res = slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default")); } { // slash_with_default @@ -35670,18 +35817,18 @@ _tmp_173_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); SlashWithDefault* slash_with_default_var; if ( (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); _res = slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default")); } _res = NULL; @@ -35690,9 +35837,9 @@ _tmp_173_rule(Parser *p) return _res; } -// _loop0_174: param_maybe_default +// _loop0_176: param_maybe_default static asdl_seq * -_loop0_174_rule(Parser *p) +_loop0_176_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35717,7 +35864,7 @@ _loop0_174_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -35740,7 +35887,7 @@ _loop0_174_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_174[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_176[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35757,9 +35904,9 @@ _loop0_174_rule(Parser *p) return _seq; } -// _tmp_175: ',' | param_no_default +// _tmp_177: ',' | param_no_default static void * -_tmp_175_rule(Parser *p) +_tmp_177_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35775,18 +35922,18 @@ _tmp_175_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // param_no_default @@ -35794,18 +35941,18 @@ _tmp_175_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } _res = NULL; @@ -35814,9 +35961,9 @@ _tmp_175_rule(Parser *p) return _res; } -// _loop0_176: param_maybe_default +// _loop0_178: param_maybe_default static asdl_seq * -_loop0_176_rule(Parser *p) +_loop0_178_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35841,7 +35988,7 @@ _loop0_176_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -35864,7 +36011,7 @@ _loop0_176_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_176[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_178[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35881,9 +36028,9 @@ _loop0_176_rule(Parser *p) return _seq; } -// _loop1_177: param_maybe_default +// _loop1_179: param_maybe_default static asdl_seq * -_loop1_177_rule(Parser *p) +_loop1_179_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35908,7 +36055,7 @@ _loop1_177_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop1_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -35931,7 +36078,7 @@ _loop1_177_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_177[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_179[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } if (_n == 0 || p->error_indicator) { @@ -35953,9 +36100,9 @@ _loop1_177_rule(Parser *p) return _seq; } -// _tmp_178: ')' | ',' +// _tmp_180: ')' | ',' static void * -_tmp_178_rule(Parser *p) +_tmp_180_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35971,18 +36118,18 @@ _tmp_178_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' @@ -35990,18 +36137,18 @@ _tmp_178_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -36010,9 +36157,9 @@ _tmp_178_rule(Parser *p) return _res; } -// _tmp_179: ')' | ',' (')' | '**') +// _tmp_181: ')' | ',' (')' | '**') static void * -_tmp_179_rule(Parser *p) +_tmp_181_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36028,18 +36175,18 @@ _tmp_179_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' (')' | '**') @@ -36047,21 +36194,21 @@ _tmp_179_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); Token * _literal; - void *_tmp_266_var; + void *_tmp_269_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_266_var = _tmp_266_rule(p)) // ')' | '**' + (_tmp_269_var = _tmp_269_rule(p)) // ')' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_266_var); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_269_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')")); } _res = NULL; @@ -36070,9 +36217,9 @@ _tmp_179_rule(Parser *p) return _res; } -// _tmp_180: param_no_default | ',' +// _tmp_182: param_no_default | ',' static void * -_tmp_180_rule(Parser *p) +_tmp_182_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36088,18 +36235,18 @@ _tmp_180_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } { // ',' @@ -36107,18 +36254,18 @@ _tmp_180_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -36127,9 +36274,9 @@ _tmp_180_rule(Parser *p) return _res; } -// _loop0_181: param_maybe_default +// _loop0_183: param_maybe_default static asdl_seq * -_loop0_181_rule(Parser *p) +_loop0_183_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36154,7 +36301,7 @@ _loop0_181_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -36177,7 +36324,7 @@ _loop0_181_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_181[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_183[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36194,9 +36341,9 @@ _loop0_181_rule(Parser *p) return _seq; } -// _tmp_182: param_no_default | ',' +// _tmp_184: param_no_default | ',' static void * -_tmp_182_rule(Parser *p) +_tmp_184_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36212,18 +36359,18 @@ _tmp_182_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } { // ',' @@ -36231,18 +36378,18 @@ _tmp_182_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -36251,9 +36398,9 @@ _tmp_182_rule(Parser *p) return _res; } -// _tmp_183: '*' | '**' | '/' +// _tmp_185: '*' | '**' | '/' static void * -_tmp_183_rule(Parser *p) +_tmp_185_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36269,18 +36416,18 @@ _tmp_183_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' ) { - D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } { // '**' @@ -36288,18 +36435,18 @@ _tmp_183_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } { // '/' @@ -36307,18 +36454,18 @@ _tmp_183_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 17)) // token='/' ) { - D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } _res = NULL; @@ -36327,9 +36474,9 @@ _tmp_183_rule(Parser *p) return _res; } -// _loop1_184: param_with_default +// _loop1_186: param_with_default static asdl_seq * -_loop1_184_rule(Parser *p) +_loop1_186_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36354,7 +36501,7 @@ _loop1_184_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop1_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -36377,7 +36524,7 @@ _loop1_184_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_184[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_186[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -36399,9 +36546,9 @@ _loop1_184_rule(Parser *p) return _seq; } -// _tmp_185: lambda_slash_no_default | lambda_slash_with_default +// _tmp_187: lambda_slash_no_default | lambda_slash_with_default static void * -_tmp_185_rule(Parser *p) +_tmp_187_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36417,18 +36564,18 @@ _tmp_185_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); asdl_arg_seq* lambda_slash_no_default_var; if ( (lambda_slash_no_default_var = lambda_slash_no_default_rule(p)) // lambda_slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); _res = lambda_slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default")); } { // lambda_slash_with_default @@ -36436,18 +36583,18 @@ _tmp_185_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); SlashWithDefault* lambda_slash_with_default_var; if ( (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); _res = lambda_slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default")); } _res = NULL; @@ -36456,9 +36603,9 @@ _tmp_185_rule(Parser *p) return _res; } -// _loop0_186: lambda_param_maybe_default +// _loop0_188: lambda_param_maybe_default static asdl_seq * -_loop0_186_rule(Parser *p) +_loop0_188_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36483,7 +36630,7 @@ _loop0_186_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -36506,7 +36653,7 @@ _loop0_186_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_186[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_188[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36523,9 +36670,9 @@ _loop0_186_rule(Parser *p) return _seq; } -// _loop0_187: lambda_param_no_default +// _loop0_189: lambda_param_no_default static asdl_seq * -_loop0_187_rule(Parser *p) +_loop0_189_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36550,7 +36697,7 @@ _loop0_187_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _loop0_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; while ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default @@ -36573,7 +36720,7 @@ _loop0_187_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_187[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_189[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36590,9 +36737,9 @@ _loop0_187_rule(Parser *p) return _seq; } -// _loop0_188: lambda_param_no_default +// _loop0_190: lambda_param_no_default static asdl_seq * -_loop0_188_rule(Parser *p) +_loop0_190_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36617,7 +36764,7 @@ _loop0_188_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _loop0_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; while ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default @@ -36640,7 +36787,7 @@ _loop0_188_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_188[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_190[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36657,9 +36804,9 @@ _loop0_188_rule(Parser *p) return _seq; } -// _loop0_190: ',' lambda_param +// _loop0_192: ',' lambda_param static asdl_seq * -_loop0_190_rule(Parser *p) +_loop0_192_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36684,7 +36831,7 @@ _loop0_190_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param")); + D(fprintf(stderr, "%*c> _loop0_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param")); Token * _literal; arg_ty elem; while ( @@ -36716,7 +36863,7 @@ _loop0_190_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_190[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_192[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' lambda_param")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36733,9 +36880,9 @@ _loop0_190_rule(Parser *p) return _seq; } -// _gather_189: lambda_param _loop0_190 +// _gather_191: lambda_param _loop0_192 static asdl_seq * -_gather_189_rule(Parser *p) +_gather_191_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36746,27 +36893,27 @@ _gather_189_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // lambda_param _loop0_190 + { // lambda_param _loop0_192 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_190")); + D(fprintf(stderr, "%*c> _gather_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_192")); arg_ty elem; asdl_seq * seq; if ( (elem = lambda_param_rule(p)) // lambda_param && - (seq = _loop0_190_rule(p)) // _loop0_190 + (seq = _loop0_192_rule(p)) // _loop0_192 ) { - D(fprintf(stderr, "%*c+ _gather_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_190")); + D(fprintf(stderr, "%*c+ _gather_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_192")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_189[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_190")); + D(fprintf(stderr, "%*c%s _gather_191[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_192")); } _res = NULL; done: @@ -36774,9 +36921,9 @@ _gather_189_rule(Parser *p) return _res; } -// _tmp_191: lambda_slash_no_default | lambda_slash_with_default +// _tmp_193: lambda_slash_no_default | lambda_slash_with_default static void * -_tmp_191_rule(Parser *p) +_tmp_193_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36792,18 +36939,18 @@ _tmp_191_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); asdl_arg_seq* lambda_slash_no_default_var; if ( (lambda_slash_no_default_var = lambda_slash_no_default_rule(p)) // lambda_slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); _res = lambda_slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default")); } { // lambda_slash_with_default @@ -36811,18 +36958,18 @@ _tmp_191_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); SlashWithDefault* lambda_slash_with_default_var; if ( (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); _res = lambda_slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default")); } _res = NULL; @@ -36831,9 +36978,9 @@ _tmp_191_rule(Parser *p) return _res; } -// _loop0_192: lambda_param_maybe_default +// _loop0_194: lambda_param_maybe_default static asdl_seq * -_loop0_192_rule(Parser *p) +_loop0_194_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36858,7 +37005,7 @@ _loop0_192_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -36881,7 +37028,7 @@ _loop0_192_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_192[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_194[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36898,9 +37045,9 @@ _loop0_192_rule(Parser *p) return _seq; } -// _tmp_193: ',' | lambda_param_no_default +// _tmp_195: ',' | lambda_param_no_default static void * -_tmp_193_rule(Parser *p) +_tmp_195_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36916,18 +37063,18 @@ _tmp_193_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // lambda_param_no_default @@ -36935,18 +37082,18 @@ _tmp_193_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } _res = NULL; @@ -36955,9 +37102,9 @@ _tmp_193_rule(Parser *p) return _res; } -// _loop0_194: lambda_param_maybe_default +// _loop0_196: lambda_param_maybe_default static asdl_seq * -_loop0_194_rule(Parser *p) +_loop0_196_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36982,7 +37129,7 @@ _loop0_194_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -37005,7 +37152,7 @@ _loop0_194_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_194[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_196[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -37022,9 +37169,9 @@ _loop0_194_rule(Parser *p) return _seq; } -// _loop1_195: lambda_param_maybe_default +// _loop1_197: lambda_param_maybe_default static asdl_seq * -_loop1_195_rule(Parser *p) +_loop1_197_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37049,7 +37196,7 @@ _loop1_195_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop1_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -37072,7 +37219,7 @@ _loop1_195_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_195[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_197[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } if (_n == 0 || p->error_indicator) { @@ -37094,9 +37241,9 @@ _loop1_195_rule(Parser *p) return _seq; } -// _loop1_196: lambda_param_with_default +// _loop1_198: lambda_param_with_default static asdl_seq * -_loop1_196_rule(Parser *p) +_loop1_198_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37121,7 +37268,7 @@ _loop1_196_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); + D(fprintf(stderr, "%*c> _loop1_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); NameDefaultPair* lambda_param_with_default_var; while ( (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default @@ -37144,7 +37291,7 @@ _loop1_196_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_196[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_198[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -37166,9 +37313,9 @@ _loop1_196_rule(Parser *p) return _seq; } -// _tmp_197: ':' | ',' (':' | '**') +// _tmp_199: ':' | ',' (':' | '**') static void * -_tmp_197_rule(Parser *p) +_tmp_199_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37184,18 +37331,18 @@ _tmp_197_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // ',' (':' | '**') @@ -37203,21 +37350,21 @@ _tmp_197_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); Token * _literal; - void *_tmp_267_var; + void *_tmp_270_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_267_var = _tmp_267_rule(p)) // ':' | '**' + (_tmp_270_var = _tmp_270_rule(p)) // ':' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_267_var); + D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_270_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')")); } _res = NULL; @@ -37226,9 +37373,9 @@ _tmp_197_rule(Parser *p) return _res; } -// _tmp_198: lambda_param_no_default | ',' +// _tmp_200: lambda_param_no_default | ',' static void * -_tmp_198_rule(Parser *p) +_tmp_200_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37244,18 +37391,18 @@ _tmp_198_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } { // ',' @@ -37263,18 +37410,18 @@ _tmp_198_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -37283,9 +37430,9 @@ _tmp_198_rule(Parser *p) return _res; } -// _loop0_199: lambda_param_maybe_default +// _loop0_201: lambda_param_maybe_default static asdl_seq * -_loop0_199_rule(Parser *p) +_loop0_201_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37310,7 +37457,7 @@ _loop0_199_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -37333,7 +37480,7 @@ _loop0_199_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_199[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_201[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -37350,9 +37497,9 @@ _loop0_199_rule(Parser *p) return _seq; } -// _tmp_200: lambda_param_no_default | ',' +// _tmp_202: lambda_param_no_default | ',' static void * -_tmp_200_rule(Parser *p) +_tmp_202_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37368,18 +37515,18 @@ _tmp_200_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } { // ',' @@ -37387,18 +37534,18 @@ _tmp_200_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -37407,9 +37554,9 @@ _tmp_200_rule(Parser *p) return _res; } -// _tmp_201: '*' | '**' | '/' +// _tmp_203: '*' | '**' | '/' static void * -_tmp_201_rule(Parser *p) +_tmp_203_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37425,18 +37572,18 @@ _tmp_201_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' ) { - D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } { // '**' @@ -37444,18 +37591,18 @@ _tmp_201_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } { // '/' @@ -37463,18 +37610,18 @@ _tmp_201_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 17)) // token='/' ) { - D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } _res = NULL; @@ -37483,9 +37630,9 @@ _tmp_201_rule(Parser *p) return _res; } -// _tmp_202: ',' | ')' | ':' +// _tmp_204: ',' | ')' | ':' static void * -_tmp_202_rule(Parser *p) +_tmp_204_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37501,18 +37648,18 @@ _tmp_202_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // ')' @@ -37520,18 +37667,18 @@ _tmp_202_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ':' @@ -37539,18 +37686,18 @@ _tmp_202_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -37559,9 +37706,9 @@ _tmp_202_rule(Parser *p) return _res; } -// _loop0_204: ',' dotted_name +// _loop0_206: ',' dotted_name static asdl_seq * -_loop0_204_rule(Parser *p) +_loop0_206_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37586,7 +37733,7 @@ _loop0_204_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_name")); + D(fprintf(stderr, "%*c> _loop0_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_name")); Token * _literal; expr_ty elem; while ( @@ -37618,7 +37765,7 @@ _loop0_204_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_204[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_206[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_name")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -37635,9 +37782,9 @@ _loop0_204_rule(Parser *p) return _seq; } -// _gather_203: dotted_name _loop0_204 +// _gather_205: dotted_name _loop0_206 static asdl_seq * -_gather_203_rule(Parser *p) +_gather_205_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37648,27 +37795,27 @@ _gather_203_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // dotted_name _loop0_204 + { // dotted_name _loop0_206 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_204")); + D(fprintf(stderr, "%*c> _gather_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_206")); expr_ty elem; asdl_seq * seq; if ( (elem = dotted_name_rule(p)) // dotted_name && - (seq = _loop0_204_rule(p)) // _loop0_204 + (seq = _loop0_206_rule(p)) // _loop0_206 ) { - D(fprintf(stderr, "%*c+ _gather_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_204")); + D(fprintf(stderr, "%*c+ _gather_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_206")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_203[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name _loop0_204")); + D(fprintf(stderr, "%*c%s _gather_205[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name _loop0_206")); } _res = NULL; done: @@ -37676,9 +37823,9 @@ _gather_203_rule(Parser *p) return _res; } -// _loop0_206: ',' (expression ['as' star_target]) +// _loop0_208: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_206_rule(Parser *p) +_loop0_208_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37703,13 +37850,13 @@ _loop0_206_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_268_rule(p)) // expression ['as' star_target] + (elem = _tmp_271_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -37735,7 +37882,7 @@ _loop0_206_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_206[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_208[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -37752,9 +37899,9 @@ _loop0_206_rule(Parser *p) return _seq; } -// _gather_205: (expression ['as' star_target]) _loop0_206 +// _gather_207: (expression ['as' star_target]) _loop0_208 static asdl_seq * -_gather_205_rule(Parser *p) +_gather_207_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37765,27 +37912,27 @@ _gather_205_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_206 + { // (expression ['as' star_target]) _loop0_208 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_206")); + D(fprintf(stderr, "%*c> _gather_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_208")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_268_rule(p)) // expression ['as' star_target] + (elem = _tmp_271_rule(p)) // expression ['as' star_target] && - (seq = _loop0_206_rule(p)) // _loop0_206 + (seq = _loop0_208_rule(p)) // _loop0_208 ) { - D(fprintf(stderr, "%*c+ _gather_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_206")); + D(fprintf(stderr, "%*c+ _gather_207[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_208")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_205[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_206")); + D(fprintf(stderr, "%*c%s _gather_207[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_208")); } _res = NULL; done: @@ -37793,9 +37940,9 @@ _gather_205_rule(Parser *p) return _res; } -// _loop0_208: ',' (expressions ['as' star_target]) +// _loop0_210: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_208_rule(Parser *p) +_loop0_210_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37820,13 +37967,13 @@ _loop0_208_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_210[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_269_rule(p)) // expressions ['as' star_target] + (elem = _tmp_272_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -37852,7 +37999,7 @@ _loop0_208_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_208[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_210[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -37869,9 +38016,9 @@ _loop0_208_rule(Parser *p) return _seq; } -// _gather_207: (expressions ['as' star_target]) _loop0_208 +// _gather_209: (expressions ['as' star_target]) _loop0_210 static asdl_seq * -_gather_207_rule(Parser *p) +_gather_209_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37882,27 +38029,27 @@ _gather_207_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_208 + { // (expressions ['as' star_target]) _loop0_210 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_208")); + D(fprintf(stderr, "%*c> _gather_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_210")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_269_rule(p)) // expressions ['as' star_target] + (elem = _tmp_272_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_208_rule(p)) // _loop0_208 + (seq = _loop0_210_rule(p)) // _loop0_210 ) { - D(fprintf(stderr, "%*c+ _gather_207[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_208")); + D(fprintf(stderr, "%*c+ _gather_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_210")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_207[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_208")); + D(fprintf(stderr, "%*c%s _gather_209[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_210")); } _res = NULL; done: @@ -37910,9 +38057,9 @@ _gather_207_rule(Parser *p) return _res; } -// _loop0_210: ',' (expression ['as' star_target]) +// _loop0_212: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_210_rule(Parser *p) +_loop0_212_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37937,13 +38084,13 @@ _loop0_210_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_210[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_212[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_270_rule(p)) // expression ['as' star_target] + (elem = _tmp_273_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -37969,7 +38116,7 @@ _loop0_210_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_210[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_212[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -37986,9 +38133,9 @@ _loop0_210_rule(Parser *p) return _seq; } -// _gather_209: (expression ['as' star_target]) _loop0_210 +// _gather_211: (expression ['as' star_target]) _loop0_212 static asdl_seq * -_gather_209_rule(Parser *p) +_gather_211_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -37999,27 +38146,27 @@ _gather_209_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_210 + { // (expression ['as' star_target]) _loop0_212 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_210")); + D(fprintf(stderr, "%*c> _gather_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_212")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_270_rule(p)) // expression ['as' star_target] + (elem = _tmp_273_rule(p)) // expression ['as' star_target] && - (seq = _loop0_210_rule(p)) // _loop0_210 + (seq = _loop0_212_rule(p)) // _loop0_212 ) { - D(fprintf(stderr, "%*c+ _gather_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_210")); + D(fprintf(stderr, "%*c+ _gather_211[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_212")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_209[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_210")); + D(fprintf(stderr, "%*c%s _gather_211[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_212")); } _res = NULL; done: @@ -38027,9 +38174,9 @@ _gather_209_rule(Parser *p) return _res; } -// _loop0_212: ',' (expressions ['as' star_target]) +// _loop0_214: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_212_rule(Parser *p) +_loop0_214_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38054,13 +38201,13 @@ _loop0_212_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_212[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_271_rule(p)) // expressions ['as' star_target] + (elem = _tmp_274_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -38086,7 +38233,7 @@ _loop0_212_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_212[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_214[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -38103,9 +38250,9 @@ _loop0_212_rule(Parser *p) return _seq; } -// _gather_211: (expressions ['as' star_target]) _loop0_212 +// _gather_213: (expressions ['as' star_target]) _loop0_214 static asdl_seq * -_gather_211_rule(Parser *p) +_gather_213_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38116,27 +38263,27 @@ _gather_211_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_212 + { // (expressions ['as' star_target]) _loop0_214 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_212")); + D(fprintf(stderr, "%*c> _gather_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_214")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_271_rule(p)) // expressions ['as' star_target] + (elem = _tmp_274_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_212_rule(p)) // _loop0_212 + (seq = _loop0_214_rule(p)) // _loop0_214 ) { - D(fprintf(stderr, "%*c+ _gather_211[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_212")); + D(fprintf(stderr, "%*c+ _gather_213[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_214")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_211[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_212")); + D(fprintf(stderr, "%*c%s _gather_213[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_214")); } _res = NULL; done: @@ -38144,9 +38291,9 @@ _gather_211_rule(Parser *p) return _res; } -// _tmp_213: 'except' | 'finally' +// _tmp_215: 'except' | 'finally' static void * -_tmp_213_rule(Parser *p) +_tmp_215_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38162,18 +38309,18 @@ _tmp_213_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c> _tmp_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 637)) // token='except' ) { - D(fprintf(stderr, "%*c+ _tmp_213[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c+ _tmp_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_213[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_215[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'")); } { // 'finally' @@ -38181,18 +38328,18 @@ _tmp_213_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c> _tmp_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 633)) // token='finally' ) { - D(fprintf(stderr, "%*c+ _tmp_213[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c+ _tmp_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_213[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_215[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'")); } _res = NULL; @@ -38201,9 +38348,9 @@ _tmp_213_rule(Parser *p) return _res; } -// _loop0_214: block +// _loop0_216: block static asdl_seq * -_loop0_214_rule(Parser *p) +_loop0_216_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38228,7 +38375,7 @@ _loop0_214_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); + D(fprintf(stderr, "%*c> _loop0_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); asdl_stmt_seq* block_var; while ( (block_var = block_rule(p)) // block @@ -38251,7 +38398,7 @@ _loop0_214_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_214[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_216[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -38268,9 +38415,9 @@ _loop0_214_rule(Parser *p) return _seq; } -// _loop1_215: except_block +// _loop1_217: except_block static asdl_seq * -_loop1_215_rule(Parser *p) +_loop1_217_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38295,7 +38442,7 @@ _loop1_215_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); + D(fprintf(stderr, "%*c> _loop1_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); excepthandler_ty except_block_var; while ( (except_block_var = except_block_rule(p)) // except_block @@ -38318,7 +38465,7 @@ _loop1_215_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_215[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_217[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block")); } if (_n == 0 || p->error_indicator) { @@ -38340,9 +38487,9 @@ _loop1_215_rule(Parser *p) return _seq; } -// _tmp_216: 'as' NAME +// _tmp_218: 'as' NAME static void * -_tmp_216_rule(Parser *p) +_tmp_218_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38358,7 +38505,7 @@ _tmp_216_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -38367,12 +38514,12 @@ _tmp_216_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -38381,9 +38528,9 @@ _tmp_216_rule(Parser *p) return _res; } -// _loop0_217: block +// _loop0_219: block static asdl_seq * -_loop0_217_rule(Parser *p) +_loop0_219_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38408,7 +38555,7 @@ _loop0_217_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); + D(fprintf(stderr, "%*c> _loop0_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); asdl_stmt_seq* block_var; while ( (block_var = block_rule(p)) // block @@ -38431,7 +38578,7 @@ _loop0_217_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_217[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_219[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -38448,9 +38595,9 @@ _loop0_217_rule(Parser *p) return _seq; } -// _loop1_218: except_star_block +// _loop1_220: except_star_block static asdl_seq * -_loop1_218_rule(Parser *p) +_loop1_220_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38475,7 +38622,7 @@ _loop1_218_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); + D(fprintf(stderr, "%*c> _loop1_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); excepthandler_ty except_star_block_var; while ( (except_star_block_var = except_star_block_rule(p)) // except_star_block @@ -38498,7 +38645,7 @@ _loop1_218_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_218[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_220[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block")); } if (_n == 0 || p->error_indicator) { @@ -38520,9 +38667,9 @@ _loop1_218_rule(Parser *p) return _seq; } -// _tmp_219: expression ['as' NAME] +// _tmp_221: expression ['as' NAME] static void * -_tmp_219_rule(Parser *p) +_tmp_221_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38538,22 +38685,22 @@ _tmp_219_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); + D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_272_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var = _tmp_275_rule(p), !p->error_indicator) // ['as' NAME] ) { - D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); + D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' NAME]")); } _res = NULL; @@ -38562,9 +38709,9 @@ _tmp_219_rule(Parser *p) return _res; } -// _tmp_220: 'as' NAME +// _tmp_222: 'as' NAME static void * -_tmp_220_rule(Parser *p) +_tmp_222_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38580,7 +38727,7 @@ _tmp_220_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -38589,12 +38736,12 @@ _tmp_220_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -38603,9 +38750,9 @@ _tmp_220_rule(Parser *p) return _res; } -// _tmp_221: 'as' NAME +// _tmp_223: 'as' NAME static void * -_tmp_221_rule(Parser *p) +_tmp_223_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38621,7 +38768,7 @@ _tmp_221_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -38630,12 +38777,12 @@ _tmp_221_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -38644,9 +38791,9 @@ _tmp_221_rule(Parser *p) return _res; } -// _tmp_222: NEWLINE | ':' +// _tmp_224: NEWLINE | ':' static void * -_tmp_222_rule(Parser *p) +_tmp_224_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38662,18 +38809,18 @@ _tmp_222_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); Token * newline_var; if ( (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); _res = newline_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } { // ':' @@ -38681,18 +38828,18 @@ _tmp_222_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -38701,9 +38848,9 @@ _tmp_222_rule(Parser *p) return _res; } -// _tmp_223: 'as' NAME +// _tmp_225: 'as' NAME static void * -_tmp_223_rule(Parser *p) +_tmp_225_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38719,7 +38866,7 @@ _tmp_223_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -38728,12 +38875,12 @@ _tmp_223_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -38742,9 +38889,9 @@ _tmp_223_rule(Parser *p) return _res; } -// _tmp_224: 'as' NAME +// _tmp_226: 'as' NAME static void * -_tmp_224_rule(Parser *p) +_tmp_226_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38760,7 +38907,7 @@ _tmp_224_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -38769,12 +38916,12 @@ _tmp_224_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -38783,9 +38930,9 @@ _tmp_224_rule(Parser *p) return _res; } -// _tmp_225: positional_patterns ',' +// _tmp_227: positional_patterns ',' static void * -_tmp_225_rule(Parser *p) +_tmp_227_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38801,7 +38948,7 @@ _tmp_225_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); Token * _literal; asdl_pattern_seq* positional_patterns_var; if ( @@ -38810,12 +38957,12 @@ _tmp_225_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','")); } _res = NULL; @@ -38824,9 +38971,9 @@ _tmp_225_rule(Parser *p) return _res; } -// _tmp_226: '->' expression +// _tmp_228: '->' expression static void * -_tmp_226_rule(Parser *p) +_tmp_228_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38842,7 +38989,7 @@ _tmp_226_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); Token * _literal; expr_ty expression_var; if ( @@ -38851,12 +38998,12 @@ _tmp_226_rule(Parser *p) (expression_var = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); _res = _PyPegen_dummy_name(p, _literal, expression_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression")); } _res = NULL; @@ -38865,9 +39012,9 @@ _tmp_226_rule(Parser *p) return _res; } -// _tmp_227: '(' arguments? ')' +// _tmp_229: '(' arguments? ')' static void * -_tmp_227_rule(Parser *p) +_tmp_229_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38883,7 +39030,7 @@ _tmp_227_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); Token * _literal; Token * _literal_1; void *_opt_var; @@ -38896,12 +39043,12 @@ _tmp_227_rule(Parser *p) (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); } _res = NULL; @@ -38910,9 +39057,9 @@ _tmp_227_rule(Parser *p) return _res; } -// _tmp_228: '(' arguments? ')' +// _tmp_230: '(' arguments? ')' static void * -_tmp_228_rule(Parser *p) +_tmp_230_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38928,7 +39075,7 @@ _tmp_228_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); Token * _literal; Token * _literal_1; void *_opt_var; @@ -38941,12 +39088,12 @@ _tmp_228_rule(Parser *p) (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); } _res = NULL; @@ -38955,9 +39102,9 @@ _tmp_228_rule(Parser *p) return _res; } -// _loop0_230: ',' double_starred_kvpair +// _loop0_232: ',' double_starred_kvpair static asdl_seq * -_loop0_230_rule(Parser *p) +_loop0_232_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -38982,7 +39129,7 @@ _loop0_230_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); + D(fprintf(stderr, "%*c> _loop0_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); Token * _literal; KeyValuePair* elem; while ( @@ -39014,7 +39161,7 @@ _loop0_230_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_230[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_232[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -39031,9 +39178,9 @@ _loop0_230_rule(Parser *p) return _seq; } -// _gather_229: double_starred_kvpair _loop0_230 +// _gather_231: double_starred_kvpair _loop0_232 static asdl_seq * -_gather_229_rule(Parser *p) +_gather_231_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39044,27 +39191,27 @@ _gather_229_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // double_starred_kvpair _loop0_230 + { // double_starred_kvpair _loop0_232 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_230")); + D(fprintf(stderr, "%*c> _gather_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_232")); KeyValuePair* elem; asdl_seq * seq; if ( (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair && - (seq = _loop0_230_rule(p)) // _loop0_230 + (seq = _loop0_232_rule(p)) // _loop0_232 ) { - D(fprintf(stderr, "%*c+ _gather_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_230")); + D(fprintf(stderr, "%*c+ _gather_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_232")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_229[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_230")); + D(fprintf(stderr, "%*c%s _gather_231[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_232")); } _res = NULL; done: @@ -39072,9 +39219,9 @@ _gather_229_rule(Parser *p) return _res; } -// _tmp_231: '}' | ',' +// _tmp_233: '}' | ',' static void * -_tmp_231_rule(Parser *p) +_tmp_233_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39090,18 +39237,18 @@ _tmp_231_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -39109,18 +39256,18 @@ _tmp_231_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -39129,9 +39276,9 @@ _tmp_231_rule(Parser *p) return _res; } -// _tmp_232: '}' | ',' +// _tmp_234: '}' | ',' static void * -_tmp_232_rule(Parser *p) +_tmp_234_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39147,18 +39294,18 @@ _tmp_232_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -39166,18 +39313,18 @@ _tmp_232_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -39186,9 +39333,9 @@ _tmp_232_rule(Parser *p) return _res; } -// _tmp_233: yield_expr | star_expressions +// _tmp_235: yield_expr | star_expressions static void * -_tmp_233_rule(Parser *p) +_tmp_235_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39204,18 +39351,18 @@ _tmp_233_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -39223,18 +39370,18 @@ _tmp_233_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -39243,9 +39390,9 @@ _tmp_233_rule(Parser *p) return _res; } -// _tmp_234: yield_expr | star_expressions +// _tmp_236: yield_expr | star_expressions static void * -_tmp_234_rule(Parser *p) +_tmp_236_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39261,18 +39408,18 @@ _tmp_234_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -39280,18 +39427,18 @@ _tmp_234_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -39300,9 +39447,9 @@ _tmp_234_rule(Parser *p) return _res; } -// _tmp_235: '=' | '!' | ':' | '}' +// _tmp_237: '=' | '!' | ':' | '}' static void * -_tmp_235_rule(Parser *p) +_tmp_237_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39318,18 +39465,18 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // '!' @@ -39337,18 +39484,18 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } { // ':' @@ -39356,18 +39503,18 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -39375,18 +39522,18 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -39395,9 +39542,9 @@ _tmp_235_rule(Parser *p) return _res; } -// _tmp_236: yield_expr | star_expressions +// _tmp_238: yield_expr | star_expressions static void * -_tmp_236_rule(Parser *p) +_tmp_238_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39413,18 +39560,18 @@ _tmp_236_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -39432,18 +39579,18 @@ _tmp_236_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -39452,9 +39599,9 @@ _tmp_236_rule(Parser *p) return _res; } -// _tmp_237: '!' | ':' | '}' +// _tmp_239: '!' | ':' | '}' static void * -_tmp_237_rule(Parser *p) +_tmp_239_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39470,18 +39617,18 @@ _tmp_237_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' ) { - D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } { // ':' @@ -39489,18 +39636,18 @@ _tmp_237_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -39508,18 +39655,18 @@ _tmp_237_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -39528,9 +39675,9 @@ _tmp_237_rule(Parser *p) return _res; } -// _tmp_238: yield_expr | star_expressions +// _tmp_240: yield_expr | star_expressions static void * -_tmp_238_rule(Parser *p) +_tmp_240_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39546,18 +39693,18 @@ _tmp_238_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -39565,18 +39712,18 @@ _tmp_238_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -39585,9 +39732,9 @@ _tmp_238_rule(Parser *p) return _res; } -// _tmp_239: yield_expr | star_expressions +// _tmp_241: yield_expr | star_expressions static void * -_tmp_239_rule(Parser *p) +_tmp_241_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39603,18 +39750,18 @@ _tmp_239_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -39622,18 +39769,18 @@ _tmp_239_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -39642,9 +39789,9 @@ _tmp_239_rule(Parser *p) return _res; } -// _tmp_240: '!' NAME +// _tmp_242: '!' NAME static void * -_tmp_240_rule(Parser *p) +_tmp_242_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39660,7 +39807,7 @@ _tmp_240_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); Token * _literal; expr_ty name_var; if ( @@ -39669,12 +39816,12 @@ _tmp_240_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); _res = _PyPegen_dummy_name(p, _literal, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME")); } _res = NULL; @@ -39683,9 +39830,9 @@ _tmp_240_rule(Parser *p) return _res; } -// _tmp_241: ':' | '}' +// _tmp_243: ':' | '}' static void * -_tmp_241_rule(Parser *p) +_tmp_243_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39701,18 +39848,18 @@ _tmp_241_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -39720,18 +39867,18 @@ _tmp_241_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -39740,9 +39887,9 @@ _tmp_241_rule(Parser *p) return _res; } -// _tmp_242: yield_expr | star_expressions +// _tmp_244: yield_expr | star_expressions static void * -_tmp_242_rule(Parser *p) +_tmp_244_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39758,18 +39905,18 @@ _tmp_242_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -39777,18 +39924,18 @@ _tmp_242_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -39797,9 +39944,9 @@ _tmp_242_rule(Parser *p) return _res; } -// _tmp_243: '!' NAME +// _tmp_245: '!' NAME static void * -_tmp_243_rule(Parser *p) +_tmp_245_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39815,7 +39962,7 @@ _tmp_243_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); Token * _literal; expr_ty name_var; if ( @@ -39824,12 +39971,12 @@ _tmp_243_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); _res = _PyPegen_dummy_name(p, _literal, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME")); } _res = NULL; @@ -39838,9 +39985,9 @@ _tmp_243_rule(Parser *p) return _res; } -// _loop0_244: fstring_format_spec +// _loop0_246: fstring_format_spec static asdl_seq * -_loop0_244_rule(Parser *p) +_loop0_246_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39865,7 +40012,7 @@ _loop0_244_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_format_spec")); + D(fprintf(stderr, "%*c> _loop0_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_format_spec")); expr_ty fstring_format_spec_var; while ( (fstring_format_spec_var = fstring_format_spec_rule(p)) // fstring_format_spec @@ -39888,7 +40035,7 @@ _loop0_244_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_244[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_246[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_format_spec")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -39905,9 +40052,9 @@ _loop0_244_rule(Parser *p) return _seq; } -// _tmp_245: yield_expr | star_expressions +// _tmp_247: yield_expr | star_expressions static void * -_tmp_245_rule(Parser *p) +_tmp_247_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39923,18 +40070,18 @@ _tmp_245_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -39942,18 +40089,18 @@ _tmp_245_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -39962,9 +40109,9 @@ _tmp_245_rule(Parser *p) return _res; } -// _tmp_246: '!' NAME +// _tmp_248: '!' NAME static void * -_tmp_246_rule(Parser *p) +_tmp_248_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -39980,7 +40127,7 @@ _tmp_246_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c> _tmp_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); Token * _literal; expr_ty name_var; if ( @@ -39989,12 +40136,12 @@ _tmp_246_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_246[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c+ _tmp_248[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); _res = _PyPegen_dummy_name(p, _literal, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_246[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_248[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME")); } _res = NULL; @@ -40003,9 +40150,9 @@ _tmp_246_rule(Parser *p) return _res; } -// _tmp_247: ':' | '}' +// _tmp_249: ':' | '}' static void * -_tmp_247_rule(Parser *p) +_tmp_249_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40021,18 +40168,18 @@ _tmp_247_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_249[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_249[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -40040,18 +40187,18 @@ _tmp_247_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_249[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_249[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -40060,9 +40207,9 @@ _tmp_247_rule(Parser *p) return _res; } -// _tmp_248: star_targets '=' +// _tmp_250: star_targets '=' static void * -_tmp_248_rule(Parser *p) +_tmp_250_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40078,7 +40225,7 @@ _tmp_248_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_250[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty z; if ( @@ -40087,7 +40234,7 @@ _tmp_248_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_248[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_250[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40097,7 +40244,7 @@ _tmp_248_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_248[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_250[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -40106,9 +40253,9 @@ _tmp_248_rule(Parser *p) return _res; } -// _tmp_249: '.' | '...' +// _tmp_251: '.' | '...' static void * -_tmp_249_rule(Parser *p) +_tmp_251_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40124,18 +40271,18 @@ _tmp_249_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_251[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_249[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_251[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_249[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_251[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -40143,18 +40290,18 @@ _tmp_249_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_251[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_249[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_251[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_249[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_251[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -40163,9 +40310,9 @@ _tmp_249_rule(Parser *p) return _res; } -// _tmp_250: '.' | '...' +// _tmp_252: '.' | '...' static void * -_tmp_250_rule(Parser *p) +_tmp_252_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40181,18 +40328,18 @@ _tmp_250_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_250[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_252[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_250[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_252[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_250[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_252[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -40200,18 +40347,18 @@ _tmp_250_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_250[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_252[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_250[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_252[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_250[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_252[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -40220,9 +40367,9 @@ _tmp_250_rule(Parser *p) return _res; } -// _tmp_251: '@' named_expression NEWLINE +// _tmp_253: '@' named_expression NEWLINE static void * -_tmp_251_rule(Parser *p) +_tmp_253_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40238,7 +40385,7 @@ _tmp_251_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_251[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_253[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); Token * _literal; expr_ty f; Token * newline_var; @@ -40250,7 +40397,7 @@ _tmp_251_rule(Parser *p) (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_251[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_253[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); _res = f; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40260,7 +40407,7 @@ _tmp_251_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_251[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_253[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); } _res = NULL; @@ -40269,9 +40416,9 @@ _tmp_251_rule(Parser *p) return _res; } -// _tmp_252: ',' expression +// _tmp_254: ',' expression static void * -_tmp_252_rule(Parser *p) +_tmp_254_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40287,7 +40434,7 @@ _tmp_252_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_252[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _tmp_254[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty c; if ( @@ -40296,7 +40443,7 @@ _tmp_252_rule(Parser *p) (c = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_252[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c+ _tmp_254[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40306,7 +40453,7 @@ _tmp_252_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_252[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_254[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } _res = NULL; @@ -40315,9 +40462,9 @@ _tmp_252_rule(Parser *p) return _res; } -// _tmp_253: ',' star_expression +// _tmp_255: ',' star_expression static void * -_tmp_253_rule(Parser *p) +_tmp_255_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40333,7 +40480,7 @@ _tmp_253_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_253[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c> _tmp_255[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); Token * _literal; expr_ty c; if ( @@ -40342,7 +40489,7 @@ _tmp_253_rule(Parser *p) (c = star_expression_rule(p)) // star_expression ) { - D(fprintf(stderr, "%*c+ _tmp_253[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c+ _tmp_255[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40352,7 +40499,7 @@ _tmp_253_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_253[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_255[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); } _res = NULL; @@ -40361,9 +40508,9 @@ _tmp_253_rule(Parser *p) return _res; } -// _tmp_254: 'or' conjunction +// _tmp_256: 'or' conjunction static void * -_tmp_254_rule(Parser *p) +_tmp_256_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40379,7 +40526,7 @@ _tmp_254_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_254[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c> _tmp_256[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); Token * _keyword; expr_ty c; if ( @@ -40388,7 +40535,7 @@ _tmp_254_rule(Parser *p) (c = conjunction_rule(p)) // conjunction ) { - D(fprintf(stderr, "%*c+ _tmp_254[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c+ _tmp_256[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40398,7 +40545,7 @@ _tmp_254_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_254[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_256[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); } _res = NULL; @@ -40407,9 +40554,9 @@ _tmp_254_rule(Parser *p) return _res; } -// _tmp_255: 'and' inversion +// _tmp_257: 'and' inversion static void * -_tmp_255_rule(Parser *p) +_tmp_257_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40425,7 +40572,7 @@ _tmp_255_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_255[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c> _tmp_257[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); Token * _keyword; expr_ty c; if ( @@ -40434,7 +40581,7 @@ _tmp_255_rule(Parser *p) (c = inversion_rule(p)) // inversion ) { - D(fprintf(stderr, "%*c+ _tmp_255[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c+ _tmp_257[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40444,7 +40591,7 @@ _tmp_255_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_255[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_257[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); } _res = NULL; @@ -40453,9 +40600,9 @@ _tmp_255_rule(Parser *p) return _res; } -// _tmp_256: slice | starred_expression +// _tmp_258: slice | starred_expression static void * -_tmp_256_rule(Parser *p) +_tmp_258_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40471,18 +40618,18 @@ _tmp_256_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_256[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c> _tmp_258[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); expr_ty slice_var; if ( (slice_var = slice_rule(p)) // slice ) { - D(fprintf(stderr, "%*c+ _tmp_256[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c+ _tmp_258[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); _res = slice_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_256[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_258[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); } { // starred_expression @@ -40490,18 +40637,18 @@ _tmp_256_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_256[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_258[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_256[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_258[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_256[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_258[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } _res = NULL; @@ -40510,9 +40657,9 @@ _tmp_256_rule(Parser *p) return _res; } -// _tmp_257: fstring | string +// _tmp_259: fstring | string static void * -_tmp_257_rule(Parser *p) +_tmp_259_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40528,18 +40675,18 @@ _tmp_257_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_257[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring")); + D(fprintf(stderr, "%*c> _tmp_259[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring")); expr_ty fstring_var; if ( (fstring_var = fstring_rule(p)) // fstring ) { - D(fprintf(stderr, "%*c+ _tmp_257[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring")); + D(fprintf(stderr, "%*c+ _tmp_259[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring")); _res = fstring_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_257[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_259[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring")); } { // string @@ -40547,18 +40694,18 @@ _tmp_257_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_257[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string")); + D(fprintf(stderr, "%*c> _tmp_259[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string")); expr_ty string_var; if ( (string_var = string_rule(p)) // string ) { - D(fprintf(stderr, "%*c+ _tmp_257[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string")); + D(fprintf(stderr, "%*c+ _tmp_259[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string")); _res = string_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_257[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_259[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "string")); } _res = NULL; @@ -40567,9 +40714,9 @@ _tmp_257_rule(Parser *p) return _res; } -// _tmp_258: 'if' disjunction +// _tmp_260: 'if' disjunction static void * -_tmp_258_rule(Parser *p) +_tmp_260_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40585,7 +40732,7 @@ _tmp_258_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_258[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_260[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -40594,7 +40741,7 @@ _tmp_258_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_258[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_260[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40604,7 +40751,7 @@ _tmp_258_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_258[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_260[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -40613,9 +40760,9 @@ _tmp_258_rule(Parser *p) return _res; } -// _tmp_259: 'if' disjunction +// _tmp_261: 'if' disjunction static void * -_tmp_259_rule(Parser *p) +_tmp_261_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40631,7 +40778,7 @@ _tmp_259_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_259[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_261[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -40640,7 +40787,7 @@ _tmp_259_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_259[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_261[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40650,7 +40797,7 @@ _tmp_259_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_259[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_261[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -40659,9 +40806,9 @@ _tmp_259_rule(Parser *p) return _res; } -// _tmp_260: starred_expression | (assignment_expression | expression !':=') !'=' +// _tmp_262: starred_expression | (assignment_expression | expression !':=') !'=' static void * -_tmp_260_rule(Parser *p) +_tmp_262_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40677,18 +40824,18 @@ _tmp_260_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_260[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_262[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_260[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_262[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_260[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_262[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assignment_expression | expression !':=') !'=' @@ -40696,20 +40843,20 @@ _tmp_260_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_260[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - void *_tmp_273_var; + D(fprintf(stderr, "%*c> _tmp_262[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + void *_tmp_276_var; if ( - (_tmp_273_var = _tmp_273_rule(p)) // assignment_expression | expression !':=' + (_tmp_276_var = _tmp_276_rule(p)) // assignment_expression | expression !':=' && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_260[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - _res = _tmp_273_var; + D(fprintf(stderr, "%*c+ _tmp_262[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + _res = _tmp_276_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_260[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_262[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } _res = NULL; @@ -40718,9 +40865,9 @@ _tmp_260_rule(Parser *p) return _res; } -// _tmp_261: ',' star_target +// _tmp_263: ',' star_target static void * -_tmp_261_rule(Parser *p) +_tmp_263_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40736,7 +40883,7 @@ _tmp_261_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_261[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_263[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -40745,7 +40892,7 @@ _tmp_261_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_261[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_263[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40755,7 +40902,7 @@ _tmp_261_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_261[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_263[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -40764,9 +40911,9 @@ _tmp_261_rule(Parser *p) return _res; } -// _tmp_262: ',' star_target +// _tmp_264: ',' star_target static void * -_tmp_262_rule(Parser *p) +_tmp_264_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40782,7 +40929,7 @@ _tmp_262_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_262[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_264[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -40791,7 +40938,7 @@ _tmp_262_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_262[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_264[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -40801,7 +40948,7 @@ _tmp_262_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_262[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_264[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -40810,10 +40957,10 @@ _tmp_262_rule(Parser *p) return _res; } -// _tmp_263: +// _tmp_265: // | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs static void * -_tmp_263_rule(Parser *p) +_tmp_265_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40829,24 +40976,24 @@ _tmp_263_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_263[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); - asdl_seq * _gather_274_var; + D(fprintf(stderr, "%*c> _tmp_265[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); + asdl_seq * _gather_277_var; Token * _literal; asdl_seq* kwargs_var; if ( - (_gather_274_var = _gather_274_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ + (_gather_277_var = _gather_277_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && (kwargs_var = kwargs_rule(p)) // kwargs ) { - D(fprintf(stderr, "%*c+ _tmp_263[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); - _res = _PyPegen_dummy_name(p, _gather_274_var, _literal, kwargs_var); + D(fprintf(stderr, "%*c+ _tmp_265[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); + _res = _PyPegen_dummy_name(p, _gather_277_var, _literal, kwargs_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_263[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_265[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); } _res = NULL; @@ -40855,9 +41002,49 @@ _tmp_263_rule(Parser *p) return _res; } -// _tmp_264: star_targets '=' +// _tmp_266: starred_expression !'=' static void * -_tmp_264_rule(Parser *p) +_tmp_266_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // starred_expression !'=' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_266[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); + expr_ty starred_expression_var; + if ( + (starred_expression_var = starred_expression_rule(p)) // starred_expression + && + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' + ) + { + D(fprintf(stderr, "%*c+ _tmp_266[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); + _res = starred_expression_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_266[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression !'='")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_267: star_targets '=' +static void * +_tmp_267_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40873,7 +41060,7 @@ _tmp_264_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_264[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_267[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -40882,12 +41069,12 @@ _tmp_264_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_264[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_267[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_264[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_267[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -40896,9 +41083,9 @@ _tmp_264_rule(Parser *p) return _res; } -// _tmp_265: star_targets '=' +// _tmp_268: star_targets '=' static void * -_tmp_265_rule(Parser *p) +_tmp_268_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40914,7 +41101,7 @@ _tmp_265_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_265[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_268[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -40923,12 +41110,12 @@ _tmp_265_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_265[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_268[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_265[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_268[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -40937,9 +41124,9 @@ _tmp_265_rule(Parser *p) return _res; } -// _tmp_266: ')' | '**' +// _tmp_269: ')' | '**' static void * -_tmp_266_rule(Parser *p) +_tmp_269_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -40955,18 +41142,18 @@ _tmp_266_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_266[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_269[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_266[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_269[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_266[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_269[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // '**' @@ -40974,18 +41161,18 @@ _tmp_266_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_266[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_269[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_266[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_269[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_266[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_269[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -40994,9 +41181,9 @@ _tmp_266_rule(Parser *p) return _res; } -// _tmp_267: ':' | '**' +// _tmp_270: ':' | '**' static void * -_tmp_267_rule(Parser *p) +_tmp_270_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41012,18 +41199,18 @@ _tmp_267_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_267[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_270[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_267[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_270[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_267[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_270[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '**' @@ -41031,18 +41218,18 @@ _tmp_267_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_267[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_270[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_267[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_270[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_267[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_270[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -41051,9 +41238,9 @@ _tmp_267_rule(Parser *p) return _res; } -// _tmp_268: expression ['as' star_target] +// _tmp_271: expression ['as' star_target] static void * -_tmp_268_rule(Parser *p) +_tmp_271_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41069,22 +41256,22 @@ _tmp_268_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_268[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_271[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_276_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_279_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_268[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_271[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_268[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_271[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -41093,9 +41280,9 @@ _tmp_268_rule(Parser *p) return _res; } -// _tmp_269: expressions ['as' star_target] +// _tmp_272: expressions ['as' star_target] static void * -_tmp_269_rule(Parser *p) +_tmp_272_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41111,22 +41298,22 @@ _tmp_269_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_269[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_272[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_277_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_280_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_269[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_272[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_269[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_272[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -41135,9 +41322,9 @@ _tmp_269_rule(Parser *p) return _res; } -// _tmp_270: expression ['as' star_target] +// _tmp_273: expression ['as' star_target] static void * -_tmp_270_rule(Parser *p) +_tmp_273_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41153,22 +41340,22 @@ _tmp_270_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_270[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_273[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_278_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_281_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_270[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_273[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_270[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_273[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -41177,9 +41364,9 @@ _tmp_270_rule(Parser *p) return _res; } -// _tmp_271: expressions ['as' star_target] +// _tmp_274: expressions ['as' star_target] static void * -_tmp_271_rule(Parser *p) +_tmp_274_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41195,22 +41382,22 @@ _tmp_271_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_271[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_274[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_279_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_282_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_271[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_274[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_271[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_274[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -41219,9 +41406,9 @@ _tmp_271_rule(Parser *p) return _res; } -// _tmp_272: 'as' NAME +// _tmp_275: 'as' NAME static void * -_tmp_272_rule(Parser *p) +_tmp_275_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41237,7 +41424,7 @@ _tmp_272_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_272[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_275[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -41246,12 +41433,12 @@ _tmp_272_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_272[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_275[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_272[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_275[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -41260,9 +41447,9 @@ _tmp_272_rule(Parser *p) return _res; } -// _tmp_273: assignment_expression | expression !':=' +// _tmp_276: assignment_expression | expression !':=' static void * -_tmp_273_rule(Parser *p) +_tmp_276_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41278,18 +41465,18 @@ _tmp_273_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_273[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c> _tmp_276[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); expr_ty assignment_expression_var; if ( (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression ) { - D(fprintf(stderr, "%*c+ _tmp_273[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c+ _tmp_276[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); _res = assignment_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_273[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_276[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } { // expression !':=' @@ -41297,7 +41484,7 @@ _tmp_273_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_273[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c> _tmp_276[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression @@ -41305,12 +41492,12 @@ _tmp_273_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_273[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c+ _tmp_276[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); _res = expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_273[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_276[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } _res = NULL; @@ -41319,9 +41506,9 @@ _tmp_273_rule(Parser *p) return _res; } -// _loop0_275: ',' (starred_expression | (assignment_expression | expression !':=') !'=') +// _loop0_278: ',' (starred_expression | (assignment_expression | expression !':=') !'=') static asdl_seq * -_loop0_275_rule(Parser *p) +_loop0_278_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41346,13 +41533,13 @@ _loop0_275_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_275[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); + D(fprintf(stderr, "%*c> _loop0_278[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_280_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_283_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' ) { _res = elem; @@ -41378,7 +41565,7 @@ _loop0_275_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_275[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_278[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -41395,10 +41582,10 @@ _loop0_275_rule(Parser *p) return _seq; } -// _gather_274: -// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_275 +// _gather_277: +// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_278 static asdl_seq * -_gather_274_rule(Parser *p) +_gather_277_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41409,27 +41596,27 @@ _gather_274_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_275 + { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_278 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_274[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_275")); + D(fprintf(stderr, "%*c> _gather_277[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_278")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_280_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_283_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' && - (seq = _loop0_275_rule(p)) // _loop0_275 + (seq = _loop0_278_rule(p)) // _loop0_278 ) { - D(fprintf(stderr, "%*c+ _gather_274[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_275")); + D(fprintf(stderr, "%*c+ _gather_277[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_278")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_274[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_275")); + D(fprintf(stderr, "%*c%s _gather_277[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_278")); } _res = NULL; done: @@ -41437,9 +41624,9 @@ _gather_274_rule(Parser *p) return _res; } -// _tmp_276: 'as' star_target +// _tmp_279: 'as' star_target static void * -_tmp_276_rule(Parser *p) +_tmp_279_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41455,7 +41642,7 @@ _tmp_276_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_276[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_279[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -41464,12 +41651,12 @@ _tmp_276_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_276[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_279[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_276[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_279[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -41478,9 +41665,9 @@ _tmp_276_rule(Parser *p) return _res; } -// _tmp_277: 'as' star_target +// _tmp_280: 'as' star_target static void * -_tmp_277_rule(Parser *p) +_tmp_280_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41496,7 +41683,7 @@ _tmp_277_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_277[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_280[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -41505,12 +41692,12 @@ _tmp_277_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_277[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_280[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_277[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_280[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -41519,9 +41706,9 @@ _tmp_277_rule(Parser *p) return _res; } -// _tmp_278: 'as' star_target +// _tmp_281: 'as' star_target static void * -_tmp_278_rule(Parser *p) +_tmp_281_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41537,7 +41724,7 @@ _tmp_278_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_278[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_281[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -41546,12 +41733,12 @@ _tmp_278_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_278[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_281[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_278[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_281[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -41560,9 +41747,9 @@ _tmp_278_rule(Parser *p) return _res; } -// _tmp_279: 'as' star_target +// _tmp_282: 'as' star_target static void * -_tmp_279_rule(Parser *p) +_tmp_282_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41578,7 +41765,7 @@ _tmp_279_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_279[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_282[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -41587,12 +41774,12 @@ _tmp_279_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_279[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_282[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_279[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_282[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -41601,9 +41788,9 @@ _tmp_279_rule(Parser *p) return _res; } -// _tmp_280: starred_expression | (assignment_expression | expression !':=') !'=' +// _tmp_283: starred_expression | (assignment_expression | expression !':=') !'=' static void * -_tmp_280_rule(Parser *p) +_tmp_283_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41619,18 +41806,18 @@ _tmp_280_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_280[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_283[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_280[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_283[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_280[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_283[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assignment_expression | expression !':=') !'=' @@ -41638,20 +41825,20 @@ _tmp_280_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_280[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - void *_tmp_281_var; + D(fprintf(stderr, "%*c> _tmp_283[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + void *_tmp_284_var; if ( - (_tmp_281_var = _tmp_281_rule(p)) // assignment_expression | expression !':=' + (_tmp_284_var = _tmp_284_rule(p)) // assignment_expression | expression !':=' && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_280[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - _res = _tmp_281_var; + D(fprintf(stderr, "%*c+ _tmp_283[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + _res = _tmp_284_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_280[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_283[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } _res = NULL; @@ -41660,9 +41847,9 @@ _tmp_280_rule(Parser *p) return _res; } -// _tmp_281: assignment_expression | expression !':=' +// _tmp_284: assignment_expression | expression !':=' static void * -_tmp_281_rule(Parser *p) +_tmp_284_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -41678,18 +41865,18 @@ _tmp_281_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_281[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c> _tmp_284[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); expr_ty assignment_expression_var; if ( (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression ) { - D(fprintf(stderr, "%*c+ _tmp_281[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c+ _tmp_284[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); _res = assignment_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_281[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_284[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } { // expression !':=' @@ -41697,7 +41884,7 @@ _tmp_281_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_281[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c> _tmp_284[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression @@ -41705,12 +41892,12 @@ _tmp_281_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_281[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c+ _tmp_284[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); _res = expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_281[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_284[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } _res = NULL; diff --git a/contrib/tools/python3/Parser/pegen_errors.c b/contrib/tools/python3/Parser/pegen_errors.c index cefec5d275..72f1349897 100644 --- a/contrib/tools/python3/Parser/pegen_errors.c +++ b/contrib/tools/python3/Parser/pegen_errors.c @@ -367,20 +367,18 @@ _PyPegen_raise_error_known_location(Parser *p, PyObject *errtype, Py_ssize_t col_number = col_offset; Py_ssize_t end_col_number = end_col_offset; - if (p->tok->encoding != NULL) { - col_number = _PyPegen_byte_offset_to_character_offset(error_line, col_offset); - if (col_number < 0) { + col_number = _PyPegen_byte_offset_to_character_offset(error_line, col_offset); + if (col_number < 0) { + goto error; + } + + if (end_col_offset > 0) { + end_col_number = _PyPegen_byte_offset_to_character_offset(error_line, end_col_offset); + if (end_col_number < 0) { goto error; } - if (end_col_number > 0) { - Py_ssize_t end_col_offset = _PyPegen_byte_offset_to_character_offset(error_line, end_col_number); - if (end_col_offset < 0) { - goto error; - } else { - end_col_number = end_col_offset; - } - } } + tmp = Py_BuildValue("(OnnNnn)", p->tok->filename, lineno, col_number, error_line, end_lineno, end_col_number); if (!tmp) { goto error; diff --git a/contrib/tools/python3/Python/Python-ast.c b/contrib/tools/python3/Python/Python-ast.c index 6c95f07c38..ecaff2041f 100644 --- a/contrib/tools/python3/Python/Python-ast.c +++ b/contrib/tools/python3/Python/Python-ast.c @@ -13152,15 +13152,14 @@ PyObject* PyAST_mod2obj(mod_ty t) int starting_recursion_depth; /* Be careful here to prevent overflow. */ - int COMPILER_STACK_FRAME_SCALE = 2; PyThreadState *tstate = _PyThreadState_GET(); if (!tstate) { return NULL; } struct validator vstate; - vstate.recursion_limit = C_RECURSION_LIMIT * COMPILER_STACK_FRAME_SCALE; + vstate.recursion_limit = C_RECURSION_LIMIT; int recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; - starting_recursion_depth = recursion_depth * COMPILER_STACK_FRAME_SCALE; + starting_recursion_depth = recursion_depth; vstate.recursion_depth = starting_recursion_depth; PyObject *result = ast2obj_mod(state, &vstate, t); diff --git a/contrib/tools/python3/Python/ast.c b/contrib/tools/python3/Python/ast.c index 82d7beec0e..76f6556ded 100644 --- a/contrib/tools/python3/Python/ast.c +++ b/contrib/tools/python3/Python/ast.c @@ -1038,9 +1038,6 @@ validate_type_params(struct validator *state, asdl_type_param_seq *tps) } -/* See comments in symtable.c. */ -#define COMPILER_STACK_FRAME_SCALE 2 - int _PyAST_Validate(mod_ty mod) { @@ -1057,9 +1054,9 @@ _PyAST_Validate(mod_ty mod) } /* Be careful here to prevent overflow. */ int recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; - starting_recursion_depth = recursion_depth * COMPILER_STACK_FRAME_SCALE; + starting_recursion_depth = recursion_depth; state.recursion_depth = starting_recursion_depth; - state.recursion_limit = C_RECURSION_LIMIT * COMPILER_STACK_FRAME_SCALE; + state.recursion_limit = C_RECURSION_LIMIT; switch (mod->kind) { case Module_kind: diff --git a/contrib/tools/python3/Python/ast_opt.c b/contrib/tools/python3/Python/ast_opt.c index f8c4a95132..e881b7fe2d 100644 --- a/contrib/tools/python3/Python/ast_opt.c +++ b/contrib/tools/python3/Python/ast_opt.c @@ -1102,9 +1102,6 @@ astfold_type_param(type_param_ty node_, PyArena *ctx_, _PyASTOptimizeState *stat #undef CALL_OPT #undef CALL_SEQ -/* See comments in symtable.c. */ -#define COMPILER_STACK_FRAME_SCALE 2 - int _PyAST_Optimize(mod_ty mod, PyArena *arena, _PyASTOptimizeState *state) { @@ -1118,9 +1115,9 @@ _PyAST_Optimize(mod_ty mod, PyArena *arena, _PyASTOptimizeState *state) } /* Be careful here to prevent overflow. */ int recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; - starting_recursion_depth = recursion_depth * COMPILER_STACK_FRAME_SCALE; + starting_recursion_depth = recursion_depth; state->recursion_depth = starting_recursion_depth; - state->recursion_limit = C_RECURSION_LIMIT * COMPILER_STACK_FRAME_SCALE; + state->recursion_limit = C_RECURSION_LIMIT; int ret = astfold_mod(mod, arena, state); assert(ret || PyErr_Occurred()); diff --git a/contrib/tools/python3/Python/compile.c b/contrib/tools/python3/Python/compile.c index ddd7b5c795..a871e9c417 100644 --- a/contrib/tools/python3/Python/compile.c +++ b/contrib/tools/python3/Python/compile.c @@ -3883,7 +3883,7 @@ compiler_assert(struct compiler *c, stmt_ty s) VISIT(c, expr, s->v.Assert.msg); ADDOP_I(c, LOC(s), CALL, 0); } - ADDOP_I(c, LOC(s), RAISE_VARARGS, 1); + ADDOP_I(c, LOC(s->v.Assert.test), RAISE_VARARGS, 1); USE_LABEL(c, end); return SUCCESS; diff --git a/contrib/tools/python3/Python/deepfreeze/deepfreeze.c b/contrib/tools/python3/Python/deepfreeze/deepfreeze.c index d6ce3426b4..e7d2f1bcff 100644 --- a/contrib/tools/python3/Python/deepfreeze/deepfreeze.c +++ b/contrib/tools/python3/Python/deepfreeze/deepfreeze.c @@ -4746,7 +4746,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[169]; + char ob_sval[172]; } importlib__bootstrap_toplevel_consts_14_consts_5_linetable = { .ob_base = { @@ -4754,10 +4754,10 @@ importlib__bootstrap_toplevel_consts_14_consts_5_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 168, + .ob_size = 171, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0e\x15\xd7\x0e\x1f\xd1\x0e\x1f\xd3\x0e\x21\x88\x03\xd8\x0d\x11\x8f\x59\x89\x59\xf1\x00\x09\x09\x2a\xd8\x0f\x13\x8f\x7a\x89\x7a\x98\x53\xd2\x0f\x20\xdc\x16\x22\xd0\x23\x44\xd3\x16\x45\xd0\x10\x45\xdc\x13\x16\x90\x74\x97\x7a\x91\x7a\x93\x3f\xa0\x51\xd2\x13\x26\xd1\x0c\x26\xd8\x0c\x10\x8f\x4a\x89\x4a\x8f\x4e\x89\x4e\xd4\x0c\x1c\xdc\x13\x16\x90\x74\x97\x7a\x91\x7a\x94\x3f\xd8\x1d\x21\x90\x04\x94\x0a\xdc\x13\x16\x90\x74\x97\x7c\x91\x7c\xd3\x13\x24\xa0\x71\xd2\x13\x28\xd8\x14\x18\x97\x4c\x91\x4c\xd7\x14\x24\xd1\x14\x24\xd4\x14\x26\xd8\x14\x18\x97\x4b\x91\x4b\xd7\x14\x27\xd1\x14\x27\xd4\x14\x29\xf7\x13\x09\x09\x2a\xf7\x00\x09\x09\x2a\xf1\x00\x09\x09\x2a\xfa", + .ob_sval = "\x80\x00\xdc\x0e\x15\xd7\x0e\x1f\xd1\x0e\x1f\xd3\x0e\x21\x88\x03\xd8\x0d\x11\x8f\x59\x89\x59\xf1\x00\x09\x09\x2a\xd8\x0f\x13\x8f\x7a\x89\x7a\x98\x53\xd2\x0f\x20\xdc\x16\x22\xd0\x23\x44\xd3\x16\x45\xd0\x10\x45\xdc\x13\x16\x90\x74\x97\x7a\x91\x7a\x93\x3f\xa0\x51\xd2\x13\x26\xd0\x0c\x26\xd0\x13\x26\xd8\x0c\x10\x8f\x4a\x89\x4a\x8f\x4e\x89\x4e\xd4\x0c\x1c\xdc\x13\x16\x90\x74\x97\x7a\x91\x7a\x94\x3f\xd8\x1d\x21\x90\x04\x94\x0a\xdc\x13\x16\x90\x74\x97\x7c\x91\x7c\xd3\x13\x24\xa0\x71\xd2\x13\x28\xd8\x14\x18\x97\x4c\x91\x4c\xd7\x14\x24\xd1\x14\x24\xd4\x14\x26\xd8\x14\x18\x97\x4b\x91\x4b\xd7\x14\x27\xd1\x14\x27\xd4\x14\x29\xf7\x13\x09\x09\x2a\xf7\x00\x09\x09\x2a\xf1\x00\x09\x09\x2a\xfa", }; static struct { @@ -14172,7 +14172,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[725]; + char ob_sval[780]; } importlib__bootstrap_toplevel_consts_46_consts_3_linetable = { .ob_base = { @@ -14180,10 +14180,10 @@ importlib__bootstrap_toplevel_consts_46_consts_3_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 724, + .ob_size = 779, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x15\x8f\x7f\x89\x7f\x88\x04\xd8\x10\x14\xd7\x10\x21\xd1\x10\x21\x88\x05\xd8\x0b\x10\x89\x3d\xf4\x08\x00\x18\x1c\x98\x46\x93\x7c\xd7\x17\x27\xd1\x17\x27\xa8\x0e\xb8\x04\xd3\x17\x3d\x88\x48\xd9\x13\x1b\xd0\x0c\x46\xd0\x1d\x46\xd4\x0c\x46\xdc\x14\x1b\x98\x46\xa0\x4a\xd3\x14\x2f\x88\x45\xdc\x13\x17\xd7\x13\x29\xd1\x13\x29\xa8\x26\xaf\x2f\xa9\x2f\xd3\x13\x3a\xb8\x65\xd2\x13\x43\xd0\x0c\x4a\xc0\x55\xd4\x0c\x4a\xd8\x1f\x22\xd7\x1f\x34\xd1\x1f\x34\xb0\x58\xb8\x74\xbf\x79\xb9\x79\xc8\x25\xd3\x1f\x50\xd1\x0c\x1c\x88\x48\x90\x66\xd8\x20\x38\xa4\x04\xa4\x53\xd7\x25\x37\xd1\x25\x37\xd3\x20\x38\xd8\x19\x21\xd8\x19\x21\xf4\x05\x03\x21\x0e\x88\x44\xd4\x0c\x1d\xf0\x08\x00\x18\x1c\xd7\x17\x36\xd1\x17\x36\x88\x48\xd9\x0f\x14\xd8\x17\x1f\xa0\x32\x92\x7e\xd0\x10\x2f\xa0\x78\xd4\x10\x2f\xd9\x13\x19\xd8\x14\x18\xd7\x14\x33\xd1\x14\x33\xd7\x14\x3a\xd1\x14\x3a\xb8\x31\xb8\x66\xd5\x14\x45\xe0\x17\x1f\xd0\x17\x27\xd0\x10\x31\xa8\x18\xd4\x10\x31\xf4\x06\x00\x18\x1f\x98\x76\xa0\x7a\xd4\x17\x32\xd0\x0c\x43\xb0\x46\xb7\x4f\xb1\x4f\xd4\x0c\x43\xd9\x0f\x17\xf0\x02\x03\x11\x19\xd8\x26\x2e\x90\x46\x94\x4f\xf2\x06\x00\x10\x15\xd8\x13\x19\x97\x3f\x91\x3f\xa0\x68\xd3\x13\x2e\xd8\x1b\x21\x9f\x3f\x99\x3f\xa8\x62\xd2\x1b\x30\xd0\x14\x41\xb0\x26\xb7\x2f\xb1\x2f\xd4\x14\x41\xd8\x14\x1a\x97\x4f\x91\x4f\xd7\x14\x2a\xd1\x14\x2a\xa8\x38\xd6\x14\x34\xf0\x08\x00\x18\x1c\xd7\x17\x36\xd1\x17\x36\x88\x48\xd8\x14\x1c\xa0\x44\xd0\x14\x28\x88\x45\xe4\x13\x19\x9c\x24\x98\x75\x9b\x2b\xd3\x13\x26\xa8\x3a\xb0\x7a\xd0\x2a\x42\xd2\x13\x42\xd0\x0c\x49\xc0\x45\xd4\x0c\x49\xd8\x0f\x14\x8f\x7e\x8a\x7e\xf0\x06\x00\x16\x19\xd7\x15\x2a\xd1\x15\x2a\xa8\x35\xaf\x3e\xa9\x3e\xb8\x34\xbf\x39\xb9\x39\xc0\x65\xd3\x15\x4c\xf1\x03\x01\x11\x13\x90\x18\x98\x36\xe0\x17\x1c\x97\x7e\x91\x7e\xa8\x18\xd2\x17\x31\xd0\x10\x4d\xb0\x45\xb7\x4e\xb1\x4e\xc0\x48\xd0\x33\x4d\xd4\x10\x4d\xd9\x13\x19\xd8\x1b\x23\xa8\x06\xa0\x78\xd2\x1b\x2f\xd0\x14\x43\xb0\x28\xb8\x46\xd0\x31\x43\xd4\x14\x43\xe0\x1b\x23\xa9\x65\xa9\x02\xb8\x14\xd2\x1b\x3e\xd0\x14\x48\xc0\x08\xd4\x14\x48\xe0\x1b\x1f\x90\x08\xd8\x17\x1c\x97\x7e\x91\x7e\xd0\x17\x2d\xd0\x10\x3d\xa8\x75\xaf\x7e\xa9\x7e\xd4\x10\x3d\xd8\x17\x1f\xa9\x25\xa1\x42\xb0\x54\xd2\x17\x3a\xd0\x10\x44\xb8\x48\xd4\x10\x44\xe1\x0f\x17\xdc\x17\x1e\x98\x76\xa0\x7a\xd4\x17\x32\xd1\x10\x32\xd8\x17\x1d\x97\x7f\x91\x7f\xa8\x28\xd2\x17\x32\xd0\x10\x4f\xb0\x56\xb7\x5f\xb1\x5f\xc0\x68\xd0\x34\x4f\xd4\x10\x4f\xe4\x1b\x22\xa0\x36\xa8\x3a\xd4\x1b\x36\xd0\x10\x47\xb8\x06\xbf\x0f\xb9\x0f\xd4\x10\x47\xd9\x0f\x14\xdc\x17\x1e\x98\x76\xa0\x7a\xd4\x17\x32\xd1\x10\x32\xd8\x17\x1d\x97\x7f\x91\x7f\xa8\x28\xd2\x17\x32\xd0\x10\x4f\xb0\x56\xb7\x5f\xb1\x5f\xc0\x68\xd0\x34\x4f\xd4\x10\x4f\xe4\x1b\x22\xa0\x36\xa8\x3a\xd4\x1b\x36\xd0\x10\x47\xb8\x06\xbf\x0f\xb9\x0f\xd4\x10\x47\xd8\x13\x17\xd7\x13\x24\xd2\x13\x24\xd1\x08\x24\xd0\x13\x24\xf8\xf4\x4b\x01\x00\x18\x26\xf2\x00\x01\x11\x19\xda\x14\x18\xf0\x03\x01\x11\x19\xfa", + .ob_sval = "\x80\x00\xe0\x0f\x15\x8f\x7f\x89\x7f\x88\x04\xd8\x10\x14\xd7\x10\x21\xd1\x10\x21\x88\x05\xd8\x0b\x10\x89\x3d\xf4\x08\x00\x18\x1c\x98\x46\x93\x7c\xd7\x17\x27\xd1\x17\x27\xa8\x0e\xb8\x04\xd3\x17\x3d\x88\x48\xd9\x13\x1b\xd0\x0c\x46\xd0\x1d\x46\xd3\x0c\x46\x90\x38\xdc\x14\x1b\x98\x46\xa0\x4a\xd3\x14\x2f\x88\x45\xdc\x13\x17\xd7\x13\x29\xd1\x13\x29\xa8\x26\xaf\x2f\xa9\x2f\xd3\x13\x3a\xb8\x65\xd2\x13\x43\xd0\x0c\x4a\xc0\x55\xd3\x0c\x4a\xd0\x13\x43\xd8\x1f\x22\xd7\x1f\x34\xd1\x1f\x34\xb0\x58\xb8\x74\xbf\x79\xb9\x79\xc8\x25\xd3\x1f\x50\xd1\x0c\x1c\x88\x48\x90\x66\xd8\x20\x38\xa4\x04\xa4\x53\xd7\x25\x37\xd1\x25\x37\xd3\x20\x38\xd8\x19\x21\xd8\x19\x21\xf4\x05\x03\x21\x0e\x88\x44\xd4\x0c\x1d\xf0\x08\x00\x18\x1c\xd7\x17\x36\xd1\x17\x36\x88\x48\xd9\x0f\x14\xd8\x17\x1f\xa0\x32\x92\x7e\xd0\x10\x2f\xa0\x78\xd3\x10\x2f\x90\x7e\xd9\x13\x19\xd8\x14\x18\xd7\x14\x33\xd1\x14\x33\xd7\x14\x3a\xd1\x14\x3a\xb8\x31\xb8\x66\xd5\x14\x45\xe0\x17\x1f\xd0\x17\x27\xd0\x10\x31\xa8\x18\xd3\x10\x31\xd0\x17\x27\xf4\x06\x00\x18\x1f\x98\x76\xa0\x7a\xd4\x17\x32\xd0\x0c\x43\xb0\x46\xb7\x4f\xb1\x4f\xd3\x0c\x43\xd0\x13\x32\xd9\x0f\x17\xf0\x02\x03\x11\x19\xd8\x26\x2e\x90\x46\x94\x4f\xf2\x06\x00\x10\x15\xd8\x13\x19\x97\x3f\x91\x3f\xa0\x68\xd3\x13\x2e\xd8\x1b\x21\x9f\x3f\x99\x3f\xa8\x62\xd2\x1b\x30\xd0\x14\x41\xb0\x26\xb7\x2f\xb1\x2f\xd3\x14\x41\xd0\x1b\x30\xd8\x14\x1a\x97\x4f\x91\x4f\xd7\x14\x2a\xd1\x14\x2a\xa8\x38\xd6\x14\x34\xf0\x08\x00\x18\x1c\xd7\x17\x36\xd1\x17\x36\x88\x48\xd8\x14\x1c\xa0\x44\xd0\x14\x28\x88\x45\xe4\x13\x19\x9c\x24\x98\x75\x9b\x2b\xd3\x13\x26\xa8\x3a\xb0\x7a\xd0\x2a\x42\xd2\x13\x42\xd0\x0c\x49\xc0\x45\xd3\x0c\x49\xd0\x13\x42\xd8\x0f\x14\x8f\x7e\x8a\x7e\xf0\x06\x00\x16\x19\xd7\x15\x2a\xd1\x15\x2a\xa8\x35\xaf\x3e\xa9\x3e\xb8\x34\xbf\x39\xb9\x39\xc0\x65\xd3\x15\x4c\xf1\x03\x01\x11\x13\x90\x18\x98\x36\xe0\x17\x1c\x97\x7e\x91\x7e\xa8\x18\xd2\x17\x31\xd0\x10\x4d\xb0\x45\xb7\x4e\xb1\x4e\xc0\x48\xd0\x33\x4d\xd3\x10\x4d\xd0\x17\x31\xd9\x13\x19\xd8\x1b\x23\xa8\x06\xa0\x78\xd2\x1b\x2f\xd0\x14\x43\xb0\x28\xb8\x46\xd0\x31\x43\xd3\x14\x43\xd0\x1b\x2f\xe0\x1b\x23\xa9\x65\xa9\x02\xb8\x14\xd2\x1b\x3e\xd0\x14\x48\xc0\x08\xd3\x14\x48\xd0\x1b\x3e\xe0\x1b\x1f\x90\x08\xd8\x17\x1c\x97\x7e\x91\x7e\xd0\x17\x2d\xd0\x10\x3d\xa8\x75\xaf\x7e\xa9\x7e\xd3\x10\x3d\xd0\x17\x2d\xd8\x17\x1f\xa9\x25\xa1\x42\xb0\x54\xd2\x17\x3a\xd0\x10\x44\xb8\x48\xd3\x10\x44\xd0\x17\x3a\xe1\x0f\x17\xdc\x17\x1e\x98\x76\xa0\x7a\xd4\x17\x32\xd0\x10\x32\xd0\x17\x32\xd8\x17\x1d\x97\x7f\x91\x7f\xa8\x28\xd2\x17\x32\xd0\x10\x4f\xb0\x56\xb7\x5f\xb1\x5f\xc0\x68\xd0\x34\x4f\xd3\x10\x4f\xd0\x17\x32\xe4\x1b\x22\xa0\x36\xa8\x3a\xd4\x1b\x36\xd0\x10\x47\xb8\x06\xbf\x0f\xb9\x0f\xd3\x10\x47\xd0\x17\x36\xd9\x0f\x14\xdc\x17\x1e\x98\x76\xa0\x7a\xd4\x17\x32\xd0\x10\x32\xd0\x17\x32\xd8\x17\x1d\x97\x7f\x91\x7f\xa8\x28\xd2\x17\x32\xd0\x10\x4f\xb0\x56\xb7\x5f\xb1\x5f\xc0\x68\xd0\x34\x4f\xd3\x10\x4f\xd0\x17\x32\xe4\x1b\x22\xa0\x36\xa8\x3a\xd4\x1b\x36\xd0\x10\x47\xb8\x06\xbf\x0f\xb9\x0f\xd3\x10\x47\xd0\x17\x36\xd8\x13\x17\xd7\x13\x24\xd2\x13\x24\xd0\x08\x24\xd0\x0f\x24\xd0\x13\x24\xf8\xf4\x4b\x01\x00\x18\x26\xf2\x00\x01\x11\x19\xda\x14\x18\xf0\x03\x01\x11\x19\xfa", }; static struct { @@ -15393,7 +15393,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[111]; + char ob_sval[114]; } importlib__bootstrap_toplevel_consts_46_consts_9_linetable = { .ob_base = { @@ -15401,10 +15401,10 @@ importlib__bootstrap_toplevel_consts_46_consts_9_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 110, + .ob_size = 113, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x12\x23\xa0\x33\xa8\x08\xd3\x11\x31\x88\x06\xdc\x0f\x13\xd7\x0f\x1f\xd1\x0f\x1f\xa0\x08\xd3\x0f\x29\x88\x04\xd8\x0f\x13\xd0\x0f\x1f\xd1\x08\x1f\xd8\x1d\x21\xd1\x08\x1a\x88\x01\x88\x35\x90\x28\xd8\x1e\x26\x88\x06\xd4\x08\x1b\xdc\x08\x0c\x88\x56\x8b\x0c\xd7\x08\x18\xd1\x08\x18\x98\x1a\xa0\x54\xd4\x08\x2a\xd9\x0b\x10\xd8\x1e\x20\x88\x46\x8c\x4f\xd8\x08\x0b\xd7\x08\x1a\xd1\x08\x1a\x98\x36\xd4\x08\x22\xd8\x0f\x15\x88\x0d", + .ob_sval = "\x80\x00\xf4\x10\x00\x12\x23\xa0\x33\xa8\x08\xd3\x11\x31\x88\x06\xdc\x0f\x13\xd7\x0f\x1f\xd1\x0f\x1f\xa0\x08\xd3\x0f\x29\x88\x04\xd8\x0f\x13\xd0\x0f\x1f\xd0\x08\x1f\xd0\x0f\x1f\xd8\x1d\x21\xd1\x08\x1a\x88\x01\x88\x35\x90\x28\xd8\x1e\x26\x88\x06\xd4\x08\x1b\xdc\x08\x0c\x88\x56\x8b\x0c\xd7\x08\x18\xd1\x08\x18\x98\x1a\xa0\x54\xd4\x08\x2a\xd9\x0b\x10\xd8\x1e\x20\x88\x46\x8c\x4f\xd8\x08\x0b\xd7\x08\x1a\xd1\x08\x1a\x98\x36\xd4\x08\x22\xd8\x0f\x15\x88\x0d", }; static struct { @@ -21506,7 +21506,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[34]; + char ob_sval[36]; } importlib__bootstrap_external_toplevel_consts_13_linetable = { .ob_base = { @@ -21514,10 +21514,10 @@ importlib__bootstrap_external_toplevel_consts_13_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 33, + .ob_size = 35, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x0e\x88\x74\x8b\x39\x98\x01\x8a\x3e\xd1\x04\x19\xdc\x0b\x0e\x8f\x3e\x89\x3e\x98\x24\xa0\x08\xd3\x0b\x29\xd0\x04\x29", + .ob_sval = "\x80\x00\xe4\x0b\x0e\x88\x74\x8b\x39\x98\x01\x8a\x3e\xd0\x04\x19\x88\x3e\xdc\x0b\x0e\x8f\x3e\x89\x3e\x98\x24\xa0\x08\xd3\x0b\x29\xd0\x04\x29", }; static struct { @@ -28195,7 +28195,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[98]; + char ob_sval[101]; } importlib__bootstrap_external_toplevel_consts_47_linetable = { .ob_base = { @@ -28203,10 +28203,10 @@ importlib__bootstrap_external_toplevel_consts_47_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 97, + .ob_size = 100, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x14\x94\x5c\xd3\x0b\x22\x80\x44\xd8\x0c\x0f\x90\x27\x98\x51\x91\x2c\xd1\x0c\x1e\x80\x45\xd8\x04\x08\x87\x4b\x81\x4b\x94\x0c\x98\x55\xd3\x10\x23\xd4\x04\x24\xdc\x0b\x0e\x88\x7b\xd3\x0b\x1b\x98\x71\xd2\x0b\x20\xd1\x04\x20\xd8\x04\x08\x87\x4b\x81\x4b\x90\x0b\xd4\x04\x1c\xd8\x04\x08\x87\x4b\x81\x4b\x94\x07\x97\x0d\x91\x0d\x98\x64\xd3\x10\x23\xd4\x04\x24\xd8\x0b\x0f\x80\x4b", + .ob_sval = "\x80\x00\xe4\x0b\x14\x94\x5c\xd3\x0b\x22\x80\x44\xd8\x0c\x0f\x90\x27\x98\x51\x91\x2c\xd1\x0c\x1e\x80\x45\xd8\x04\x08\x87\x4b\x81\x4b\x94\x0c\x98\x55\xd3\x10\x23\xd4\x04\x24\xdc\x0b\x0e\x88\x7b\xd3\x0b\x1b\x98\x71\xd2\x0b\x20\xd0\x04\x20\xd0\x0b\x20\xd8\x04\x08\x87\x4b\x81\x4b\x90\x0b\xd4\x04\x1c\xd8\x04\x08\x87\x4b\x81\x4b\x94\x07\x97\x0d\x91\x0d\x98\x64\xd3\x10\x23\xd4\x04\x24\xd8\x0b\x0f\x80\x4b", }; static struct { @@ -29071,7 +29071,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[230]; + char ob_sval[233]; } importlib__bootstrap_external_toplevel_consts_51_linetable = { .ob_base = { @@ -29079,10 +29079,10 @@ importlib__bootstrap_external_toplevel_consts_51_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 229, + .ob_size = 232, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x18\x00\x0c\x16\x90\x6e\xa4\x64\xd4\x0b\x2b\xd8\x0f\x13\xe4\x0e\x14\x8b\x68\x80\x47\xd8\x0d\x1b\xd7\x0d\x1f\xd1\x0d\x1f\xa0\x0c\xa8\x64\xd3\x0d\x33\x80\x46\xd8\x0b\x19\xd7\x0b\x1d\xd1\x0b\x1d\x98\x6a\xa8\x27\xd3\x0b\x32\x80\x44\xe0\x07\x0d\x80\x7e\xd8\x0b\x0f\x90\x37\x89\x3f\xf0\x06\x00\x14\x18\xd8\x0d\x11\x88\x5c\xdc\x12\x1c\xd0\x1d\x4a\xd3\x12\x4b\xd0\x0c\x4b\xe4\x12\x19\x98\x24\xa0\x08\xa8\x27\xd3\x12\x32\x80\x4b\xe0\x07\x12\x90\x77\xa0\x04\x90\x6f\xd1\x07\x25\xd8\x0b\x11\x88\x3e\xd8\x24\x2f\xb0\x37\xd1\x24\x3a\x95\x2e\xc4\x0a\x88\x43\xd9\x12\x15\xd0\x16\x43\xd3\x12\x44\xd0\x0c\x44\xdc\x08\x11\x8f\x0e\x89\x0e\xd8\x0c\x39\xdc\x0c\x1e\xf4\x05\x02\x09\x20\xf0\x06\x00\x17\x1d\x88\x0b\xe0\x0b\x16\xd0\x0b\x22\xd1\x04\x22\xd8\x07\x0d\xd0\x07\x19\x98\x66\xa8\x0b\xd2\x1e\x33\xdc\x08\x11\x8f\x0e\x89\x0e\xd8\x0c\x3b\xdc\x0c\x1e\xf4\x05\x02\x09\x20\xf0\x06\x00\x10\x16\x88\x0d\xe0\x0b\x16\xd0\x04\x16", + .ob_sval = "\x80\x00\xf4\x18\x00\x0c\x16\x90\x6e\xa4\x64\xd4\x0b\x2b\xd8\x0f\x13\xe4\x0e\x14\x8b\x68\x80\x47\xd8\x0d\x1b\xd7\x0d\x1f\xd1\x0d\x1f\xa0\x0c\xa8\x64\xd3\x0d\x33\x80\x46\xd8\x0b\x19\xd7\x0b\x1d\xd1\x0b\x1d\x98\x6a\xa8\x27\xd3\x0b\x32\x80\x44\xe0\x07\x0d\x80\x7e\xd8\x0b\x0f\x90\x37\x89\x3f\xf0\x06\x00\x14\x18\xd8\x0d\x11\x88\x5c\xdc\x12\x1c\xd0\x1d\x4a\xd3\x12\x4b\xd0\x0c\x4b\xe4\x12\x19\x98\x24\xa0\x08\xa8\x27\xd3\x12\x32\x80\x4b\xe0\x07\x12\x90\x77\xa0\x04\x90\x6f\xd1\x07\x25\xd8\x0b\x11\x88\x3e\xd8\x24\x2f\xb0\x37\xd1\x24\x3a\x95\x2e\xc4\x0a\x88\x43\xd9\x12\x15\xd0\x16\x43\xd3\x12\x44\xd0\x0c\x44\xdc\x08\x11\x8f\x0e\x89\x0e\xd8\x0c\x39\xdc\x0c\x1e\xf4\x05\x02\x09\x20\xf0\x06\x00\x17\x1d\x88\x0b\xe0\x0b\x16\xd0\x0b\x22\xd0\x04\x22\xd0\x0b\x22\xd8\x07\x0d\xd0\x07\x19\x98\x66\xa8\x0b\xd2\x1e\x33\xdc\x08\x11\x8f\x0e\x89\x0e\xd8\x0c\x3b\xdc\x0c\x1e\xf4\x05\x02\x09\x20\xf0\x06\x00\x10\x16\x88\x0d\xe0\x0b\x16\xd0\x04\x16", }; static struct { @@ -40035,10 +40035,54 @@ const_str_invalidate_caches = { }; static struct { + PyASCIIObject _ascii; + uint8_t _data[19]; + } +const_str_MetadataPathFinder = { + ._ascii = { + .ob_base = { + .ob_refcnt = _Py_IMMORTAL_REFCNT, + .ob_type = &PyUnicode_Type, + }, + .length = 18, + .hash = -1, + .state = { + .kind = 1, + .compact = 1, + .ascii = 1, + .statically_allocated = 1, + }, + }, + ._data = "MetadataPathFinder", +}; +static + struct { PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[4]; + PyObject *ob_item[1]; + }_object; + } +importlib__bootstrap_external_toplevel_consts_70_consts_2_consts_5 = { + ._object = { + .ob_base = { + .ob_base = { + .ob_refcnt = _Py_IMMORTAL_REFCNT, + .ob_type = &PyTuple_Type, + }, + .ob_size = 1, + }, + .ob_item = { + & const_str_MetadataPathFinder._ascii.ob_base, + }, + }, +}; +static + struct { + PyGC_Head _gc_head; + struct { + PyObject_VAR_HEAD + PyObject *ob_item[6]; }_object; } importlib__bootstrap_external_toplevel_consts_70_consts_2_consts = { @@ -40048,13 +40092,15 @@ importlib__bootstrap_external_toplevel_consts_70_consts_2_consts = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 4, + .ob_size = 6, }, .ob_item = { & importlib__bootstrap_external_toplevel_consts_70_consts_2_consts_0._ascii.ob_base, Py_None, & const_str_invalidate_caches._ascii.ob_base, (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], + (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], + & importlib__bootstrap_external_toplevel_consts_70_consts_2_consts_5._object.ob_base.ob_base, }, }, }; @@ -40082,10 +40128,32 @@ const_str_path_importer_cache = { }; static struct { + PyASCIIObject _ascii; + uint8_t _data[19]; + } +importlib__bootstrap_external_toplevel_consts_70_consts_2_names_9 = { + ._ascii = { + .ob_base = { + .ob_refcnt = _Py_IMMORTAL_REFCNT, + .ob_type = &PyUnicode_Type, + }, + .length = 18, + .hash = -1, + .state = { + .kind = 1, + .compact = 1, + .ascii = 1, + .statically_allocated = 1, + }, + }, + ._data = "importlib.metadata", +}; +static + struct { PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[9]; + PyObject *ob_item[11]; }_object; } importlib__bootstrap_external_toplevel_consts_70_consts_2_names = { @@ -40095,7 +40163,7 @@ importlib__bootstrap_external_toplevel_consts_70_consts_2_names = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 9, + .ob_size = 11, }, .ob_item = { & const_str_list._ascii.ob_base, @@ -40107,6 +40175,8 @@ importlib__bootstrap_external_toplevel_consts_70_consts_2_names = { & const_str_invalidate_caches._ascii.ob_base, & const_str__NamespacePath._ascii.ob_base, & const_str__epoch._ascii.ob_base, + & importlib__bootstrap_external_toplevel_consts_70_consts_2_names_9._ascii.ob_base, + & const_str_MetadataPathFinder._ascii.ob_base, }, }, }; @@ -40136,7 +40206,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[114]; + char ob_sval[129]; } importlib__bootstrap_external_toplevel_consts_70_consts_2_linetable = { .ob_base = { @@ -40144,17 +40214,17 @@ importlib__bootstrap_external_toplevel_consts_70_consts_2_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 113, + .ob_size = 128, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x08\x00\x1d\x21\xa4\x13\xd7\x21\x38\xd1\x21\x38\xd7\x21\x3e\xd1\x21\x3e\xd3\x21\x40\xd3\x1c\x41\xf2\x00\x06\x09\x2b\x89\x4c\x88\x44\x90\x26\xf0\x06\x00\x10\x16\x88\x7e\xa4\x5b\xb0\x14\xd4\x25\x36\xdc\x14\x17\xd7\x14\x2b\xd1\x14\x2b\xa8\x44\xd1\x14\x31\xdc\x11\x18\x98\x16\xd0\x21\x34\xd5\x11\x35\xd8\x10\x16\xd7\x10\x28\xd1\x10\x28\xd5\x10\x2a\xf0\x0d\x06\x09\x2b\xf4\x12\x00\x09\x17\xd7\x08\x1d\xd2\x08\x1d\xa0\x11\xd1\x08\x22\xd6\x08\x1d", + .ob_sval = "\x80\x00\xf4\x08\x00\x1d\x21\xa4\x13\xd7\x21\x38\xd1\x21\x38\xd7\x21\x3e\xd1\x21\x3e\xd3\x21\x40\xd3\x1c\x41\xf2\x00\x06\x09\x2b\x89\x4c\x88\x44\x90\x26\xf0\x06\x00\x10\x16\x88\x7e\xa4\x5b\xb0\x14\xd4\x25\x36\xdc\x14\x17\xd7\x14\x2b\xd1\x14\x2b\xa8\x44\xd1\x14\x31\xdc\x11\x18\x98\x16\xd0\x21\x34\xd5\x11\x35\xd8\x10\x16\xd7\x10\x28\xd1\x10\x28\xd5\x10\x2a\xf0\x0d\x06\x09\x2b\xf4\x12\x00\x09\x17\xd7\x08\x1d\xd2\x08\x1d\xa0\x11\xd1\x08\x22\xd5\x08\x1d\xe5\x08\x39\xd8\x08\x1a\xd7\x08\x2c\xd1\x08\x2c\xd5\x08\x2e", }; static struct { PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[2]; + PyObject *ob_item[3]; }_object; } importlib__bootstrap_external_toplevel_consts_70_consts_2_localsplusnames = { @@ -40164,23 +40234,24 @@ importlib__bootstrap_external_toplevel_consts_70_consts_2_localsplusnames = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 2, + .ob_size = 3, }, .ob_item = { &_Py_ID(name), & const_str_finder._ascii.ob_base, + & const_str_MetadataPathFinder._ascii.ob_base, }, }, }; static - struct _PyCode_DEF(268) + struct _PyCode_DEF(312) importlib__bootstrap_external_toplevel_consts_70_consts_2 = { .ob_base = { .ob_base = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyCode_Type, }, - .ob_size = 134, + .ob_size = 156, }, .co_consts = & importlib__bootstrap_external_toplevel_consts_70_consts_2_consts._object.ob_base.ob_base, .co_names = & importlib__bootstrap_external_toplevel_consts_70_consts_2_names._object.ob_base.ob_base, @@ -40189,22 +40260,22 @@ importlib__bootstrap_external_toplevel_consts_70_consts_2 = { .co_argcount = 0, .co_posonlyargcount = 0, .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, + .co_framesize = 8 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, .co_firstlineno = 1438, - .co_nlocalsplus = 2, - .co_nlocals = 2, + .co_nlocalsplus = 3, + .co_nlocals = 3, .co_ncellvars = 0, .co_nfreevars = 0, .co_version = 199, .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_70_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, + .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, .co_filename = & importlib__bootstrap_external_toplevel_consts_6_filename._ascii.ob_base, .co_name = & const_str_invalidate_caches._ascii.ob_base, .co_qualname = & importlib__bootstrap_external_toplevel_consts_70_consts_2_qualname._ascii.ob_base, .co_linetable = & importlib__bootstrap_external_toplevel_consts_70_consts_2_linetable.ob_base.ob_base, ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x41\x00\x00\x5c\x02\x00\x00\x7d\x00\x7d\x01\x7c\x01\x81\x0b\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x12\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x3d\x00\x8c\x25\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x73\x01\x8c\x32\x7c\x01\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x43\x04\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x78\x01\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7a\x0d\x00\x00\x63\x02\x5f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01", + .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x41\x00\x00\x5c\x02\x00\x00\x7d\x00\x7d\x01\x7c\x01\x81\x0b\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x12\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x3d\x00\x8c\x25\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x73\x01\x8c\x32\x7c\x01\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x43\x04\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x78\x01\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7a\x0d\x00\x00\x63\x02\x5f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x64\x05\x6c\x09\x6d\x0a\x7d\x02\x01\x00\x7c\x02\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", ._co_firsttraceable = 0, }; static @@ -40444,7 +40515,7 @@ importlib__bootstrap_external_toplevel_consts_70_consts_3 = { .co_kwonlyargcount = 0, .co_framesize = 7 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 1453, + .co_firstlineno = 1456, .co_nlocalsplus = 2, .co_nlocals = 2, .co_ncellvars = 0, @@ -40677,7 +40748,7 @@ importlib__bootstrap_external_toplevel_consts_70_consts_4 = { .co_kwonlyargcount = 0, .co_framesize = 7 + FRAME_SPECIALS_SIZE, .co_stacksize = 4, - .co_firstlineno = 1466, + .co_firstlineno = 1469, .co_nlocalsplus = 3, .co_nlocals = 3, .co_ncellvars = 0, @@ -40968,7 +41039,7 @@ importlib__bootstrap_external_toplevel_consts_70_consts_6 = { .co_kwonlyargcount = 0, .co_framesize = 14 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 1488, + .co_firstlineno = 1491, .co_nlocalsplus = 9, .co_nlocals = 9, .co_ncellvars = 0, @@ -41142,7 +41213,7 @@ importlib__bootstrap_external_toplevel_consts_70_consts_7 = { .co_kwonlyargcount = 0, .co_framesize = 11 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 1517, + .co_firstlineno = 1520, .co_nlocalsplus = 6, .co_nlocals = 6, .co_ncellvars = 0, @@ -41182,50 +41253,6 @@ importlib__bootstrap_external_toplevel_consts_70_consts_8_consts_0 = { }; static struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_MetadataPathFinder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MetadataPathFinder", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_external_toplevel_consts_70_consts_8_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_MetadataPathFinder._ascii.ob_base, - }, - }, -}; -static - struct { PyGC_Head _gc_head; struct { PyObject_VAR_HEAD @@ -41244,7 +41271,7 @@ importlib__bootstrap_external_toplevel_consts_70_consts_8_consts = { .ob_item = { & importlib__bootstrap_external_toplevel_consts_70_consts_8_consts_0._ascii.ob_base, (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & importlib__bootstrap_external_toplevel_consts_70_consts_8_consts_2._object.ob_base.ob_base, + & importlib__bootstrap_external_toplevel_consts_70_consts_2_consts_5._object.ob_base.ob_base, }, }, }; @@ -41253,28 +41280,6 @@ static PyASCIIObject _ascii; uint8_t _data[19]; } -importlib__bootstrap_external_toplevel_consts_70_consts_8_names_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "importlib.metadata", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } const_str_find_distributions = { ._ascii = { .ob_base = { @@ -41310,7 +41315,7 @@ importlib__bootstrap_external_toplevel_consts_70_consts_8_names = { .ob_size = 3, }, .ob_item = { - & importlib__bootstrap_external_toplevel_consts_70_consts_8_names_0._ascii.ob_base, + & importlib__bootstrap_external_toplevel_consts_70_consts_2_names_9._ascii.ob_base, & const_str_MetadataPathFinder._ascii.ob_base, & const_str_find_distributions._ascii.ob_base, }, @@ -41398,7 +41403,7 @@ importlib__bootstrap_external_toplevel_consts_70_consts_8 = { .co_kwonlyargcount = 0, .co_framesize = 8 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 1541, + .co_firstlineno = 1544, .co_nlocalsplus = 3, .co_nlocals = 3, .co_ncellvars = 0, @@ -41494,7 +41499,7 @@ importlib__bootstrap_external_toplevel_consts_70_linetable = { .ob_size = 125, }, .ob_shash = -1, - .ob_sval = "\x84\x00\xe1\x04\x48\xe0\x05\x11\xf1\x02\x0c\x05\x23\xf3\x03\x00\x06\x12\xf0\x02\x0c\x05\x23\xf0\x1c\x00\x06\x12\xf1\x02\x0a\x05\x18\xf3\x03\x00\x06\x12\xf0\x02\x0a\x05\x18\xf0\x18\x00\x06\x11\xf1\x02\x13\x05\x16\xf3\x03\x00\x06\x11\xf0\x02\x13\x05\x16\xf0\x2a\x00\x06\x11\xf2\x02\x1a\x05\x18\xf3\x03\x00\x06\x11\xf0\x02\x1a\x05\x18\xf0\x38\x00\x06\x11\xf2\x02\x15\x05\x18\xf3\x03\x00\x06\x11\xf0\x02\x15\x05\x18\xf0\x2e\x00\x06\x12\xf1\x02\x0a\x05\x46\x01\xf3\x03\x00\x06\x12\xf1\x02\x0a\x05\x46\x01", + .ob_sval = "\x84\x00\xe1\x04\x48\xe0\x05\x11\xf1\x02\x0f\x05\x2f\xf3\x03\x00\x06\x12\xf0\x02\x0f\x05\x2f\xf0\x22\x00\x06\x12\xf1\x02\x0a\x05\x18\xf3\x03\x00\x06\x12\xf0\x02\x0a\x05\x18\xf0\x18\x00\x06\x11\xf1\x02\x13\x05\x16\xf3\x03\x00\x06\x11\xf0\x02\x13\x05\x16\xf0\x2a\x00\x06\x11\xf2\x02\x1a\x05\x18\xf3\x03\x00\x06\x11\xf0\x02\x1a\x05\x18\xf0\x38\x00\x06\x11\xf2\x02\x15\x05\x18\xf3\x03\x00\x06\x11\xf0\x02\x15\x05\x18\xf0\x2e\x00\x06\x12\xf1\x02\x0a\x05\x46\x01\xf3\x03\x00\x06\x12\xf1\x02\x0a\x05\x46\x01", }; static struct _PyCode_DEF(116) @@ -41696,7 +41701,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_2_consts_1 = { .co_kwonlyargcount = 0, .co_framesize = 6 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 1570, + .co_firstlineno = 1573, .co_nlocalsplus = 3, .co_nlocals = 2, .co_ncellvars = 0, @@ -42003,7 +42008,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_2 = { .co_kwonlyargcount = 0, .co_framesize = 11 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 1564, + .co_firstlineno = 1567, .co_nlocalsplus = 6, .co_nlocals = 5, .co_ncellvars = 1, @@ -42145,7 +42150,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_3 = { .co_kwonlyargcount = 0, .co_framesize = 3 + FRAME_SPECIALS_SIZE, .co_stacksize = 2, - .co_firstlineno = 1581, + .co_firstlineno = 1584, .co_nlocalsplus = 1, .co_nlocals = 1, .co_ncellvars = 0, @@ -42292,7 +42297,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_4 = { .co_kwonlyargcount = 0, .co_framesize = 13 + FRAME_SPECIALS_SIZE, .co_stacksize = 6, - .co_firstlineno = 1585, + .co_firstlineno = 1588, .co_nlocalsplus = 7, .co_nlocals = 7, .co_ncellvars = 0, @@ -42752,7 +42757,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_6 = { .co_kwonlyargcount = 0, .co_framesize = 22 + FRAME_SPECIALS_SIZE, .co_stacksize = 8, - .co_firstlineno = 1590, + .co_firstlineno = 1593, .co_nlocalsplus = 14, .co_nlocals = 14, .co_ncellvars = 0, @@ -43113,7 +43118,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_7 = { .co_kwonlyargcount = 0, .co_framesize = 15 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 1641, + .co_firstlineno = 1644, .co_nlocalsplus = 10, .co_nlocals = 10, .co_ncellvars = 0, @@ -43363,7 +43368,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_8_consts_1 = { .co_kwonlyargcount = 0, .co_framesize = 7 + FRAME_SPECIALS_SIZE, .co_stacksize = 4, - .co_firstlineno = 1682, + .co_firstlineno = 1685, .co_nlocalsplus = 3, .co_nlocals = 1, .co_ncellvars = 0, @@ -43523,7 +43528,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_8 = { .co_kwonlyargcount = 0, .co_framesize = 5 + FRAME_SPECIALS_SIZE, .co_stacksize = 2, - .co_firstlineno = 1672, + .co_firstlineno = 1675, .co_nlocalsplus = 3, .co_nlocals = 3, .co_ncellvars = 2, @@ -43643,7 +43648,7 @@ importlib__bootstrap_external_toplevel_consts_72_consts_9 = { .co_kwonlyargcount = 0, .co_framesize = 4 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 1690, + .co_firstlineno = 1693, .co_nlocalsplus = 1, .co_nlocals = 1, .co_ncellvars = 0, @@ -43760,7 +43765,7 @@ importlib__bootstrap_external_toplevel_consts_72 = { .co_kwonlyargcount = 0, .co_framesize = 2 + FRAME_SPECIALS_SIZE, .co_stacksize = 2, - .co_firstlineno = 1555, + .co_firstlineno = 1558, .co_nlocalsplus = 0, .co_nlocals = 0, .co_ncellvars = 0, @@ -43978,7 +43983,7 @@ importlib__bootstrap_external_toplevel_consts_74 = { .co_kwonlyargcount = 0, .co_framesize = 11 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 1696, + .co_firstlineno = 1699, .co_nlocalsplus = 6, .co_nlocals = 6, .co_ncellvars = 0, @@ -44192,7 +44197,7 @@ importlib__bootstrap_external_toplevel_consts_75 = { .co_kwonlyargcount = 0, .co_framesize = 6 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 1721, + .co_firstlineno = 1724, .co_nlocalsplus = 3, .co_nlocals = 3, .co_ncellvars = 0, @@ -44332,7 +44337,7 @@ importlib__bootstrap_external_toplevel_consts_76 = { .co_kwonlyargcount = 0, .co_framesize = 2 + FRAME_SPECIALS_SIZE, .co_stacksize = 1, - .co_firstlineno = 1732, + .co_firstlineno = 1735, .co_nlocalsplus = 1, .co_nlocals = 1, .co_ncellvars = 0, @@ -44505,7 +44510,7 @@ importlib__bootstrap_external_toplevel_consts_77 = { .co_kwonlyargcount = 0, .co_framesize = 7 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 1737, + .co_firstlineno = 1740, .co_nlocalsplus = 2, .co_nlocals = 2, .co_ncellvars = 0, @@ -44982,7 +44987,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[704]; + char ob_sval[707]; } importlib__bootstrap_external_toplevel_linetable = { .ob_base = { @@ -44990,10 +44995,10 @@ importlib__bootstrap_external_toplevel_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 703, + .ob_size = 706, }, .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x07\x01\x04\xf0\x2c\x00\x0e\x12\x80\x0a\xf3\x06\x00\x01\x0c\xdb\x00\x0a\xdb\x00\x0a\xdb\x00\x10\xdb\x00\x0e\xf0\x06\x00\x10\x13\x8f\x7c\x89\x7c\x98\x77\xd1\x0f\x26\x80\x0b\xd9\x03\x0e\xdb\x04\x14\xdc\x04\x11\xe3\x04\x17\xf1\x06\x00\x04\x0f\xd8\x17\x1b\x98\x53\x90\x6b\x81\x4f\xe0\x17\x1a\x90\x65\x80\x4f\xe1\x07\x0a\xd1\x0a\x34\xa0\x4f\xd4\x0a\x34\xd4\x07\x34\xd1\x00\x34\xd8\x0b\x1a\x98\x31\xd1\x0b\x1d\x80\x08\xd9\x11\x16\x90\x7f\xd3\x11\x27\x80\x0e\xd8\x12\x14\x97\x27\x91\x27\x98\x2f\xd3\x12\x2a\x80\x0f\xd8\x29\x38\xd6\x17\x39\xa0\x41\x98\x21\x98\x41\x98\x33\x9a\x07\xd2\x17\x39\xd0\x00\x14\xf0\x08\x00\x27\x2d\xd0\x00\x23\xd8\x28\x3a\xd0\x00\x25\xd8\x20\x45\xd8\x22\x45\xf1\x03\x01\x21\x46\x01\xd0\x00\x1b\xf2\x08\x0e\x01\x17\xf1\x20\x00\x0f\x1f\xd3\x0e\x20\x80\x0b\xf2\x06\x02\x01\x37\xf2\x0a\x03\x01\x2a\xf2\x0a\x03\x01\x2a\xf1\x0c\x00\x04\x0f\xf3\x02\x1b\x05\x2a\xf2\x3c\x03\x05\x3f\xf2\x0c\x05\x01\x22\xf2\x10\x07\x01\x1a\xf2\x14\x06\x01\x32\xf2\x12\x02\x01\x2e\xf2\x0a\x04\x01\x2e\xf1\x0e\x00\x04\x0f\xf3\x02\x05\x05\x52\x01\xf2\x10\x02\x05\x30\xf2\x0a\x07\x01\x14\xf3\x14\x13\x01\x0e\xf1\x2c\x00\x0e\x12\x90\x2d\xd7\x12\x28\xd1\x12\x28\xd3\x0d\x29\x80\x0a\xf0\x70\x07\x00\x11\x15\x8f\x7f\x89\x7f\x98\x71\xa0\x28\xd3\x0f\x2b\xa8\x67\xd1\x0f\x35\x80\x0c\xe0\x14\x17\x97\x4e\x91\x4e\xa0\x3c\xb0\x18\xd3\x14\x3a\xd0\x00\x11\xe0\x0b\x18\x80\x08\xd8\x07\x0d\x80\x04\xe0\x13\x18\x90\x27\x80\x0f\xd9\x03\x0e\xd8\x04\x13\xd7\x04\x1a\xd1\x04\x1a\x98\x36\xd4\x04\x22\xe0\x15\x2c\x90\x54\xd7\x15\x2c\xd1\x15\x2c\xd3\x15\x2e\xd0\x00\x12\xe0\x15\x1b\x90\x48\xd0\x00\x11\xe0\x38\x49\xd0\x00\x49\xd0\x00\x17\xd0\x1a\x35\xf0\x04\x43\x01\x01\x30\xc0\x14\xf4\x00\x43\x01\x01\x30\xf2\x4c\x02\x25\x01\x40\x01\xf2\x50\x01\x10\x01\x47\x01\xf2\x26\x09\x01\x14\xf2\x18\x09\x01\x10\xf2\x18\x1c\x01\x1f\xf2\x3e\x1e\x01\x11\xf2\x42\x01\x19\x01\x4c\x01\xf2\x38\x15\x01\x0a\xf3\x30\x0a\x01\x39\xf3\x1a\x07\x01\x10\xf3\x14\x08\x01\x10\xf2\x16\x09\x01\x44\x01\xf1\x1c\x00\x0d\x13\x8b\x48\x80\x09\xf0\x06\x43\x01\x01\x10\xb8\x34\xd8\x37\x40\xf4\x03\x43\x01\x01\x10\xf2\x4c\x02\x2d\x01\x17\xf7\x64\x01\x30\x01\x1c\xf1\x00\x30\x01\x1c\xf7\x66\x01\x1b\x01\x3c\xf1\x00\x1b\x01\x3c\xf4\x3c\x4e\x02\x01\x1b\x90\x3d\xf4\x00\x4e\x02\x01\x1b\xf7\x62\x04\x2f\x01\x20\xf1\x00\x2f\x01\x20\xf4\x64\x01\x2a\x01\x2d\x90\x7a\xa0\x3c\xf4\x00\x2a\x01\x2d\xf4\x5a\x01\x16\x01\x14\x98\x3a\xa0\x7d\xf4\x00\x16\x01\x14\xf4\x32\x32\x01\x19\x98\x2a\xa0\x6d\xf4\x00\x32\x01\x19\xf7\x6a\x01\x41\x01\x01\x20\xf1\x00\x41\x01\x01\x20\xf7\x4e\x02\x21\x01\x2b\xf1\x00\x21\x01\x2b\xf0\x4a\x01\x00\x14\x23\xd0\x00\x10\xf7\x0a\x76\x01\x01\x46\x01\xf1\x00\x76\x01\x01\x46\x01\xf7\x72\x03\x48\x02\x01\x2c\xf1\x00\x48\x02\x01\x2c\xf3\x5a\x04\x16\x01\x0d\xf2\x32\x08\x01\x2a\xf2\x16\x02\x01\x23\xf3\x0a\x05\x01\x25\xf9\xf2\x6f\x34\x00\x18\x3a", + .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x07\x01\x04\xf0\x2c\x00\x0e\x12\x80\x0a\xf3\x06\x00\x01\x0c\xdb\x00\x0a\xdb\x00\x0a\xdb\x00\x10\xdb\x00\x0e\xf0\x06\x00\x10\x13\x8f\x7c\x89\x7c\x98\x77\xd1\x0f\x26\x80\x0b\xd9\x03\x0e\xdb\x04\x14\xdc\x04\x11\xe3\x04\x17\xf1\x06\x00\x04\x0f\xd8\x17\x1b\x98\x53\x90\x6b\x81\x4f\xe0\x17\x1a\x90\x65\x80\x4f\xe1\x07\x0a\xd1\x0a\x34\xa0\x4f\xd4\x0a\x34\xd4\x07\x34\xd0\x00\x34\xd0\x07\x34\xd8\x0b\x1a\x98\x31\xd1\x0b\x1d\x80\x08\xd9\x11\x16\x90\x7f\xd3\x11\x27\x80\x0e\xd8\x12\x14\x97\x27\x91\x27\x98\x2f\xd3\x12\x2a\x80\x0f\xd8\x29\x38\xd6\x17\x39\xa0\x41\x98\x21\x98\x41\x98\x33\x9a\x07\xd2\x17\x39\xd0\x00\x14\xf0\x08\x00\x27\x2d\xd0\x00\x23\xd8\x28\x3a\xd0\x00\x25\xd8\x20\x45\xd8\x22\x45\xf1\x03\x01\x21\x46\x01\xd0\x00\x1b\xf2\x08\x0e\x01\x17\xf1\x20\x00\x0f\x1f\xd3\x0e\x20\x80\x0b\xf2\x06\x02\x01\x37\xf2\x0a\x03\x01\x2a\xf2\x0a\x03\x01\x2a\xf1\x0c\x00\x04\x0f\xf3\x02\x1b\x05\x2a\xf2\x3c\x03\x05\x3f\xf2\x0c\x05\x01\x22\xf2\x10\x07\x01\x1a\xf2\x14\x06\x01\x32\xf2\x12\x02\x01\x2e\xf2\x0a\x04\x01\x2e\xf1\x0e\x00\x04\x0f\xf3\x02\x05\x05\x52\x01\xf2\x10\x02\x05\x30\xf2\x0a\x07\x01\x14\xf3\x14\x13\x01\x0e\xf1\x2c\x00\x0e\x12\x90\x2d\xd7\x12\x28\xd1\x12\x28\xd3\x0d\x29\x80\x0a\xf0\x70\x07\x00\x11\x15\x8f\x7f\x89\x7f\x98\x71\xa0\x28\xd3\x0f\x2b\xa8\x67\xd1\x0f\x35\x80\x0c\xe0\x14\x17\x97\x4e\x91\x4e\xa0\x3c\xb0\x18\xd3\x14\x3a\xd0\x00\x11\xe0\x0b\x18\x80\x08\xd8\x07\x0d\x80\x04\xe0\x13\x18\x90\x27\x80\x0f\xd9\x03\x0e\xd8\x04\x13\xd7\x04\x1a\xd1\x04\x1a\x98\x36\xd4\x04\x22\xe0\x15\x2c\x90\x54\xd7\x15\x2c\xd1\x15\x2c\xd3\x15\x2e\xd0\x00\x12\xe0\x15\x1b\x90\x48\xd0\x00\x11\xe0\x38\x49\xd0\x00\x49\xd0\x00\x17\xd0\x1a\x35\xf0\x04\x43\x01\x01\x30\xc0\x14\xf4\x00\x43\x01\x01\x30\xf2\x4c\x02\x25\x01\x40\x01\xf2\x50\x01\x10\x01\x47\x01\xf2\x26\x09\x01\x14\xf2\x18\x09\x01\x10\xf2\x18\x1c\x01\x1f\xf2\x3e\x1e\x01\x11\xf2\x42\x01\x19\x01\x4c\x01\xf2\x38\x15\x01\x0a\xf3\x30\x0a\x01\x39\xf3\x1a\x07\x01\x10\xf3\x14\x08\x01\x10\xf2\x16\x09\x01\x44\x01\xf1\x1c\x00\x0d\x13\x8b\x48\x80\x09\xf0\x06\x43\x01\x01\x10\xb8\x34\xd8\x37\x40\xf4\x03\x43\x01\x01\x10\xf2\x4c\x02\x2d\x01\x17\xf7\x64\x01\x30\x01\x1c\xf1\x00\x30\x01\x1c\xf7\x66\x01\x1b\x01\x3c\xf1\x00\x1b\x01\x3c\xf4\x3c\x4e\x02\x01\x1b\x90\x3d\xf4\x00\x4e\x02\x01\x1b\xf7\x62\x04\x2f\x01\x20\xf1\x00\x2f\x01\x20\xf4\x64\x01\x2a\x01\x2d\x90\x7a\xa0\x3c\xf4\x00\x2a\x01\x2d\xf4\x5a\x01\x16\x01\x14\x98\x3a\xa0\x7d\xf4\x00\x16\x01\x14\xf4\x32\x32\x01\x19\x98\x2a\xa0\x6d\xf4\x00\x32\x01\x19\xf7\x6a\x01\x41\x01\x01\x20\xf1\x00\x41\x01\x01\x20\xf7\x4e\x02\x21\x01\x2b\xf1\x00\x21\x01\x2b\xf0\x4a\x01\x00\x14\x23\xd0\x00\x10\xf7\x0a\x79\x01\x01\x46\x01\xf1\x00\x79\x01\x01\x46\x01\xf7\x78\x03\x48\x02\x01\x2c\xf1\x00\x48\x02\x01\x2c\xf3\x5a\x04\x16\x01\x0d\xf2\x32\x08\x01\x2a\xf2\x16\x02\x01\x23\xf3\x0a\x05\x01\x25\xf9\xf2\x75\x34\x00\x18\x3a", }; static struct { @@ -51236,7 +51241,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[124]; + char ob_sval[127]; } zipimport_toplevel_consts_30_linetable = { .ob_base = { @@ -51244,10 +51249,10 @@ zipimport_toplevel_consts_30_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 123, + .ob_size = 126, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x0c\x05\x14\xe0\x0f\x13\x90\x42\x90\x43\x88\x79\x98\x4a\xd1\x0f\x26\xd1\x08\x26\xd8\x0f\x13\x90\x43\x90\x52\x88\x79\x88\x04\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd1\x14\x25\x88\x09\xf0\x06\x00\x10\x19\x98\x11\x89\x7c\x88\x04\xd8\x0f\x18\x98\x11\x89\x7c\x88\x04\xd8\x1c\x25\xa0\x61\x99\x4c\xd0\x08\x19\xdc\x0f\x1d\x98\x64\xa0\x44\xd3\x0f\x29\xd0\x2b\x3c\xd0\x0f\x3c\xd0\x08\x3c\xf8\xdc\x0c\x14\x94\x6a\xa4\x29\xd0\x0b\x2c\xf2\x00\x01\x05\x14\xd9\x0f\x13\xf0\x03\x01\x05\x14\xfa", + .ob_sval = "\x80\x00\xf0\x02\x0c\x05\x14\xe0\x0f\x13\x90\x42\x90\x43\x88\x79\x98\x4a\xd1\x0f\x26\xd0\x08\x26\xd0\x0f\x26\xd8\x0f\x13\x90\x43\x90\x52\x88\x79\x88\x04\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd1\x14\x25\x88\x09\xf0\x06\x00\x10\x19\x98\x11\x89\x7c\x88\x04\xd8\x0f\x18\x98\x11\x89\x7c\x88\x04\xd8\x1c\x25\xa0\x61\x99\x4c\xd0\x08\x19\xdc\x0f\x1d\x98\x64\xa0\x44\xd3\x0f\x29\xd0\x2b\x3c\xd0\x0f\x3c\xd0\x08\x3c\xf8\xdc\x0c\x14\x94\x6a\xa4\x29\xd0\x0b\x2c\xf2\x00\x01\x05\x14\xd9\x0f\x13\xf0\x03\x01\x05\x14\xfa", }; static struct { @@ -51403,7 +51408,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[89]; + char ob_sval[92]; } zipimport_toplevel_consts_31_linetable = { .ob_base = { @@ -51411,10 +51416,10 @@ zipimport_toplevel_consts_31_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 88, + .ob_size = 91, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0f\x90\x02\x90\x03\x88\x39\x98\x0a\xd1\x0b\x22\xd1\x04\x22\xd8\x0b\x0f\x90\x03\x90\x12\x88\x39\x80\x44\xf0\x04\x05\x05\x32\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd1\x14\x25\x88\x09\xf4\x08\x00\x10\x19\x98\x14\x9f\x1c\x99\x1c\xa0\x79\xd3\x0f\x31\xd0\x08\x31\xf8\xf4\x07\x00\x0c\x14\xf2\x00\x01\x05\x14\xd9\x0f\x13\xf0\x03\x01\x05\x14\xfa", + .ob_sval = "\x80\x00\xe0\x0b\x0f\x90\x02\x90\x03\x88\x39\x98\x0a\xd1\x0b\x22\xd0\x04\x22\xd0\x0b\x22\xd8\x0b\x0f\x90\x03\x90\x12\x88\x39\x80\x44\xf0\x04\x05\x05\x32\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd1\x14\x25\x88\x09\xf4\x08\x00\x10\x19\x98\x14\x9f\x1c\x99\x1c\xa0\x79\xd3\x0f\x31\xd0\x08\x31\xf8\xf4\x07\x00\x0c\x14\xf2\x00\x01\x05\x14\xd9\x0f\x13\xf0\x03\x01\x05\x14\xfa", }; static struct { @@ -111462,6 +111467,28 @@ const_str_O_RDONLY = { static struct { PyASCIIObject _ascii; + uint8_t _data[11]; + } +const_str_O_NONBLOCK = { + ._ascii = { + .ob_base = { + .ob_refcnt = _Py_IMMORTAL_REFCNT, + .ob_type = &PyUnicode_Type, + }, + .length = 10, + .hash = -1, + .state = { + .kind = 1, + .compact = 1, + .ascii = 1, + .statically_allocated = 1, + }, + }, + ._data = "O_NONBLOCK", +}; +static + struct { + PyASCIIObject _ascii; uint8_t _data[7]; } const_str__fwalk = { @@ -111486,7 +111513,7 @@ static PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[15]; + PyObject *ob_item[16]; }_object; } os_toplevel_consts_86_names = { @@ -111496,7 +111523,7 @@ os_toplevel_consts_86_names = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 15, + .ob_size = 16, }, .ob_item = { & const_str_sys._ascii.ob_base, @@ -111505,6 +111532,7 @@ os_toplevel_consts_86_names = { & const_str_stat._ascii.ob_base, &_Py_ID(open), & const_str_O_RDONLY._ascii.ob_base, + & const_str_O_NONBLOCK._ascii.ob_base, & const_str_st._ascii.ob_base, & const_str_S_ISDIR._ascii.ob_base, & const_str_st_mode._ascii.ob_base, @@ -111543,7 +111571,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[181]; + char ob_sval[186]; } os_toplevel_consts_86_linetable = { .ob_base = { @@ -111551,10 +111579,10 @@ os_toplevel_consts_86_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 180, + .ob_size = 185, }, .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf4\x42\x01\x00\x09\x0c\x8f\x09\x89\x09\x90\x2a\x98\x63\xa0\x37\xa8\x47\xb0\x5f\xc0\x66\xd4\x08\x4d\xdc\x0e\x14\x90\x53\x8b\x6b\x88\x03\xf1\x06\x00\x10\x1f\xdc\x16\x1a\x98\x33\xb0\x05\xb8\x66\xd4\x16\x45\x88\x47\xdc\x10\x14\x90\x53\x9c\x28\xa8\x36\xd4\x10\x32\x88\x05\xf0\x02\x06\x09\x19\xd9\x10\x1f\xa4\x42\xa7\x4a\xa1\x4a\xa8\x77\xaf\x7f\xa9\x7f\xd4\x24\x3f\xdc\x24\x28\xa7\x4d\xa1\x4d\xb0\x27\xbc\x34\xc0\x05\xbb\x3b\xd4\x24\x47\xdc\x1b\x21\xa0\x25\xa8\x13\xac\x6a\xb8\x13\xbc\x65\xd3\x2e\x44\xd8\x22\x29\xa8\x37\xb0\x4f\xf3\x03\x01\x1c\x45\x01\xf7\x00\x01\x11\x45\x01\xf0\x00\x01\x11\x45\x01\xf4\x06\x00\x0d\x12\x90\x25\x8d\x4c\xf0\x07\x01\x11\x45\x01\xf9\xf4\x06\x00\x0d\x12\x90\x25\x8d\x4c\xfc", + .ob_sval = "\xe8\x00\xf8\x80\x00\xf4\x42\x01\x00\x09\x0c\x8f\x09\x89\x09\x90\x2a\x98\x63\xa0\x37\xa8\x47\xb0\x5f\xc0\x66\xd4\x08\x4d\xdc\x0e\x14\x90\x53\x8b\x6b\x88\x03\xf1\x06\x00\x10\x1f\xdc\x16\x1a\x98\x33\xb0\x05\xb8\x66\xd4\x16\x45\x88\x47\xdc\x10\x14\x90\x53\x9c\x28\xa4\x5a\xd1\x1a\x2f\xb8\x06\xd4\x10\x3f\x88\x05\xf0\x02\x06\x09\x19\xd9\x10\x1f\xa4\x42\xa7\x4a\xa1\x4a\xa8\x77\xaf\x7f\xa9\x7f\xd4\x24\x3f\xdc\x24\x28\xa7\x4d\xa1\x4d\xb0\x27\xbc\x34\xc0\x05\xbb\x3b\xd4\x24\x47\xdc\x1b\x21\xa0\x25\xa8\x13\xac\x6a\xb8\x13\xbc\x65\xd3\x2e\x44\xd8\x22\x29\xa8\x37\xb0\x4f\xf3\x03\x01\x1c\x45\x01\xf7\x00\x01\x11\x45\x01\xf0\x00\x01\x11\x45\x01\xf4\x06\x00\x0d\x12\x90\x25\x8d\x4c\xf0\x07\x01\x11\x45\x01\xf9\xf4\x06\x00\x0d\x12\x90\x25\x8d\x4c\xfc", }; static struct { @@ -111571,7 +111599,7 @@ os_toplevel_consts_86_exceptiontable = { .ob_size = 49, }, .ob_shash = -1, - .ob_sval = "\x82\x41\x08\x43\x0f\x01\xc1\x0b\x41\x21\x42\x3f\x00\xc2\x2c\x01\x42\x3d\x04\xc2\x2d\x04\x42\x3f\x00\xc2\x31\x0c\x43\x0f\x01\xc2\x3d\x01\x42\x3f\x00\xc2\x3f\x0d\x43\x0c\x03\xc3\x0c\x03\x43\x0f\x01", + .ob_sval = "\x82\x41\x0f\x43\x16\x01\xc1\x12\x41\x21\x43\x06\x00\xc2\x33\x01\x43\x04\x04\xc2\x34\x04\x43\x06\x00\xc2\x38\x0c\x43\x16\x01\xc3\x04\x01\x43\x06\x00\xc3\x06\x0d\x43\x13\x03\xc3\x13\x03\x43\x16\x01", }; static struct { @@ -111646,14 +111674,14 @@ os_toplevel_consts_86_localsplusnames = { }, }; static - struct _PyCode_DEF(418) + struct _PyCode_DEF(432) os_toplevel_consts_86 = { .ob_base = { .ob_base = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyCode_Type, }, - .ob_size = 209, + .ob_size = 216, }, .co_consts = & os_toplevel_consts_86_consts._object.ob_base.ob_base, .co_names = & os_toplevel_consts_86_names._object.ob_base.ob_base, @@ -111677,7 +111705,7 @@ os_toplevel_consts_86 = { .co_qualname = & const_str_fwalk._ascii.ob_base, .co_linetable = & os_toplevel_consts_86_linetable.ob_base.ob_base, ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\xab\x06\x00\x00\x00\x00\x00\x00\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x03\x73\x0e\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x02\x7c\x04\xac\x03\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xac\x04\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x06\x09\x00\x7c\x03\x73\x3e\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x05\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x72\x45\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x26\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x00\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\x7c\x03\xab\x06\x00\x00\x00\x00\x00\x00\x45\x00\x64\x05\x7b\x03\x00\x00\x96\x03\x97\x02\x86\x05\x05\x00\x01\x00\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x05\x37\x00\x8c\x10\x23\x00\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x77\x00\x78\x03\x59\x00\x77\x01\xad\x03\x77\x01", + .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\xab\x06\x00\x00\x00\x00\x00\x00\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x03\x73\x0e\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x02\x7c\x04\xac\x03\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x07\x00\x00\x7c\x04\xac\x04\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x06\x09\x00\x7c\x03\x73\x3e\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x05\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x72\x45\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x26\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x00\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\x7c\x03\xab\x06\x00\x00\x00\x00\x00\x00\x45\x00\x64\x05\x7b\x03\x00\x00\x96\x03\x97\x02\x86\x05\x05\x00\x01\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x05\x37\x00\x8c\x10\x23\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x77\x00\x78\x03\x59\x00\x77\x01\xad\x03\x77\x01", ._co_firsttraceable = 2, }; static @@ -111756,7 +111784,7 @@ static PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[16]; + PyObject *ob_item[17]; }_object; } os_toplevel_consts_87_names = { @@ -111766,7 +111794,7 @@ os_toplevel_consts_87_names = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 16, + .ob_size = 17, }, .ob_item = { & const_str_scandir._ascii.ob_base, @@ -111780,6 +111808,7 @@ os_toplevel_consts_87_names = { & const_str_stat._ascii.ob_base, &_Py_ID(open), & const_str_O_RDONLY._ascii.ob_base, + & const_str_O_NONBLOCK._ascii.ob_base, &_Py_ID(path), & const_str_samestat._ascii.ob_base, &_Py_ID(join), @@ -111792,7 +111821,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[476]; + char ob_sval[484]; } os_toplevel_consts_87_linetable = { .ob_base = { @@ -111800,10 +111829,10 @@ os_toplevel_consts_87_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 475, + .ob_size = 483, }, .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf4\x0a\x00\x16\x1d\x98\x55\x93\x5e\x88\x0a\xd8\x0f\x11\x88\x04\xd8\x12\x14\x88\x07\xd9\x1a\x21\xa1\x5f\x91\x24\xb8\x22\x88\x07\xd8\x15\x1f\xf2\x00\x11\x09\x19\x88\x45\xd8\x13\x18\x97\x3a\x91\x3a\x88\x44\xd9\x0f\x16\xdc\x17\x1f\xa0\x04\x93\x7e\x90\x04\xf0\x02\x0d\x0d\x19\xd8\x13\x18\x97\x3c\x91\x3c\x94\x3e\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd4\x14\x25\xd8\x17\x1e\xd0\x17\x2a\xd8\x18\x1f\x9f\x0e\x99\x0e\xa0\x75\xd5\x18\x2d\xe0\x14\x1b\x97\x4e\x91\x4e\xa0\x34\xd4\x14\x28\xf8\xf0\x15\x11\x09\x19\xf1\x26\x00\x0c\x13\xd8\x12\x19\x98\x34\xa0\x17\xa8\x25\xd0\x12\x2f\xd2\x0c\x2f\xe0\x1c\x23\x98\x4f\x91\x44\xb4\x13\xb0\x54\xb8\x37\xd3\x31\x43\xf2\x00\x14\x09\x1d\x88\x44\xf0\x02\x0c\x0d\x19\xd9\x17\x26\xd9\x17\x1e\xdc\x22\x26\xa0\x74\xb0\x45\xc8\x35\xd4\x22\x51\x99\x07\xe0\x1f\x26\xd0\x1f\x32\xd1\x18\x32\xd8\x26\x2a\x99\x0b\x98\x04\x98\x65\xd8\x22\x27\xa7\x2a\xa1\x2a\xb8\x55\xa0\x2a\xd3\x22\x43\x98\x07\xdc\x18\x1c\x98\x54\xa4\x38\xb0\x45\xd4\x18\x3a\x90\x05\xf0\x0a\x06\x0d\x1d\xd9\x13\x22\xa4\x64\xa7\x6d\xa1\x6d\xb0\x47\xbc\x54\xc0\x25\xbb\x5b\xd4\x26\x49\xdc\x1e\x22\x9f\x69\x99\x69\xa8\x07\xb0\x14\xd3\x1e\x36\x90\x47\xdc\x1f\x25\xa0\x65\xa8\x57\xb0\x67\xd8\x26\x2d\xa8\x77\xb8\x0f\xf3\x03\x01\x20\x49\x01\xf7\x00\x01\x15\x49\x01\xf0\x00\x01\x15\x49\x01\xf4\x06\x00\x11\x16\x90\x65\x95\x0c\xf0\x29\x14\x09\x1d\xf1\x2c\x00\x10\x17\xd8\x12\x19\x98\x34\xa0\x17\xa8\x25\xd0\x12\x2f\xd3\x0c\x2f\xf0\x03\x00\x10\x17\xf8\xf4\x43\x01\x00\x14\x1b\xf2\x00\x06\x0d\x19\xf0\x02\x05\x11\x19\xe0\x17\x1c\xd7\x17\x27\xd1\x17\x27\xd4\x17\x29\xd8\x18\x1f\x9f\x0e\x99\x0e\xa0\x74\xd4\x18\x2c\xf9\xdc\x17\x1e\xf2\x00\x01\x11\x19\xd9\x14\x18\xf0\x03\x01\x11\x19\xfd\xf0\x0b\x06\x0d\x19\xfb\xf4\x2a\x00\x14\x1b\xf2\x00\x03\x0d\x19\xd8\x13\x1a\xd0\x13\x26\xd9\x14\x1b\x98\x43\x94\x4c\xdd\x10\x18\xfb\xf0\x07\x03\x0d\x19\xfa\xf0\x0e\x01\x15\x49\x01\xf9\xf4\x06\x00\x11\x16\x90\x65\x95\x0c\xfc", + .ob_sval = "\xe8\x00\xf8\x80\x00\xf4\x0a\x00\x16\x1d\x98\x55\x93\x5e\x88\x0a\xd8\x0f\x11\x88\x04\xd8\x12\x14\x88\x07\xd9\x1a\x21\xa1\x5f\x91\x24\xb8\x22\x88\x07\xd8\x15\x1f\xf2\x00\x11\x09\x19\x88\x45\xd8\x13\x18\x97\x3a\x91\x3a\x88\x44\xd9\x0f\x16\xdc\x17\x1f\xa0\x04\x93\x7e\x90\x04\xf0\x02\x0d\x0d\x19\xd8\x13\x18\x97\x3c\x91\x3c\x94\x3e\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd4\x14\x25\xd8\x17\x1e\xd0\x17\x2a\xd8\x18\x1f\x9f\x0e\x99\x0e\xa0\x75\xd5\x18\x2d\xe0\x14\x1b\x97\x4e\x91\x4e\xa0\x34\xd4\x14\x28\xf8\xf0\x15\x11\x09\x19\xf1\x26\x00\x0c\x13\xd8\x12\x19\x98\x34\xa0\x17\xa8\x25\xd0\x12\x2f\xd2\x0c\x2f\xe0\x1c\x23\x98\x4f\x91\x44\xb4\x13\xb0\x54\xb8\x37\xd3\x31\x43\xf2\x00\x14\x09\x1d\x88\x44\xf0\x02\x0c\x0d\x19\xd9\x17\x26\xd9\x17\x1e\xdc\x22\x26\xa0\x74\xb0\x45\xc8\x35\xd4\x22\x51\x99\x07\xe0\x1f\x26\xd0\x1f\x32\xd0\x18\x32\xd0\x1f\x32\xd8\x26\x2a\x99\x0b\x98\x04\x98\x65\xd8\x22\x27\xa7\x2a\xa1\x2a\xb8\x55\xa0\x2a\xd3\x22\x43\x98\x07\xdc\x18\x1c\x98\x54\xa4\x38\xac\x6a\xd1\x23\x38\xc0\x15\xd4\x18\x47\x90\x05\xf0\x0a\x06\x0d\x1d\xd9\x13\x22\xa4\x64\xa7\x6d\xa1\x6d\xb0\x47\xbc\x54\xc0\x25\xbb\x5b\xd4\x26\x49\xdc\x1e\x22\x9f\x69\x99\x69\xa8\x07\xb0\x14\xd3\x1e\x36\x90\x47\xdc\x1f\x25\xa0\x65\xa8\x57\xb0\x67\xd8\x26\x2d\xa8\x77\xb8\x0f\xf3\x03\x01\x20\x49\x01\xf7\x00\x01\x15\x49\x01\xf0\x00\x01\x15\x49\x01\xf4\x06\x00\x11\x16\x90\x65\x95\x0c\xf0\x29\x14\x09\x1d\xf1\x2c\x00\x10\x17\xd8\x12\x19\x98\x34\xa0\x17\xa8\x25\xd0\x12\x2f\xd3\x0c\x2f\xf0\x03\x00\x10\x17\xf8\xf4\x43\x01\x00\x14\x1b\xf2\x00\x06\x0d\x19\xf0\x02\x05\x11\x19\xe0\x17\x1c\xd7\x17\x27\xd1\x17\x27\xd4\x17\x29\xd8\x18\x1f\x9f\x0e\x99\x0e\xa0\x74\xd4\x18\x2c\xf9\xdc\x17\x1e\xf2\x00\x01\x11\x19\xd9\x14\x18\xf0\x03\x01\x11\x19\xfd\xf0\x0b\x06\x0d\x19\xfb\xf4\x2a\x00\x14\x1b\xf2\x00\x03\x0d\x19\xd8\x13\x1a\xd0\x13\x26\xd9\x14\x1b\x98\x43\x94\x4c\xdd\x10\x18\xfb\xf0\x07\x03\x0d\x19\xfa\xf0\x0e\x01\x15\x49\x01\xf9\xf4\x06\x00\x11\x16\x90\x65\x95\x0c\xfc", }; static struct { @@ -111820,7 +111849,7 @@ os_toplevel_consts_87_exceptiontable = { .ob_size = 157, }, .ob_shash = -1, - .ob_sval = "\x82\x36\x46\x3d\x01\xb9\x41\x06\x45\x08\x02\xc1\x3f\x1f\x46\x3d\x01\xc2\x1f\x41\x00\x46\x0a\x02\xc3\x20\x41\x0a\x46\x2d\x02\xc4\x2a\x01\x46\x2b\x06\xc4\x2b\x04\x46\x2d\x02\xc4\x2f\x19\x46\x3d\x01\xc5\x08\x09\x46\x07\x05\xc5\x12\x21\x45\x34\x04\xc5\x33\x01\x46\x07\x05\xc5\x34\x09\x46\x00\x07\xc5\x3d\x02\x46\x07\x05\xc5\x3f\x01\x46\x00\x07\xc6\x00\x03\x46\x07\x05\xc6\x03\x03\x46\x3d\x01\xc6\x06\x01\x46\x07\x05\xc6\x07\x03\x46\x3d\x01\xc6\x0a\x09\x46\x28\x05\xc6\x13\x0a\x46\x23\x05\xc6\x1d\x06\x46\x3d\x01\xc6\x23\x05\x46\x28\x05\xc6\x28\x03\x46\x3d\x01\xc6\x2b\x01\x46\x2d\x02\xc6\x2d\x0d\x46\x3a\x05\xc6\x3a\x03\x46\x3d\x01", + .ob_sval = "\x82\x36\x47\x04\x01\xb9\x41\x06\x45\x0f\x02\xc1\x3f\x1f\x47\x04\x01\xc2\x1f\x41\x07\x46\x11\x02\xc3\x27\x41\x0a\x46\x34\x02\xc4\x31\x01\x46\x32\x06\xc4\x32\x04\x46\x34\x02\xc4\x36\x19\x47\x04\x01\xc5\x0f\x09\x46\x0e\x05\xc5\x19\x21\x45\x3b\x04\xc5\x3a\x01\x46\x0e\x05\xc5\x3b\x09\x46\x07\x07\xc6\x04\x02\x46\x0e\x05\xc6\x06\x01\x46\x07\x07\xc6\x07\x03\x46\x0e\x05\xc6\x0a\x03\x47\x04\x01\xc6\x0d\x01\x46\x0e\x05\xc6\x0e\x03\x47\x04\x01\xc6\x11\x09\x46\x2f\x05\xc6\x1a\x0a\x46\x2a\x05\xc6\x24\x06\x47\x04\x01\xc6\x2a\x05\x46\x2f\x05\xc6\x2f\x03\x47\x04\x01\xc6\x32\x01\x46\x34\x02\xc6\x34\x0d\x47\x01\x05\xc7\x01\x03\x47\x04\x01", }; static struct { @@ -111987,14 +112016,14 @@ os_toplevel_consts_87_localspluskinds = { .ob_sval = " ", }; static - struct _PyCode_DEF(894) + struct _PyCode_DEF(908) os_toplevel_consts_87 = { .ob_base = { .ob_base = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyCode_Type, }, - .ob_size = 447, + .ob_size = 454, }, .co_consts = & os_toplevel_consts_87_consts._object.ob_base.ob_base, .co_names = & os_toplevel_consts_87_names._object.ob_base.ob_base, @@ -112018,7 +112047,7 @@ os_toplevel_consts_87 = { .co_qualname = & const_str__fwalk._ascii.ob_base, .co_linetable = & os_toplevel_consts_87_linetable.ob_base.ob_base, ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x67\x00\x7d\x07\x67\x00\x7d\x08\x7c\x03\x73\x02\x7c\x05\x72\x02\x64\x00\x6e\x01\x67\x00\x7d\x09\x7c\x06\x44\x00\x5d\x62\x00\x00\x7d\x0a\x7c\x0a\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x0b\x7c\x02\x72\x0b\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0b\x09\x00\x7c\x0a\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x72\x25\x7c\x07\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x09\x81\x23\x7c\x09\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x11\x7c\x08\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x64\x04\x00\x7c\x03\x72\x08\x7c\x01\x7c\x07\x7c\x08\x7c\x00\x66\x04\x96\x01\x97\x01\x01\x00\x7c\x09\x80\x02\x7c\x07\x6e\x0b\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x7c\x09\xab\x02\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x9e\x00\x00\x7d\x0b\x09\x00\x7c\x05\x73\x2c\x7c\x03\x72\x0f\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\x7c\x00\x64\x01\xac\x02\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x0c\x6e\x1b\x7c\x09\x80\x02\x4a\x00\x82\x01\x7c\x0b\x5c\x02\x00\x00\x7d\x0b\x7d\x0a\x7c\x0a\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xac\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0c\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xac\x04\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x0d\x09\x00\x7c\x05\x73\x1f\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x0c\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x2e\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x0b\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x0f\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x7c\x0f\x7c\x02\x7c\x03\x7c\x04\x7c\x05\xab\x06\x00\x00\x00\x00\x00\x00\x45\x00\x64\x00\x7b\x03\x00\x00\x96\x03\x97\x02\x86\x05\x05\x00\x01\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\xa0\x04\x00\x7c\x03\x73\x09\x7c\x01\x7c\x07\x7c\x08\x7c\x00\x66\x04\x96\x01\x97\x01\x01\x00\x79\x00\x79\x00\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x36\x01\x00\x09\x00\x7c\x0a\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x72\x11\x7c\x08\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x0f\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x6e\x04\x77\x00\x78\x03\x59\x00\x77\x01\x59\x00\x90\x01\x8c\x6a\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x15\x7d\x0e\x7c\x04\x81\x08\x02\x00\x7c\x04\x7c\x0e\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x64\x00\x7d\x0e\x7e\x0e\x90\x01\x8c\x08\x64\x00\x7d\x0e\x7e\x0e\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x37\x00\x8c\x80\x23\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x77\x00\x78\x03\x59\x00\x77\x01\xad\x03\x77\x01", + .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x67\x00\x7d\x07\x67\x00\x7d\x08\x7c\x03\x73\x02\x7c\x05\x72\x02\x64\x00\x6e\x01\x67\x00\x7d\x09\x7c\x06\x44\x00\x5d\x62\x00\x00\x7d\x0a\x7c\x0a\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x0b\x7c\x02\x72\x0b\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0b\x09\x00\x7c\x0a\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x72\x25\x7c\x07\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x09\x81\x23\x7c\x09\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x11\x7c\x08\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x64\x04\x00\x7c\x03\x72\x08\x7c\x01\x7c\x07\x7c\x08\x7c\x00\x66\x04\x96\x01\x97\x01\x01\x00\x7c\x09\x80\x02\x7c\x07\x6e\x0b\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x7c\x09\xab\x02\x00\x00\x00\x00\x00\x00\x44\x00\x5d\xa5\x00\x00\x7d\x0b\x09\x00\x7c\x05\x73\x2c\x7c\x03\x72\x0f\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\x7c\x00\x64\x01\xac\x02\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x0c\x6e\x1b\x7c\x09\x80\x02\x4a\x00\x82\x01\x7c\x0b\x5c\x02\x00\x00\x7d\x0b\x7d\x0a\x7c\x0a\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xac\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0c\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x07\x00\x00\x7c\x00\xac\x04\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x0d\x09\x00\x7c\x05\x73\x1f\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x0c\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x2e\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x0b\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x0f\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x7c\x0f\x7c\x02\x7c\x03\x7c\x04\x7c\x05\xab\x06\x00\x00\x00\x00\x00\x00\x45\x00\x64\x00\x7b\x03\x00\x00\x96\x03\x97\x02\x86\x05\x05\x00\x01\x00\x74\x21\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\xa7\x04\x00\x7c\x03\x73\x09\x7c\x01\x7c\x07\x7c\x08\x7c\x00\x66\x04\x96\x01\x97\x01\x01\x00\x79\x00\x79\x00\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x36\x01\x00\x09\x00\x7c\x0a\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x72\x11\x7c\x08\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x0f\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x6e\x04\x77\x00\x78\x03\x59\x00\x77\x01\x59\x00\x90\x01\x8c\x71\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x15\x7d\x0e\x7c\x04\x81\x08\x02\x00\x7c\x04\x7c\x0e\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x64\x00\x7d\x0e\x7e\x0e\x90\x01\x8c\x0f\x64\x00\x7d\x0e\x7e\x0e\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x37\x00\x8c\x80\x23\x00\x74\x21\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x77\x00\x78\x03\x59\x00\x77\x01\xad\x03\x77\x01", ._co_firsttraceable = 2, }; static @@ -134576,7 +134605,7 @@ importlib_util_toplevel_consts_15 = { .co_kwonlyargcount = 0, .co_framesize = 5 + FRAME_SPECIALS_SIZE, .co_stacksize = 4, - .co_firstlineno = 19, + .co_firstlineno = 20, .co_nlocalsplus = 1, .co_nlocals = 1, .co_ncellvars = 0, @@ -134794,7 +134823,7 @@ importlib_util_toplevel_consts_16 = { .co_kwonlyargcount = 0, .co_framesize = 10 + FRAME_SPECIALS_SIZE, .co_stacksize = 6, - .co_firstlineno = 24, + .co_firstlineno = 25, .co_nlocalsplus = 4, .co_nlocals = 4, .co_ncellvars = 0, @@ -135028,7 +135057,7 @@ importlib_util_toplevel_consts_17 = { .co_kwonlyargcount = 0, .co_framesize = 9 + FRAME_SPECIALS_SIZE, .co_stacksize = 5, - .co_firstlineno = 39, + .co_firstlineno = 40, .co_nlocalsplus = 4, .co_nlocals = 4, .co_ncellvars = 0, @@ -135302,7 +135331,7 @@ importlib_util_toplevel_consts_18 = { .co_kwonlyargcount = 0, .co_framesize = 16 + FRAME_SPECIALS_SIZE, .co_stacksize = 7, - .co_firstlineno = 70, + .co_firstlineno = 71, .co_nlocalsplus = 9, .co_nlocals = 9, .co_ncellvars = 0, @@ -135360,7 +135389,7 @@ importlib_util_toplevel_consts_19_consts_1 = { .statically_allocated = 1, }, }, - ._data = "\x41\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x74\x68\x61\x74\x20\x63\x61\x6e\x20\x74\x65\x6d\x70\x6f\x72\x61\x72\x69\x6c\x79\x20\x73\x6b\x69\x70\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x69\x6c\x69\x74\x79\x20\x63\x68\x65\x63\x6b\x2e\x0a\x0a\x20\x20\x20\x20\x4e\x4f\x54\x45\x3a\x20\x54\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x6d\x65\x61\x6e\x74\x20\x74\x6f\x20\x61\x63\x63\x6f\x6d\x6d\x6f\x64\x61\x74\x65\x20\x61\x6e\x20\x75\x6e\x75\x73\x75\x61\x6c\x20\x63\x61\x73\x65\x3b\x20\x6f\x6e\x65\x0a\x20\x20\x20\x20\x77\x68\x69\x63\x68\x20\x69\x73\x20\x6c\x69\x6b\x65\x6c\x79\x20\x74\x6f\x20\x65\x76\x65\x6e\x74\x75\x61\x6c\x6c\x79\x20\x67\x6f\x20\x61\x77\x61\x79\x2e\x20\x20\x54\x68\x65\x72\x65\x27\x73\x20\x69\x73\x20\x61\x20\x70\x72\x65\x74\x74\x79\x20\x67\x6f\x6f\x64\x0a\x20\x20\x20\x20\x63\x68\x61\x6e\x63\x65\x20\x74\x68\x69\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x77\x68\x61\x74\x20\x79\x6f\x75\x20\x77\x65\x72\x65\x20\x6c\x6f\x6f\x6b\x69\x6e\x67\x20\x66\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20\x57\x41\x52\x4e\x49\x4e\x47\x3a\x20\x55\x73\x69\x6e\x67\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x64\x69\x73\x61\x62\x6c\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x20\x63\x61\x6e\x20\x6c\x65\x61\x64\x20\x74\x6f\x0a\x20\x20\x20\x20\x75\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x62\x65\x68\x61\x76\x69\x6f\x72\x20\x61\x6e\x64\x20\x65\x76\x65\x6e\x20\x63\x72\x61\x73\x68\x65\x73\x2e\x20\x20\x49\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x6f\x6e\x6c\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x64\x75\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x22\x64\x69\x73\x61\x62\x6c\x65\x5f\x63\x68\x65\x63\x6b\x22\x20\x69\x73\x20\x54\x72\x75\x65\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x69\x6c\x69\x74\x79\x20\x63\x68\x65\x63\x6b\x20\x77\x69\x6c\x6c\x20\x6e\x6f\x74\x0a\x20\x20\x20\x20\x68\x61\x70\x70\x65\x6e\x20\x77\x68\x69\x6c\x65\x20\x74\x68\x65\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x69\x73\x20\x61\x63\x74\x69\x76\x65\x2e\x20\x20\x4f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x0a\x20\x20\x20\x20\x2a\x77\x69\x6c\x6c\x2a\x20\x68\x61\x70\x70\x65\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x4e\x6f\x72\x6d\x61\x6c\x6c\x79\x2c\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73\x20\x74\x68\x61\x74\x20\x64\x6f\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x0a\x20\x20\x20\x20\x6d\x61\x79\x20\x6e\x6f\x74\x20\x62\x65\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x2e\x20\x20\x54\x68\x61\x74\x20\x69\x6d\x70\x6c\x69\x65\x73\x20\x6d\x6f\x64\x75\x6c\x65\x73\x0a\x20\x20\x20\x20\x74\x68\x61\x74\x20\x64\x6f\x20\x6e\x6f\x74\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x20\x6d\x75\x6c\x74\x69\x2d\x70\x68\x61\x73\x65\x20\x69\x6e\x69\x74\x20\x6f\x72\x20\x74\x68\x61\x74\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x6c\x79\x20\x6f\x66\x20\x6f\x75\x74\x2e\x0a\x0a\x20\x20\x20\x20\x4c\x69\x6b\x65\x77\x69\x73\x65\x20\x66\x6f\x72\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x69\x6d\x70\x6f\x72\x74\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x69\x6e\x74\x65\x72\x70\x65\x74\x65\x72\x20\x77\x69\x74\x68\x20\x69\x74\x73\x20\x6f\x77\x6e\x20\x47\x49\x4c\x0a\x20\x20\x20\x20\x77\x68\x65\x6e\x20\x74\x68\x65\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x61\x20\x70\x65\x72\x2d\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x47\x49\x4c\x2e\x20\x20\x54\x68\x69\x73\x0a\x20\x20\x20\x20\x69\x6d\x70\x6c\x69\x65\x73\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x68\x61\x76\x65\x20\x61\x20\x50\x79\x5f\x6d\x6f\x64\x5f\x6d\x75\x6c\x74\x69\x70\x6c\x65\x5f\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x20\x73\x6c\x6f\x74\x0a\x20\x20\x20\x20\x73\x65\x74\x20\x74\x6f\x20\x50\x79\x5f\x4d\x4f\x44\x5f\x50\x45\x52\x5f\x49\x4e\x54\x45\x52\x50\x52\x45\x54\x45\x52\x5f\x47\x49\x4c\x5f\x53\x55\x50\x50\x4f\x52\x54\x45\x44\x2e\x0a\x0a\x20\x20\x20\x20\x49\x6e\x20\x62\x6f\x74\x68\x20\x63\x61\x73\x65\x73\x2c\x20\x74\x68\x69\x73\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x74\x65\x6d\x70\x6f\x72\x61\x72\x69\x6c\x79\x0a\x20\x20\x20\x20\x64\x69\x73\x61\x62\x6c\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x20\x66\x6f\x72\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x59\x6f\x75\x20\x63\x61\x6e\x20\x67\x65\x74\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x65\x66\x66\x65\x63\x74\x20\x61\x73\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x79\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x69\x6e\x67\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x62\x61\x73\x69\x63\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x6f\x66\x20\x6d\x75\x6c\x74\x69\x2d\x70\x68\x61\x73\x65\x20\x69\x6e\x69\x74\x20\x28\x50\x45\x50\x20\x34\x38\x39\x29\x20\x61\x6e\x64\x20\x6c\x79\x69\x6e\x67\x20\x61\x62\x6f\x75\x74\x0a\x20\x20\x20\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x66\x6f\x72\x20\x6d\x75\x6c\x69\x74\x70\x6c\x65\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x20\x28\x6f\x72\x20\x70\x65\x72\x2d\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x47\x49\x4c\x29\x2e\x0a\x20\x20\x20\x20", + ._data = "\x41\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x74\x68\x61\x74\x20\x63\x61\x6e\x20\x74\x65\x6d\x70\x6f\x72\x61\x72\x69\x6c\x79\x20\x73\x6b\x69\x70\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x69\x6c\x69\x74\x79\x20\x63\x68\x65\x63\x6b\x2e\x0a\x0a\x20\x20\x20\x20\x4e\x4f\x54\x45\x3a\x20\x54\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x6d\x65\x61\x6e\x74\x20\x74\x6f\x20\x61\x63\x63\x6f\x6d\x6d\x6f\x64\x61\x74\x65\x20\x61\x6e\x20\x75\x6e\x75\x73\x75\x61\x6c\x20\x63\x61\x73\x65\x3b\x20\x6f\x6e\x65\x0a\x20\x20\x20\x20\x77\x68\x69\x63\x68\x20\x69\x73\x20\x6c\x69\x6b\x65\x6c\x79\x20\x74\x6f\x20\x65\x76\x65\x6e\x74\x75\x61\x6c\x6c\x79\x20\x67\x6f\x20\x61\x77\x61\x79\x2e\x20\x20\x54\x68\x65\x72\x65\x27\x73\x20\x69\x73\x20\x61\x20\x70\x72\x65\x74\x74\x79\x20\x67\x6f\x6f\x64\x0a\x20\x20\x20\x20\x63\x68\x61\x6e\x63\x65\x20\x74\x68\x69\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x77\x68\x61\x74\x20\x79\x6f\x75\x20\x77\x65\x72\x65\x20\x6c\x6f\x6f\x6b\x69\x6e\x67\x20\x66\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20\x57\x41\x52\x4e\x49\x4e\x47\x3a\x20\x55\x73\x69\x6e\x67\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x64\x69\x73\x61\x62\x6c\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x20\x63\x61\x6e\x20\x6c\x65\x61\x64\x20\x74\x6f\x0a\x20\x20\x20\x20\x75\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x62\x65\x68\x61\x76\x69\x6f\x72\x20\x61\x6e\x64\x20\x65\x76\x65\x6e\x20\x63\x72\x61\x73\x68\x65\x73\x2e\x20\x20\x49\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x6f\x6e\x6c\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x64\x75\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x22\x64\x69\x73\x61\x62\x6c\x65\x5f\x63\x68\x65\x63\x6b\x22\x20\x69\x73\x20\x54\x72\x75\x65\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x69\x6c\x69\x74\x79\x20\x63\x68\x65\x63\x6b\x20\x77\x69\x6c\x6c\x20\x6e\x6f\x74\x0a\x20\x20\x20\x20\x68\x61\x70\x70\x65\x6e\x20\x77\x68\x69\x6c\x65\x20\x74\x68\x65\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x69\x73\x20\x61\x63\x74\x69\x76\x65\x2e\x20\x20\x4f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x0a\x20\x20\x20\x20\x2a\x77\x69\x6c\x6c\x2a\x20\x68\x61\x70\x70\x65\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x4e\x6f\x72\x6d\x61\x6c\x6c\x79\x2c\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73\x20\x74\x68\x61\x74\x20\x64\x6f\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x0a\x20\x20\x20\x20\x6d\x61\x79\x20\x6e\x6f\x74\x20\x62\x65\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x2e\x20\x20\x54\x68\x61\x74\x20\x69\x6d\x70\x6c\x69\x65\x73\x20\x6d\x6f\x64\x75\x6c\x65\x73\x0a\x20\x20\x20\x20\x74\x68\x61\x74\x20\x64\x6f\x20\x6e\x6f\x74\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x20\x6d\x75\x6c\x74\x69\x2d\x70\x68\x61\x73\x65\x20\x69\x6e\x69\x74\x20\x6f\x72\x20\x74\x68\x61\x74\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x6c\x79\x20\x6f\x66\x20\x6f\x75\x74\x2e\x0a\x0a\x20\x20\x20\x20\x4c\x69\x6b\x65\x77\x69\x73\x65\x20\x66\x6f\x72\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x69\x6d\x70\x6f\x72\x74\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x69\x6e\x74\x65\x72\x70\x65\x74\x65\x72\x20\x77\x69\x74\x68\x20\x69\x74\x73\x20\x6f\x77\x6e\x20\x47\x49\x4c\x0a\x20\x20\x20\x20\x77\x68\x65\x6e\x20\x74\x68\x65\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x61\x20\x70\x65\x72\x2d\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x47\x49\x4c\x2e\x20\x20\x54\x68\x69\x73\x0a\x20\x20\x20\x20\x69\x6d\x70\x6c\x69\x65\x73\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x68\x61\x76\x65\x20\x61\x20\x50\x79\x5f\x6d\x6f\x64\x5f\x6d\x75\x6c\x74\x69\x70\x6c\x65\x5f\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x20\x73\x6c\x6f\x74\x0a\x20\x20\x20\x20\x73\x65\x74\x20\x74\x6f\x20\x50\x79\x5f\x4d\x4f\x44\x5f\x50\x45\x52\x5f\x49\x4e\x54\x45\x52\x50\x52\x45\x54\x45\x52\x5f\x47\x49\x4c\x5f\x53\x55\x50\x50\x4f\x52\x54\x45\x44\x2e\x0a\x0a\x20\x20\x20\x20\x49\x6e\x20\x62\x6f\x74\x68\x20\x63\x61\x73\x65\x73\x2c\x20\x74\x68\x69\x73\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x74\x65\x6d\x70\x6f\x72\x61\x72\x69\x6c\x79\x0a\x20\x20\x20\x20\x64\x69\x73\x61\x62\x6c\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x20\x66\x6f\x72\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x59\x6f\x75\x20\x63\x61\x6e\x20\x67\x65\x74\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x65\x66\x66\x65\x63\x74\x20\x61\x73\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x79\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x69\x6e\x67\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x62\x61\x73\x69\x63\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x6f\x66\x20\x6d\x75\x6c\x74\x69\x2d\x70\x68\x61\x73\x65\x20\x69\x6e\x69\x74\x20\x28\x50\x45\x50\x20\x34\x38\x39\x29\x20\x61\x6e\x64\x20\x6c\x79\x69\x6e\x67\x20\x61\x62\x6f\x75\x74\x0a\x20\x20\x20\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x66\x6f\x72\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x20\x28\x6f\x72\x20\x70\x65\x72\x2d\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x47\x49\x4c\x29\x2e\x0a\x20\x20\x20\x20", }; static struct { @@ -135488,7 +135517,7 @@ importlib_util_toplevel_consts_19_consts_2 = { .co_kwonlyargcount = 1, .co_framesize = 5 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 151, + .co_firstlineno = 152, .co_nlocalsplus = 2, .co_nlocals = 2, .co_ncellvars = 0, @@ -135609,7 +135638,7 @@ importlib_util_toplevel_consts_19_consts_3 = { .co_kwonlyargcount = 0, .co_framesize = 4 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 154, + .co_firstlineno = 155, .co_nlocalsplus = 1, .co_nlocals = 1, .co_ncellvars = 0, @@ -135731,7 +135760,7 @@ importlib_util_toplevel_consts_19_consts_4 = { .co_kwonlyargcount = 0, .co_framesize = 6 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 158, + .co_firstlineno = 159, .co_nlocalsplus = 3, .co_nlocals = 3, .co_ncellvars = 0, @@ -135851,7 +135880,7 @@ importlib_util_toplevel_consts_19_consts_5 = { .co_kwonlyargcount = 0, .co_framesize = 2 + FRAME_SPECIALS_SIZE, .co_stacksize = 1, - .co_firstlineno = 163, + .co_firstlineno = 164, .co_nlocalsplus = 1, .co_nlocals = 1, .co_ncellvars = 0, @@ -135961,7 +135990,7 @@ importlib_util_toplevel_consts_19 = { .co_kwonlyargcount = 0, .co_framesize = 2 + FRAME_SPECIALS_SIZE, .co_stacksize = 2, - .co_firstlineno = 119, + .co_firstlineno = 120, .co_nlocalsplus = 0, .co_nlocals = 0, .co_ncellvars = 0, @@ -136046,9 +136075,31 @@ importlib_util_toplevel_consts_21_consts_2_consts_0 = { static struct { PyASCIIObject _ascii; + uint8_t _data[11]; + } +const_str_is_loading = { + ._ascii = { + .ob_base = { + .ob_refcnt = _Py_IMMORTAL_REFCNT, + .ob_type = &PyUnicode_Type, + }, + .length = 10, + .hash = -1, + .state = { + .kind = 1, + .compact = 1, + .ascii = 1, + .statically_allocated = 1, + }, + }, + ._data = "is_loading", +}; +static + struct { + PyASCIIObject _ascii; uint8_t _data[19]; } -importlib_util_toplevel_consts_21_consts_2_consts_2 = { +importlib_util_toplevel_consts_21_consts_2_consts_8 = { ._ascii = { .ob_base = { .ob_refcnt = _Py_IMMORTAL_REFCNT, @@ -136070,7 +136121,7 @@ static PyASCIIObject _ascii; uint8_t _data[47]; } -importlib_util_toplevel_consts_21_consts_2_consts_3 = { +importlib_util_toplevel_consts_21_consts_2_consts_9 = { ._ascii = { .ob_base = { .ob_refcnt = _Py_IMMORTAL_REFCNT, @@ -136092,7 +136143,7 @@ static PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[4]; + PyObject *ob_item[10]; }_object; } importlib_util_toplevel_consts_21_consts_2_consts = { @@ -136102,13 +136153,19 @@ importlib_util_toplevel_consts_21_consts_2_consts = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 4, + .ob_size = 10, }, .ob_item = { & importlib_util_toplevel_consts_21_consts_2_consts_0._ascii.ob_base, + &_Py_ID(__spec__), + & const_str_lock._ascii.ob_base, + &_Py_ID(__class__), + & const_str_is_loading._ascii.ob_base, + Py_None, + Py_True, &_Py_ID(__dict__), - & importlib_util_toplevel_consts_21_consts_2_consts_2._ascii.ob_base, - & importlib_util_toplevel_consts_21_consts_2_consts_3._ascii.ob_base, + & importlib_util_toplevel_consts_21_consts_2_consts_8._ascii.ob_base, + & importlib_util_toplevel_consts_21_consts_2_consts_9._ascii.ob_base, }, }, }; @@ -136161,7 +136218,7 @@ static PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[16]; + PyObject *ob_item[17]; }_object; } importlib_util_toplevel_consts_21_consts_2_names = { @@ -136171,16 +136228,14 @@ importlib_util_toplevel_consts_21_consts_2_names = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 16, + .ob_size = 17, }, .ob_item = { - & const_str_types._ascii.ob_base, - & const_str_ModuleType._ascii.ob_base, - &_Py_ID(__class__), - &_Py_ID(__spec__), - &_Py_ID(name), + &_Py_ID(object), + &_Py_ID(__getattribute__), & const_str_loader_state._ascii.ob_base, - &_Py_ID(__dict__), + & const_str__LazyModule._ascii.ob_base, + &_Py_ID(name), &_Py_ID(items), &_Py_ID(id), & const_str_loader._ascii.ob_base, @@ -136189,6 +136244,9 @@ importlib_util_toplevel_consts_21_consts_2_names = { &_Py_ID(modules), & const_str_ValueError._ascii.ob_base, & const_str_update._ascii.ob_base, + & const_str_types._ascii.ob_base, + & const_str_ModuleType._ascii.ob_base, + &_Py_ID(__class__), &_Py_ID(getattr), }, }, @@ -136219,7 +136277,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[284]; + char ob_sval[402]; } importlib_util_toplevel_consts_21_consts_2_linetable = { .ob_base = { @@ -136227,10 +136285,27 @@ importlib_util_toplevel_consts_21_consts_2_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 283, + .ob_size = 401, + }, + .ob_shash = -1, + .ob_sval = "\x80\x00\xe4\x13\x19\xd7\x13\x2a\xd1\x13\x2a\xa8\x34\xb0\x1a\xd3\x13\x3c\x88\x08\xd8\x17\x1f\xd7\x17\x2c\xd1\x17\x2c\x88\x0c\xd8\x0d\x19\x98\x26\xd1\x0d\x21\xf1\x00\x2b\x09\x32\xf4\x06\x00\x10\x16\xd7\x0f\x26\xd1\x0f\x26\xa0\x74\xa8\x5b\xd3\x0f\x39\xbc\x5b\xd2\x0f\x48\xf0\x0a\x00\x14\x20\xa0\x0c\xd2\x13\x2d\xdc\x1b\x21\xd7\x1b\x32\xd1\x1b\x32\xb0\x34\xb8\x14\xd3\x1b\x3e\xf7\x13\x2b\x09\x32\xf1\x00\x2b\x09\x32\xf0\x14\x00\x2e\x32\x90\x0c\x98\x5c\xd1\x10\x2a\xe4\x1b\x21\xd7\x1b\x32\xd1\x1b\x32\xb0\x34\xb8\x1a\xd3\x1b\x44\x90\x08\xf0\x0c\x00\x21\x29\xa7\x0d\xa1\x0d\x90\x0d\xf0\x06\x00\x1e\x2a\xa8\x2a\xd1\x1d\x35\x90\x0a\xd8\x1c\x24\x90\x09\xd8\x20\x22\x90\x0d\xd8\x22\x2b\xa7\x2f\xa1\x2f\xd3\x22\x33\xf2\x00\x06\x11\x33\x91\x4a\x90\x43\x98\x15\xf0\x06\x00\x18\x1b\xa0\x2a\xd1\x17\x2c\xd8\x2d\x32\x98\x0d\xa0\x63\xd2\x18\x2a\xdc\x19\x1b\x98\x49\xa0\x63\x99\x4e\xd3\x19\x2b\xac\x72\xb0\x2a\xb8\x53\xb1\x2f\xd3\x2f\x42\xd3\x19\x42\xd8\x2d\x32\x98\x0d\xa0\x63\xd2\x18\x2a\xf0\x0d\x06\x11\x33\xf0\x0e\x00\x11\x19\x97\x0f\x91\x0f\xd7\x10\x2b\xd1\x10\x2b\xa8\x44\xd4\x10\x31\xf0\x06\x00\x14\x21\xa4\x43\xa7\x4b\xa1\x4b\xd1\x13\x2f\xdc\x17\x19\x98\x24\x93\x78\xa4\x32\xa4\x63\xa7\x6b\xa1\x6b\xb0\x2d\xd1\x26\x40\xd3\x23\x41\xd2\x17\x41\xdc\x1e\x28\xd0\x2b\x3d\xb8\x6d\xd0\x3d\x4e\xf0\x00\x02\x4f\x01\x31\xf0\x00\x02\x2a\x31\xf3\x00\x02\x1f\x32\xf0\x00\x02\x19\x32\xf0\x0a\x00\x11\x19\x97\x0f\x91\x0f\xa0\x0d\xd4\x10\x2e\xe4\x21\x26\xd7\x21\x31\xd1\x21\x31\x90\x04\x94\x0e\xf7\x57\x01\x2b\x09\x32\xf4\x5a\x01\x00\x10\x17\x90\x74\x98\x54\xd3\x0f\x22\xd0\x08\x22\xf7\x5b\x01\x2b\x09\x32\xf0\x00\x2b\x09\x32\xfa", +}; +static + struct { + PyObject_VAR_HEAD + Py_hash_t ob_shash; + char ob_sval[26]; + } +importlib_util_toplevel_consts_21_consts_2_exceptiontable = { + .ob_base = { + .ob_base = { + .ob_refcnt = _Py_IMMORTAL_REFCNT, + .ob_type = &PyBytes_Type, + }, + .ob_size = 25, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x1a\x1f\xd7\x19\x29\xd1\x19\x29\x88\x04\x8c\x0e\xf0\x06\x00\x19\x1d\x9f\x0d\x99\x0d\xd7\x18\x2a\xd1\x18\x2a\x88\x0d\xf0\x06\x00\x16\x1a\x97\x5d\x91\x5d\xd7\x15\x2f\xd1\x15\x2f\xb0\x0a\xd1\x15\x3b\x88\x0a\xd8\x14\x18\x97\x4d\x91\x4d\x88\x09\xd8\x18\x1a\x88\x0d\xd8\x1a\x23\x9f\x2f\x99\x2f\xd3\x1a\x2b\xf2\x00\x06\x09\x2b\x89\x4a\x88\x43\x90\x15\xf0\x06\x00\x10\x13\x98\x2a\xd1\x0f\x24\xd8\x25\x2a\x90\x0d\x98\x63\xd2\x10\x22\xdc\x11\x13\x90\x49\x98\x63\x91\x4e\xd3\x11\x23\xa4\x72\xa8\x2a\xb0\x53\xa9\x2f\xd3\x27\x3a\xd3\x11\x3a\xd8\x25\x2a\x90\x0d\x98\x63\xd2\x10\x22\xf0\x0d\x06\x09\x2b\xf0\x0e\x00\x09\x0d\x8f\x0d\x89\x0d\xd7\x08\x1c\xd1\x08\x1c\xd7\x08\x28\xd1\x08\x28\xa8\x14\xd4\x08\x2e\xf0\x06\x00\x0c\x19\x9c\x43\x9f\x4b\x99\x4b\xd1\x0b\x27\xdc\x0f\x11\x90\x24\x8b\x78\x9c\x32\x9c\x63\x9f\x6b\x99\x6b\xa8\x2d\xd1\x1e\x38\xd3\x1b\x39\xd2\x0f\x39\xdc\x16\x20\xd0\x23\x35\xb0\x6d\xd0\x35\x46\xf0\x00\x02\x47\x01\x29\xf0\x00\x02\x22\x29\xf3\x00\x02\x17\x2a\xf0\x00\x02\x11\x2a\xf0\x0a\x00\x09\x0d\x8f\x0d\x89\x0d\xd7\x08\x1c\xd1\x08\x1c\x98\x5d\xd4\x08\x2b\xdc\x0f\x16\x90\x74\x98\x54\xd3\x0f\x22\xd0\x08\x22", + .ob_sval = "\xa8\x38\x45\x3d\x03\xc1\x2a\x41\x2d\x45\x3d\x03\xc3\x18\x42\x11\x45\x3d\x03\xc5\x3d\x05\x46\x06\x07", }; static struct { @@ -136347,7 +136422,7 @@ static PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[8]; + PyObject *ob_item[11]; }_object; } importlib_util_toplevel_consts_21_consts_2_localsplusnames = { @@ -136357,11 +136432,14 @@ importlib_util_toplevel_consts_21_consts_2_localsplusnames = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 8, + .ob_size = 11, }, .ob_item = { &_Py_ID(self), & const_str_attr._ascii.ob_base, + &_Py_ID(__spec__), + & const_str_loader_state._ascii.ob_base, + &_Py_ID(__dict__), & const_str_original_name._ascii.ob_base, & const_str_attrs_then._ascii.ob_base, & const_str_attrs_now._ascii.ob_base, @@ -136372,38 +136450,38 @@ importlib_util_toplevel_consts_21_consts_2_localsplusnames = { }, }; static - struct _PyCode_DEF(602) + struct _PyCode_DEF(786) importlib_util_toplevel_consts_21_consts_2 = { .ob_base = { .ob_base = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyCode_Type, }, - .ob_size = 301, + .ob_size = 393, }, .co_consts = & importlib_util_toplevel_consts_21_consts_2_consts._object.ob_base.ob_base, .co_names = & importlib_util_toplevel_consts_21_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), + .co_exceptiontable = & importlib_util_toplevel_consts_21_consts_2_exceptiontable.ob_base.ob_base, .co_flags = 3, .co_argcount = 2, .co_posonlyargcount = 0, .co_kwonlyargcount = 0, - .co_framesize = 14 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 172, - .co_nlocalsplus = 8, - .co_nlocals = 8, + .co_framesize = 18 + FRAME_SPECIALS_SIZE, + .co_stacksize = 7, + .co_firstlineno = 173, + .co_nlocalsplus = 11, + .co_nlocals = 11, .co_ncellvars = 0, .co_nfreevars = 0, .co_version = 726, .co_localsplusnames = & importlib_util_toplevel_consts_21_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, + .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_6_localspluskinds.ob_base.ob_base, .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, .co_name = &_Py_ID(__getattribute__), .co_qualname = & importlib_util_toplevel_consts_21_consts_2_qualname._ascii.ob_base, .co_linetable = & importlib_util_toplevel_consts_21_consts_2_linetable.ob_base.ob_base, ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x7d\x03\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x04\x69\x00\x7d\x05\x7c\x04\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x32\x00\x00\x5c\x02\x00\x00\x7d\x06\x7d\x07\x7c\x06\x7c\x03\x76\x01\x72\x06\x7c\x07\x7c\x05\x7c\x06\x3c\x00\x00\x00\x8c\x10\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x06\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x06\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x73\x01\x8c\x2e\x7c\x07\x7c\x05\x7c\x06\x3c\x00\x00\x00\x8c\x34\x04\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x02\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x72\x37\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x0f\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x7c\x02\x9b\x02\x64\x03\x9d\x03\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", + .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x64\x02\x19\x00\x00\x00\x35\x00\x01\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x90\x01\x72\x23\x7c\x03\x64\x04\x19\x00\x00\x00\x72\x1f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x63\x02\x64\x05\x64\x05\x64\x05\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x53\x00\x64\x06\x7c\x03\x64\x04\x3c\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x07\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x02\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x03\x64\x07\x19\x00\x00\x00\x7d\x06\x7c\x04\x7d\x07\x69\x00\x7d\x08\x7c\x07\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x32\x00\x00\x5c\x02\x00\x00\x7d\x09\x7d\x0a\x7c\x09\x7c\x06\x76\x01\x72\x06\x7c\x0a\x7c\x08\x7c\x09\x3c\x00\x00\x00\x8c\x10\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x7c\x09\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x09\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x73\x01\x8c\x2e\x7c\x0a\x7c\x08\x7c\x09\x3c\x00\x00\x00\x8c\x34\x04\x00\x7c\x02\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x05\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x72\x37\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x0f\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x7c\x05\x9b\x02\x64\x09\x9d\x03\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x04\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x64\x05\x64\x05\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x21\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x15\x78\x03\x59\x00\x77\x01", ._co_firsttraceable = 0, }; static @@ -136577,7 +136655,7 @@ importlib_util_toplevel_consts_21_consts_3 = { .co_kwonlyargcount = 0, .co_framesize = 6 + FRAME_SPECIALS_SIZE, .co_stacksize = 4, - .co_firstlineno = 206, + .co_firstlineno = 224, .co_nlocalsplus = 2, .co_nlocals = 2, .co_ncellvars = 0, @@ -136661,7 +136739,7 @@ importlib_util_toplevel_consts_21_linetable = { .ob_size = 16, }, .ob_shash = -1, - .ob_sval = "\x84\x00\xe1\x04\x55\xf2\x04\x20\x05\x23\xf3\x44\x01\x05\x05\x1c", + .ob_sval = "\x84\x00\xe1\x04\x55\xf2\x04\x31\x05\x23\xf3\x66\x01\x05\x05\x1c", }; static struct _PyCode_DEF(28) @@ -136682,7 +136760,7 @@ importlib_util_toplevel_consts_21 = { .co_kwonlyargcount = 0, .co_framesize = 1 + FRAME_SPECIALS_SIZE, .co_stacksize = 1, - .co_firstlineno = 168, + .co_firstlineno = 169, .co_nlocalsplus = 0, .co_nlocals = 0, .co_ncellvars = 0, @@ -136891,7 +136969,7 @@ importlib_util_toplevel_consts_23_consts_2 = { .co_kwonlyargcount = 0, .co_framesize = 5 + FRAME_SPECIALS_SIZE, .co_stacksize = 4, - .co_firstlineno = 218, + .co_firstlineno = 236, .co_nlocalsplus = 1, .co_nlocals = 1, .co_ncellvars = 0, @@ -137029,7 +137107,7 @@ importlib_util_toplevel_consts_23_consts_3_consts_1 = { .co_kwonlyargcount = 0, .co_framesize = 11 + FRAME_SPECIALS_SIZE, .co_stacksize = 7, - .co_firstlineno = 227, + .co_firstlineno = 245, .co_nlocalsplus = 4, .co_nlocals = 2, .co_ncellvars = 0, @@ -137210,7 +137288,7 @@ importlib_util_toplevel_consts_23_consts_3 = { .co_kwonlyargcount = 0, .co_framesize = 5 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 223, + .co_firstlineno = 241, .co_nlocalsplus = 2, .co_nlocals = 2, .co_ncellvars = 2, @@ -137330,7 +137408,7 @@ importlib_util_toplevel_consts_23_consts_4 = { .co_kwonlyargcount = 0, .co_framesize = 5 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 229, + .co_firstlineno = 247, .co_nlocalsplus = 2, .co_nlocals = 2, .co_ncellvars = 0, @@ -137427,7 +137505,7 @@ importlib_util_toplevel_consts_23_consts_5 = { .co_kwonlyargcount = 0, .co_framesize = 5 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 233, + .co_firstlineno = 251, .co_nlocalsplus = 2, .co_nlocals = 2, .co_ncellvars = 0, @@ -137470,7 +137548,7 @@ static PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[4]; + PyObject *ob_item[7]; }_object; } importlib_util_toplevel_consts_23_consts_6_consts = { @@ -137480,12 +137558,15 @@ importlib_util_toplevel_consts_23_consts_6_consts = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 4, + .ob_size = 7, }, .ob_item = { & importlib_util_toplevel_consts_23_consts_6_consts_0._ascii.ob_base, &_Py_ID(__dict__), &_Py_ID(__class__), + & const_str_lock._ascii.ob_base, + Py_False, + & const_str_is_loading._ascii.ob_base, Py_None, }, }, @@ -137495,7 +137576,7 @@ static PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[8]; + PyObject *ob_item[10]; }_object; } importlib_util_toplevel_consts_23_consts_6_names = { @@ -137505,7 +137586,7 @@ importlib_util_toplevel_consts_23_consts_6_names = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 8, + .ob_size = 10, }, .ob_item = { & const_str_loader._ascii.ob_base, @@ -137514,6 +137595,8 @@ importlib_util_toplevel_consts_23_consts_6_names = { &_Py_ID(__dict__), &_Py_ID(copy), &_Py_ID(__class__), + &_Py_ID(threading), + & const_str_RLock._ascii.ob_base, & const_str_loader_state._ascii.ob_base, & const_str__LazyModule._ascii.ob_base, }, @@ -137545,7 +137628,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[97]; + char ob_sval[124]; } importlib_util_toplevel_consts_23_consts_6_linetable = { .ob_base = { @@ -137553,10 +137636,10 @@ importlib_util_toplevel_consts_23_consts_6_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 96, + .ob_size = 123, }, .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x21\x25\xa7\x1b\xa1\x1b\x88\x06\x8f\x0f\x89\x0f\xd4\x08\x1e\xd8\x1c\x20\x9f\x4b\x99\x4b\x88\x06\xd4\x08\x19\xf0\x0a\x00\x18\x1a\x88\x0c\xd8\x23\x29\xa7\x3f\xa1\x3f\xd7\x23\x37\xd1\x23\x37\xd3\x23\x39\x88\x0c\x90\x5a\xd1\x08\x20\xd8\x24\x2a\xd7\x24\x34\xd1\x24\x34\x88\x0c\x90\x5b\xd1\x08\x21\xd8\x27\x33\x88\x06\x8f\x0f\x89\x0f\xd4\x08\x24\xdc\x1b\x26\x88\x06\xd5\x08\x18", + .ob_sval = "\x80\x00\xe0\x21\x25\xa7\x1b\xa1\x1b\x88\x06\x8f\x0f\x89\x0f\xd4\x08\x1e\xd8\x1c\x20\x9f\x4b\x99\x4b\x88\x06\xd4\x08\x19\xf0\x0a\x00\x18\x1a\x88\x0c\xd8\x23\x29\xa7\x3f\xa1\x3f\xd7\x23\x37\xd1\x23\x37\xd3\x23\x39\x88\x0c\x90\x5a\xd1\x08\x20\xd8\x24\x2a\xd7\x24\x34\xd1\x24\x34\x88\x0c\x90\x5b\xd1\x08\x21\xdc\x1f\x28\x9f\x7f\x99\x7f\xd3\x1f\x30\x88\x0c\x90\x56\xd1\x08\x1c\xd8\x25\x2a\x88\x0c\x90\x5c\xd1\x08\x22\xd8\x27\x33\x88\x06\x8f\x0f\x89\x0f\xd4\x08\x24\xdc\x1b\x26\x88\x06\xd5\x08\x18", }; static struct { @@ -137583,14 +137666,14 @@ importlib_util_toplevel_consts_23_consts_6_localsplusnames = { }, }; static - struct _PyCode_DEF(240) + struct _PyCode_DEF(296) importlib_util_toplevel_consts_23_consts_6 = { .ob_base = { .ob_base = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyCode_Type, }, - .ob_size = 120, + .ob_size = 148, }, .co_consts = & importlib_util_toplevel_consts_23_consts_6_consts._object.ob_base.ob_base, .co_names = & importlib_util_toplevel_consts_23_consts_6_names._object.ob_base.ob_base, @@ -137601,7 +137684,7 @@ importlib_util_toplevel_consts_23_consts_6 = { .co_kwonlyargcount = 0, .co_framesize = 6 + FRAME_SPECIALS_SIZE, .co_stacksize = 3, - .co_firstlineno = 236, + .co_firstlineno = 254, .co_nlocalsplus = 3, .co_nlocals = 3, .co_ncellvars = 0, @@ -137614,7 +137697,7 @@ importlib_util_toplevel_consts_23_consts_6 = { .co_qualname = & importlib_util_toplevel_consts_23_consts_6_qualname._ascii.ob_base, .co_linetable = & importlib_util_toplevel_consts_23_consts_6_linetable.ob_base.ob_base, ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x7d\x02\x7c\x01\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x01\x3c\x00\x00\x00\x7c\x01\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x02\x3c\x00\x00\x00\x7c\x02\x7c\x01\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x79\x03", + .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x7d\x02\x7c\x01\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x01\x3c\x00\x00\x00\x7c\x01\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x02\x3c\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x03\x3c\x00\x00\x00\x64\x04\x7c\x02\x64\x05\x3c\x00\x00\x00\x7c\x02\x7c\x01\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x79\x06", ._co_firsttraceable = 0, }; static @@ -137693,7 +137776,7 @@ importlib_util_toplevel_consts_23_linetable = { .ob_size = 62, }, .ob_shash = -1, - .ob_sval = "\x84\x00\xe1\x04\x55\xe0\x05\x11\xf1\x02\x02\x05\x40\x01\xf3\x03\x00\x06\x12\xf0\x02\x02\x05\x40\x01\xf0\x08\x00\x06\x11\xf1\x02\x03\x05\x44\x01\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x44\x01\xf2\x0a\x02\x05\x1d\xf2\x08\x01\x05\x2f\xf3\x06\x0c\x05\x27", + .ob_sval = "\x84\x00\xe1\x04\x55\xe0\x05\x11\xf1\x02\x02\x05\x40\x01\xf3\x03\x00\x06\x12\xf0\x02\x02\x05\x40\x01\xf0\x08\x00\x06\x11\xf1\x02\x03\x05\x44\x01\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x44\x01\xf2\x0a\x02\x05\x1d\xf2\x08\x01\x05\x2f\xf3\x06\x0e\x05\x27", }; static struct _PyCode_DEF(66) @@ -137714,7 +137797,7 @@ importlib_util_toplevel_consts_23 = { .co_kwonlyargcount = 0, .co_framesize = 2 + FRAME_SPECIALS_SIZE, .co_stacksize = 2, - .co_firstlineno = 214, + .co_firstlineno = 232, .co_nlocalsplus = 0, .co_nlocals = 0, .co_ncellvars = 0, @@ -137782,7 +137865,7 @@ static PyGC_Head _gc_head; struct { PyObject_VAR_HEAD - PyObject *ob_item[26]; + PyObject *ob_item[27]; }_object; } importlib_util_toplevel_names = { @@ -137792,7 +137875,7 @@ importlib_util_toplevel_names = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyTuple_Type, }, - .ob_size = 26, + .ob_size = 27, }, .ob_item = { &_Py_ID(__doc__), @@ -137812,6 +137895,7 @@ importlib_util_toplevel_names = { & const_str_spec_from_file_location._ascii.ob_base, & const_str__imp._ascii.ob_base, & const_str_sys._ascii.ob_base, + &_Py_ID(threading), & const_str_types._ascii.ob_base, & const_str_source_hash._ascii.ob_base, & const_str_resolve_name._ascii.ob_base, @@ -137828,7 +137912,7 @@ static struct { PyObject_VAR_HEAD Py_hash_t ob_shash; - char ob_sval[114]; + char ob_sval[117]; } importlib_util_toplevel_linetable = { .ob_base = { @@ -137836,20 +137920,20 @@ importlib_util_toplevel_linetable = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBytes_Type, }, - .ob_size = 113, + .ob_size = 116, }, .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xd9\x00\x33\xdd\x00\x18\xdd\x00\x28\xdd\x00\x25\xdd\x00\x28\xdd\x00\x22\xdd\x00\x2d\xdd\x00\x32\xdd\x00\x32\xdd\x00\x2e\xdd\x00\x32\xdd\x00\x38\xe3\x00\x0b\xdb\x00\x0a\xdb\x00\x0c\xf2\x06\x02\x01\x3d\xf2\x0a\x0c\x01\x37\xf3\x1e\x1c\x01\x18\xf3\x3e\x2a\x01\x18\xf7\x62\x01\x2e\x01\x2f\xf1\x00\x2e\x01\x2f\xf4\x62\x01\x2b\x01\x1c\x90\x25\xd7\x12\x22\xd1\x12\x22\xf4\x00\x2b\x01\x1c\xf4\x5c\x01\x22\x01\x27\x90\x16\xf5\x00\x22\x01\x27", + .ob_sval = "\xf0\x03\x01\x01\x01\xd9\x00\x33\xdd\x00\x18\xdd\x00\x28\xdd\x00\x25\xdd\x00\x28\xdd\x00\x22\xdd\x00\x2d\xdd\x00\x32\xdd\x00\x32\xdd\x00\x2e\xdd\x00\x32\xdd\x00\x38\xe3\x00\x0b\xdb\x00\x0a\xdb\x00\x10\xdb\x00\x0c\xf2\x06\x02\x01\x3d\xf2\x0a\x0c\x01\x37\xf3\x1e\x1c\x01\x18\xf3\x3e\x2a\x01\x18\xf7\x62\x01\x2e\x01\x2f\xf1\x00\x2e\x01\x2f\xf4\x62\x01\x3c\x01\x1c\x90\x25\xd7\x12\x22\xd1\x12\x22\xf4\x00\x3c\x01\x1c\xf4\x7e\x01\x24\x01\x27\x90\x16\xf5\x00\x24\x01\x27", }; static - struct _PyCode_DEF(276) + struct _PyCode_DEF(284) importlib_util_toplevel = { .ob_base = { .ob_base = { .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyCode_Type, }, - .ob_size = 138, + .ob_size = 142, }, .co_consts = & importlib_util_toplevel_consts._object.ob_base.ob_base, .co_names = & importlib_util_toplevel_names._object.ob_base.ob_base, @@ -137873,7 +137957,7 @@ importlib_util_toplevel = { .co_qualname = &_Py_STR(anon_module), .co_linetable = & importlib_util_toplevel_linetable.ob_base.ob_base, ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x6d\x02\x5a\x02\x01\x00\x64\x01\x64\x03\x6c\x03\x6d\x04\x5a\x04\x01\x00\x64\x01\x64\x04\x6c\x03\x6d\x05\x5a\x05\x01\x00\x64\x01\x64\x05\x6c\x03\x6d\x06\x5a\x06\x01\x00\x64\x01\x64\x06\x6c\x03\x6d\x07\x5a\x07\x01\x00\x64\x01\x64\x07\x6c\x08\x6d\x09\x5a\x09\x01\x00\x64\x01\x64\x08\x6c\x08\x6d\x0a\x5a\x0a\x01\x00\x64\x01\x64\x09\x6c\x08\x6d\x0b\x5a\x0b\x01\x00\x64\x01\x64\x0a\x6c\x08\x6d\x0c\x5a\x0c\x01\x00\x64\x01\x64\x0b\x6c\x08\x6d\x0d\x5a\x0d\x01\x00\x64\x01\x64\x0c\x6c\x08\x6d\x0e\x5a\x0e\x01\x00\x64\x0d\x64\x0e\x6c\x0f\x5a\x0f\x64\x0d\x64\x0e\x6c\x10\x5a\x10\x64\x0d\x64\x0e\x6c\x11\x5a\x11\x64\x0f\x84\x00\x5a\x12\x64\x10\x84\x00\x5a\x13\x64\x19\x64\x11\x84\x01\x5a\x14\x64\x19\x64\x12\x84\x01\x5a\x15\x02\x00\x47\x00\x64\x13\x84\x00\x64\x14\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x16\x02\x00\x47\x00\x64\x15\x84\x00\x64\x16\x65\x11\x6a\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x18\x02\x00\x47\x00\x64\x17\x84\x00\x64\x18\x65\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x19\x79\x0e", + .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x6d\x02\x5a\x02\x01\x00\x64\x01\x64\x03\x6c\x03\x6d\x04\x5a\x04\x01\x00\x64\x01\x64\x04\x6c\x03\x6d\x05\x5a\x05\x01\x00\x64\x01\x64\x05\x6c\x03\x6d\x06\x5a\x06\x01\x00\x64\x01\x64\x06\x6c\x03\x6d\x07\x5a\x07\x01\x00\x64\x01\x64\x07\x6c\x08\x6d\x09\x5a\x09\x01\x00\x64\x01\x64\x08\x6c\x08\x6d\x0a\x5a\x0a\x01\x00\x64\x01\x64\x09\x6c\x08\x6d\x0b\x5a\x0b\x01\x00\x64\x01\x64\x0a\x6c\x08\x6d\x0c\x5a\x0c\x01\x00\x64\x01\x64\x0b\x6c\x08\x6d\x0d\x5a\x0d\x01\x00\x64\x01\x64\x0c\x6c\x08\x6d\x0e\x5a\x0e\x01\x00\x64\x0d\x64\x0e\x6c\x0f\x5a\x0f\x64\x0d\x64\x0e\x6c\x10\x5a\x10\x64\x0d\x64\x0e\x6c\x11\x5a\x11\x64\x0d\x64\x0e\x6c\x12\x5a\x12\x64\x0f\x84\x00\x5a\x13\x64\x10\x84\x00\x5a\x14\x64\x19\x64\x11\x84\x01\x5a\x15\x64\x19\x64\x12\x84\x01\x5a\x16\x02\x00\x47\x00\x64\x13\x84\x00\x64\x14\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x17\x02\x00\x47\x00\x64\x15\x84\x00\x64\x16\x65\x12\x6a\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x19\x02\x00\x47\x00\x64\x17\x84\x00\x64\x18\x65\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x1a\x79\x0e", ._co_firsttraceable = 0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap.h b/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap.h index 20e6d2d618..1349f464b6 100644 --- a/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap.h +++ b/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap.h @@ -681,2808 +681,2812 @@ const unsigned char _Py_M__importlib__bootstrap[] = { 0,0,0,114,122,0,0,0,115,2,0,0,0,32,32,114, 7,0,0,0,114,121,0,0,0,122,19,95,77,111,100,117, 108,101,76,111,99,107,46,114,101,108,101,97,115,101,116,1, - 0,0,115,168,0,0,0,128,0,220,14,21,215,14,31,209, + 0,0,115,171,0,0,0,128,0,220,14,21,215,14,31,209, 14,31,211,14,33,136,3,216,13,17,143,89,137,89,241,0, 9,9,42,216,15,19,143,122,137,122,152,83,210,15,32,220, 22,34,208,35,68,211,22,69,208,16,69,220,19,22,144,116, - 151,122,145,122,147,63,160,81,210,19,38,209,12,38,216,12, - 16,143,74,137,74,143,78,137,78,212,12,28,220,19,22,144, - 116,151,122,145,122,148,63,216,29,33,144,4,148,10,220,19, - 22,144,116,151,124,145,124,211,19,36,160,113,210,19,40,216, - 20,24,151,76,145,76,215,20,36,209,20,36,212,20,38,216, - 20,24,151,75,145,75,215,20,39,209,20,39,212,20,41,247, - 19,9,9,42,247,0,9,9,42,241,0,9,9,42,250,115, - 12,0,0,0,161,66,55,67,33,3,195,33,5,67,42,7, - 99,1,0,0,0,0,0,0,0,0,0,0,0,6,0,0, - 0,3,0,0,0,243,56,0,0,0,151,0,100,1,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,155,2,100,2,116,3,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,155,0,157,4, - 83,0,41,3,78,122,12,95,77,111,100,117,108,101,76,111, - 99,107,40,250,5,41,32,97,116,32,169,2,114,26,0,0, - 0,218,2,105,100,114,66,0,0,0,115,1,0,0,0,32, - 114,7,0,0,0,218,8,95,95,114,101,112,114,95,95,122, - 20,95,77,111,100,117,108,101,76,111,99,107,46,95,95,114, - 101,112,114,95,95,129,1,0,0,115,29,0,0,0,128,0, - 216,17,29,152,100,159,105,153,105,152,93,168,37,180,2,176, - 52,179,8,168,122,208,15,58,208,8,58,114,22,0,0,0, - 78,41,9,114,11,0,0,0,114,10,0,0,0,114,3,0, - 0,0,114,12,0,0,0,114,47,0,0,0,114,118,0,0, - 0,114,120,0,0,0,114,121,0,0,0,114,132,0,0,0, - 114,31,0,0,0,114,22,0,0,0,114,7,0,0,0,114, - 107,0,0,0,114,107,0,0,0,226,0,0,0,115,35,0, - 0,0,132,0,241,2,3,5,8,242,10,54,5,26,242,112, - 1,14,5,10,242,32,66,1,5,38,242,72,2,11,5,42, - 243,26,1,5,59,114,22,0,0,0,114,107,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 0,0,0,0,243,40,0,0,0,151,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,132,0,90,4,100,3,132, - 0,90,5,100,4,132,0,90,6,100,5,132,0,90,7,121, - 6,41,7,218,16,95,68,117,109,109,121,77,111,100,117,108, - 101,76,111,99,107,122,86,65,32,115,105,109,112,108,101,32, - 95,77,111,100,117,108,101,76,111,99,107,32,101,113,117,105, - 118,97,108,101,110,116,32,102,111,114,32,80,121,116,104,111, - 110,32,98,117,105,108,100,115,32,119,105,116,104,111,117,116, - 10,32,32,32,32,109,117,108,116,105,45,116,104,114,101,97, - 100,105,110,103,32,115,117,112,112,111,114,116,46,99,2,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0, - 0,0,243,32,0,0,0,151,0,124,1,124,0,95,0,0, - 0,0,0,0,0,0,0,100,1,124,0,95,1,0,0,0, - 0,0,0,0,0,121,0,169,2,78,114,125,0,0,0,41, - 2,114,26,0,0,0,114,113,0,0,0,114,115,0,0,0, - 115,2,0,0,0,32,32,114,7,0,0,0,114,47,0,0, - 0,122,25,95,68,117,109,109,121,77,111,100,117,108,101,76, - 111,99,107,46,95,95,105,110,105,116,95,95,137,1,0,0, - 115,16,0,0,0,128,0,216,20,24,136,4,140,9,216,21, - 22,136,4,141,10,114,22,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, - 46,0,0,0,151,0,124,0,120,1,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 122,13,0,0,99,2,95,0,0,0,0,0,0,0,0,0, - 121,2,41,3,78,233,1,0,0,0,84,41,1,114,113,0, - 0,0,114,66,0,0,0,115,1,0,0,0,32,114,7,0, - 0,0,114,120,0,0,0,122,24,95,68,117,109,109,121,77, - 111,100,117,108,101,76,111,99,107,46,97,99,113,117,105,114, - 101,141,1,0,0,115,18,0,0,0,128,0,216,8,12,143, - 10,138,10,144,97,137,15,141,10,216,15,19,114,22,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,243,98,0,0,0,151,0,124,0,106, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,1,107,40,0,0,114,11,116,3,0,0,0, - 0,0,0,0,0,100,2,171,1,0,0,0,0,0,0,130, - 1,124,0,120,1,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,3,122,23,0,0,99, - 2,95,0,0,0,0,0,0,0,0,0,121,0,41,4,78, - 114,125,0,0,0,114,124,0,0,0,114,138,0,0,0,41, - 2,114,113,0,0,0,114,126,0,0,0,114,66,0,0,0, - 115,1,0,0,0,32,114,7,0,0,0,114,121,0,0,0, - 122,24,95,68,117,109,109,121,77,111,100,117,108,101,76,111, - 99,107,46,114,101,108,101,97,115,101,145,1,0,0,115,38, - 0,0,0,128,0,216,11,15,143,58,137,58,152,17,138,63, - 220,18,30,208,31,64,211,18,65,208,12,65,216,8,12,143, - 10,138,10,144,97,137,15,142,10,114,22,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, - 0,0,0,243,56,0,0,0,151,0,100,1,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,155,2,100,2,116,3,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,155,0,157,4,83,0, - 41,3,78,122,17,95,68,117,109,109,121,77,111,100,117,108, - 101,76,111,99,107,40,114,129,0,0,0,114,130,0,0,0, - 114,66,0,0,0,115,1,0,0,0,32,114,7,0,0,0, - 114,132,0,0,0,122,25,95,68,117,109,109,121,77,111,100, - 117,108,101,76,111,99,107,46,95,95,114,101,112,114,95,95, - 150,1,0,0,115,29,0,0,0,128,0,216,17,34,160,52, - 167,57,161,57,160,45,168,117,180,82,184,4,179,88,176,74, - 208,15,63,208,8,63,114,22,0,0,0,78,41,8,114,11, - 0,0,0,114,10,0,0,0,114,3,0,0,0,114,12,0, - 0,0,114,47,0,0,0,114,120,0,0,0,114,121,0,0, - 0,114,132,0,0,0,114,31,0,0,0,114,22,0,0,0, - 114,7,0,0,0,114,134,0,0,0,114,134,0,0,0,133, - 1,0,0,115,28,0,0,0,132,0,241,2,1,5,32,242, - 6,2,5,23,242,8,2,5,20,242,8,3,5,24,243,10, - 1,5,64,1,114,22,0,0,0,114,134,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, - 0,0,0,243,30,0,0,0,151,0,101,0,90,1,100,0, - 90,2,100,1,132,0,90,3,100,2,132,0,90,4,100,3, - 132,0,90,5,121,4,41,5,218,18,95,77,111,100,117,108, - 101,76,111,99,107,77,97,110,97,103,101,114,99,2,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0, - 0,243,32,0,0,0,151,0,124,1,124,0,95,0,0,0, - 0,0,0,0,0,0,100,0,124,0,95,1,0,0,0,0, - 0,0,0,0,121,0,114,2,0,0,0,41,2,218,5,95, - 110,97,109,101,218,5,95,108,111,99,107,114,115,0,0,0, - 115,2,0,0,0,32,32,114,7,0,0,0,114,47,0,0, - 0,122,27,95,77,111,100,117,108,101,76,111,99,107,77,97, - 110,97,103,101,114,46,95,95,105,110,105,116,95,95,156,1, - 0,0,115,16,0,0,0,128,0,216,21,25,136,4,140,10, - 216,21,25,136,4,141,10,114,22,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, - 0,243,108,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,124,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 124,0,95,2,0,0,0,0,0,0,0,0,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 121,0,114,2,0,0,0,41,4,218,16,95,103,101,116,95, - 109,111,100,117,108,101,95,108,111,99,107,114,144,0,0,0, - 114,145,0,0,0,114,120,0,0,0,114,66,0,0,0,115, - 1,0,0,0,32,114,7,0,0,0,114,87,0,0,0,122, - 28,95,77,111,100,117,108,101,76,111,99,107,77,97,110,97, - 103,101,114,46,95,95,101,110,116,101,114,95,95,160,1,0, - 0,115,34,0,0,0,128,0,220,21,37,160,100,167,106,161, - 106,211,21,49,136,4,140,10,216,8,12,143,10,137,10,215, - 8,26,209,8,26,213,8,28,114,22,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,15,0, - 0,0,243,56,0,0,0,151,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,1,0,121,0,114, - 2,0,0,0,41,2,114,145,0,0,0,114,121,0,0,0, - 114,89,0,0,0,115,3,0,0,0,32,32,32,114,7,0, - 0,0,114,92,0,0,0,122,27,95,77,111,100,117,108,101, - 76,111,99,107,77,97,110,97,103,101,114,46,95,95,101,120, - 105,116,95,95,164,1,0,0,115,18,0,0,0,128,0,216, - 8,12,143,10,137,10,215,8,26,209,8,26,213,8,28,114, - 22,0,0,0,78,41,6,114,11,0,0,0,114,10,0,0, - 0,114,3,0,0,0,114,47,0,0,0,114,87,0,0,0, - 114,92,0,0,0,114,31,0,0,0,114,22,0,0,0,114, - 7,0,0,0,114,142,0,0,0,114,142,0,0,0,154,1, - 0,0,115,17,0,0,0,132,0,242,4,2,5,26,242,8, - 2,5,29,243,8,1,5,29,114,22,0,0,0,114,142,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,74,1,0,0,151,0,116,0, - 0,0,0,0,0,0,0,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,1,0,9,0,9,0,116,5,0,0,0,0, - 0,0,0,0,124,0,25,0,0,0,171,0,0,0,0,0, - 0,0,125,1,124,1,128,63,116,8,0,0,0,0,0,0, - 0,0,128,12,116,11,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,125,1,110,11,116,13,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 125,1,124,0,102,1,100,2,132,1,125,2,116,14,0,0, - 0,0,0,0,0,0,106,17,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,124,2,171,2, - 0,0,0,0,0,0,116,4,0,0,0,0,0,0,0,0, - 124,0,60,0,0,0,116,0,0,0,0,0,0,0,0,0, - 106,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,1,0,124,1, - 83,0,35,0,116,6,0,0,0,0,0,0,0,0,36,0, - 114,5,1,0,100,1,125,1,89,0,140,100,119,0,120,3, - 89,0,119,1,35,0,116,0,0,0,0,0,0,0,0,0, - 106,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,1,0,119,0, - 120,3,89,0,119,1,41,3,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,117,108,101,32,110,97,109,101,46, - 10,10,32,32,32,32,65,99,113,117,105,114,101,47,114,101, - 108,101,97,115,101,32,105,110,116,101,114,110,97,108,108,121, - 32,116,104,101,32,103,108,111,98,97,108,32,105,109,112,111, - 114,116,32,108,111,99,107,32,116,111,32,112,114,111,116,101, - 99,116,10,32,32,32,32,95,109,111,100,117,108,101,95,108, - 111,99,107,115,46,78,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,19,0,0,0,243,196,0,0,0, - 151,0,116,0,0,0,0,0,0,0,0,0,106,3,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,9,0,116,4,0,0, - 0,0,0,0,0,0,106,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,124,0,117,0,114,7,116,4,0,0,0,0, - 0,0,0,0,124,1,61,0,116,0,0,0,0,0,0,0, - 0,0,106,9,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 121,0,35,0,116,0,0,0,0,0,0,0,0,0,106,9, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,1,0,119,0,120,3, - 89,0,119,1,114,2,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,76, - 0,0,0,218,12,114,101,108,101,97,115,101,95,108,111,99, - 107,41,2,114,61,0,0,0,114,26,0,0,0,115,2,0, - 0,0,32,32,114,7,0,0,0,218,2,99,98,122,28,95, - 103,101,116,95,109,111,100,117,108,101,95,108,111,99,107,46, - 60,108,111,99,97,108,115,62,46,99,98,189,1,0,0,115, - 73,0,0,0,128,0,220,16,20,215,16,33,209,16,33,212, - 16,35,240,2,7,17,40,244,8,0,24,37,215,23,40,209, - 23,40,168,20,211,23,46,176,35,209,23,53,220,28,41,168, - 36,208,28,47,228,20,24,215,20,37,209,20,37,213,20,39, - 248,148,68,215,20,37,209,20,37,213,20,39,250,115,11,0, - 0,0,150,30,65,9,0,193,9,22,65,31,3,41,10,114, - 151,0,0,0,114,152,0,0,0,114,153,0,0,0,114,73, - 0,0,0,114,109,0,0,0,114,134,0,0,0,114,107,0, - 0,0,114,52,0,0,0,114,61,0,0,0,114,154,0,0, - 0,41,3,114,26,0,0,0,114,83,0,0,0,114,155,0, - 0,0,115,3,0,0,0,32,32,32,114,7,0,0,0,114, - 147,0,0,0,114,147,0,0,0,170,1,0,0,115,156,0, - 0,0,128,0,244,12,0,5,9,215,4,21,209,4,21,212, - 4,23,240,2,25,5,28,240,2,3,9,24,220,19,32,160, - 20,209,19,38,211,19,40,136,68,240,8,0,12,16,136,60, - 220,15,22,136,127,220,23,39,168,4,211,23,45,145,4,228, - 23,34,160,52,211,23,40,144,4,224,29,33,243,0,9,13, - 40,244,22,0,35,43,167,44,161,44,168,116,176,82,211,34, - 56,140,77,152,36,209,12,31,228,8,12,215,8,25,209,8, - 25,212,8,27,224,11,15,128,75,248,244,49,0,16,24,242, - 0,1,9,24,216,19,23,138,68,240,3,1,9,24,251,244, - 44,0,9,13,215,8,25,209,8,25,213,8,27,250,115,41, - 0,0,0,151,13,65,59,0,164,65,1,66,12,0,193,59, - 11,66,9,3,194,6,2,66,12,0,194,8,1,66,9,3, - 194,9,3,66,12,0,194,12,22,66,34,3,99,1,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,122,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,1,9,0, - 124,1,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 124,1,106,5,0,0,0,0,0,0,0,0,0,0,0,0, + 151,122,145,122,147,63,160,81,210,19,38,208,12,38,208,19, + 38,216,12,16,143,74,137,74,143,78,137,78,212,12,28,220, + 19,22,144,116,151,122,145,122,148,63,216,29,33,144,4,148, + 10,220,19,22,144,116,151,124,145,124,211,19,36,160,113,210, + 19,40,216,20,24,151,76,145,76,215,20,36,209,20,36,212, + 20,38,216,20,24,151,75,145,75,215,20,39,209,20,39,212, + 20,41,247,19,9,9,42,247,0,9,9,42,241,0,9,9, + 42,250,115,12,0,0,0,161,66,55,67,33,3,195,33,5, + 67,42,7,99,1,0,0,0,0,0,0,0,0,0,0,0, + 6,0,0,0,3,0,0,0,243,56,0,0,0,151,0,100, + 1,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,155,2,100,2,116,3,0,0,0, + 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,155, + 0,157,4,83,0,41,3,78,122,12,95,77,111,100,117,108, + 101,76,111,99,107,40,250,5,41,32,97,116,32,169,2,114, + 26,0,0,0,218,2,105,100,114,66,0,0,0,115,1,0, + 0,0,32,114,7,0,0,0,218,8,95,95,114,101,112,114, + 95,95,122,20,95,77,111,100,117,108,101,76,111,99,107,46, + 95,95,114,101,112,114,95,95,129,1,0,0,115,29,0,0, + 0,128,0,216,17,29,152,100,159,105,153,105,152,93,168,37, + 180,2,176,52,179,8,168,122,208,15,58,208,8,58,114,22, + 0,0,0,78,41,9,114,11,0,0,0,114,10,0,0,0, + 114,3,0,0,0,114,12,0,0,0,114,47,0,0,0,114, + 118,0,0,0,114,120,0,0,0,114,121,0,0,0,114,132, + 0,0,0,114,31,0,0,0,114,22,0,0,0,114,7,0, + 0,0,114,107,0,0,0,114,107,0,0,0,226,0,0,0, + 115,35,0,0,0,132,0,241,2,3,5,8,242,10,54,5, + 26,242,112,1,14,5,10,242,32,66,1,5,38,242,72,2, + 11,5,42,243,26,1,5,59,114,22,0,0,0,114,107,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,0,0,0,0,243,40,0,0,0,151,0,101,0, + 90,1,100,0,90,2,100,1,90,3,100,2,132,0,90,4, + 100,3,132,0,90,5,100,4,132,0,90,6,100,5,132,0, + 90,7,121,6,41,7,218,16,95,68,117,109,109,121,77,111, + 100,117,108,101,76,111,99,107,122,86,65,32,115,105,109,112, + 108,101,32,95,77,111,100,117,108,101,76,111,99,107,32,101, + 113,117,105,118,97,108,101,110,116,32,102,111,114,32,80,121, + 116,104,111,110,32,98,117,105,108,100,115,32,119,105,116,104, + 111,117,116,10,32,32,32,32,109,117,108,116,105,45,116,104, + 114,101,97,100,105,110,103,32,115,117,112,112,111,114,116,46, + 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,243,32,0,0,0,151,0,124,1,124,0, + 95,0,0,0,0,0,0,0,0,0,100,1,124,0,95,1, + 0,0,0,0,0,0,0,0,121,0,169,2,78,114,125,0, + 0,0,41,2,114,26,0,0,0,114,113,0,0,0,114,115, + 0,0,0,115,2,0,0,0,32,32,114,7,0,0,0,114, + 47,0,0,0,122,25,95,68,117,109,109,121,77,111,100,117, + 108,101,76,111,99,107,46,95,95,105,110,105,116,95,95,137, + 1,0,0,115,16,0,0,0,128,0,216,20,24,136,4,140, + 9,216,21,22,136,4,141,10,114,22,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,243,46,0,0,0,151,0,124,0,120,1,106,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,100,1,122,13,0,0,99,2,95,0,0,0,0,0,0, + 0,0,0,121,2,41,3,78,233,1,0,0,0,84,41,1, + 114,113,0,0,0,114,66,0,0,0,115,1,0,0,0,32, + 114,7,0,0,0,114,120,0,0,0,122,24,95,68,117,109, + 109,121,77,111,100,117,108,101,76,111,99,107,46,97,99,113, + 117,105,114,101,141,1,0,0,115,18,0,0,0,128,0,216, + 8,12,143,10,138,10,144,97,137,15,141,10,216,15,19,114, + 22,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,98,0,0,0,151,0, + 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,100,1,107,40,0,0,114,11,116,3, + 0,0,0,0,0,0,0,0,100,2,171,1,0,0,0,0, + 0,0,130,1,124,0,120,1,106,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,100,3,122,23, + 0,0,99,2,95,0,0,0,0,0,0,0,0,0,121,0, + 41,4,78,114,125,0,0,0,114,124,0,0,0,114,138,0, + 0,0,41,2,114,113,0,0,0,114,126,0,0,0,114,66, + 0,0,0,115,1,0,0,0,32,114,7,0,0,0,114,121, + 0,0,0,122,24,95,68,117,109,109,121,77,111,100,117,108, + 101,76,111,99,107,46,114,101,108,101,97,115,101,145,1,0, + 0,115,38,0,0,0,128,0,216,11,15,143,58,137,58,152, + 17,138,63,220,18,30,208,31,64,211,18,65,208,12,65,216, + 8,12,143,10,138,10,144,97,137,15,142,10,114,22,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,6,0, + 0,0,3,0,0,0,243,56,0,0,0,151,0,100,1,124, + 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,155,2,100,2,116,3,0,0,0,0,0, + 0,0,0,124,0,171,1,0,0,0,0,0,0,155,0,157, + 4,83,0,41,3,78,122,17,95,68,117,109,109,121,77,111, + 100,117,108,101,76,111,99,107,40,114,129,0,0,0,114,130, + 0,0,0,114,66,0,0,0,115,1,0,0,0,32,114,7, + 0,0,0,114,132,0,0,0,122,25,95,68,117,109,109,121, + 77,111,100,117,108,101,76,111,99,107,46,95,95,114,101,112, + 114,95,95,150,1,0,0,115,29,0,0,0,128,0,216,17, + 34,160,52,167,57,161,57,160,45,168,117,180,82,184,4,179, + 88,176,74,208,15,63,208,8,63,114,22,0,0,0,78,41, + 8,114,11,0,0,0,114,10,0,0,0,114,3,0,0,0, + 114,12,0,0,0,114,47,0,0,0,114,120,0,0,0,114, + 121,0,0,0,114,132,0,0,0,114,31,0,0,0,114,22, + 0,0,0,114,7,0,0,0,114,134,0,0,0,114,134,0, + 0,0,133,1,0,0,115,28,0,0,0,132,0,241,2,1, + 5,32,242,6,2,5,23,242,8,2,5,20,242,8,3,5, + 24,243,10,1,5,64,1,114,22,0,0,0,114,134,0,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,0,0,0,0,243,30,0,0,0,151,0,101,0,90, + 1,100,0,90,2,100,1,132,0,90,3,100,2,132,0,90, + 4,100,3,132,0,90,5,121,4,41,5,218,18,95,77,111, + 100,117,108,101,76,111,99,107,77,97,110,97,103,101,114,99, + 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,243,32,0,0,0,151,0,124,1,124,0,95, + 0,0,0,0,0,0,0,0,0,100,0,124,0,95,1,0, + 0,0,0,0,0,0,0,121,0,114,2,0,0,0,41,2, + 218,5,95,110,97,109,101,218,5,95,108,111,99,107,114,115, + 0,0,0,115,2,0,0,0,32,32,114,7,0,0,0,114, + 47,0,0,0,122,27,95,77,111,100,117,108,101,76,111,99, + 107,77,97,110,97,103,101,114,46,95,95,105,110,105,116,95, + 95,156,1,0,0,115,16,0,0,0,128,0,216,21,25,136, + 4,140,10,216,21,25,136,4,141,10,114,22,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,108,0,0,0,151,0,116,1,0,0,0, + 0,0,0,0,0,124,0,106,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,171,1,0,0,0, + 0,0,0,124,0,95,2,0,0,0,0,0,0,0,0,124, + 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,106,7,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,1,0,121,0,114,2,0,0,0,41,4,218,16,95,103, + 101,116,95,109,111,100,117,108,101,95,108,111,99,107,114,144, + 0,0,0,114,145,0,0,0,114,120,0,0,0,114,66,0, + 0,0,115,1,0,0,0,32,114,7,0,0,0,114,87,0, + 0,0,122,28,95,77,111,100,117,108,101,76,111,99,107,77, + 97,110,97,103,101,114,46,95,95,101,110,116,101,114,95,95, + 160,1,0,0,115,34,0,0,0,128,0,220,21,37,160,100, + 167,106,161,106,211,21,49,136,4,140,10,216,8,12,143,10, + 137,10,215,8,26,209,8,26,213,8,28,114,22,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,15,0,0,0,243,56,0,0,0,151,0,124,0,106,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 121,1,35,0,116,6,0,0,0,0,0,0,0,0,36,0, - 114,3,1,0,89,0,121,1,119,0,120,3,89,0,119,1, - 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, + 121,0,114,2,0,0,0,41,2,114,145,0,0,0,114,121, + 0,0,0,114,89,0,0,0,115,3,0,0,0,32,32,32, + 114,7,0,0,0,114,92,0,0,0,122,27,95,77,111,100, + 117,108,101,76,111,99,107,77,97,110,97,103,101,114,46,95, + 95,101,120,105,116,95,95,164,1,0,0,115,18,0,0,0, + 128,0,216,8,12,143,10,137,10,215,8,26,209,8,26,213, + 8,28,114,22,0,0,0,78,41,6,114,11,0,0,0,114, + 10,0,0,0,114,3,0,0,0,114,47,0,0,0,114,87, + 0,0,0,114,92,0,0,0,114,31,0,0,0,114,22,0, + 0,0,114,7,0,0,0,114,142,0,0,0,114,142,0,0, + 0,154,1,0,0,115,17,0,0,0,132,0,242,4,2,5, + 26,242,8,2,5,29,243,8,1,5,29,114,22,0,0,0, + 114,142,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,3,0,0,0,243,74,1,0,0,151, + 0,116,0,0,0,0,0,0,0,0,0,106,3,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, + 0,0,0,0,0,0,0,1,0,9,0,9,0,116,5,0, + 0,0,0,0,0,0,0,124,0,25,0,0,0,171,0,0, + 0,0,0,0,0,125,1,124,1,128,63,116,8,0,0,0, + 0,0,0,0,0,128,12,116,11,0,0,0,0,0,0,0, + 0,124,0,171,1,0,0,0,0,0,0,125,1,110,11,116, + 13,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, + 0,0,0,125,1,124,0,102,1,100,2,132,1,125,2,116, + 14,0,0,0,0,0,0,0,0,106,17,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,124, + 2,171,2,0,0,0,0,0,0,116,4,0,0,0,0,0, + 0,0,0,124,0,60,0,0,0,116,0,0,0,0,0,0, + 0,0,0,106,19,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, + 0,124,1,83,0,35,0,116,6,0,0,0,0,0,0,0, + 0,36,0,114,5,1,0,100,1,125,1,89,0,140,100,119, + 0,120,3,89,0,119,1,35,0,116,0,0,0,0,0,0, + 0,0,0,106,19,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, + 0,119,0,120,3,89,0,119,1,41,3,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,117,108,101,32,110,97, - 109,101,46,10,10,32,32,32,32,84,104,105,115,32,105,115, - 32,117,115,101,100,32,116,111,32,101,110,115,117,114,101,32, - 97,32,109,111,100,117,108,101,32,105,115,32,99,111,109,112, - 108,101,116,101,108,121,32,105,110,105,116,105,97,108,105,122, - 101,100,44,32,105,110,32,116,104,101,10,32,32,32,32,101, - 118,101,110,116,32,105,116,32,105,115,32,98,101,105,110,103, - 32,105,109,112,111,114,116,101,100,32,98,121,32,97,110,111, - 116,104,101,114,32,116,104,114,101,97,100,46,10,32,32,32, - 32,78,41,4,114,147,0,0,0,114,120,0,0,0,114,121, - 0,0,0,114,94,0,0,0,41,2,114,26,0,0,0,114, - 83,0,0,0,115,2,0,0,0,32,32,114,7,0,0,0, - 218,19,95,108,111,99,107,95,117,110,108,111,99,107,95,109, - 111,100,117,108,101,114,157,0,0,0,207,1,0,0,115,61, - 0,0,0,128,0,244,12,0,12,28,152,68,211,11,33,128, - 68,240,2,7,5,23,216,8,12,143,12,137,12,140,14,240, - 12,0,9,13,143,12,137,12,141,14,248,244,11,0,12,26, - 242,0,3,5,13,241,6,0,9,13,240,7,3,5,13,250, - 115,12,0,0,0,141,16,46,0,174,9,58,3,185,1,58, - 3,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,15,0,0,0,243,18,0,0,0,151,0,2,0,124, - 0,124,1,105,0,124,2,164,1,142,1,83,0,41,1,97, - 46,1,0,0,114,101,109,111,118,101,95,105,109,112,111,114, - 116,108,105,98,95,102,114,97,109,101,115,32,105,110,32,105, - 109,112,111,114,116,46,99,32,119,105,108,108,32,97,108,119, - 97,121,115,32,114,101,109,111,118,101,32,115,101,113,117,101, - 110,99,101,115,10,32,32,32,32,111,102,32,105,109,112,111, - 114,116,108,105,98,32,102,114,97,109,101,115,32,116,104,97, - 116,32,101,110,100,32,119,105,116,104,32,97,32,99,97,108, - 108,32,116,111,32,116,104,105,115,32,102,117,110,99,116,105, - 111,110,10,10,32,32,32,32,85,115,101,32,105,116,32,105, - 110,115,116,101,97,100,32,111,102,32,97,32,110,111,114,109, - 97,108,32,99,97,108,108,32,105,110,32,112,108,97,99,101, - 115,32,119,104,101,114,101,32,105,110,99,108,117,100,105,110, - 103,32,116,104,101,32,105,109,112,111,114,116,108,105,98,10, - 32,32,32,32,102,114,97,109,101,115,32,105,110,116,114,111, - 100,117,99,101,115,32,117,110,119,97,110,116,101,100,32,110, - 111,105,115,101,32,105,110,116,111,32,116,104,101,32,116,114, - 97,99,101,98,97,99,107,32,40,101,46,103,46,32,119,104, - 101,110,32,101,120,101,99,117,116,105,110,103,10,32,32,32, - 32,109,111,100,117,108,101,32,99,111,100,101,41,10,32,32, - 32,32,114,31,0,0,0,41,3,218,1,102,114,90,0,0, - 0,218,4,107,119,100,115,115,3,0,0,0,32,32,32,114, - 7,0,0,0,218,25,95,99,97,108,108,95,119,105,116,104, - 95,102,114,97,109,101,115,95,114,101,109,111,118,101,100,114, - 161,0,0,0,224,1,0,0,115,20,0,0,0,128,0,241, - 16,0,12,13,136,100,208,11,27,144,100,209,11,27,208,4, - 27,114,22,0,0,0,114,138,0,0,0,41,1,218,9,118, - 101,114,98,111,115,105,116,121,99,1,0,0,0,0,0,0, - 0,1,0,0,0,5,0,0,0,7,0,0,0,243,188,0, - 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,107,92,0,0,114,63,124,0, - 106,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,1,171,1,0,0,0,0,0,0,115,5, - 100,2,124,0,122,0,0,0,125,0,116,9,0,0,0,0, - 0,0,0,0,2,0,124,0,106,10,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,2,142,0, - 116,0,0,0,0,0,0,0,0,0,106,12,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,3, - 171,2,0,0,0,0,0,0,1,0,121,4,121,4,41,5, - 122,61,80,114,105,110,116,32,116,104,101,32,109,101,115,115, - 97,103,101,32,116,111,32,115,116,100,101,114,114,32,105,102, - 32,45,118,47,80,89,84,72,79,78,86,69,82,66,79,83, - 69,32,105,115,32,116,117,114,110,101,100,32,111,110,46,41, - 2,250,1,35,122,7,105,109,112,111,114,116,32,122,2,35, - 32,41,1,218,4,102,105,108,101,78,41,7,114,24,0,0, - 0,218,5,102,108,97,103,115,218,7,118,101,114,98,111,115, - 101,218,10,115,116,97,114,116,115,119,105,116,104,218,5,112, - 114,105,110,116,218,6,102,111,114,109,97,116,218,6,115,116, - 100,101,114,114,41,3,218,7,109,101,115,115,97,103,101,114, - 162,0,0,0,114,90,0,0,0,115,3,0,0,0,32,32, - 32,114,7,0,0,0,218,16,95,118,101,114,98,111,115,101, - 95,109,101,115,115,97,103,101,114,173,0,0,0,235,1,0, - 0,115,74,0,0,0,128,0,228,7,10,135,121,129,121,215, - 7,24,209,7,24,152,73,210,7,37,216,15,22,215,15,33, - 209,15,33,208,34,50,212,15,51,216,22,26,152,87,145,110, - 136,71,220,8,13,136,110,136,103,143,110,137,110,152,100,208, - 14,35,172,35,175,42,169,42,214,8,53,240,7,0,8,38, - 114,22,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,42,0,0,0,135, - 0,151,0,136,0,102,1,100,1,132,8,125,1,116,1,0, - 0,0,0,0,0,0,0,124,1,137,0,171,2,0,0,0, - 0,0,0,1,0,124,1,83,0,41,2,122,49,68,101,99, - 111,114,97,116,111,114,32,116,111,32,118,101,114,105,102,121, - 32,116,104,101,32,110,97,109,101,100,32,109,111,100,117,108, - 101,32,105,115,32,98,117,105,108,116,45,105,110,46,99,2, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,19, - 0,0,0,243,90,0,0,0,149,1,151,0,124,1,116,0, - 0,0,0,0,0,0,0,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,118,1,114,16, - 116,5,0,0,0,0,0,0,0,0,124,1,155,2,100,1, - 157,2,124,1,172,2,171,2,0,0,0,0,0,0,130,1, - 2,0,137,2,124,0,124,1,171,2,0,0,0,0,0,0, - 83,0,41,3,78,250,25,32,105,115,32,110,111,116,32,97, - 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101, - 114,25,0,0,0,41,3,114,24,0,0,0,218,20,98,117, - 105,108,116,105,110,95,109,111,100,117,108,101,95,110,97,109, - 101,115,218,11,73,109,112,111,114,116,69,114,114,111,114,169, - 3,114,44,0,0,0,218,8,102,117,108,108,110,97,109,101, - 218,3,102,120,110,115,3,0,0,0,32,32,128,114,7,0, - 0,0,218,25,95,114,101,113,117,105,114,101,115,95,98,117, - 105,108,116,105,110,95,119,114,97,112,112,101,114,122,52,95, - 114,101,113,117,105,114,101,115,95,98,117,105,108,116,105,110, - 46,60,108,111,99,97,108,115,62,46,95,114,101,113,117,105, - 114,101,115,95,98,117,105,108,116,105,110,95,119,114,97,112, - 112,101,114,245,1,0,0,115,56,0,0,0,248,128,0,216, - 11,19,156,51,215,27,51,209,27,51,209,11,51,220,18,29, - 160,24,160,12,208,44,69,208,30,70,216,35,43,244,3,1, - 19,45,240,0,1,13,45,225,15,18,144,52,152,24,211,15, - 34,208,8,34,114,22,0,0,0,169,1,114,21,0,0,0, - 41,2,114,181,0,0,0,114,182,0,0,0,115,2,0,0, - 0,96,32,114,7,0,0,0,218,17,95,114,101,113,117,105, - 114,101,115,95,98,117,105,108,116,105,110,114,184,0,0,0, - 243,1,0,0,115,27,0,0,0,248,128,0,244,4,4,5, - 35,244,10,0,5,10,208,10,35,160,83,212,4,41,216,11, - 36,208,4,36,114,22,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,42, - 0,0,0,135,0,151,0,136,0,102,1,100,1,132,8,125, - 1,116,1,0,0,0,0,0,0,0,0,124,1,137,0,171, - 2,0,0,0,0,0,0,1,0,124,1,83,0,41,2,122, - 47,68,101,99,111,114,97,116,111,114,32,116,111,32,118,101, - 114,105,102,121,32,116,104,101,32,110,97,109,101,100,32,109, - 111,100,117,108,101,32,105,115,32,102,114,111,122,101,110,46, - 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,19,0,0,0,243,96,0,0,0,149,1,151,0,116,0, - 0,0,0,0,0,0,0,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,115,16,116,5,0,0,0,0,0,0, - 0,0,124,1,155,2,100,1,157,2,124,1,172,2,171,2, - 0,0,0,0,0,0,130,1,2,0,137,2,124,0,124,1, - 171,2,0,0,0,0,0,0,83,0,41,3,78,122,23,32, - 105,115,32,110,111,116,32,97,32,102,114,111,122,101,110,32, - 109,111,100,117,108,101,114,25,0,0,0,41,3,114,151,0, - 0,0,218,9,105,115,95,102,114,111,122,101,110,114,178,0, - 0,0,114,179,0,0,0,115,3,0,0,0,32,32,128,114, - 7,0,0,0,218,24,95,114,101,113,117,105,114,101,115,95, - 102,114,111,122,101,110,95,119,114,97,112,112,101,114,122,50, - 95,114,101,113,117,105,114,101,115,95,102,114,111,122,101,110, - 46,60,108,111,99,97,108,115,62,46,95,114,101,113,117,105, - 114,101,115,95,102,114,111,122,101,110,95,119,114,97,112,112, - 101,114,0,2,0,0,115,54,0,0,0,248,128,0,220,15, - 19,143,126,137,126,152,104,212,15,39,220,18,29,160,24,160, - 12,208,44,67,208,30,68,216,35,43,244,3,1,19,45,240, - 0,1,13,45,225,15,18,144,52,152,24,211,15,34,208,8, - 34,114,22,0,0,0,114,183,0,0,0,41,2,114,181,0, - 0,0,114,188,0,0,0,115,2,0,0,0,96,32,114,7, - 0,0,0,218,16,95,114,101,113,117,105,114,101,115,95,102, - 114,111,122,101,110,114,189,0,0,0,254,1,0,0,115,27, - 0,0,0,248,128,0,244,4,4,5,35,244,10,0,5,10, - 208,10,34,160,67,212,4,40,216,11,35,208,4,35,114,22, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,240,0,0,0,151,0,100, - 1,125,2,116,0,0,0,0,0,0,0,0,0,106,3,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,2,116,4,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,1,0,116,7,0,0,0,0,0,0,0, - 0,124,1,124,0,171,2,0,0,0,0,0,0,125,3,124, - 1,116,8,0,0,0,0,0,0,0,0,106,10,0,0,0, + 109,101,46,10,10,32,32,32,32,65,99,113,117,105,114,101, + 47,114,101,108,101,97,115,101,32,105,110,116,101,114,110,97, + 108,108,121,32,116,104,101,32,103,108,111,98,97,108,32,105, + 109,112,111,114,116,32,108,111,99,107,32,116,111,32,112,114, + 111,116,101,99,116,10,32,32,32,32,95,109,111,100,117,108, + 101,95,108,111,99,107,115,46,78,99,2,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,19,0,0,0,243,196, + 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,106, + 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,1,0,9,0,116, + 4,0,0,0,0,0,0,0,0,106,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, + 1,0,0,0,0,0,0,124,0,117,0,114,7,116,4,0, + 0,0,0,0,0,0,0,124,1,61,0,116,0,0,0,0, + 0,0,0,0,0,106,9,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,1,0,121,0,35,0,116,0,0,0,0,0,0,0,0, + 0,106,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,171,0,0,0,0,0,0,0,1,0,119, + 0,120,3,89,0,119,1,114,2,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,76,0,0,0,218,12,114,101,108,101,97,115,101,95, + 108,111,99,107,41,2,114,61,0,0,0,114,26,0,0,0, + 115,2,0,0,0,32,32,114,7,0,0,0,218,2,99,98, + 122,28,95,103,101,116,95,109,111,100,117,108,101,95,108,111, + 99,107,46,60,108,111,99,97,108,115,62,46,99,98,189,1, + 0,0,115,73,0,0,0,128,0,220,16,20,215,16,33,209, + 16,33,212,16,35,240,2,7,17,40,244,8,0,24,37,215, + 23,40,209,23,40,168,20,211,23,46,176,35,209,23,53,220, + 28,41,168,36,208,28,47,228,20,24,215,20,37,209,20,37, + 213,20,39,248,148,68,215,20,37,209,20,37,213,20,39,250, + 115,11,0,0,0,150,30,65,9,0,193,9,22,65,31,3, + 41,10,114,151,0,0,0,114,152,0,0,0,114,153,0,0, + 0,114,73,0,0,0,114,109,0,0,0,114,134,0,0,0, + 114,107,0,0,0,114,52,0,0,0,114,61,0,0,0,114, + 154,0,0,0,41,3,114,26,0,0,0,114,83,0,0,0, + 114,155,0,0,0,115,3,0,0,0,32,32,32,114,7,0, + 0,0,114,147,0,0,0,114,147,0,0,0,170,1,0,0, + 115,156,0,0,0,128,0,244,12,0,5,9,215,4,21,209, + 4,21,212,4,23,240,2,25,5,28,240,2,3,9,24,220, + 19,32,160,20,209,19,38,211,19,40,136,68,240,8,0,12, + 16,136,60,220,15,22,136,127,220,23,39,168,4,211,23,45, + 145,4,228,23,34,160,52,211,23,40,144,4,224,29,33,243, + 0,9,13,40,244,22,0,35,43,167,44,161,44,168,116,176, + 82,211,34,56,140,77,152,36,209,12,31,228,8,12,215,8, + 25,209,8,25,212,8,27,224,11,15,128,75,248,244,49,0, + 16,24,242,0,1,9,24,216,19,23,138,68,240,3,1,9, + 24,251,244,44,0,9,13,215,8,25,209,8,25,213,8,27, + 250,115,41,0,0,0,151,13,65,59,0,164,65,1,66,12, + 0,193,59,11,66,9,3,194,6,2,66,12,0,194,8,1, + 66,9,3,194,9,3,66,12,0,194,12,22,66,34,3,99, + 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,122,0,0,0,151,0,116,1,0,0,0, + 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,125, + 1,9,0,124,1,106,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,1,0,124,1,106,5,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,1,0,121,1,35,0,116,6,0,0,0,0,0,0,0, + 0,36,0,114,3,1,0,89,0,121,1,119,0,120,3,89, + 0,119,1,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,32,108,111,99,107,32,102,111, + 114,32,97,32,103,105,118,101,110,32,109,111,100,117,108,101, + 32,110,97,109,101,46,10,10,32,32,32,32,84,104,105,115, + 32,105,115,32,117,115,101,100,32,116,111,32,101,110,115,117, + 114,101,32,97,32,109,111,100,117,108,101,32,105,115,32,99, + 111,109,112,108,101,116,101,108,121,32,105,110,105,116,105,97, + 108,105,122,101,100,44,32,105,110,32,116,104,101,10,32,32, + 32,32,101,118,101,110,116,32,105,116,32,105,115,32,98,101, + 105,110,103,32,105,109,112,111,114,116,101,100,32,98,121,32, + 97,110,111,116,104,101,114,32,116,104,114,101,97,100,46,10, + 32,32,32,32,78,41,4,114,147,0,0,0,114,120,0,0, + 0,114,121,0,0,0,114,94,0,0,0,41,2,114,26,0, + 0,0,114,83,0,0,0,115,2,0,0,0,32,32,114,7, + 0,0,0,218,19,95,108,111,99,107,95,117,110,108,111,99, + 107,95,109,111,100,117,108,101,114,157,0,0,0,207,1,0, + 0,115,61,0,0,0,128,0,244,12,0,12,28,152,68,211, + 11,33,128,68,240,2,7,5,23,216,8,12,143,12,137,12, + 140,14,240,12,0,9,13,143,12,137,12,141,14,248,244,11, + 0,12,26,242,0,3,5,13,241,6,0,9,13,240,7,3, + 5,13,250,115,12,0,0,0,141,16,46,0,174,9,58,3, + 185,1,58,3,99,1,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,15,0,0,0,243,18,0,0,0,151,0, + 2,0,124,0,124,1,105,0,124,2,164,1,142,1,83,0, + 41,1,97,46,1,0,0,114,101,109,111,118,101,95,105,109, + 112,111,114,116,108,105,98,95,102,114,97,109,101,115,32,105, + 110,32,105,109,112,111,114,116,46,99,32,119,105,108,108,32, + 97,108,119,97,121,115,32,114,101,109,111,118,101,32,115,101, + 113,117,101,110,99,101,115,10,32,32,32,32,111,102,32,105, + 109,112,111,114,116,108,105,98,32,102,114,97,109,101,115,32, + 116,104,97,116,32,101,110,100,32,119,105,116,104,32,97,32, + 99,97,108,108,32,116,111,32,116,104,105,115,32,102,117,110, + 99,116,105,111,110,10,10,32,32,32,32,85,115,101,32,105, + 116,32,105,110,115,116,101,97,100,32,111,102,32,97,32,110, + 111,114,109,97,108,32,99,97,108,108,32,105,110,32,112,108, + 97,99,101,115,32,119,104,101,114,101,32,105,110,99,108,117, + 100,105,110,103,32,116,104,101,32,105,109,112,111,114,116,108, + 105,98,10,32,32,32,32,102,114,97,109,101,115,32,105,110, + 116,114,111,100,117,99,101,115,32,117,110,119,97,110,116,101, + 100,32,110,111,105,115,101,32,105,110,116,111,32,116,104,101, + 32,116,114,97,99,101,98,97,99,107,32,40,101,46,103,46, + 32,119,104,101,110,32,101,120,101,99,117,116,105,110,103,10, + 32,32,32,32,109,111,100,117,108,101,32,99,111,100,101,41, + 10,32,32,32,32,114,31,0,0,0,41,3,218,1,102,114, + 90,0,0,0,218,4,107,119,100,115,115,3,0,0,0,32, + 32,32,114,7,0,0,0,218,25,95,99,97,108,108,95,119, + 105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,118, + 101,100,114,161,0,0,0,224,1,0,0,115,20,0,0,0, + 128,0,241,16,0,12,13,136,100,208,11,27,144,100,209,11, + 27,208,4,27,114,22,0,0,0,114,138,0,0,0,41,1, + 218,9,118,101,114,98,111,115,105,116,121,99,1,0,0,0, + 0,0,0,0,1,0,0,0,5,0,0,0,7,0,0,0, + 243,188,0,0,0,151,0,116,0,0,0,0,0,0,0,0, + 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,106,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,1,107,92,0,0,114, + 63,124,0,106,7,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,100,1,171,1,0,0,0,0,0, + 0,115,5,100,2,124,0,122,0,0,0,125,0,116,9,0, + 0,0,0,0,0,0,0,2,0,124,0,106,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 2,142,0,116,0,0,0,0,0,0,0,0,0,106,12,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,172,3,171,2,0,0,0,0,0,0,1,0,121,4,121, + 4,41,5,122,61,80,114,105,110,116,32,116,104,101,32,109, + 101,115,115,97,103,101,32,116,111,32,115,116,100,101,114,114, + 32,105,102,32,45,118,47,80,89,84,72,79,78,86,69,82, + 66,79,83,69,32,105,115,32,116,117,114,110,101,100,32,111, + 110,46,41,2,250,1,35,122,7,105,109,112,111,114,116,32, + 122,2,35,32,41,1,218,4,102,105,108,101,78,41,7,114, + 24,0,0,0,218,5,102,108,97,103,115,218,7,118,101,114, + 98,111,115,101,218,10,115,116,97,114,116,115,119,105,116,104, + 218,5,112,114,105,110,116,218,6,102,111,114,109,97,116,218, + 6,115,116,100,101,114,114,41,3,218,7,109,101,115,115,97, + 103,101,114,162,0,0,0,114,90,0,0,0,115,3,0,0, + 0,32,32,32,114,7,0,0,0,218,16,95,118,101,114,98, + 111,115,101,95,109,101,115,115,97,103,101,114,173,0,0,0, + 235,1,0,0,115,74,0,0,0,128,0,228,7,10,135,121, + 129,121,215,7,24,209,7,24,152,73,210,7,37,216,15,22, + 215,15,33,209,15,33,208,34,50,212,15,51,216,22,26,152, + 87,145,110,136,71,220,8,13,136,110,136,103,143,110,137,110, + 152,100,208,14,35,172,35,175,42,169,42,214,8,53,240,7, + 0,8,38,114,22,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,42,0, + 0,0,135,0,151,0,136,0,102,1,100,1,132,8,125,1, + 116,1,0,0,0,0,0,0,0,0,124,1,137,0,171,2, + 0,0,0,0,0,0,1,0,124,1,83,0,41,2,122,49, + 68,101,99,111,114,97,116,111,114,32,116,111,32,118,101,114, + 105,102,121,32,116,104,101,32,110,97,109,101,100,32,109,111, + 100,117,108,101,32,105,115,32,98,117,105,108,116,45,105,110, + 46,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,19,0,0,0,243,90,0,0,0,149,1,151,0,124, + 1,116,0,0,0,0,0,0,0,0,0,106,2,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118, - 0,114,50,116,8,0,0,0,0,0,0,0,0,106,10,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,25,0,0,0,125,4,116,13,0,0,0,0,0, - 0,0,0,124,3,124,4,171,2,0,0,0,0,0,0,1, - 0,116,8,0,0,0,0,0,0,0,0,106,10,0,0,0, + 1,114,16,116,5,0,0,0,0,0,0,0,0,124,1,155, + 2,100,1,157,2,124,1,172,2,171,2,0,0,0,0,0, + 0,130,1,2,0,137,2,124,0,124,1,171,2,0,0,0, + 0,0,0,83,0,41,3,78,250,25,32,105,115,32,110,111, + 116,32,97,32,98,117,105,108,116,45,105,110,32,109,111,100, + 117,108,101,114,25,0,0,0,41,3,114,24,0,0,0,218, + 20,98,117,105,108,116,105,110,95,109,111,100,117,108,101,95, + 110,97,109,101,115,218,11,73,109,112,111,114,116,69,114,114, + 111,114,169,3,114,44,0,0,0,218,8,102,117,108,108,110, + 97,109,101,218,3,102,120,110,115,3,0,0,0,32,32,128, + 114,7,0,0,0,218,25,95,114,101,113,117,105,114,101,115, + 95,98,117,105,108,116,105,110,95,119,114,97,112,112,101,114, + 122,52,95,114,101,113,117,105,114,101,115,95,98,117,105,108, + 116,105,110,46,60,108,111,99,97,108,115,62,46,95,114,101, + 113,117,105,114,101,115,95,98,117,105,108,116,105,110,95,119, + 114,97,112,112,101,114,245,1,0,0,115,56,0,0,0,248, + 128,0,216,11,19,156,51,215,27,51,209,27,51,209,11,51, + 220,18,29,160,24,160,12,208,44,69,208,30,70,216,35,43, + 244,3,1,19,45,240,0,1,13,45,225,15,18,144,52,152, + 24,211,15,34,208,8,34,114,22,0,0,0,169,1,114,21, + 0,0,0,41,2,114,181,0,0,0,114,182,0,0,0,115, + 2,0,0,0,96,32,114,7,0,0,0,218,17,95,114,101, + 113,117,105,114,101,115,95,98,117,105,108,116,105,110,114,184, + 0,0,0,243,1,0,0,115,27,0,0,0,248,128,0,244, + 4,4,5,35,244,10,0,5,10,208,10,35,160,83,212,4, + 41,216,11,36,208,4,36,114,22,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,42,0,0,0,135,0,151,0,136,0,102,1,100,1, + 132,8,125,1,116,1,0,0,0,0,0,0,0,0,124,1, + 137,0,171,2,0,0,0,0,0,0,1,0,124,1,83,0, + 41,2,122,47,68,101,99,111,114,97,116,111,114,32,116,111, + 32,118,101,114,105,102,121,32,116,104,101,32,110,97,109,101, + 100,32,109,111,100,117,108,101,32,105,115,32,102,114,111,122, + 101,110,46,99,2,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,19,0,0,0,243,96,0,0,0,149,1,151, + 0,116,0,0,0,0,0,0,0,0,0,106,3,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,25,0,0,0,83,0,116,15,0,0,0,0,0,0,0, - 0,124,3,171,1,0,0,0,0,0,0,83,0,41,2,122, - 130,76,111,97,100,32,116,104,101,32,115,112,101,99,105,102, - 105,101,100,32,109,111,100,117,108,101,32,105,110,116,111,32, - 115,121,115,46,109,111,100,117,108,101,115,32,97,110,100,32, - 114,101,116,117,114,110,32,105,116,46,10,10,32,32,32,32, - 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100, - 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32, - 108,111,97,100,101,114,46,101,120,101,99,95,109,111,100,117, - 108,101,40,41,32,105,110,115,116,101,97,100,46,10,10,32, - 32,32,32,122,103,116,104,101,32,108,111,97,100,95,109,111, - 100,117,108,101,40,41,32,109,101,116,104,111,100,32,105,115, - 32,100,101,112,114,101,99,97,116,101,100,32,97,110,100,32, - 115,108,97,116,101,100,32,102,111,114,32,114,101,109,111,118, - 97,108,32,105,110,32,80,121,116,104,111,110,32,51,46,49, - 50,59,32,117,115,101,32,101,120,101,99,95,109,111,100,117, - 108,101,40,41,32,105,110,115,116,101,97,100,41,8,218,9, - 95,119,97,114,110,105,110,103,115,218,4,119,97,114,110,218, - 18,68,101,112,114,101,99,97,116,105,111,110,87,97,114,110, - 105,110,103,218,16,115,112,101,99,95,102,114,111,109,95,108, - 111,97,100,101,114,114,24,0,0,0,218,7,109,111,100,117, - 108,101,115,218,5,95,101,120,101,99,218,5,95,108,111,97, - 100,41,5,114,44,0,0,0,114,180,0,0,0,218,3,109, - 115,103,218,4,115,112,101,99,218,6,109,111,100,117,108,101, - 115,5,0,0,0,32,32,32,32,32,114,7,0,0,0,218, - 17,95,108,111,97,100,95,109,111,100,117,108,101,95,115,104, - 105,109,114,201,0,0,0,10,2,0,0,115,97,0,0,0, - 128,0,240,12,1,12,51,128,67,228,4,13,135,78,129,78, - 144,51,212,24,42,212,4,43,220,11,27,152,72,160,100,211, - 11,43,128,68,216,7,15,148,51,151,59,145,59,209,7,30, - 220,17,20,151,27,145,27,152,88,209,17,38,136,6,220,8, - 13,136,100,144,70,212,8,27,220,15,18,143,123,137,123,152, - 56,209,15,36,208,8,36,228,15,20,144,84,139,123,208,8, - 26,114,22,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,3,0,0,0,243,252,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,0,100,1, - 100,2,171,3,0,0,0,0,0,0,125,1,116,1,0,0, - 0,0,0,0,0,0,124,0,100,3,100,2,171,3,0,0, - 0,0,0,0,120,1,125,2,114,11,116,3,0,0,0,0, - 0,0,0,0,124,2,171,1,0,0,0,0,0,0,83,0, - 9,0,124,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,125,3,9,0,124,0,106,8, + 1,171,1,0,0,0,0,0,0,115,16,116,5,0,0,0, + 0,0,0,0,0,124,1,155,2,100,1,157,2,124,1,172, + 2,171,2,0,0,0,0,0,0,130,1,2,0,137,2,124, + 0,124,1,171,2,0,0,0,0,0,0,83,0,41,3,78, + 122,23,32,105,115,32,110,111,116,32,97,32,102,114,111,122, + 101,110,32,109,111,100,117,108,101,114,25,0,0,0,41,3, + 114,151,0,0,0,218,9,105,115,95,102,114,111,122,101,110, + 114,178,0,0,0,114,179,0,0,0,115,3,0,0,0,32, + 32,128,114,7,0,0,0,218,24,95,114,101,113,117,105,114, + 101,115,95,102,114,111,122,101,110,95,119,114,97,112,112,101, + 114,122,50,95,114,101,113,117,105,114,101,115,95,102,114,111, + 122,101,110,46,60,108,111,99,97,108,115,62,46,95,114,101, + 113,117,105,114,101,115,95,102,114,111,122,101,110,95,119,114, + 97,112,112,101,114,0,2,0,0,115,54,0,0,0,248,128, + 0,220,15,19,143,126,137,126,152,104,212,15,39,220,18,29, + 160,24,160,12,208,44,67,208,30,68,216,35,43,244,3,1, + 19,45,240,0,1,13,45,225,15,18,144,52,152,24,211,15, + 34,208,8,34,114,22,0,0,0,114,183,0,0,0,41,2, + 114,181,0,0,0,114,188,0,0,0,115,2,0,0,0,96, + 32,114,7,0,0,0,218,16,95,114,101,113,117,105,114,101, + 115,95,102,114,111,122,101,110,114,189,0,0,0,254,1,0, + 0,115,27,0,0,0,248,128,0,244,4,4,5,35,244,10, + 0,5,10,208,10,34,160,67,212,4,40,216,11,35,208,4, + 35,114,22,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,240,0,0,0, + 151,0,100,1,125,2,116,0,0,0,0,0,0,0,0,0, + 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,2,116,4,0,0,0,0,0,0,0,0, + 171,2,0,0,0,0,0,0,1,0,116,7,0,0,0,0, + 0,0,0,0,124,1,124,0,171,2,0,0,0,0,0,0, + 125,3,124,1,116,8,0,0,0,0,0,0,0,0,106,10, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,125,4,100,5,124,3,155,2,100,6,124,4,155,2, - 100,7,157,5,83,0,35,0,116,6,0,0,0,0,0,0, - 0,0,36,0,114,5,1,0,100,4,125,3,89,0,140,35, - 119,0,120,3,89,0,119,1,35,0,116,6,0,0,0,0, - 0,0,0,0,36,0,114,22,1,0,124,1,128,8,100,5, - 124,3,155,2,100,7,157,3,99,2,89,0,83,0,100,5, - 124,3,155,2,100,8,124,1,155,2,100,9,157,5,99,2, - 89,0,83,0,119,0,120,3,89,0,119,1,41,10,122,44, - 84,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105, - 111,110,32,111,102,32,77,111,100,117,108,101,84,121,112,101, - 46,95,95,114,101,112,114,95,95,40,41,46,218,10,95,95, - 108,111,97,100,101,114,95,95,78,218,8,95,95,115,112,101, - 99,95,95,250,1,63,250,8,60,109,111,100,117,108,101,32, - 250,6,32,102,114,111,109,32,250,1,62,250,2,32,40,250, - 2,41,62,41,5,114,15,0,0,0,218,22,95,109,111,100, - 117,108,101,95,114,101,112,114,95,102,114,111,109,95,115,112, - 101,99,114,11,0,0,0,114,4,0,0,0,218,8,95,95, - 102,105,108,101,95,95,41,5,114,200,0,0,0,218,6,108, - 111,97,100,101,114,114,199,0,0,0,114,26,0,0,0,218, - 8,102,105,108,101,110,97,109,101,115,5,0,0,0,32,32, - 32,32,32,114,7,0,0,0,218,12,95,109,111,100,117,108, - 101,95,114,101,112,114,114,215,0,0,0,29,2,0,0,115, - 177,0,0,0,128,0,228,13,20,144,86,152,92,168,52,211, - 13,48,128,70,220,15,22,144,118,152,122,168,52,211,15,48, - 208,7,48,128,116,208,7,48,220,15,37,160,100,211,15,43, - 208,8,43,240,4,3,5,19,216,15,21,143,127,137,127,136, - 4,240,6,8,5,54,216,19,25,151,63,145,63,136,8,240, - 14,0,18,26,152,36,152,24,160,22,168,8,160,124,176,49, - 208,15,53,208,8,53,248,244,21,0,12,26,242,0,1,5, - 19,216,15,18,138,4,240,3,1,5,19,251,244,8,0,12, - 26,242,0,4,5,53,216,11,17,136,62,216,21,29,152,100, - 152,88,160,81,208,19,39,210,12,39,224,21,29,152,100,152, - 88,160,82,168,6,160,122,176,18,208,19,52,210,12,52,240, - 9,4,5,53,250,115,40,0,0,0,169,12,65,11,0,182, - 12,65,28,0,193,11,11,65,25,3,193,24,1,65,25,3, - 193,28,17,65,59,3,193,47,9,65,59,3,193,58,1,65, - 59,3,99,0,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,0,0,0,0,243,164,0,0,0,151,0,101,0, - 90,1,100,0,90,2,100,1,90,3,100,2,100,2,100,2, - 100,3,156,3,100,4,132,2,90,4,100,5,132,0,90,5, - 100,6,132,0,90,6,101,7,100,7,132,0,171,0,0,0, - 0,0,0,0,90,8,101,8,106,18,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,8,132,0, - 171,0,0,0,0,0,0,0,90,8,101,7,100,9,132,0, - 171,0,0,0,0,0,0,0,90,10,101,7,100,10,132,0, - 171,0,0,0,0,0,0,0,90,11,101,11,106,18,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,11,132,0,171,0,0,0,0,0,0,0,90,11,121,2, - 41,12,218,10,77,111,100,117,108,101,83,112,101,99,97,208, - 5,0,0,84,104,101,32,115,112,101,99,105,102,105,99,97, - 116,105,111,110,32,102,111,114,32,97,32,109,111,100,117,108, - 101,44,32,117,115,101,100,32,102,111,114,32,108,111,97,100, - 105,110,103,46,10,10,32,32,32,32,65,32,109,111,100,117, - 108,101,39,115,32,115,112,101,99,32,105,115,32,116,104,101, - 32,115,111,117,114,99,101,32,102,111,114,32,105,110,102,111, - 114,109,97,116,105,111,110,32,97,98,111,117,116,32,116,104, - 101,32,109,111,100,117,108,101,46,32,32,70,111,114,10,32, - 32,32,32,100,97,116,97,32,97,115,115,111,99,105,97,116, - 101,100,32,119,105,116,104,32,116,104,101,32,109,111,100,117, - 108,101,44,32,105,110,99,108,117,100,105,110,103,32,115,111, - 117,114,99,101,44,32,117,115,101,32,116,104,101,32,115,112, - 101,99,39,115,10,32,32,32,32,108,111,97,100,101,114,46, - 10,10,32,32,32,32,96,110,97,109,101,96,32,105,115,32, - 116,104,101,32,97,98,115,111,108,117,116,101,32,110,97,109, - 101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,46, - 32,32,96,108,111,97,100,101,114,96,32,105,115,32,116,104, - 101,32,108,111,97,100,101,114,10,32,32,32,32,116,111,32, - 117,115,101,32,119,104,101,110,32,108,111,97,100,105,110,103, - 32,116,104,101,32,109,111,100,117,108,101,46,32,32,96,112, - 97,114,101,110,116,96,32,105,115,32,116,104,101,32,110,97, - 109,101,32,111,102,32,116,104,101,10,32,32,32,32,112,97, - 99,107,97,103,101,32,116,104,101,32,109,111,100,117,108,101, - 32,105,115,32,105,110,46,32,32,84,104,101,32,112,97,114, - 101,110,116,32,105,115,32,100,101,114,105,118,101,100,32,102, - 114,111,109,32,116,104,101,32,110,97,109,101,46,10,10,32, - 32,32,32,96,105,115,95,112,97,99,107,97,103,101,96,32, - 100,101,116,101,114,109,105,110,101,115,32,105,102,32,116,104, - 101,32,109,111,100,117,108,101,32,105,115,32,99,111,110,115, - 105,100,101,114,101,100,32,97,32,112,97,99,107,97,103,101, - 32,111,114,10,32,32,32,32,110,111,116,46,32,32,79,110, - 32,109,111,100,117,108,101,115,32,116,104,105,115,32,105,115, - 32,114,101,102,108,101,99,116,101,100,32,98,121,32,116,104, - 101,32,96,95,95,112,97,116,104,95,95,96,32,97,116,116, - 114,105,98,117,116,101,46,10,10,32,32,32,32,96,111,114, - 105,103,105,110,96,32,105,115,32,116,104,101,32,115,112,101, - 99,105,102,105,99,32,108,111,99,97,116,105,111,110,32,117, - 115,101,100,32,98,121,32,116,104,101,32,108,111,97,100,101, - 114,32,102,114,111,109,32,119,104,105,99,104,32,116,111,10, - 32,32,32,32,108,111,97,100,32,116,104,101,32,109,111,100, - 117,108,101,44,32,105,102,32,116,104,97,116,32,105,110,102, - 111,114,109,97,116,105,111,110,32,105,115,32,97,118,97,105, - 108,97,98,108,101,46,32,32,87,104,101,110,32,102,105,108, - 101,110,97,109,101,32,105,115,10,32,32,32,32,115,101,116, - 44,32,111,114,105,103,105,110,32,119,105,108,108,32,109,97, - 116,99,104,46,10,10,32,32,32,32,96,104,97,115,95,108, - 111,99,97,116,105,111,110,96,32,105,110,100,105,99,97,116, - 101,115,32,116,104,97,116,32,97,32,115,112,101,99,39,115, - 32,34,111,114,105,103,105,110,34,32,114,101,102,108,101,99, - 116,115,32,97,32,108,111,99,97,116,105,111,110,46,10,32, - 32,32,32,87,104,101,110,32,116,104,105,115,32,105,115,32, - 84,114,117,101,44,32,96,95,95,102,105,108,101,95,95,96, - 32,97,116,116,114,105,98,117,116,101,32,111,102,32,116,104, - 101,32,109,111,100,117,108,101,32,105,115,32,115,101,116,46, - 10,10,32,32,32,32,96,99,97,99,104,101,100,96,32,105, - 115,32,116,104,101,32,108,111,99,97,116,105,111,110,32,111, - 102,32,116,104,101,32,99,97,99,104,101,100,32,98,121,116, - 101,99,111,100,101,32,102,105,108,101,44,32,105,102,32,97, - 110,121,46,32,32,73,116,10,32,32,32,32,99,111,114,114, - 101,115,112,111,110,100,115,32,116,111,32,116,104,101,32,96, - 95,95,99,97,99,104,101,100,95,95,96,32,97,116,116,114, - 105,98,117,116,101,46,10,10,32,32,32,32,96,115,117,98, + 0,0,118,0,114,50,116,8,0,0,0,0,0,0,0,0, + 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,1,25,0,0,0,125,4,116,13,0,0, + 0,0,0,0,0,0,124,3,124,4,171,2,0,0,0,0, + 0,0,1,0,116,8,0,0,0,0,0,0,0,0,106,10, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,124,1,25,0,0,0,83,0,116,15,0,0,0,0, + 0,0,0,0,124,3,171,1,0,0,0,0,0,0,83,0, + 41,2,122,130,76,111,97,100,32,116,104,101,32,115,112,101, + 99,105,102,105,101,100,32,109,111,100,117,108,101,32,105,110, + 116,111,32,115,121,115,46,109,111,100,117,108,101,115,32,97, + 110,100,32,114,101,116,117,114,110,32,105,116,46,10,10,32, + 32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,105, + 115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,85, + 115,101,32,108,111,97,100,101,114,46,101,120,101,99,95,109, + 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46, + 10,10,32,32,32,32,122,103,116,104,101,32,108,111,97,100, + 95,109,111,100,117,108,101,40,41,32,109,101,116,104,111,100, + 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97, + 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101, + 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32, + 51,46,49,50,59,32,117,115,101,32,101,120,101,99,95,109, + 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,41, + 8,218,9,95,119,97,114,110,105,110,103,115,218,4,119,97, + 114,110,218,18,68,101,112,114,101,99,97,116,105,111,110,87, + 97,114,110,105,110,103,218,16,115,112,101,99,95,102,114,111, + 109,95,108,111,97,100,101,114,114,24,0,0,0,218,7,109, + 111,100,117,108,101,115,218,5,95,101,120,101,99,218,5,95, + 108,111,97,100,41,5,114,44,0,0,0,114,180,0,0,0, + 218,3,109,115,103,218,4,115,112,101,99,218,6,109,111,100, + 117,108,101,115,5,0,0,0,32,32,32,32,32,114,7,0, + 0,0,218,17,95,108,111,97,100,95,109,111,100,117,108,101, + 95,115,104,105,109,114,201,0,0,0,10,2,0,0,115,97, + 0,0,0,128,0,240,12,1,12,51,128,67,228,4,13,135, + 78,129,78,144,51,212,24,42,212,4,43,220,11,27,152,72, + 160,100,211,11,43,128,68,216,7,15,148,51,151,59,145,59, + 209,7,30,220,17,20,151,27,145,27,152,88,209,17,38,136, + 6,220,8,13,136,100,144,70,212,8,27,220,15,18,143,123, + 137,123,152,56,209,15,36,208,8,36,228,15,20,144,84,139, + 123,208,8,26,114,22,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,252, + 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, + 0,100,1,100,2,171,3,0,0,0,0,0,0,125,1,116, + 1,0,0,0,0,0,0,0,0,124,0,100,3,100,2,171, + 3,0,0,0,0,0,0,120,1,125,2,114,11,116,3,0, + 0,0,0,0,0,0,0,124,2,171,1,0,0,0,0,0, + 0,83,0,9,0,124,0,106,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,125,3,9,0,124, + 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,125,4,100,5,124,3,155,2,100,6,124, + 4,155,2,100,7,157,5,83,0,35,0,116,6,0,0,0, + 0,0,0,0,0,36,0,114,5,1,0,100,4,125,3,89, + 0,140,35,119,0,120,3,89,0,119,1,35,0,116,6,0, + 0,0,0,0,0,0,0,36,0,114,22,1,0,124,1,128, + 8,100,5,124,3,155,2,100,7,157,3,99,2,89,0,83, + 0,100,5,124,3,155,2,100,8,124,1,155,2,100,9,157, + 5,99,2,89,0,83,0,119,0,120,3,89,0,119,1,41, + 10,122,44,84,104,101,32,105,109,112,108,101,109,101,110,116, + 97,116,105,111,110,32,111,102,32,77,111,100,117,108,101,84, + 121,112,101,46,95,95,114,101,112,114,95,95,40,41,46,218, + 10,95,95,108,111,97,100,101,114,95,95,78,218,8,95,95, + 115,112,101,99,95,95,250,1,63,250,8,60,109,111,100,117, + 108,101,32,250,6,32,102,114,111,109,32,250,1,62,250,2, + 32,40,250,2,41,62,41,5,114,15,0,0,0,218,22,95, + 109,111,100,117,108,101,95,114,101,112,114,95,102,114,111,109, + 95,115,112,101,99,114,11,0,0,0,114,4,0,0,0,218, + 8,95,95,102,105,108,101,95,95,41,5,114,200,0,0,0, + 218,6,108,111,97,100,101,114,114,199,0,0,0,114,26,0, + 0,0,218,8,102,105,108,101,110,97,109,101,115,5,0,0, + 0,32,32,32,32,32,114,7,0,0,0,218,12,95,109,111, + 100,117,108,101,95,114,101,112,114,114,215,0,0,0,29,2, + 0,0,115,177,0,0,0,128,0,228,13,20,144,86,152,92, + 168,52,211,13,48,128,70,220,15,22,144,118,152,122,168,52, + 211,15,48,208,7,48,128,116,208,7,48,220,15,37,160,100, + 211,15,43,208,8,43,240,4,3,5,19,216,15,21,143,127, + 137,127,136,4,240,6,8,5,54,216,19,25,151,63,145,63, + 136,8,240,14,0,18,26,152,36,152,24,160,22,168,8,160, + 124,176,49,208,15,53,208,8,53,248,244,21,0,12,26,242, + 0,1,5,19,216,15,18,138,4,240,3,1,5,19,251,244, + 8,0,12,26,242,0,4,5,53,216,11,17,136,62,216,21, + 29,152,100,152,88,160,81,208,19,39,210,12,39,224,21,29, + 152,100,152,88,160,82,168,6,160,122,176,18,208,19,52,210, + 12,52,240,9,4,5,53,250,115,40,0,0,0,169,12,65, + 11,0,182,12,65,28,0,193,11,11,65,25,3,193,24,1, + 65,25,3,193,28,17,65,59,3,193,47,9,65,59,3,193, + 58,1,65,59,3,99,0,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,0,0,0,0,243,164,0,0,0,151, + 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,100, + 2,100,2,100,3,156,3,100,4,132,2,90,4,100,5,132, + 0,90,5,100,6,132,0,90,6,101,7,100,7,132,0,171, + 0,0,0,0,0,0,0,90,8,101,8,106,18,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, + 8,132,0,171,0,0,0,0,0,0,0,90,8,101,7,100, + 9,132,0,171,0,0,0,0,0,0,0,90,10,101,7,100, + 10,132,0,171,0,0,0,0,0,0,0,90,11,101,11,106, + 18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,100,11,132,0,171,0,0,0,0,0,0,0,90, + 11,121,2,41,12,218,10,77,111,100,117,108,101,83,112,101, + 99,97,208,5,0,0,84,104,101,32,115,112,101,99,105,102, + 105,99,97,116,105,111,110,32,102,111,114,32,97,32,109,111, + 100,117,108,101,44,32,117,115,101,100,32,102,111,114,32,108, + 111,97,100,105,110,103,46,10,10,32,32,32,32,65,32,109, + 111,100,117,108,101,39,115,32,115,112,101,99,32,105,115,32, + 116,104,101,32,115,111,117,114,99,101,32,102,111,114,32,105, + 110,102,111,114,109,97,116,105,111,110,32,97,98,111,117,116, + 32,116,104,101,32,109,111,100,117,108,101,46,32,32,70,111, + 114,10,32,32,32,32,100,97,116,97,32,97,115,115,111,99, + 105,97,116,101,100,32,119,105,116,104,32,116,104,101,32,109, + 111,100,117,108,101,44,32,105,110,99,108,117,100,105,110,103, + 32,115,111,117,114,99,101,44,32,117,115,101,32,116,104,101, + 32,115,112,101,99,39,115,10,32,32,32,32,108,111,97,100, + 101,114,46,10,10,32,32,32,32,96,110,97,109,101,96,32, + 105,115,32,116,104,101,32,97,98,115,111,108,117,116,101,32, + 110,97,109,101,32,111,102,32,116,104,101,32,109,111,100,117, + 108,101,46,32,32,96,108,111,97,100,101,114,96,32,105,115, + 32,116,104,101,32,108,111,97,100,101,114,10,32,32,32,32, + 116,111,32,117,115,101,32,119,104,101,110,32,108,111,97,100, + 105,110,103,32,116,104,101,32,109,111,100,117,108,101,46,32, + 32,96,112,97,114,101,110,116,96,32,105,115,32,116,104,101, + 32,110,97,109,101,32,111,102,32,116,104,101,10,32,32,32, + 32,112,97,99,107,97,103,101,32,116,104,101,32,109,111,100, + 117,108,101,32,105,115,32,105,110,46,32,32,84,104,101,32, + 112,97,114,101,110,116,32,105,115,32,100,101,114,105,118,101, + 100,32,102,114,111,109,32,116,104,101,32,110,97,109,101,46, + 10,10,32,32,32,32,96,105,115,95,112,97,99,107,97,103, + 101,96,32,100,101,116,101,114,109,105,110,101,115,32,105,102, + 32,116,104,101,32,109,111,100,117,108,101,32,105,115,32,99, + 111,110,115,105,100,101,114,101,100,32,97,32,112,97,99,107, + 97,103,101,32,111,114,10,32,32,32,32,110,111,116,46,32, + 32,79,110,32,109,111,100,117,108,101,115,32,116,104,105,115, + 32,105,115,32,114,101,102,108,101,99,116,101,100,32,98,121, + 32,116,104,101,32,96,95,95,112,97,116,104,95,95,96,32, + 97,116,116,114,105,98,117,116,101,46,10,10,32,32,32,32, + 96,111,114,105,103,105,110,96,32,105,115,32,116,104,101,32, + 115,112,101,99,105,102,105,99,32,108,111,99,97,116,105,111, + 110,32,117,115,101,100,32,98,121,32,116,104,101,32,108,111, + 97,100,101,114,32,102,114,111,109,32,119,104,105,99,104,32, + 116,111,10,32,32,32,32,108,111,97,100,32,116,104,101,32, + 109,111,100,117,108,101,44,32,105,102,32,116,104,97,116,32, + 105,110,102,111,114,109,97,116,105,111,110,32,105,115,32,97, + 118,97,105,108,97,98,108,101,46,32,32,87,104,101,110,32, + 102,105,108,101,110,97,109,101,32,105,115,10,32,32,32,32, + 115,101,116,44,32,111,114,105,103,105,110,32,119,105,108,108, + 32,109,97,116,99,104,46,10,10,32,32,32,32,96,104,97, + 115,95,108,111,99,97,116,105,111,110,96,32,105,110,100,105, + 99,97,116,101,115,32,116,104,97,116,32,97,32,115,112,101, + 99,39,115,32,34,111,114,105,103,105,110,34,32,114,101,102, + 108,101,99,116,115,32,97,32,108,111,99,97,116,105,111,110, + 46,10,32,32,32,32,87,104,101,110,32,116,104,105,115,32, + 105,115,32,84,114,117,101,44,32,96,95,95,102,105,108,101, + 95,95,96,32,97,116,116,114,105,98,117,116,101,32,111,102, + 32,116,104,101,32,109,111,100,117,108,101,32,105,115,32,115, + 101,116,46,10,10,32,32,32,32,96,99,97,99,104,101,100, + 96,32,105,115,32,116,104,101,32,108,111,99,97,116,105,111, + 110,32,111,102,32,116,104,101,32,99,97,99,104,101,100,32, + 98,121,116,101,99,111,100,101,32,102,105,108,101,44,32,105, + 102,32,97,110,121,46,32,32,73,116,10,32,32,32,32,99, + 111,114,114,101,115,112,111,110,100,115,32,116,111,32,116,104, + 101,32,96,95,95,99,97,99,104,101,100,95,95,96,32,97, + 116,116,114,105,98,117,116,101,46,10,10,32,32,32,32,96, + 115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104, + 95,108,111,99,97,116,105,111,110,115,96,32,105,115,32,116, + 104,101,32,115,101,113,117,101,110,99,101,32,111,102,32,112, + 97,116,104,32,101,110,116,114,105,101,115,32,116,111,10,32, + 32,32,32,115,101,97,114,99,104,32,119,104,101,110,32,105, + 109,112,111,114,116,105,110,103,32,115,117,98,109,111,100,117, + 108,101,115,46,32,32,73,102,32,115,101,116,44,32,105,115, + 95,112,97,99,107,97,103,101,32,115,104,111,117,108,100,32, + 98,101,10,32,32,32,32,84,114,117,101,45,45,97,110,100, + 32,70,97,108,115,101,32,111,116,104,101,114,119,105,115,101, + 46,10,10,32,32,32,32,80,97,99,107,97,103,101,115,32, + 97,114,101,32,115,105,109,112,108,121,32,109,111,100,117,108, + 101,115,32,116,104,97,116,32,40,109,97,121,41,32,104,97, + 118,101,32,115,117,98,109,111,100,117,108,101,115,46,32,32, + 73,102,32,97,32,115,112,101,99,10,32,32,32,32,104,97, + 115,32,97,32,110,111,110,45,78,111,110,101,32,118,97,108, + 117,101,32,105,110,32,96,115,117,98,109,111,100,117,108,101, + 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110, + 115,96,44,32,116,104,101,32,105,109,112,111,114,116,10,32, + 32,32,32,115,121,115,116,101,109,32,119,105,108,108,32,99, + 111,110,115,105,100,101,114,32,109,111,100,117,108,101,115,32, + 108,111,97,100,101,100,32,102,114,111,109,32,116,104,101,32, + 115,112,101,99,32,97,115,32,112,97,99,107,97,103,101,115, + 46,10,10,32,32,32,32,79,110,108,121,32,102,105,110,100, + 101,114,115,32,40,115,101,101,32,105,109,112,111,114,116,108, + 105,98,46,97,98,99,46,77,101,116,97,80,97,116,104,70, + 105,110,100,101,114,32,97,110,100,10,32,32,32,32,105,109, + 112,111,114,116,108,105,98,46,97,98,99,46,80,97,116,104, + 69,110,116,114,121,70,105,110,100,101,114,41,32,115,104,111, + 117,108,100,32,109,111,100,105,102,121,32,77,111,100,117,108, + 101,83,112,101,99,32,105,110,115,116,97,110,99,101,115,46, + 10,10,32,32,32,32,78,41,3,218,6,111,114,105,103,105, + 110,218,12,108,111,97,100,101,114,95,115,116,97,116,101,218, + 10,105,115,95,112,97,99,107,97,103,101,99,3,0,0,0, + 0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0, + 243,124,0,0,0,151,0,124,1,124,0,95,0,0,0,0, + 0,0,0,0,0,124,2,124,0,95,1,0,0,0,0,0, + 0,0,0,124,3,124,0,95,2,0,0,0,0,0,0,0, + 0,124,4,124,0,95,3,0,0,0,0,0,0,0,0,124, + 5,114,2,103,0,110,1,100,0,124,0,95,4,0,0,0, + 0,0,0,0,0,103,0,124,0,95,5,0,0,0,0,0, + 0,0,0,100,1,124,0,95,6,0,0,0,0,0,0,0, + 0,100,0,124,0,95,7,0,0,0,0,0,0,0,0,121, + 0,169,2,78,70,41,8,114,26,0,0,0,114,213,0,0, + 0,114,218,0,0,0,114,219,0,0,0,218,26,115,117,98, 109,111,100,117,108,101,95,115,101,97,114,99,104,95,108,111, - 99,97,116,105,111,110,115,96,32,105,115,32,116,104,101,32, - 115,101,113,117,101,110,99,101,32,111,102,32,112,97,116,104, - 32,101,110,116,114,105,101,115,32,116,111,10,32,32,32,32, - 115,101,97,114,99,104,32,119,104,101,110,32,105,109,112,111, - 114,116,105,110,103,32,115,117,98,109,111,100,117,108,101,115, - 46,32,32,73,102,32,115,101,116,44,32,105,115,95,112,97, - 99,107,97,103,101,32,115,104,111,117,108,100,32,98,101,10, - 32,32,32,32,84,114,117,101,45,45,97,110,100,32,70,97, - 108,115,101,32,111,116,104,101,114,119,105,115,101,46,10,10, - 32,32,32,32,80,97,99,107,97,103,101,115,32,97,114,101, - 32,115,105,109,112,108,121,32,109,111,100,117,108,101,115,32, - 116,104,97,116,32,40,109,97,121,41,32,104,97,118,101,32, - 115,117,98,109,111,100,117,108,101,115,46,32,32,73,102,32, - 97,32,115,112,101,99,10,32,32,32,32,104,97,115,32,97, - 32,110,111,110,45,78,111,110,101,32,118,97,108,117,101,32, - 105,110,32,96,115,117,98,109,111,100,117,108,101,95,115,101, - 97,114,99,104,95,108,111,99,97,116,105,111,110,115,96,44, - 32,116,104,101,32,105,109,112,111,114,116,10,32,32,32,32, - 115,121,115,116,101,109,32,119,105,108,108,32,99,111,110,115, - 105,100,101,114,32,109,111,100,117,108,101,115,32,108,111,97, - 100,101,100,32,102,114,111,109,32,116,104,101,32,115,112,101, - 99,32,97,115,32,112,97,99,107,97,103,101,115,46,10,10, - 32,32,32,32,79,110,108,121,32,102,105,110,100,101,114,115, - 32,40,115,101,101,32,105,109,112,111,114,116,108,105,98,46, - 97,98,99,46,77,101,116,97,80,97,116,104,70,105,110,100, - 101,114,32,97,110,100,10,32,32,32,32,105,109,112,111,114, - 116,108,105,98,46,97,98,99,46,80,97,116,104,69,110,116, - 114,121,70,105,110,100,101,114,41,32,115,104,111,117,108,100, - 32,109,111,100,105,102,121,32,77,111,100,117,108,101,83,112, - 101,99,32,105,110,115,116,97,110,99,101,115,46,10,10,32, - 32,32,32,78,41,3,218,6,111,114,105,103,105,110,218,12, - 108,111,97,100,101,114,95,115,116,97,116,101,218,10,105,115, - 95,112,97,99,107,97,103,101,99,3,0,0,0,0,0,0, - 0,3,0,0,0,2,0,0,0,3,0,0,0,243,124,0, - 0,0,151,0,124,1,124,0,95,0,0,0,0,0,0,0, - 0,0,124,2,124,0,95,1,0,0,0,0,0,0,0,0, - 124,3,124,0,95,2,0,0,0,0,0,0,0,0,124,4, - 124,0,95,3,0,0,0,0,0,0,0,0,124,5,114,2, - 103,0,110,1,100,0,124,0,95,4,0,0,0,0,0,0, - 0,0,103,0,124,0,95,5,0,0,0,0,0,0,0,0, - 100,1,124,0,95,6,0,0,0,0,0,0,0,0,100,0, - 124,0,95,7,0,0,0,0,0,0,0,0,121,0,169,2, - 78,70,41,8,114,26,0,0,0,114,213,0,0,0,114,218, - 0,0,0,114,219,0,0,0,218,26,115,117,98,109,111,100, - 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116, - 105,111,110,115,218,25,95,117,110,105,110,105,116,105,97,108, - 105,122,101,100,95,115,117,98,109,111,100,117,108,101,115,218, - 13,95,115,101,116,95,102,105,108,101,97,116,116,114,218,7, - 95,99,97,99,104,101,100,41,6,114,44,0,0,0,114,26, - 0,0,0,114,213,0,0,0,114,218,0,0,0,114,219,0, - 0,0,114,220,0,0,0,115,6,0,0,0,32,32,32,32, - 32,32,114,7,0,0,0,114,47,0,0,0,122,19,77,111, - 100,117,108,101,83,112,101,99,46,95,95,105,110,105,116,95, - 95,87,2,0,0,115,68,0,0,0,128,0,224,20,24,136, - 4,140,9,216,22,28,136,4,140,11,216,22,28,136,4,140, - 11,216,28,40,136,4,212,8,25,217,48,58,169,34,192,4, - 136,4,212,8,39,216,41,43,136,4,212,8,38,240,6,0, - 30,35,136,4,212,8,26,216,23,27,136,4,141,12,114,22, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 5,0,0,0,3,0,0,0,243,60,1,0,0,151,0,100, - 1,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,155,2,157,2,100,2,124,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,155,2,157,2,103,2,125,1,124,0,106,4,0, + 99,97,116,105,111,110,115,218,25,95,117,110,105,110,105,116, + 105,97,108,105,122,101,100,95,115,117,98,109,111,100,117,108, + 101,115,218,13,95,115,101,116,95,102,105,108,101,97,116,116, + 114,218,7,95,99,97,99,104,101,100,41,6,114,44,0,0, + 0,114,26,0,0,0,114,213,0,0,0,114,218,0,0,0, + 114,219,0,0,0,114,220,0,0,0,115,6,0,0,0,32, + 32,32,32,32,32,114,7,0,0,0,114,47,0,0,0,122, + 19,77,111,100,117,108,101,83,112,101,99,46,95,95,105,110, + 105,116,95,95,87,2,0,0,115,68,0,0,0,128,0,224, + 20,24,136,4,140,9,216,22,28,136,4,140,11,216,22,28, + 136,4,140,11,216,28,40,136,4,212,8,25,217,48,58,169, + 34,192,4,136,4,212,8,39,216,41,43,136,4,212,8,38, + 240,6,0,30,35,136,4,212,8,26,216,23,27,136,4,141, + 12,114,22,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,3,0,0,0,243,60,1,0,0, + 151,0,100,1,124,0,106,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,155,2,157,2,100,2, + 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,155,2,157,2,103,2,125,1,124,0, + 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,129,30,124,1,106,7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,100,3,124,0, + 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,155,2,157,2,171,1,0,0,0,0,0,0, + 1,0,124,0,106,8,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,129,30,124,1,106,7,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,129,30,124,1,106,7,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,3,124,0,106,4,0, + 100,4,124,0,106,8,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,155,0,157,2,171,1,0,0, + 0,0,0,0,1,0,124,0,106,10,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,106,12,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,155,2,157,2,171,1,0,0,0,0,0,0,1,0,124, - 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,129,30,124,1,106,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,4,124, - 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,155,0,157,2,171,1,0,0,0,0,0, - 0,1,0,124,0,106,10,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,155,0,100, - 5,100,6,106,15,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,155,0,100,7,157,4,83,0,41,8,78,122,5,110,97, - 109,101,61,122,7,108,111,97,100,101,114,61,122,7,111,114, - 105,103,105,110,61,122,27,115,117,98,109,111,100,117,108,101, - 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110, - 115,61,250,1,40,122,2,44,32,250,1,41,41,8,114,26, - 0,0,0,114,213,0,0,0,114,218,0,0,0,114,51,0, - 0,0,114,223,0,0,0,114,45,0,0,0,114,11,0,0, - 0,218,4,106,111,105,110,41,2,114,44,0,0,0,114,90, - 0,0,0,115,2,0,0,0,32,32,114,7,0,0,0,114, - 132,0,0,0,122,19,77,111,100,117,108,101,83,112,101,99, - 46,95,95,114,101,112,114,95,95,100,2,0,0,115,145,0, - 0,0,128,0,216,18,23,152,4,159,9,153,9,144,125,208, - 16,37,168,23,176,20,183,27,177,27,176,15,208,39,64,208, - 15,65,136,4,216,11,15,143,59,137,59,208,11,34,216,12, - 16,143,75,137,75,152,39,160,36,167,43,161,43,160,31,208, - 24,49,212,12,50,216,11,15,215,11,42,209,11,42,208,11, - 54,216,12,16,143,75,137,75,208,26,53,176,100,215,54,85, - 209,54,85,208,53,86,208,24,87,212,12,88,216,18,22,151, - 46,145,46,215,18,41,209,18,41,208,17,42,168,33,168,68, - 175,73,169,73,176,100,171,79,208,43,60,184,65,208,15,62, - 208,8,62,114,22,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,114,1, + 155,0,100,5,100,6,106,15,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, + 0,0,0,0,155,0,100,7,157,4,83,0,41,8,78,122, + 5,110,97,109,101,61,122,7,108,111,97,100,101,114,61,122, + 7,111,114,105,103,105,110,61,122,27,115,117,98,109,111,100, + 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116, + 105,111,110,115,61,250,1,40,122,2,44,32,250,1,41,41, + 8,114,26,0,0,0,114,213,0,0,0,114,218,0,0,0, + 114,51,0,0,0,114,223,0,0,0,114,45,0,0,0,114, + 11,0,0,0,218,4,106,111,105,110,41,2,114,44,0,0, + 0,114,90,0,0,0,115,2,0,0,0,32,32,114,7,0, + 0,0,114,132,0,0,0,122,19,77,111,100,117,108,101,83, + 112,101,99,46,95,95,114,101,112,114,95,95,100,2,0,0, + 115,145,0,0,0,128,0,216,18,23,152,4,159,9,153,9, + 144,125,208,16,37,168,23,176,20,183,27,177,27,176,15,208, + 39,64,208,15,65,136,4,216,11,15,143,59,137,59,208,11, + 34,216,12,16,143,75,137,75,152,39,160,36,167,43,161,43, + 160,31,208,24,49,212,12,50,216,11,15,215,11,42,209,11, + 42,208,11,54,216,12,16,143,75,137,75,208,26,53,176,100, + 215,54,85,209,54,85,208,53,86,208,24,87,212,12,88,216, + 18,22,151,46,145,46,215,18,41,209,18,41,208,17,42,168, + 33,168,68,175,73,169,73,176,100,171,79,208,43,60,184,65, + 208,15,62,208,8,62,114,22,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,114,1,0,0,151,0,124,0,106,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,125,2,9, + 0,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,1,106,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,107,40,0, + 0,120,1,114,123,1,0,124,0,106,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,106, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,107,40,0,0,120,1,114,96,1,0,124,0,106, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,1,106,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,107,40,0,0,120,1,114, + 69,1,0,124,2,124,1,106,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,107,40,0,0,120, + 1,114,52,1,0,124,0,106,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,1,106,8,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,107,40,0,0,120,1,114,25,1,0,124,0,106,10,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,1,106,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,107,40,0,0,83,0,35,0,116, + 12,0,0,0,0,0,0,0,0,36,0,114,9,1,0,116, + 14,0,0,0,0,0,0,0,0,99,2,89,0,83,0,119, + 0,120,3,89,0,119,1,114,2,0,0,0,41,8,114,223, + 0,0,0,114,26,0,0,0,114,213,0,0,0,114,218,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,4,0,0,0,218,14,78, + 111,116,73,109,112,108,101,109,101,110,116,101,100,41,3,114, + 44,0,0,0,218,5,111,116,104,101,114,218,4,115,109,115, + 108,115,3,0,0,0,32,32,32,114,7,0,0,0,218,6, + 95,95,101,113,95,95,122,17,77,111,100,117,108,101,83,112, + 101,99,46,95,95,101,113,95,95,108,2,0,0,115,175,0, + 0,0,128,0,216,15,19,215,15,46,209,15,46,136,4,240, + 2,8,9,34,216,20,24,151,73,145,73,160,21,167,26,161, + 26,209,20,43,242,0,5,21,60,216,20,24,151,75,145,75, + 160,53,167,60,161,60,209,20,47,242,3,5,21,60,224,20, + 24,151,75,145,75,160,53,167,60,161,60,209,20,47,242,5, + 5,21,60,240,6,0,21,25,152,69,215,28,60,209,28,60, + 209,20,60,242,7,5,21,60,240,8,0,21,25,151,75,145, + 75,160,53,167,60,161,60,209,20,47,242,9,5,21,60,240, + 10,0,21,25,215,20,37,209,20,37,168,21,215,41,59,209, + 41,59,209,20,59,240,11,5,13,61,248,244,12,0,16,30, + 242,0,1,9,34,220,19,33,210,12,33,240,3,1,9,34, + 250,115,18,0,0,0,142,66,21,66,36,0,194,36,15,66, + 54,3,194,53,1,66,54,3,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,243,194,0, 0,0,151,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,2,9,0,124,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,107,40,0,0,120,1, - 114,123,1,0,124,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,106,4,0,0, + 0,0,0,0,0,0,0,0,0,0,128,72,124,0,106,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 107,40,0,0,120,1,114,96,1,0,124,0,106,6,0,0, + 0,0,129,60,124,0,106,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,114,48,116,6,0,0, + 0,0,0,0,0,0,128,6,116,8,0,0,0,0,0,0, + 0,0,130,1,116,6,0,0,0,0,0,0,0,0,106,11, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,106,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,107,40,0,0,120,1,114,69,1,0, - 124,2,124,1,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,107,40,0,0,120,1,114,52, - 1,0,124,0,106,8,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,107,40, - 0,0,120,1,114,25,1,0,124,0,106,10,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,107,40,0,0,83,0,35,0,116,12,0,0, - 0,0,0,0,0,0,36,0,114,9,1,0,116,14,0,0, - 0,0,0,0,0,0,99,2,89,0,83,0,119,0,120,3, - 89,0,119,1,114,2,0,0,0,41,8,114,223,0,0,0, - 114,26,0,0,0,114,213,0,0,0,114,218,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,4,0,0,0,218,14,78,111,116,73, - 109,112,108,101,109,101,110,116,101,100,41,3,114,44,0,0, - 0,218,5,111,116,104,101,114,218,4,115,109,115,108,115,3, - 0,0,0,32,32,32,114,7,0,0,0,218,6,95,95,101, - 113,95,95,122,17,77,111,100,117,108,101,83,112,101,99,46, - 95,95,101,113,95,95,108,2,0,0,115,175,0,0,0,128, - 0,216,15,19,215,15,46,209,15,46,136,4,240,2,8,9, - 34,216,20,24,151,73,145,73,160,21,167,26,161,26,209,20, - 43,242,0,5,21,60,216,20,24,151,75,145,75,160,53,167, - 60,161,60,209,20,47,242,3,5,21,60,224,20,24,151,75, - 145,75,160,53,167,60,161,60,209,20,47,242,5,5,21,60, - 240,6,0,21,25,152,69,215,28,60,209,28,60,209,20,60, - 242,7,5,21,60,240,8,0,21,25,151,75,145,75,160,53, - 167,60,161,60,209,20,47,242,9,5,21,60,240,10,0,21, - 25,215,20,37,209,20,37,168,21,215,41,59,209,41,59,209, - 20,59,240,11,5,13,61,248,244,12,0,16,30,242,0,1, - 9,34,220,19,33,210,12,33,240,3,1,9,34,250,115,18, - 0,0,0,142,66,21,66,36,0,194,36,15,66,54,3,194, - 53,1,66,54,3,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,194,0,0,0,151, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,128,72,124,0,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129, - 60,124,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,114,48,116,6,0,0,0,0,0, - 0,0,0,128,6,116,8,0,0,0,0,0,0,0,0,130, - 1,116,6,0,0,0,0,0,0,0,0,106,11,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,124,0,95, - 0,0,0,0,0,0,0,0,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, - 0,114,2,0,0,0,41,6,114,226,0,0,0,114,218,0, - 0,0,114,225,0,0,0,218,19,95,98,111,111,116,115,116, - 114,97,112,95,101,120,116,101,114,110,97,108,218,19,78,111, - 116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111, - 114,218,11,95,103,101,116,95,99,97,99,104,101,100,114,66, - 0,0,0,115,1,0,0,0,32,114,7,0,0,0,114,232, - 0,0,0,122,17,77,111,100,117,108,101,83,112,101,99,46, - 99,97,99,104,101,100,120,2,0,0,115,74,0,0,0,128, - 0,224,11,15,143,60,137,60,208,11,31,216,15,19,143,123, - 137,123,208,15,38,168,52,215,43,61,210,43,61,220,19,38, - 208,19,46,220,26,45,208,20,45,220,31,50,215,31,62,209, - 31,62,184,116,191,123,185,123,211,31,75,144,4,148,12,216, - 15,19,143,124,137,124,208,8,27,114,22,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,18,0,0,0,151,0,124,1,124,0,95,0, - 0,0,0,0,0,0,0,0,121,0,114,2,0,0,0,41, - 1,114,226,0,0,0,41,2,114,44,0,0,0,114,232,0, - 0,0,115,2,0,0,0,32,32,114,7,0,0,0,114,232, - 0,0,0,122,17,77,111,100,117,108,101,83,112,101,99,46, - 99,97,99,104,101,100,129,2,0,0,115,9,0,0,0,128, - 0,224,23,29,136,4,141,12,114,22,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,110,0,0,0,151,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128, - 30,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,1,171,1,0, - 0,0,0,0,0,100,2,25,0,0,0,83,0,124,0,106, + 0,0,124,0,106,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, + 124,0,95,0,0,0,0,0,0,0,0,0,124,0,106,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,0,114,2,0,0,0,41,6,114,226,0,0,0, + 114,218,0,0,0,114,225,0,0,0,218,19,95,98,111,111, + 116,115,116,114,97,112,95,101,120,116,101,114,110,97,108,218, + 19,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69, + 114,114,111,114,218,11,95,103,101,116,95,99,97,99,104,101, + 100,114,66,0,0,0,115,1,0,0,0,32,114,7,0,0, + 0,114,232,0,0,0,122,17,77,111,100,117,108,101,83,112, + 101,99,46,99,97,99,104,101,100,120,2,0,0,115,74,0, + 0,0,128,0,224,11,15,143,60,137,60,208,11,31,216,15, + 19,143,123,137,123,208,15,38,168,52,215,43,61,210,43,61, + 220,19,38,208,19,46,220,26,45,208,20,45,220,31,50,215, + 31,62,209,31,62,184,116,191,123,185,123,211,31,75,144,4, + 148,12,216,15,19,143,124,137,124,208,8,27,114,22,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,243,18,0,0,0,151,0,124,1,124, + 0,95,0,0,0,0,0,0,0,0,0,121,0,114,2,0, + 0,0,41,1,114,226,0,0,0,41,2,114,44,0,0,0, + 114,232,0,0,0,115,2,0,0,0,32,32,114,7,0,0, + 0,114,232,0,0,0,122,17,77,111,100,117,108,101,83,112, + 101,99,46,99,97,99,104,101,100,129,2,0,0,115,9,0, + 0,0,128,0,224,23,29,136,4,141,12,114,22,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,3,0,0,0,243,110,0,0,0,151,0,124,0,106,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,128,30,124,0,106,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,106,5,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, + 171,1,0,0,0,0,0,0,100,2,25,0,0,0,83,0, + 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,0,41,3,122,32,84,104,101,32, + 110,97,109,101,32,111,102,32,116,104,101,32,109,111,100,117, + 108,101,39,115,32,112,97,114,101,110,116,46,250,1,46,114, + 125,0,0,0,41,3,114,223,0,0,0,114,26,0,0,0, + 218,10,114,112,97,114,116,105,116,105,111,110,114,66,0,0, + 0,115,1,0,0,0,32,114,7,0,0,0,218,6,112,97, + 114,101,110,116,122,17,77,111,100,117,108,101,83,112,101,99, + 46,112,97,114,101,110,116,133,2,0,0,115,52,0,0,0, + 128,0,240,6,0,12,16,215,11,42,209,11,42,208,11,50, + 216,19,23,151,57,145,57,215,19,39,209,19,39,168,3,211, + 19,44,168,81,209,19,47,208,12,47,224,19,23,151,57,145, + 57,208,12,28,114,22,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,26, + 0,0,0,151,0,124,0,106,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,0,114,2,0, + 0,0,41,1,114,225,0,0,0,114,66,0,0,0,115,1, + 0,0,0,32,114,7,0,0,0,114,233,0,0,0,122,23, + 77,111,100,117,108,101,83,112,101,99,46,104,97,115,95,108, + 111,99,97,116,105,111,110,141,2,0,0,115,14,0,0,0, + 128,0,224,15,19,215,15,33,209,15,33,208,8,33,114,22, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,243,36,0,0,0,151,0,116, + 1,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, + 0,0,0,124,0,95,1,0,0,0,0,0,0,0,0,121, + 0,114,2,0,0,0,41,2,218,4,98,111,111,108,114,225, + 0,0,0,41,2,114,44,0,0,0,218,5,118,97,108,117, + 101,115,2,0,0,0,32,32,114,7,0,0,0,114,233,0, + 0,0,122,23,77,111,100,117,108,101,83,112,101,99,46,104, + 97,115,95,108,111,99,97,116,105,111,110,145,2,0,0,115, + 14,0,0,0,128,0,228,29,33,160,37,155,91,136,4,213, + 8,26,114,22,0,0,0,41,12,114,11,0,0,0,114,10, + 0,0,0,114,3,0,0,0,114,12,0,0,0,114,47,0, + 0,0,114,132,0,0,0,114,237,0,0,0,218,8,112,114, + 111,112,101,114,116,121,114,232,0,0,0,218,6,115,101,116, + 116,101,114,114,246,0,0,0,114,233,0,0,0,114,31,0, + 0,0,114,22,0,0,0,114,7,0,0,0,114,217,0,0, + 0,114,217,0,0,0,50,2,0,0,115,143,0,0,0,132, + 0,241,2,34,5,8,240,72,1,0,48,52,192,36,216,28, + 32,244,3,11,5,28,242,26,6,5,63,242,16,10,5,34, + 240,24,0,6,14,241,2,6,5,28,243,3,0,6,14,240, + 2,6,5,28,240,16,0,6,12,135,93,129,93,241,2,1, + 5,30,243,3,0,6,19,240,2,1,5,30,240,6,0,6, + 14,241,2,5,5,29,243,3,0,6,14,240,2,5,5,29, + 240,14,0,6,14,241,2,1,5,34,243,3,0,6,14,240, + 2,1,5,34,240,6,0,6,18,215,5,24,209,5,24,241, + 2,1,5,41,243,3,0,6,25,241,2,1,5,41,114,22, + 0,0,0,114,217,0,0,0,169,2,114,218,0,0,0,114, + 220,0,0,0,99,2,0,0,0,0,0,0,0,2,0,0, + 0,6,0,0,0,3,0,0,0,243,52,1,0,0,151,0, + 124,2,128,13,116,1,0,0,0,0,0,0,0,0,124,1, + 100,2,100,1,171,3,0,0,0,0,0,0,125,2,124,2, + 115,69,116,3,0,0,0,0,0,0,0,0,124,1,100,3, + 171,2,0,0,0,0,0,0,114,57,116,4,0,0,0,0, + 0,0,0,0,128,6,116,6,0,0,0,0,0,0,0,0, + 130,1,116,4,0,0,0,0,0,0,0,0,106,8,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 125,4,124,3,128,10,2,0,124,4,124,0,124,1,172,4, + 171,2,0,0,0,0,0,0,83,0,124,3,114,2,103,0, + 110,1,100,1,125,5,2,0,124,4,124,0,124,1,124,5, + 172,5,171,3,0,0,0,0,0,0,83,0,124,3,128,33, + 116,3,0,0,0,0,0,0,0,0,124,1,100,6,171,2, + 0,0,0,0,0,0,114,19,9,0,124,1,106,11,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 124,0,171,1,0,0,0,0,0,0,125,3,110,2,100,7, + 125,3,116,15,0,0,0,0,0,0,0,0,124,0,124,1, + 124,2,124,3,172,8,171,4,0,0,0,0,0,0,83,0, + 35,0,116,12,0,0,0,0,0,0,0,0,36,0,114,5, + 1,0,100,1,125,3,89,0,140,28,119,0,120,3,89,0, + 119,1,41,9,122,53,82,101,116,117,114,110,32,97,32,109, + 111,100,117,108,101,32,115,112,101,99,32,98,97,115,101,100, + 32,111,110,32,118,97,114,105,111,117,115,32,108,111,97,100, + 101,114,32,109,101,116,104,111,100,115,46,78,218,7,95,79, + 82,73,71,73,78,218,12,103,101,116,95,102,105,108,101,110, + 97,109,101,41,1,114,213,0,0,0,41,2,114,213,0,0, + 0,114,223,0,0,0,114,220,0,0,0,70,114,253,0,0, + 0,41,8,114,15,0,0,0,114,13,0,0,0,114,239,0, + 0,0,114,240,0,0,0,218,23,115,112,101,99,95,102,114, + 111,109,95,102,105,108,101,95,108,111,99,97,116,105,111,110, + 114,220,0,0,0,114,178,0,0,0,114,217,0,0,0,41, + 6,114,26,0,0,0,114,213,0,0,0,114,218,0,0,0, + 114,220,0,0,0,114,1,1,0,0,218,6,115,101,97,114, + 99,104,115,6,0,0,0,32,32,32,32,32,32,114,7,0, + 0,0,114,194,0,0,0,114,194,0,0,0,150,2,0,0, + 115,192,0,0,0,128,0,224,7,13,128,126,220,17,24,152, + 22,160,25,168,68,211,17,49,136,6,225,11,17,148,103,152, + 102,160,110,212,22,53,220,11,30,208,11,38,220,18,37,208, + 12,37,220,34,53,215,34,77,209,34,77,208,8,31,224,11, + 21,208,11,29,217,19,42,168,52,184,6,212,19,63,208,12, + 63,217,23,33,145,18,160,116,136,6,217,15,38,160,116,176, + 70,216,66,72,244,3,1,16,74,1,240,0,1,9,74,1, + 240,6,0,8,18,208,7,25,220,11,18,144,54,152,60,212, + 11,40,240,2,3,13,34,216,29,35,215,29,46,209,29,46, + 168,116,211,29,52,145,10,240,10,0,26,31,136,74,228,11, + 21,144,100,152,70,168,54,184,106,212,11,73,208,4,73,248, + 244,13,0,20,31,242,0,1,13,34,216,29,33,146,10,240, + 3,1,13,34,250,115,18,0,0,0,193,38,17,66,9,0, + 194,9,11,66,23,3,194,22,1,66,23,3,99,3,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,243,226,1,0,0,151,0,9,0,124,0,106,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 125,3,124,3,129,2,124,3,83,0,124,0,106,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 125,4,124,1,128,13,9,0,124,0,106,6,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,1, + 9,0,124,0,106,8,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,125,5,124,2,128,21,124,1, + 129,13,116,11,0,0,0,0,0,0,0,0,124,1,100,1, + 100,0,171,3,0,0,0,0,0,0,125,2,124,2,115,4, + 124,5,129,2,124,5,125,2,9,0,124,0,106,12,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 125,6,9,0,116,15,0,0,0,0,0,0,0,0,124,0, + 106,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,171,1,0,0,0,0,0,0,125,7,116,19, + 0,0,0,0,0,0,0,0,124,4,124,1,124,2,172,2, + 171,3,0,0,0,0,0,0,125,3,124,5,128,2,100,3, + 110,4,124,2,124,5,107,40,0,0,124,3,95,10,0,0, + 0,0,0,0,0,0,124,6,124,3,95,11,0,0,0,0, + 0,0,0,0,124,7,124,3,95,12,0,0,0,0,0,0, + 0,0,124,3,83,0,35,0,116,2,0,0,0,0,0,0, + 0,0,36,0,114,3,1,0,89,0,140,153,119,0,120,3, + 89,0,119,1,35,0,116,2,0,0,0,0,0,0,0,0, + 36,0,114,3,1,0,89,0,140,141,119,0,120,3,89,0, + 119,1,35,0,116,2,0,0,0,0,0,0,0,0,36,0, + 114,5,1,0,100,0,125,5,89,0,140,145,119,0,120,3, + 89,0,119,1,35,0,116,2,0,0,0,0,0,0,0,0, + 36,0,114,5,1,0,100,0,125,6,89,0,140,126,119,0, + 120,3,89,0,119,1,35,0,116,2,0,0,0,0,0,0, + 0,0,36,0,114,5,1,0,100,0,125,7,89,0,140,121, + 119,0,120,3,89,0,119,1,41,4,78,114,255,0,0,0, + 169,1,114,218,0,0,0,70,41,13,114,204,0,0,0,114, + 4,0,0,0,114,11,0,0,0,114,203,0,0,0,114,212, + 0,0,0,114,15,0,0,0,218,10,95,95,99,97,99,104, + 101,100,95,95,218,4,108,105,115,116,218,8,95,95,112,97, + 116,104,95,95,114,217,0,0,0,114,225,0,0,0,114,232, + 0,0,0,114,223,0,0,0,41,8,114,200,0,0,0,114, + 213,0,0,0,114,218,0,0,0,114,199,0,0,0,114,26, + 0,0,0,218,8,108,111,99,97,116,105,111,110,114,232,0, + 0,0,114,223,0,0,0,115,8,0,0,0,32,32,32,32, + 32,32,32,32,114,7,0,0,0,218,17,95,115,112,101,99, + 95,102,114,111,109,95,109,111,100,117,108,101,114,9,1,0, + 0,179,2,0,0,115,53,1,0,0,128,0,240,4,6,5, + 24,216,15,21,143,127,137,127,136,4,240,8,0,12,16,208, + 11,27,216,19,23,136,75,224,11,17,143,63,137,63,128,68, + 216,7,13,128,126,240,2,4,9,17,216,21,27,215,21,38, + 209,21,38,136,70,240,8,3,5,24,216,19,25,151,63,145, + 63,136,8,240,6,0,8,14,128,126,216,11,17,208,11,29, + 220,21,28,152,86,160,89,176,4,211,21,53,136,70,217,15, + 21,152,40,208,26,46,216,21,29,136,70,240,2,3,5,22, + 216,17,23,215,17,34,209,17,34,136,6,240,6,3,5,42, + 220,37,41,168,38,175,47,169,47,211,37,58,208,8,34,244, + 8,0,12,22,144,100,152,70,168,54,212,11,50,128,68,216, + 34,42,208,34,50,153,21,184,22,192,56,209,57,75,128,68, + 212,4,22,216,18,24,128,68,132,75,216,38,64,128,68,212, + 4,35,216,11,15,128,75,248,244,71,1,0,12,26,242,0, + 1,5,13,217,8,12,240,3,1,5,13,251,244,20,0,16, + 30,242,0,2,9,17,225,12,16,240,5,2,9,17,251,244, + 10,0,12,26,242,0,1,5,24,216,19,23,138,8,240,3, + 1,5,24,251,244,18,0,12,26,242,0,1,5,22,216,17, + 21,138,6,240,3,1,5,22,251,244,8,0,12,26,242,0, + 1,5,42,216,37,41,210,8,34,240,3,1,5,42,250,115, + 87,0,0,0,130,12,66,32,0,161,12,66,47,0,174,12, + 66,62,0,193,18,12,67,15,0,193,31,21,67,32,0,194, + 32,9,66,44,3,194,43,1,66,44,3,194,47,9,66,59, + 3,194,58,1,66,59,3,194,62,11,67,12,3,195,11,1, + 67,12,3,195,15,11,67,29,3,195,28,1,67,29,3,195, + 32,11,67,46,3,195,45,1,67,46,3,70,169,1,218,8, + 111,118,101,114,114,105,100,101,99,2,0,0,0,0,0,0, + 0,1,0,0,0,5,0,0,0,3,0,0,0,243,124,3, + 0,0,151,0,124,2,115,13,116,1,0,0,0,0,0,0, + 0,0,124,1,100,1,100,0,171,3,0,0,0,0,0,0, + 128,18,9,0,124,0,106,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,1,95,2,0,0, + 0,0,0,0,0,0,124,2,115,13,116,1,0,0,0,0, + 0,0,0,0,124,1,100,2,100,0,171,3,0,0,0,0, + 0,0,128,110,124,0,106,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,125,3,124,3,128,88, + 124,0,106,10,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,129,76,116,12,0,0,0,0,0,0, + 0,0,128,6,116,14,0,0,0,0,0,0,0,0,130,1, + 116,12,0,0,0,0,0,0,0,0,106,16,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,4, + 124,4,106,19,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,4,171,1,0,0,0,0,0,0, + 125,3,124,0,106,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,3,95,10,0,0,0,0, + 0,0,0,0,124,3,124,0,95,4,0,0,0,0,0,0, + 0,0,100,0,124,1,95,11,0,0,0,0,0,0,0,0, + 9,0,124,3,124,1,95,12,0,0,0,0,0,0,0,0, + 124,2,115,13,116,1,0,0,0,0,0,0,0,0,124,1, + 100,3,100,0,171,3,0,0,0,0,0,0,128,18,9,0, + 124,0,106,26,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,1,95,14,0,0,0,0,0,0, + 0,0,9,0,124,0,124,1,95,15,0,0,0,0,0,0, + 0,0,124,2,115,13,116,1,0,0,0,0,0,0,0,0, + 124,1,100,4,100,0,171,3,0,0,0,0,0,0,128,30, + 124,0,106,10,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,129,18,9,0,124,0,106,10,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 124,1,95,16,0,0,0,0,0,0,0,0,124,0,106,34, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,114,80,124,2,115,13,116,1,0,0,0,0,0,0, + 0,0,124,1,100,5,100,0,171,3,0,0,0,0,0,0, + 128,18,9,0,124,0,106,36,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,1,95,11,0,0, + 0,0,0,0,0,0,124,2,115,13,116,1,0,0,0,0, + 0,0,0,0,124,1,100,6,100,0,171,3,0,0,0,0, + 0,0,128,32,124,0,106,38,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,129,20,9,0,124,0, + 106,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,1,95,20,0,0,0,0,0,0,0,0, + 124,1,83,0,124,1,83,0,35,0,116,6,0,0,0,0, + 0,0,0,0,36,0,114,4,1,0,89,0,144,1,140,61, + 119,0,120,3,89,0,119,1,35,0,116,6,0,0,0,0, + 0,0,0,0,36,0,114,3,1,0,89,0,140,207,119,0, + 120,3,89,0,119,1,35,0,116,6,0,0,0,0,0,0, + 0,0,36,0,114,3,1,0,89,0,140,189,119,0,120,3, + 89,0,119,1,35,0,116,6,0,0,0,0,0,0,0,0, + 36,0,114,3,1,0,89,0,140,196,119,0,120,3,89,0, + 119,1,35,0,116,6,0,0,0,0,0,0,0,0,36,0, + 114,3,1,0,89,0,140,166,119,0,120,3,89,0,119,1, + 35,0,116,6,0,0,0,0,0,0,0,0,36,0,114,3, + 1,0,89,0,140,136,119,0,120,3,89,0,119,1,35,0, + 116,6,0,0,0,0,0,0,0,0,36,0,114,4,1,0, + 89,0,124,1,83,0,119,0,120,3,89,0,119,1,41,7, + 78,114,11,0,0,0,114,203,0,0,0,218,11,95,95,112, + 97,99,107,97,103,101,95,95,114,7,1,0,0,114,212,0, + 0,0,114,5,1,0,0,41,21,114,15,0,0,0,114,26, + 0,0,0,114,11,0,0,0,114,4,0,0,0,114,213,0, + 0,0,114,223,0,0,0,114,239,0,0,0,114,240,0,0, + 0,218,15,78,97,109,101,115,112,97,99,101,76,111,97,100, + 101,114,114,41,0,0,0,218,5,95,112,97,116,104,114,212, + 0,0,0,114,203,0,0,0,114,246,0,0,0,114,13,1, + 0,0,114,204,0,0,0,114,7,1,0,0,114,233,0,0, + 0,114,218,0,0,0,114,232,0,0,0,114,5,1,0,0, + 41,5,114,199,0,0,0,114,200,0,0,0,114,11,1,0, + 0,114,213,0,0,0,114,14,1,0,0,115,5,0,0,0, + 32,32,32,32,32,114,7,0,0,0,218,18,95,105,110,105, + 116,95,109,111,100,117,108,101,95,97,116,116,114,115,114,16, + 1,0,0,221,2,0,0,115,245,1,0,0,128,0,241,8, + 0,9,17,148,71,152,70,160,74,176,4,211,20,53,208,20, + 61,240,2,3,9,17,216,30,34,159,105,153,105,136,70,140, + 79,241,8,0,8,16,148,55,152,54,160,60,176,20,211,19, + 54,208,19,62,216,17,21,151,27,145,27,136,6,216,11,17, + 136,62,224,15,19,215,15,46,209,15,46,208,15,58,220,19, + 38,208,19,46,220,26,45,208,20,45,220,34,53,215,34,69, + 209,34,69,144,15,224,25,40,215,25,48,209,25,48,176,31, + 211,25,65,144,6,216,31,35,215,31,62,209,31,62,144,6, + 148,12,216,30,36,144,4,148,11,240,22,0,35,39,144,6, + 148,15,240,2,3,9,17,216,32,38,136,70,212,12,29,241, + 8,0,8,16,148,55,152,54,160,61,176,36,211,19,55,208, + 19,63,240,2,3,9,17,216,33,37,167,27,161,27,136,70, + 212,12,30,240,8,3,5,13,216,26,30,136,6,140,15,241, + 8,0,8,16,148,55,152,54,160,58,168,116,211,19,52,208, + 19,60,216,11,15,215,11,42,209,11,42,208,11,54,240,4, + 3,13,21,216,34,38,215,34,65,209,34,65,144,6,148,15, + 240,8,0,8,12,215,7,24,210,7,24,217,11,19,148,119, + 152,118,160,122,176,52,211,23,56,208,23,64,240,2,3,13, + 21,216,34,38,167,43,161,43,144,6,148,15,241,8,0,12, + 20,148,119,152,118,160,124,176,84,211,23,58,208,23,66,216, + 15,19,143,123,137,123,208,15,38,240,2,3,17,25,216,40, + 44,175,11,169,11,144,70,212,20,37,240,6,0,12,18,128, + 77,136,54,128,77,248,244,127,1,0,16,30,242,0,1,9, + 17,218,12,16,240,3,1,9,17,251,244,56,0,16,30,242, + 0,1,9,17,217,12,16,240,3,1,9,17,251,244,12,0, + 16,30,242,0,1,9,17,217,12,16,240,3,1,9,17,251, + 244,10,0,12,26,242,0,1,5,13,217,8,12,240,3,1, + 5,13,251,244,16,0,20,34,242,0,1,13,21,217,16,20, + 240,3,1,13,21,251,244,14,0,20,34,242,0,1,13,21, + 217,16,20,240,3,1,13,21,251,244,14,0,24,38,242,0, + 1,17,25,216,20,24,216,11,17,128,77,240,5,1,17,25, + 250,115,125,0,0,0,145,17,69,19,0,194,24,7,69,35, + 0,194,47,17,69,50,0,195,1,7,70,1,0,195,36,17, + 70,16,0,196,17,17,70,31,0,196,62,17,70,46,0,197, + 19,9,69,32,3,197,31,1,69,32,3,197,35,9,69,47, + 3,197,46,1,69,47,3,197,50,9,69,62,3,197,61,1, + 69,62,3,198,1,9,70,13,3,198,12,1,70,13,3,198, + 16,9,70,28,3,198,27,1,70,28,3,198,31,9,70,43, + 3,198,42,1,70,43,3,198,46,9,70,59,3,198,58,1, + 70,59,3,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,243,246,0,0,0,151,0,100, + 1,125,1,116,1,0,0,0,0,0,0,0,0,124,0,106, 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,83,0,41,3,122,32,84,104,101,32,110,97,109, - 101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,39, - 115,32,112,97,114,101,110,116,46,250,1,46,114,125,0,0, - 0,41,3,114,223,0,0,0,114,26,0,0,0,218,10,114, - 112,97,114,116,105,116,105,111,110,114,66,0,0,0,115,1, - 0,0,0,32,114,7,0,0,0,218,6,112,97,114,101,110, - 116,122,17,77,111,100,117,108,101,83,112,101,99,46,112,97, - 114,101,110,116,133,2,0,0,115,52,0,0,0,128,0,240, - 6,0,12,16,215,11,42,209,11,42,208,11,50,216,19,23, - 151,57,145,57,215,19,39,209,19,39,168,3,211,19,44,168, - 81,209,19,47,208,12,47,224,19,23,151,57,145,57,208,12, - 28,114,22,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,243,26,0,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,83,0,114,2,0,0,0,41, - 1,114,225,0,0,0,114,66,0,0,0,115,1,0,0,0, - 32,114,7,0,0,0,114,233,0,0,0,122,23,77,111,100, - 117,108,101,83,112,101,99,46,104,97,115,95,108,111,99,97, - 116,105,111,110,141,2,0,0,115,14,0,0,0,128,0,224, - 15,19,215,15,33,209,15,33,208,8,33,114,22,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,36,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 124,0,95,1,0,0,0,0,0,0,0,0,121,0,114,2, - 0,0,0,41,2,218,4,98,111,111,108,114,225,0,0,0, - 41,2,114,44,0,0,0,218,5,118,97,108,117,101,115,2, - 0,0,0,32,32,114,7,0,0,0,114,233,0,0,0,122, - 23,77,111,100,117,108,101,83,112,101,99,46,104,97,115,95, - 108,111,99,97,116,105,111,110,145,2,0,0,115,14,0,0, - 0,128,0,228,29,33,160,37,155,91,136,4,213,8,26,114, - 22,0,0,0,41,12,114,11,0,0,0,114,10,0,0,0, - 114,3,0,0,0,114,12,0,0,0,114,47,0,0,0,114, - 132,0,0,0,114,237,0,0,0,218,8,112,114,111,112,101, - 114,116,121,114,232,0,0,0,218,6,115,101,116,116,101,114, - 114,246,0,0,0,114,233,0,0,0,114,31,0,0,0,114, - 22,0,0,0,114,7,0,0,0,114,217,0,0,0,114,217, - 0,0,0,50,2,0,0,115,143,0,0,0,132,0,241,2, - 34,5,8,240,72,1,0,48,52,192,36,216,28,32,244,3, - 11,5,28,242,26,6,5,63,242,16,10,5,34,240,24,0, - 6,14,241,2,6,5,28,243,3,0,6,14,240,2,6,5, - 28,240,16,0,6,12,135,93,129,93,241,2,1,5,30,243, - 3,0,6,19,240,2,1,5,30,240,6,0,6,14,241,2, - 5,5,29,243,3,0,6,14,240,2,5,5,29,240,14,0, - 6,14,241,2,1,5,34,243,3,0,6,14,240,2,1,5, - 34,240,6,0,6,18,215,5,24,209,5,24,241,2,1,5, - 41,243,3,0,6,25,241,2,1,5,41,114,22,0,0,0, - 114,217,0,0,0,169,2,114,218,0,0,0,114,220,0,0, - 0,99,2,0,0,0,0,0,0,0,2,0,0,0,6,0, - 0,0,3,0,0,0,243,52,1,0,0,151,0,124,2,128, - 13,116,1,0,0,0,0,0,0,0,0,124,1,100,2,100, - 1,171,3,0,0,0,0,0,0,125,2,124,2,115,69,116, - 3,0,0,0,0,0,0,0,0,124,1,100,3,171,2,0, - 0,0,0,0,0,114,57,116,4,0,0,0,0,0,0,0, - 0,128,6,116,6,0,0,0,0,0,0,0,0,130,1,116, - 4,0,0,0,0,0,0,0,0,106,8,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,4,124, - 3,128,10,2,0,124,4,124,0,124,1,172,4,171,2,0, - 0,0,0,0,0,83,0,124,3,114,2,103,0,110,1,100, - 1,125,5,2,0,124,4,124,0,124,1,124,5,172,5,171, - 3,0,0,0,0,0,0,83,0,124,3,128,33,116,3,0, - 0,0,0,0,0,0,0,124,1,100,6,171,2,0,0,0, - 0,0,0,114,19,9,0,124,1,106,11,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,3,110,2,100,7,125,3,116, - 15,0,0,0,0,0,0,0,0,124,0,124,1,124,2,124, - 3,172,8,171,4,0,0,0,0,0,0,83,0,35,0,116, - 12,0,0,0,0,0,0,0,0,36,0,114,5,1,0,100, - 1,125,3,89,0,140,28,119,0,120,3,89,0,119,1,41, - 9,122,53,82,101,116,117,114,110,32,97,32,109,111,100,117, - 108,101,32,115,112,101,99,32,98,97,115,101,100,32,111,110, - 32,118,97,114,105,111,117,115,32,108,111,97,100,101,114,32, - 109,101,116,104,111,100,115,46,78,218,7,95,79,82,73,71, - 73,78,218,12,103,101,116,95,102,105,108,101,110,97,109,101, - 41,1,114,213,0,0,0,41,2,114,213,0,0,0,114,223, - 0,0,0,114,220,0,0,0,70,114,253,0,0,0,41,8, - 114,15,0,0,0,114,13,0,0,0,114,239,0,0,0,114, - 240,0,0,0,218,23,115,112,101,99,95,102,114,111,109,95, - 102,105,108,101,95,108,111,99,97,116,105,111,110,114,220,0, - 0,0,114,178,0,0,0,114,217,0,0,0,41,6,114,26, - 0,0,0,114,213,0,0,0,114,218,0,0,0,114,220,0, - 0,0,114,1,1,0,0,218,6,115,101,97,114,99,104,115, - 6,0,0,0,32,32,32,32,32,32,114,7,0,0,0,114, - 194,0,0,0,114,194,0,0,0,150,2,0,0,115,192,0, - 0,0,128,0,224,7,13,128,126,220,17,24,152,22,160,25, - 168,68,211,17,49,136,6,225,11,17,148,103,152,102,160,110, - 212,22,53,220,11,30,208,11,38,220,18,37,208,12,37,220, - 34,53,215,34,77,209,34,77,208,8,31,224,11,21,208,11, - 29,217,19,42,168,52,184,6,212,19,63,208,12,63,217,23, - 33,145,18,160,116,136,6,217,15,38,160,116,176,70,216,66, - 72,244,3,1,16,74,1,240,0,1,9,74,1,240,6,0, - 8,18,208,7,25,220,11,18,144,54,152,60,212,11,40,240, - 2,3,13,34,216,29,35,215,29,46,209,29,46,168,116,211, - 29,52,145,10,240,10,0,26,31,136,74,228,11,21,144,100, - 152,70,168,54,184,106,212,11,73,208,4,73,248,244,13,0, - 20,31,242,0,1,13,34,216,29,33,146,10,240,3,1,13, - 34,250,115,18,0,0,0,193,38,17,66,9,0,194,9,11, - 66,23,3,194,22,1,66,23,3,99,3,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,226, - 1,0,0,151,0,9,0,124,0,106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,3,124, - 3,129,2,124,3,83,0,124,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,4,124, - 1,128,13,9,0,124,0,106,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,125,1,9,0,124, - 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,125,5,124,2,128,21,124,1,129,13,116, - 11,0,0,0,0,0,0,0,0,124,1,100,1,100,0,171, - 3,0,0,0,0,0,0,125,2,124,2,115,4,124,5,129, - 2,124,5,125,2,9,0,124,0,106,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,6,9, - 0,116,15,0,0,0,0,0,0,0,0,124,0,106,16,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,125,7,116,19,0,0,0, - 0,0,0,0,0,124,4,124,1,124,2,172,2,171,3,0, - 0,0,0,0,0,125,3,124,5,128,2,100,3,110,4,124, - 2,124,5,107,40,0,0,124,3,95,10,0,0,0,0,0, - 0,0,0,124,6,124,3,95,11,0,0,0,0,0,0,0, - 0,124,7,124,3,95,12,0,0,0,0,0,0,0,0,124, - 3,83,0,35,0,116,2,0,0,0,0,0,0,0,0,36, - 0,114,3,1,0,89,0,140,153,119,0,120,3,89,0,119, - 1,35,0,116,2,0,0,0,0,0,0,0,0,36,0,114, - 3,1,0,89,0,140,141,119,0,120,3,89,0,119,1,35, - 0,116,2,0,0,0,0,0,0,0,0,36,0,114,5,1, - 0,100,0,125,5,89,0,140,145,119,0,120,3,89,0,119, - 1,35,0,116,2,0,0,0,0,0,0,0,0,36,0,114, - 5,1,0,100,0,125,6,89,0,140,126,119,0,120,3,89, - 0,119,1,35,0,116,2,0,0,0,0,0,0,0,0,36, - 0,114,5,1,0,100,0,125,7,89,0,140,121,119,0,120, - 3,89,0,119,1,41,4,78,114,255,0,0,0,169,1,114, - 218,0,0,0,70,41,13,114,204,0,0,0,114,4,0,0, - 0,114,11,0,0,0,114,203,0,0,0,114,212,0,0,0, - 114,15,0,0,0,218,10,95,95,99,97,99,104,101,100,95, - 95,218,4,108,105,115,116,218,8,95,95,112,97,116,104,95, - 95,114,217,0,0,0,114,225,0,0,0,114,232,0,0,0, - 114,223,0,0,0,41,8,114,200,0,0,0,114,213,0,0, - 0,114,218,0,0,0,114,199,0,0,0,114,26,0,0,0, - 218,8,108,111,99,97,116,105,111,110,114,232,0,0,0,114, - 223,0,0,0,115,8,0,0,0,32,32,32,32,32,32,32, - 32,114,7,0,0,0,218,17,95,115,112,101,99,95,102,114, - 111,109,95,109,111,100,117,108,101,114,9,1,0,0,179,2, - 0,0,115,53,1,0,0,128,0,240,4,6,5,24,216,15, - 21,143,127,137,127,136,4,240,8,0,12,16,208,11,27,216, - 19,23,136,75,224,11,17,143,63,137,63,128,68,216,7,13, - 128,126,240,2,4,9,17,216,21,27,215,21,38,209,21,38, - 136,70,240,8,3,5,24,216,19,25,151,63,145,63,136,8, - 240,6,0,8,14,128,126,216,11,17,208,11,29,220,21,28, - 152,86,160,89,176,4,211,21,53,136,70,217,15,21,152,40, - 208,26,46,216,21,29,136,70,240,2,3,5,22,216,17,23, - 215,17,34,209,17,34,136,6,240,6,3,5,42,220,37,41, - 168,38,175,47,169,47,211,37,58,208,8,34,244,8,0,12, - 22,144,100,152,70,168,54,212,11,50,128,68,216,34,42,208, - 34,50,153,21,184,22,192,56,209,57,75,128,68,212,4,22, - 216,18,24,128,68,132,75,216,38,64,128,68,212,4,35,216, - 11,15,128,75,248,244,71,1,0,12,26,242,0,1,5,13, - 217,8,12,240,3,1,5,13,251,244,20,0,16,30,242,0, - 2,9,17,225,12,16,240,5,2,9,17,251,244,10,0,12, - 26,242,0,1,5,24,216,19,23,138,8,240,3,1,5,24, - 251,244,18,0,12,26,242,0,1,5,22,216,17,21,138,6, - 240,3,1,5,22,251,244,8,0,12,26,242,0,1,5,42, - 216,37,41,210,8,34,240,3,1,5,42,250,115,87,0,0, - 0,130,12,66,32,0,161,12,66,47,0,174,12,66,62,0, - 193,18,12,67,15,0,193,31,21,67,32,0,194,32,9,66, - 44,3,194,43,1,66,44,3,194,47,9,66,59,3,194,58, - 1,66,59,3,194,62,11,67,12,3,195,11,1,67,12,3, - 195,15,11,67,29,3,195,28,1,67,29,3,195,32,11,67, - 46,3,195,45,1,67,46,3,70,169,1,218,8,111,118,101, - 114,114,105,100,101,99,2,0,0,0,0,0,0,0,1,0, - 0,0,5,0,0,0,3,0,0,0,243,124,3,0,0,151, - 0,124,2,115,13,116,1,0,0,0,0,0,0,0,0,124, - 1,100,1,100,0,171,3,0,0,0,0,0,0,128,18,9, + 0,0,0,100,2,171,2,0,0,0,0,0,0,114,28,124, + 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,106,5,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, + 0,0,0,125,1,110,33,116,1,0,0,0,0,0,0,0, 0,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,95,2,0,0,0,0,0, - 0,0,0,124,2,115,13,116,1,0,0,0,0,0,0,0, - 0,124,1,100,2,100,0,171,3,0,0,0,0,0,0,128, - 110,124,0,106,8,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,125,3,124,3,128,88,124,0,106, - 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,129,76,116,12,0,0,0,0,0,0,0,0,128, - 6,116,14,0,0,0,0,0,0,0,0,130,1,116,12,0, - 0,0,0,0,0,0,0,106,16,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,125,4,124,4,106, - 19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,4,171,1,0,0,0,0,0,0,125,3,124, - 0,106,10,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,3,95,10,0,0,0,0,0,0,0, - 0,124,3,124,0,95,4,0,0,0,0,0,0,0,0,100, - 0,124,1,95,11,0,0,0,0,0,0,0,0,9,0,124, - 3,124,1,95,12,0,0,0,0,0,0,0,0,124,2,115, - 13,116,1,0,0,0,0,0,0,0,0,124,1,100,3,100, - 0,171,3,0,0,0,0,0,0,128,18,9,0,124,0,106, - 26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,95,14,0,0,0,0,0,0,0,0,9, - 0,124,0,124,1,95,15,0,0,0,0,0,0,0,0,124, - 2,115,13,116,1,0,0,0,0,0,0,0,0,124,1,100, - 4,100,0,171,3,0,0,0,0,0,0,128,30,124,0,106, - 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,129,18,9,0,124,0,106,10,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,95, - 16,0,0,0,0,0,0,0,0,124,0,106,34,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114, - 80,124,2,115,13,116,1,0,0,0,0,0,0,0,0,124, - 1,100,5,100,0,171,3,0,0,0,0,0,0,128,18,9, - 0,124,0,106,36,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,95,11,0,0,0,0,0, - 0,0,0,124,2,115,13,116,1,0,0,0,0,0,0,0, - 0,124,1,100,6,100,0,171,3,0,0,0,0,0,0,128, - 32,124,0,106,38,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,129,20,9,0,124,0,106,38,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,95,20,0,0,0,0,0,0,0,0,124,1,83, - 0,124,1,83,0,35,0,116,6,0,0,0,0,0,0,0, - 0,36,0,114,4,1,0,89,0,144,1,140,61,119,0,120, - 3,89,0,119,1,35,0,116,6,0,0,0,0,0,0,0, - 0,36,0,114,3,1,0,89,0,140,207,119,0,120,3,89, - 0,119,1,35,0,116,6,0,0,0,0,0,0,0,0,36, - 0,114,3,1,0,89,0,140,189,119,0,120,3,89,0,119, - 1,35,0,116,6,0,0,0,0,0,0,0,0,36,0,114, - 3,1,0,89,0,140,196,119,0,120,3,89,0,119,1,35, - 0,116,6,0,0,0,0,0,0,0,0,36,0,114,3,1, - 0,89,0,140,166,119,0,120,3,89,0,119,1,35,0,116, - 6,0,0,0,0,0,0,0,0,36,0,114,3,1,0,89, - 0,140,136,119,0,120,3,89,0,119,1,35,0,116,6,0, - 0,0,0,0,0,0,0,36,0,114,4,1,0,89,0,124, - 1,83,0,119,0,120,3,89,0,119,1,41,7,78,114,11, - 0,0,0,114,203,0,0,0,218,11,95,95,112,97,99,107, - 97,103,101,95,95,114,7,1,0,0,114,212,0,0,0,114, - 5,1,0,0,41,21,114,15,0,0,0,114,26,0,0,0, - 114,11,0,0,0,114,4,0,0,0,114,213,0,0,0,114, - 223,0,0,0,114,239,0,0,0,114,240,0,0,0,218,15, - 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,114, - 41,0,0,0,218,5,95,112,97,116,104,114,212,0,0,0, - 114,203,0,0,0,114,246,0,0,0,114,13,1,0,0,114, - 204,0,0,0,114,7,1,0,0,114,233,0,0,0,114,218, - 0,0,0,114,232,0,0,0,114,5,1,0,0,41,5,114, - 199,0,0,0,114,200,0,0,0,114,11,1,0,0,114,213, - 0,0,0,114,14,1,0,0,115,5,0,0,0,32,32,32, - 32,32,114,7,0,0,0,218,18,95,105,110,105,116,95,109, - 111,100,117,108,101,95,97,116,116,114,115,114,16,1,0,0, - 221,2,0,0,115,245,1,0,0,128,0,241,8,0,9,17, - 148,71,152,70,160,74,176,4,211,20,53,208,20,61,240,2, - 3,9,17,216,30,34,159,105,153,105,136,70,140,79,241,8, - 0,8,16,148,55,152,54,160,60,176,20,211,19,54,208,19, - 62,216,17,21,151,27,145,27,136,6,216,11,17,136,62,224, - 15,19,215,15,46,209,15,46,208,15,58,220,19,38,208,19, - 46,220,26,45,208,20,45,220,34,53,215,34,69,209,34,69, - 144,15,224,25,40,215,25,48,209,25,48,176,31,211,25,65, - 144,6,216,31,35,215,31,62,209,31,62,144,6,148,12,216, - 30,36,144,4,148,11,240,22,0,35,39,144,6,148,15,240, - 2,3,9,17,216,32,38,136,70,212,12,29,241,8,0,8, - 16,148,55,152,54,160,61,176,36,211,19,55,208,19,63,240, - 2,3,9,17,216,33,37,167,27,161,27,136,70,212,12,30, - 240,8,3,5,13,216,26,30,136,6,140,15,241,8,0,8, - 16,148,55,152,54,160,58,168,116,211,19,52,208,19,60,216, - 11,15,215,11,42,209,11,42,208,11,54,240,4,3,13,21, - 216,34,38,215,34,65,209,34,65,144,6,148,15,240,8,0, - 8,12,215,7,24,210,7,24,217,11,19,148,119,152,118,160, - 122,176,52,211,23,56,208,23,64,240,2,3,13,21,216,34, - 38,167,43,161,43,144,6,148,15,241,8,0,12,20,148,119, - 152,118,160,124,176,84,211,23,58,208,23,66,216,15,19,143, - 123,137,123,208,15,38,240,2,3,17,25,216,40,44,175,11, - 169,11,144,70,212,20,37,240,6,0,12,18,128,77,136,54, - 128,77,248,244,127,1,0,16,30,242,0,1,9,17,218,12, - 16,240,3,1,9,17,251,244,56,0,16,30,242,0,1,9, - 17,217,12,16,240,3,1,9,17,251,244,12,0,16,30,242, - 0,1,9,17,217,12,16,240,3,1,9,17,251,244,10,0, - 12,26,242,0,1,5,13,217,8,12,240,3,1,5,13,251, - 244,16,0,20,34,242,0,1,13,21,217,16,20,240,3,1, - 13,21,251,244,14,0,20,34,242,0,1,13,21,217,16,20, - 240,3,1,13,21,251,244,14,0,24,38,242,0,1,17,25, - 216,20,24,216,11,17,128,77,240,5,1,17,25,250,115,125, - 0,0,0,145,17,69,19,0,194,24,7,69,35,0,194,47, - 17,69,50,0,195,1,7,70,1,0,195,36,17,70,16,0, - 196,17,17,70,31,0,196,62,17,70,46,0,197,19,9,69, - 32,3,197,31,1,69,32,3,197,35,9,69,47,3,197,46, - 1,69,47,3,197,50,9,69,62,3,197,61,1,69,62,3, - 198,1,9,70,13,3,198,12,1,70,13,3,198,16,9,70, - 28,3,198,27,1,70,28,3,198,31,9,70,43,3,198,42, - 1,70,43,3,198,46,9,70,59,3,198,58,1,70,59,3, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,246,0,0,0,151,0,100,1,125,1, - 116,1,0,0,0,0,0,0,0,0,124,0,106,2,0,0, + 0,0,0,0,0,0,0,100,3,171,2,0,0,0,0,0, + 0,114,11,116,7,0,0,0,0,0,0,0,0,100,4,171, + 1,0,0,0,0,0,0,130,1,124,1,128,21,116,9,0, + 0,0,0,0,0,0,0,124,0,106,10,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,1,0, + 0,0,0,0,0,125,1,116,13,0,0,0,0,0,0,0, + 0,124,0,124,1,171,2,0,0,0,0,0,0,1,0,124, + 1,83,0,41,5,122,43,67,114,101,97,116,101,32,97,32, + 109,111,100,117,108,101,32,98,97,115,101,100,32,111,110,32, + 116,104,101,32,112,114,111,118,105,100,101,100,32,115,112,101, + 99,46,78,218,13,99,114,101,97,116,101,95,109,111,100,117, + 108,101,218,11,101,120,101,99,95,109,111,100,117,108,101,122, + 66,108,111,97,100,101,114,115,32,116,104,97,116,32,100,101, + 102,105,110,101,32,101,120,101,99,95,109,111,100,117,108,101, + 40,41,32,109,117,115,116,32,97,108,115,111,32,100,101,102, + 105,110,101,32,99,114,101,97,116,101,95,109,111,100,117,108, + 101,40,41,41,7,114,13,0,0,0,114,213,0,0,0,114, + 18,1,0,0,114,178,0,0,0,114,27,0,0,0,114,26, + 0,0,0,114,16,1,0,0,169,2,114,199,0,0,0,114, + 200,0,0,0,115,2,0,0,0,32,32,114,7,0,0,0, + 218,16,109,111,100,117,108,101,95,102,114,111,109,95,115,112, + 101,99,114,21,1,0,0,38,3,0,0,115,111,0,0,0, + 128,0,240,6,0,14,18,128,70,220,7,14,136,116,143,123, + 137,123,152,79,212,7,44,240,6,0,18,22,151,27,145,27, + 215,17,42,209,17,42,168,52,211,17,48,137,6,220,9,16, + 144,20,151,27,145,27,152,109,212,9,44,220,14,25,240,0, + 1,27,61,243,0,1,15,62,240,0,1,9,62,224,7,13, + 128,126,220,17,28,152,84,159,89,153,89,211,17,39,136,6, + 220,4,22,144,116,152,86,212,4,36,216,11,17,128,77,114, + 22,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,3,0,0,0,243,120,1,0,0,151,0, + 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,128,2,100,1,110,11,124,0,106,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,125,1,124,0,106,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,128,89,124,0,106,4, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,125,2,124,2,128,6,100,2,124,1,155,2,100,3, + 157,3,83,0,116,6,0,0,0,0,0,0,0,0,129,54, + 116,9,0,0,0,0,0,0,0,0,124,2,116,6,0,0, + 0,0,0,0,0,0,106,10,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,171,2,0,0,0,0, + 0,0,114,28,100,2,124,1,155,2,100,4,116,13,0,0, + 0,0,0,0,0,0,124,2,106,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,171,1,0,0, + 0,0,0,0,155,0,100,3,157,5,83,0,100,2,124,1, + 155,2,100,5,124,2,155,2,100,6,157,5,83,0,124,0, + 106,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,114,19,100,2,124,1,155,2,100,7,124,0, + 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,155,2,100,3,157,5,83,0,100,2,124,0, + 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,155,2,100,5,124,0,106,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,155,0, + 100,6,157,5,83,0,41,8,122,38,82,101,116,117,114,110, + 32,116,104,101,32,114,101,112,114,32,116,111,32,117,115,101, + 32,102,111,114,32,116,104,101,32,109,111,100,117,108,101,46, + 114,205,0,0,0,114,206,0,0,0,114,208,0,0,0,122, + 18,32,40,110,97,109,101,115,112,97,99,101,41,32,102,114, + 111,109,32,114,209,0,0,0,114,210,0,0,0,114,207,0, + 0,0,41,9,114,26,0,0,0,114,218,0,0,0,114,213, + 0,0,0,114,239,0,0,0,218,10,105,115,105,110,115,116, + 97,110,99,101,114,14,1,0,0,114,6,1,0,0,114,15, + 1,0,0,114,233,0,0,0,41,3,114,199,0,0,0,114, + 26,0,0,0,114,213,0,0,0,115,3,0,0,0,32,32, + 32,114,7,0,0,0,114,211,0,0,0,114,211,0,0,0, + 55,3,0,0,115,200,0,0,0,128,0,224,18,22,151,41, + 145,41,208,18,35,137,51,168,20,175,25,169,25,128,68,216, + 7,11,135,123,129,123,208,7,26,216,17,21,151,27,145,27, + 136,6,216,11,17,136,62,216,21,29,152,100,152,88,160,81, + 208,19,39,208,12,39,228,12,31,208,12,43,220,16,26,152, + 54,212,35,54,215,35,70,209,35,70,212,16,71,224,21,29, + 152,100,152,88,208,37,55,188,4,184,86,191,92,185,92,211, + 56,74,208,55,75,200,49,208,19,77,208,12,77,224,21,29, + 152,100,152,88,160,82,168,6,160,122,176,18,208,19,52,208, + 12,52,224,11,15,215,11,28,210,11,28,216,21,29,152,100, + 152,88,160,86,168,68,175,75,169,75,168,63,184,33,208,19, + 60,208,12,60,224,21,29,152,100,159,105,153,105,152,93,168, + 34,168,84,175,91,169,91,168,77,184,18,208,19,60,208,12, + 60,114,22,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,3,0,0,0,243,132,3,0,0, + 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,125,2,116,3,0,0,0,0, + 0,0,0,0,124,2,171,1,0,0,0,0,0,0,53,0, + 1,0,116,4,0,0,0,0,0,0,0,0,106,6,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,2,171,2,0,0,0,0,0,0,114,28,124,0,106,2, + 106,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,2,171,1,0,0,0,0,0,0,124,1, + 117,1,114,19,100,1,124,2,155,2,100,2,157,3,125,3, + 116,11,0,0,0,0,0,0,0,0,124,3,124,2,172,3, + 171,2,0,0,0,0,0,0,130,1,9,0,124,0,106,12, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,128,50,124,0,106,14,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,128,23,116,11,0,0, + 0,0,0,0,0,0,100,5,124,0,106,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,3, + 171,2,0,0,0,0,0,0,130,1,116,17,0,0,0,0, + 0,0,0,0,124,0,124,1,100,6,172,7,171,3,0,0, + 0,0,0,0,1,0,110,141,116,17,0,0,0,0,0,0, + 0,0,124,0,124,1,100,6,172,7,171,3,0,0,0,0, + 0,0,1,0,116,19,0,0,0,0,0,0,0,0,124,0, + 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,100,8,171,2,0,0,0,0,0,0,115,78, + 116,21,0,0,0,0,0,0,0,0,124,0,106,12,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 125,1,110,33,116,1,0,0,0,0,0,0,0,0,124,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,3,171,2,0,0,0,0,0,0,114,11, - 116,7,0,0,0,0,0,0,0,0,100,4,171,1,0,0, - 0,0,0,0,130,1,124,1,128,21,116,9,0,0,0,0, - 0,0,0,0,124,0,106,10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,125,1,116,13,0,0,0,0,0,0,0,0,124,0, - 124,1,171,2,0,0,0,0,0,0,1,0,124,1,83,0, - 41,5,122,43,67,114,101,97,116,101,32,97,32,109,111,100, - 117,108,101,32,98,97,115,101,100,32,111,110,32,116,104,101, - 32,112,114,111,118,105,100,101,100,32,115,112,101,99,46,78, - 218,13,99,114,101,97,116,101,95,109,111,100,117,108,101,218, - 11,101,120,101,99,95,109,111,100,117,108,101,122,66,108,111, - 97,100,101,114,115,32,116,104,97,116,32,100,101,102,105,110, - 101,32,101,120,101,99,95,109,111,100,117,108,101,40,41,32, - 109,117,115,116,32,97,108,115,111,32,100,101,102,105,110,101, - 32,99,114,101,97,116,101,95,109,111,100,117,108,101,40,41, - 41,7,114,13,0,0,0,114,213,0,0,0,114,18,1,0, - 0,114,178,0,0,0,114,27,0,0,0,114,26,0,0,0, - 114,16,1,0,0,169,2,114,199,0,0,0,114,200,0,0, - 0,115,2,0,0,0,32,32,114,7,0,0,0,218,16,109, - 111,100,117,108,101,95,102,114,111,109,95,115,112,101,99,114, - 21,1,0,0,38,3,0,0,115,111,0,0,0,128,0,240, - 6,0,14,18,128,70,220,7,14,136,116,143,123,137,123,152, - 79,212,7,44,240,6,0,18,22,151,27,145,27,215,17,42, - 209,17,42,168,52,211,17,48,137,6,220,9,16,144,20,151, - 27,145,27,152,109,212,9,44,220,14,25,240,0,1,27,61, - 243,0,1,15,62,240,0,1,9,62,224,7,13,128,126,220, - 17,28,152,84,159,89,153,89,211,17,39,136,6,220,4,22, - 144,116,152,86,212,4,36,216,11,17,128,77,114,22,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,6,0, - 0,0,3,0,0,0,243,120,1,0,0,151,0,124,0,106, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,128,2,100,1,110,11,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125, - 1,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,128,89,124,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125, - 2,124,2,128,6,100,2,124,1,155,2,100,3,157,3,83, - 0,116,6,0,0,0,0,0,0,0,0,129,54,116,9,0, - 0,0,0,0,0,0,0,124,2,116,6,0,0,0,0,0, - 0,0,0,106,10,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,114, - 28,100,2,124,1,155,2,100,4,116,13,0,0,0,0,0, - 0,0,0,124,2,106,14,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,155,0,100,3,157,5,83,0,100,2,124,1,155,2,100, - 5,124,2,155,2,100,6,157,5,83,0,124,0,106,16,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,114,19,100,2,124,1,155,2,100,7,124,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,155,2,100,3,157,5,83,0,100,2,124,0,106,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,155,2,100,5,124,0,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,155,0,100,6,157, - 5,83,0,41,8,122,38,82,101,116,117,114,110,32,116,104, - 101,32,114,101,112,114,32,116,111,32,117,115,101,32,102,111, - 114,32,116,104,101,32,109,111,100,117,108,101,46,114,205,0, - 0,0,114,206,0,0,0,114,208,0,0,0,122,18,32,40, - 110,97,109,101,115,112,97,99,101,41,32,102,114,111,109,32, - 114,209,0,0,0,114,210,0,0,0,114,207,0,0,0,41, - 9,114,26,0,0,0,114,218,0,0,0,114,213,0,0,0, - 114,239,0,0,0,218,10,105,115,105,110,115,116,97,110,99, - 101,114,14,1,0,0,114,6,1,0,0,114,15,1,0,0, - 114,233,0,0,0,41,3,114,199,0,0,0,114,26,0,0, - 0,114,213,0,0,0,115,3,0,0,0,32,32,32,114,7, - 0,0,0,114,211,0,0,0,114,211,0,0,0,55,3,0, - 0,115,200,0,0,0,128,0,224,18,22,151,41,145,41,208, - 18,35,137,51,168,20,175,25,169,25,128,68,216,7,11,135, - 123,129,123,208,7,26,216,17,21,151,27,145,27,136,6,216, - 11,17,136,62,216,21,29,152,100,152,88,160,81,208,19,39, - 208,12,39,228,12,31,208,12,43,220,16,26,152,54,212,35, - 54,215,35,70,209,35,70,212,16,71,224,21,29,152,100,152, - 88,208,37,55,188,4,184,86,191,92,185,92,211,56,74,208, - 55,75,200,49,208,19,77,208,12,77,224,21,29,152,100,152, - 88,160,82,168,6,160,122,176,18,208,19,52,208,12,52,224, - 11,15,215,11,28,210,11,28,216,21,29,152,100,152,88,160, - 86,168,68,175,75,169,75,168,63,184,33,208,19,60,208,12, - 60,224,21,29,152,100,159,105,153,105,152,93,168,34,168,84, - 175,91,169,91,168,77,184,18,208,19,60,208,12,60,114,22, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 6,0,0,0,3,0,0,0,243,132,3,0,0,151,0,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,125,2,116,3,0,0,0,0,0,0,0, - 0,124,2,171,1,0,0,0,0,0,0,53,0,1,0,116, - 4,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,9,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,2,171,1,0,0,0,0,0,0,124,1,117,1,114, - 19,100,1,124,2,155,2,100,2,157,3,125,3,116,11,0, - 0,0,0,0,0,0,0,124,3,124,2,172,3,171,2,0, - 0,0,0,0,0,130,1,9,0,124,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128, - 50,124,0,106,14,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,128,23,116,11,0,0,0,0,0, - 0,0,0,100,5,124,0,106,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,172,3,171,2,0, - 0,0,0,0,0,130,1,116,17,0,0,0,0,0,0,0, - 0,124,0,124,1,100,6,172,7,171,3,0,0,0,0,0, - 0,1,0,110,141,116,17,0,0,0,0,0,0,0,0,124, - 0,124,1,100,6,172,7,171,3,0,0,0,0,0,0,1, - 0,116,19,0,0,0,0,0,0,0,0,124,0,106,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,8,171,2,0,0,0,0,0,0,115,78,116,21,0, - 0,0,0,0,0,0,0,124,0,106,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,155,0,100,9,157,2,125,3,116,22,0, - 0,0,0,0,0,0,0,106,25,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,3,116,26,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,1, - 0,124,0,106,12,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,29,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,2,171,1,0, - 0,0,0,0,0,1,0,110,27,124,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,1,0,116, - 4,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,33,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,125, - 1,124,1,116,4,0,0,0,0,0,0,0,0,106,6,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,60,0,0,0,9,0,100,4,100, - 4,100,4,171,2,0,0,0,0,0,0,1,0,124,1,83, - 0,35,0,116,4,0,0,0,0,0,0,0,0,106,6,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,33,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,106,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,125,1,124,1,116,4,0,0,0,0,0,0,0, - 0,106,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,106,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,119, - 0,120,3,89,0,119,1,35,0,49,0,115,1,119,2,1, - 0,89,0,1,0,1,0,124,1,83,0,120,3,89,0,119, - 1,41,10,122,70,69,120,101,99,117,116,101,32,116,104,101, - 32,115,112,101,99,39,115,32,115,112,101,99,105,102,105,101, - 100,32,109,111,100,117,108,101,32,105,110,32,97,110,32,101, - 120,105,115,116,105,110,103,32,109,111,100,117,108,101,39,115, - 32,110,97,109,101,115,112,97,99,101,46,122,7,109,111,100, - 117,108,101,32,122,19,32,110,111,116,32,105,110,32,115,121, - 115,46,109,111,100,117,108,101,115,114,25,0,0,0,78,250, - 14,109,105,115,115,105,110,103,32,108,111,97,100,101,114,84, - 114,10,1,0,0,114,19,1,0,0,250,55,46,101,120,101, - 99,95,109,111,100,117,108,101,40,41,32,110,111,116,32,102, - 111,117,110,100,59,32,102,97,108,108,105,110,103,32,98,97, - 99,107,32,116,111,32,108,111,97,100,95,109,111,100,117,108, - 101,40,41,41,17,114,26,0,0,0,114,142,0,0,0,114, - 24,0,0,0,114,195,0,0,0,114,76,0,0,0,114,178, - 0,0,0,114,213,0,0,0,114,223,0,0,0,114,16,1, - 0,0,114,13,0,0,0,114,8,0,0,0,114,191,0,0, - 0,114,192,0,0,0,218,13,73,109,112,111,114,116,87,97, - 114,110,105,110,103,218,11,108,111,97,100,95,109,111,100,117, - 108,101,114,19,1,0,0,114,68,0,0,0,41,4,114,199, - 0,0,0,114,200,0,0,0,114,26,0,0,0,114,198,0, - 0,0,115,4,0,0,0,32,32,32,32,114,7,0,0,0, - 114,196,0,0,0,114,196,0,0,0,77,3,0,0,115,88, - 1,0,0,128,0,224,11,15,143,57,137,57,128,68,220,9, - 27,152,68,211,9,33,241,0,23,5,44,220,11,14,143,59, - 137,59,143,63,137,63,152,52,211,11,32,168,6,209,11,46, - 216,20,27,152,68,152,56,208,35,54,208,18,55,136,67,220, - 18,29,152,99,168,4,212,18,45,208,12,45,240,2,19,9, - 44,216,15,19,143,123,137,123,208,15,34,216,19,23,215,19, - 50,209,19,50,208,19,58,220,26,37,208,38,54,184,84,191, - 89,185,89,212,26,71,208,20,71,228,16,34,160,52,168,22, - 184,36,214,16,63,228,16,34,160,52,168,22,184,36,213,16, - 63,220,23,30,152,116,159,123,153,123,168,77,212,23,58,220, - 30,42,168,52,175,59,169,59,211,30,55,208,29,56,240,0, - 1,57,59,240,0,1,28,59,144,67,228,20,29,151,78,145, - 78,160,51,172,13,212,20,54,216,20,24,151,75,145,75,215, - 20,43,209,20,43,168,68,213,20,49,224,20,24,151,75,145, - 75,215,20,43,209,20,43,168,70,212,20,51,244,8,0,22, - 25,151,91,145,91,151,95,145,95,160,84,167,89,161,89,211, - 21,47,136,70,216,37,43,140,67,143,75,137,75,152,4,159, - 9,153,9,210,12,34,247,47,23,5,44,240,48,0,12,18, - 128,77,248,244,5,0,22,25,151,91,145,91,151,95,145,95, - 160,84,167,89,161,89,211,21,47,136,70,216,37,43,140,67, - 143,75,137,75,152,4,159,9,153,9,210,12,34,250,247,47, - 23,5,44,240,48,0,12,18,128,77,250,115,38,0,0,0, - 152,53,70,53,3,193,14,67,11,69,42,2,196,25,65,6, - 70,53,3,197,42,65,8,70,50,5,198,50,3,70,53,3, - 198,53,5,70,63,7,99,1,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,18,3,0,0, - 151,0,9,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,1,0,116,6, - 0,0,0,0,0,0,0,0,106,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,11,0,0, + 171,1,0,0,0,0,0,0,155,0,100,9,157,2,125,3, + 116,22,0,0,0,0,0,0,0,0,106,25,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,3, + 116,26,0,0,0,0,0,0,0,0,171,2,0,0,0,0, + 0,0,1,0,124,0,106,12,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,106,29,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, + 171,1,0,0,0,0,0,0,1,0,110,27,124,0,106,12, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,125,1, - 124,1,116,6,0,0,0,0,0,0,0,0,106,8,0,0, + 0,0,106,31,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, + 1,0,116,4,0,0,0,0,0,0,0,0,106,6,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,60,0,0,0,116,13,0,0,0,0, - 0,0,0,0,124,1,100,1,100,0,171,3,0,0,0,0, - 0,0,128,18,9,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,95,7, - 0,0,0,0,0,0,0,0,116,13,0,0,0,0,0,0, - 0,0,124,1,100,2,100,0,171,3,0,0,0,0,0,0, - 128,65,9,0,124,1,106,18,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,95,10,0,0, - 0,0,0,0,0,0,116,23,0,0,0,0,0,0,0,0, - 124,1,100,3,171,2,0,0,0,0,0,0,115,35,124,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,25,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,4,171,1,0,0,0,0, - 0,0,100,5,25,0,0,0,124,1,95,10,0,0,0,0, - 0,0,0,0,116,13,0,0,0,0,0,0,0,0,124,1, - 100,6,100,0,171,3,0,0,0,0,0,0,128,10,9,0, - 124,0,124,1,95,13,0,0,0,0,0,0,0,0,124,1, - 83,0,124,1,83,0,35,0,1,0,124,0,106,4,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,6,0,0,0,0,0,0,0,0,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,0, - 114,70,116,6,0,0,0,0,0,0,0,0,106,8,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,106,4,0,0,0,0,0,0,0,0, + 106,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,0,106,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,125,1,124,1,116,6,0,0,0,0,0,0,0,0, - 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,60,0,0,0,130,0, - 120,3,89,0,119,1,35,0,116,16,0,0,0,0,0,0, - 0,0,36,0,114,3,1,0,89,0,140,218,119,0,120,3, - 89,0,119,1,35,0,116,16,0,0,0,0,0,0,0,0, - 36,0,114,3,1,0,89,0,140,155,119,0,120,3,89,0, - 119,1,35,0,116,16,0,0,0,0,0,0,0,0,36,0, - 114,4,1,0,89,0,124,1,83,0,119,0,120,3,89,0, - 119,1,41,7,78,114,203,0,0,0,114,13,1,0,0,114, - 7,1,0,0,114,244,0,0,0,114,125,0,0,0,114,204, - 0,0,0,41,14,114,213,0,0,0,114,28,1,0,0,114, - 26,0,0,0,114,24,0,0,0,114,195,0,0,0,114,68, - 0,0,0,114,15,0,0,0,114,203,0,0,0,114,4,0, - 0,0,114,11,0,0,0,114,13,1,0,0,114,13,0,0, - 0,114,245,0,0,0,114,204,0,0,0,114,20,1,0,0, - 115,2,0,0,0,32,32,114,7,0,0,0,218,25,95,108, - 111,97,100,95,98,97,99,107,119,97,114,100,95,99,111,109, - 112,97,116,105,98,108,101,114,30,1,0,0,107,3,0,0, - 115,89,1,0,0,128,0,240,6,6,5,14,216,8,12,143, - 11,137,11,215,8,31,209,8,31,160,4,167,9,161,9,212, - 8,42,244,16,0,14,17,143,91,137,91,143,95,137,95,152, - 84,159,89,153,89,211,13,39,128,70,216,29,35,132,67,135, - 75,129,75,144,4,151,9,145,9,209,4,26,220,7,14,136, - 118,144,124,160,84,211,7,42,208,7,50,240,2,3,9,17, - 216,32,36,167,11,161,11,136,70,212,12,29,244,6,0,8, - 15,136,118,144,125,160,100,211,7,43,208,7,51,240,2,8, - 9,17,240,8,0,34,40,167,31,161,31,136,70,212,12,30, - 220,19,26,152,54,160,58,212,19,46,216,37,41,167,89,161, - 89,215,37,57,209,37,57,184,35,211,37,62,184,113,209,37, - 65,144,6,212,16,34,244,6,0,8,15,136,118,144,122,160, - 52,211,7,40,208,7,48,240,2,3,9,17,216,30,34,136, - 70,140,79,240,6,0,12,18,128,77,136,54,128,77,248,240, - 59,4,5,14,216,11,15,143,57,137,57,156,3,159,11,153, - 11,209,11,35,220,21,24,151,91,145,91,151,95,145,95,160, - 84,167,89,161,89,211,21,47,136,70,216,37,43,140,67,143, - 75,137,75,152,4,159,9,153,9,209,12,34,216,8,13,251, - 244,16,0,16,30,242,0,1,9,17,217,12,16,240,3,1, - 9,17,251,244,20,0,16,30,242,0,1,9,17,217,12,16, - 240,3,1,9,17,251,244,10,0,16,30,242,0,1,9,17, - 216,12,16,216,11,17,128,77,240,5,1,9,17,250,115,67, - 0,0,0,130,37,67,51,0,193,59,17,69,27,0,194,26, - 65,0,69,42,0,195,40,7,69,57,0,195,51,65,37,69, - 24,3,197,27,9,69,39,3,197,38,1,69,39,3,197,42, - 9,69,54,3,197,53,1,69,54,3,197,57,9,70,6,3, - 198,5,1,70,6,3,99,1,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,16,3,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,129,83,116,3,0,0,0,0, + 0,0,125,1,124,1,116,4,0,0,0,0,0,0,0,0, + 106,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,1,171,2,0,0, - 0,0,0,0,115,61,116,5,0,0,0,0,0,0,0,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,155,0, - 100,2,157,2,125,1,116,6,0,0,0,0,0,0,0,0, - 106,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,116,10,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,1,0,116,13,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,83,0, - 116,15,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,2,100,3,124,0,95,8,0,0,0,0, - 0,0,0,0,9,0,124,2,116,18,0,0,0,0,0,0, - 0,0,106,20,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,106,22,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,60,0,0,0, - 9,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,128,35,124,0,106,24,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 128,50,116,27,0,0,0,0,0,0,0,0,100,4,124,0, - 106,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,172,5,171,2,0,0,0,0,0,0,130,1, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,106,29,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,1,0,116,18,0,0,0,0,0,0,0,0, - 106,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,60,0,0,0,9,0, + 100,4,100,4,100,4,171,2,0,0,0,0,0,0,1,0, + 124,1,83,0,35,0,116,4,0,0,0,0,0,0,0,0, + 106,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,106,33,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,106,22,0,0,0,0, + 0,0,0,0,0,0,0,0,124,0,106,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,125,2,124,2,116,18,0,0,0,0, - 0,0,0,0,106,20,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,106,22,0,0,0,0, + 0,0,0,0,0,0,125,1,124,1,116,4,0,0,0,0, + 0,0,0,0,106,6,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,0,106,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0, - 0,0,116,35,0,0,0,0,0,0,0,0,100,6,124,0, - 106,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,3,0,0,0,0, - 0,0,1,0,100,7,124,0,95,8,0,0,0,0,0,0, - 0,0,124,2,83,0,35,0,1,0,9,0,116,18,0,0, - 0,0,0,0,0,0,106,20,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,106,22,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 61,0,130,0,35,0,116,30,0,0,0,0,0,0,0,0, - 36,0,114,3,1,0,89,0,130,0,119,0,120,3,89,0, - 119,1,120,3,89,0,119,1,35,0,100,7,124,0,95,8, - 0,0,0,0,0,0,0,0,119,0,120,3,89,0,119,1, - 41,8,78,114,19,1,0,0,114,26,1,0,0,84,114,25, - 1,0,0,114,25,0,0,0,122,18,105,109,112,111,114,116, - 32,123,33,114,125,32,35,32,123,33,114,125,70,41,18,114, - 213,0,0,0,114,13,0,0,0,114,8,0,0,0,114,191, - 0,0,0,114,192,0,0,0,114,27,1,0,0,114,30,1, - 0,0,114,21,1,0,0,218,13,95,105,110,105,116,105,97, - 108,105,122,105,110,103,114,24,0,0,0,114,195,0,0,0, - 114,26,0,0,0,114,223,0,0,0,114,178,0,0,0,114, - 19,1,0,0,114,73,0,0,0,114,68,0,0,0,114,173, - 0,0,0,41,3,114,199,0,0,0,114,198,0,0,0,114, - 200,0,0,0,115,3,0,0,0,32,32,32,114,7,0,0, - 0,218,14,95,108,111,97,100,95,117,110,108,111,99,107,101, - 100,114,33,1,0,0,143,3,0,0,115,72,1,0,0,128, - 0,224,7,11,135,123,129,123,208,7,30,228,15,22,144,116, - 151,123,145,123,160,77,212,15,50,220,22,34,160,52,167,59, - 161,59,211,22,47,208,21,48,240,0,1,49,52,240,0,1, - 20,52,136,67,228,12,21,143,78,137,78,152,51,164,13,212, - 12,46,220,19,44,168,84,211,19,50,208,12,50,228,13,29, - 152,100,211,13,35,128,70,240,10,0,26,30,128,68,212,4, - 22,240,2,23,5,35,216,33,39,140,3,143,11,137,11,144, - 68,151,73,145,73,209,8,30,240,2,12,9,18,216,15,19, - 143,123,137,123,208,15,34,216,19,23,215,19,50,209,19,50, - 208,19,58,220,26,37,208,38,54,184,84,191,89,185,89,212, - 26,71,208,20,71,240,6,0,17,21,151,11,145,11,215,16, - 39,209,16,39,168,6,212,16,47,244,22,0,18,21,151,27, - 145,27,151,31,145,31,160,20,167,25,161,25,211,17,43,136, - 6,216,33,39,140,3,143,11,137,11,144,68,151,73,145,73, - 209,8,30,220,8,24,208,25,45,168,116,175,121,169,121,184, - 36,191,43,185,43,212,8,70,224,29,34,136,4,212,8,26, - 224,11,17,128,77,248,240,33,5,9,18,240,2,3,13,21, - 220,20,23,151,75,145,75,160,4,167,9,161,9,208,20,42, - 240,6,0,13,18,248,244,5,0,20,28,242,0,1,13,21, - 216,16,20,216,12,17,240,5,1,13,21,254,240,22,0,30, - 35,136,4,213,8,26,250,115,74,0,0,0,193,51,29,69, - 60,0,194,17,65,10,69,11,0,195,27,65,39,69,60,0, - 197,11,2,69,57,3,197,14,27,69,42,2,197,41,1,69, - 57,3,197,42,9,69,54,5,197,51,2,69,57,3,197,53, - 1,69,54,5,197,54,3,69,57,3,197,57,3,69,60,0, - 197,60,9,70,5,3,99,1,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,3,0,0,0,243,110,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,53,0,1,0,116,5, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,99,2,100,1,100,1,100,1,171,2,0,0,0,0, - 0,0,1,0,83,0,35,0,49,0,115,1,119,2,1,0, - 89,0,1,0,1,0,121,1,120,3,89,0,119,1,41,2, - 122,191,82,101,116,117,114,110,32,97,32,110,101,119,32,109, - 111,100,117,108,101,32,111,98,106,101,99,116,44,32,108,111, - 97,100,101,100,32,98,121,32,116,104,101,32,115,112,101,99, - 39,115,32,108,111,97,100,101,114,46,10,10,32,32,32,32, - 84,104,101,32,109,111,100,117,108,101,32,105,115,32,110,111, - 116,32,97,100,100,101,100,32,116,111,32,105,116,115,32,112, - 97,114,101,110,116,46,10,10,32,32,32,32,73,102,32,97, - 32,109,111,100,117,108,101,32,105,115,32,97,108,114,101,97, - 100,121,32,105,110,32,115,121,115,46,109,111,100,117,108,101, - 115,44,32,116,104,97,116,32,101,120,105,115,116,105,110,103, - 32,109,111,100,117,108,101,32,103,101,116,115,10,32,32,32, - 32,99,108,111,98,98,101,114,101,100,46,10,10,32,32,32, - 32,78,41,3,114,142,0,0,0,114,26,0,0,0,114,33, - 1,0,0,169,1,114,199,0,0,0,115,1,0,0,0,32, - 114,7,0,0,0,114,197,0,0,0,114,197,0,0,0,188, - 3,0,0,115,45,0,0,0,128,0,244,18,0,10,28,152, - 68,159,73,153,73,211,9,38,241,0,1,5,36,220,15,29, - 152,100,211,15,35,247,3,1,5,36,247,0,1,5,36,242, - 0,1,5,36,250,115,8,0,0,0,150,11,43,3,171,5, - 52,7,99,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,0,0,0,0,243,164,0,0,0,151,0,101,0, - 90,1,100,0,90,2,100,1,90,3,100,2,90,4,101,5, - 100,10,100,4,132,1,171,0,0,0,0,0,0,0,90,6, - 101,7,100,5,132,0,171,0,0,0,0,0,0,0,90,8, - 101,7,100,6,132,0,171,0,0,0,0,0,0,0,90,9, - 101,5,101,10,100,7,132,0,171,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,90,11,101,5,101,10,100,8, - 132,0,171,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,90,12,101,5,101,10,100,9,132,0,171,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,90,13,2,0, - 101,5,101,14,171,1,0,0,0,0,0,0,90,15,121,3, - 41,11,218,15,66,117,105,108,116,105,110,73,109,112,111,114, - 116,101,114,122,144,77,101,116,97,32,112,97,116,104,32,105, - 109,112,111,114,116,32,102,111,114,32,98,117,105,108,116,45, - 105,110,32,109,111,100,117,108,101,115,46,10,10,32,32,32, - 32,65,108,108,32,109,101,116,104,111,100,115,32,97,114,101, - 32,101,105,116,104,101,114,32,99,108,97,115,115,32,111,114, - 32,115,116,97,116,105,99,32,109,101,116,104,111,100,115,32, - 116,111,32,97,118,111,105,100,32,116,104,101,32,110,101,101, - 100,32,116,111,10,32,32,32,32,105,110,115,116,97,110,116, - 105,97,116,101,32,116,104,101,32,99,108,97,115,115,46,10, - 10,32,32,32,32,122,8,98,117,105,108,116,45,105,110,78, - 99,4,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,94,0,0,0,151,0,116,0,0,0, - 0,0,0,0,0,0,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,114,24,116,5,0,0,0,0,0,0,0,0, - 124,1,124,0,124,0,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,172,1,171,3,0,0, - 0,0,0,0,83,0,121,0,41,2,78,114,4,1,0,0, - 41,4,114,151,0,0,0,218,10,105,115,95,98,117,105,108, - 116,105,110,114,194,0,0,0,114,255,0,0,0,41,4,218, - 3,99,108,115,114,180,0,0,0,218,4,112,97,116,104,218, - 6,116,97,114,103,101,116,115,4,0,0,0,32,32,32,32, - 114,7,0,0,0,218,9,102,105,110,100,95,115,112,101,99, - 122,25,66,117,105,108,116,105,110,73,109,112,111,114,116,101, - 114,46,102,105,110,100,95,115,112,101,99,214,3,0,0,115, - 36,0,0,0,128,0,228,11,15,143,63,137,63,152,56,212, - 11,36,220,19,35,160,72,168,99,184,35,191,43,185,43,212, - 19,70,208,12,70,224,19,23,114,22,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,182,0,0,0,151,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, - 2,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,118,1,114, - 36,116,7,0,0,0,0,0,0,0,0,124,0,106,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,155,2,100,1,157,2,124,0,106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,172,2,171, - 2,0,0,0,0,0,0,130,1,116,9,0,0,0,0,0, - 0,0,0,116,10,0,0,0,0,0,0,0,0,106,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,171,2,0,0,0,0,0,0,83,0,41,3,122, - 24,67,114,101,97,116,101,32,97,32,98,117,105,108,116,45, - 105,110,32,109,111,100,117,108,101,114,176,0,0,0,114,25, - 0,0,0,41,7,114,26,0,0,0,114,24,0,0,0,114, - 177,0,0,0,114,178,0,0,0,114,161,0,0,0,114,151, - 0,0,0,218,14,99,114,101,97,116,101,95,98,117,105,108, - 116,105,110,114,35,1,0,0,115,1,0,0,0,32,114,7, - 0,0,0,114,18,1,0,0,122,29,66,117,105,108,116,105, - 110,73,109,112,111,114,116,101,114,46,99,114,101,97,116,101, - 95,109,111,100,117,108,101,221,3,0,0,115,75,0,0,0, - 128,0,240,6,0,12,16,143,57,137,57,156,67,215,28,52, - 209,28,52,209,11,52,220,18,29,160,20,167,25,161,25,160, - 13,208,45,70,208,30,71,216,35,39,167,57,161,57,244,3, - 1,19,46,240,0,1,13,46,228,15,40,172,20,215,41,60, - 209,41,60,184,100,211,15,67,208,8,67,114,22,0,0,0, + 0,0,119,0,120,3,89,0,119,1,35,0,49,0,115,1, + 119,2,1,0,89,0,1,0,1,0,124,1,83,0,120,3, + 89,0,119,1,41,10,122,70,69,120,101,99,117,116,101,32, + 116,104,101,32,115,112,101,99,39,115,32,115,112,101,99,105, + 102,105,101,100,32,109,111,100,117,108,101,32,105,110,32,97, + 110,32,101,120,105,115,116,105,110,103,32,109,111,100,117,108, + 101,39,115,32,110,97,109,101,115,112,97,99,101,46,122,7, + 109,111,100,117,108,101,32,122,19,32,110,111,116,32,105,110, + 32,115,121,115,46,109,111,100,117,108,101,115,114,25,0,0, + 0,78,250,14,109,105,115,115,105,110,103,32,108,111,97,100, + 101,114,84,114,10,1,0,0,114,19,1,0,0,250,55,46, + 101,120,101,99,95,109,111,100,117,108,101,40,41,32,110,111, + 116,32,102,111,117,110,100,59,32,102,97,108,108,105,110,103, + 32,98,97,99,107,32,116,111,32,108,111,97,100,95,109,111, + 100,117,108,101,40,41,41,17,114,26,0,0,0,114,142,0, + 0,0,114,24,0,0,0,114,195,0,0,0,114,76,0,0, + 0,114,178,0,0,0,114,213,0,0,0,114,223,0,0,0, + 114,16,1,0,0,114,13,0,0,0,114,8,0,0,0,114, + 191,0,0,0,114,192,0,0,0,218,13,73,109,112,111,114, + 116,87,97,114,110,105,110,103,218,11,108,111,97,100,95,109, + 111,100,117,108,101,114,19,1,0,0,114,68,0,0,0,41, + 4,114,199,0,0,0,114,200,0,0,0,114,26,0,0,0, + 114,198,0,0,0,115,4,0,0,0,32,32,32,32,114,7, + 0,0,0,114,196,0,0,0,114,196,0,0,0,77,3,0, + 0,115,88,1,0,0,128,0,224,11,15,143,57,137,57,128, + 68,220,9,27,152,68,211,9,33,241,0,23,5,44,220,11, + 14,143,59,137,59,143,63,137,63,152,52,211,11,32,168,6, + 209,11,46,216,20,27,152,68,152,56,208,35,54,208,18,55, + 136,67,220,18,29,152,99,168,4,212,18,45,208,12,45,240, + 2,19,9,44,216,15,19,143,123,137,123,208,15,34,216,19, + 23,215,19,50,209,19,50,208,19,58,220,26,37,208,38,54, + 184,84,191,89,185,89,212,26,71,208,20,71,228,16,34,160, + 52,168,22,184,36,214,16,63,228,16,34,160,52,168,22,184, + 36,213,16,63,220,23,30,152,116,159,123,153,123,168,77,212, + 23,58,220,30,42,168,52,175,59,169,59,211,30,55,208,29, + 56,240,0,1,57,59,240,0,1,28,59,144,67,228,20,29, + 151,78,145,78,160,51,172,13,212,20,54,216,20,24,151,75, + 145,75,215,20,43,209,20,43,168,68,213,20,49,224,20,24, + 151,75,145,75,215,20,43,209,20,43,168,70,212,20,51,244, + 8,0,22,25,151,91,145,91,151,95,145,95,160,84,167,89, + 161,89,211,21,47,136,70,216,37,43,140,67,143,75,137,75, + 152,4,159,9,153,9,210,12,34,247,47,23,5,44,240,48, + 0,12,18,128,77,248,244,5,0,22,25,151,91,145,91,151, + 95,145,95,160,84,167,89,161,89,211,21,47,136,70,216,37, + 43,140,67,143,75,137,75,152,4,159,9,153,9,210,12,34, + 250,247,47,23,5,44,240,48,0,12,18,128,77,250,115,38, + 0,0,0,152,53,70,53,3,193,14,67,11,69,42,2,196, + 25,65,6,70,53,3,197,42,65,8,70,50,5,198,50,3, + 70,53,3,198,53,5,70,63,7,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,18, + 3,0,0,151,0,9,0,124,0,106,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,106,3,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,0,106,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,1, + 0,116,6,0,0,0,0,0,0,0,0,106,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, + 11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,0,106,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, + 0,125,1,124,1,116,6,0,0,0,0,0,0,0,0,106, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,0,106,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,60,0,0,0,116,13,0, + 0,0,0,0,0,0,0,124,1,100,1,100,0,171,3,0, + 0,0,0,0,0,128,18,9,0,124,0,106,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 1,95,7,0,0,0,0,0,0,0,0,116,13,0,0,0, + 0,0,0,0,0,124,1,100,2,100,0,171,3,0,0,0, + 0,0,0,128,65,9,0,124,1,106,18,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,95, + 10,0,0,0,0,0,0,0,0,116,23,0,0,0,0,0, + 0,0,0,124,1,100,3,171,2,0,0,0,0,0,0,115, + 35,124,0,106,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,106,25,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,4,171,1,0, + 0,0,0,0,0,100,5,25,0,0,0,124,1,95,10,0, + 0,0,0,0,0,0,0,116,13,0,0,0,0,0,0,0, + 0,124,1,100,6,100,0,171,3,0,0,0,0,0,0,128, + 10,9,0,124,0,124,1,95,13,0,0,0,0,0,0,0, + 0,124,1,83,0,124,1,83,0,35,0,1,0,124,0,106, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,116,6,0,0,0,0,0,0,0,0,106,8,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,118,0,114,70,116,6,0,0,0,0,0,0,0,0,106, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,106,11,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,0,106,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,1,0, + 0,0,0,0,0,125,1,124,1,116,6,0,0,0,0,0, + 0,0,0,106,8,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,0,106,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0, + 0,130,0,120,3,89,0,119,1,35,0,116,16,0,0,0, + 0,0,0,0,0,36,0,114,3,1,0,89,0,140,218,119, + 0,120,3,89,0,119,1,35,0,116,16,0,0,0,0,0, + 0,0,0,36,0,114,3,1,0,89,0,140,155,119,0,120, + 3,89,0,119,1,35,0,116,16,0,0,0,0,0,0,0, + 0,36,0,114,4,1,0,89,0,124,1,83,0,119,0,120, + 3,89,0,119,1,41,7,78,114,203,0,0,0,114,13,1, + 0,0,114,7,1,0,0,114,244,0,0,0,114,125,0,0, + 0,114,204,0,0,0,41,14,114,213,0,0,0,114,28,1, + 0,0,114,26,0,0,0,114,24,0,0,0,114,195,0,0, + 0,114,68,0,0,0,114,15,0,0,0,114,203,0,0,0, + 114,4,0,0,0,114,11,0,0,0,114,13,1,0,0,114, + 13,0,0,0,114,245,0,0,0,114,204,0,0,0,114,20, + 1,0,0,115,2,0,0,0,32,32,114,7,0,0,0,218, + 25,95,108,111,97,100,95,98,97,99,107,119,97,114,100,95, + 99,111,109,112,97,116,105,98,108,101,114,30,1,0,0,107, + 3,0,0,115,89,1,0,0,128,0,240,6,6,5,14,216, + 8,12,143,11,137,11,215,8,31,209,8,31,160,4,167,9, + 161,9,212,8,42,244,16,0,14,17,143,91,137,91,143,95, + 137,95,152,84,159,89,153,89,211,13,39,128,70,216,29,35, + 132,67,135,75,129,75,144,4,151,9,145,9,209,4,26,220, + 7,14,136,118,144,124,160,84,211,7,42,208,7,50,240,2, + 3,9,17,216,32,36,167,11,161,11,136,70,212,12,29,244, + 6,0,8,15,136,118,144,125,160,100,211,7,43,208,7,51, + 240,2,8,9,17,240,8,0,34,40,167,31,161,31,136,70, + 212,12,30,220,19,26,152,54,160,58,212,19,46,216,37,41, + 167,89,161,89,215,37,57,209,37,57,184,35,211,37,62,184, + 113,209,37,65,144,6,212,16,34,244,6,0,8,15,136,118, + 144,122,160,52,211,7,40,208,7,48,240,2,3,9,17,216, + 30,34,136,70,140,79,240,6,0,12,18,128,77,136,54,128, + 77,248,240,59,4,5,14,216,11,15,143,57,137,57,156,3, + 159,11,153,11,209,11,35,220,21,24,151,91,145,91,151,95, + 145,95,160,84,167,89,161,89,211,21,47,136,70,216,37,43, + 140,67,143,75,137,75,152,4,159,9,153,9,209,12,34,216, + 8,13,251,244,16,0,16,30,242,0,1,9,17,217,12,16, + 240,3,1,9,17,251,244,20,0,16,30,242,0,1,9,17, + 217,12,16,240,3,1,9,17,251,244,10,0,16,30,242,0, + 1,9,17,216,12,16,216,11,17,128,77,240,5,1,9,17, + 250,115,67,0,0,0,130,37,67,51,0,193,59,17,69,27, + 0,194,26,65,0,69,42,0,195,40,7,69,57,0,195,51, + 65,37,69,24,3,197,27,9,69,39,3,197,38,1,69,39, + 3,197,42,9,69,54,3,197,53,1,69,54,3,197,57,9, + 70,6,3,198,5,1,70,6,3,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,16, + 3,0,0,151,0,124,0,106,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,129,83,116,3,0, + 0,0,0,0,0,0,0,124,0,106,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,171, + 2,0,0,0,0,0,0,115,61,116,5,0,0,0,0,0, + 0,0,0,124,0,106,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, + 0,155,0,100,2,157,2,125,1,116,6,0,0,0,0,0, + 0,0,0,106,9,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,1,116,10,0,0,0,0,0, + 0,0,0,171,2,0,0,0,0,0,0,1,0,116,13,0, + 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, + 0,83,0,116,15,0,0,0,0,0,0,0,0,124,0,171, + 1,0,0,0,0,0,0,125,2,100,3,124,0,95,8,0, + 0,0,0,0,0,0,0,9,0,124,2,116,18,0,0,0, + 0,0,0,0,0,106,20,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,0,106,22,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60, + 0,0,0,9,0,124,0,106,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,128,35,124,0,106, + 24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,128,50,116,27,0,0,0,0,0,0,0,0,100, + 4,124,0,106,22,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,172,5,171,2,0,0,0,0,0, + 0,130,1,124,0,106,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,106,29,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,171, + 1,0,0,0,0,0,0,1,0,116,18,0,0,0,0,0, + 0,0,0,106,20,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,106,33,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,0,106,22,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,171,1,0,0,0,0,0,0,125,2,124,2,116,18,0, + 0,0,0,0,0,0,0,106,20,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,0,106,22,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,60,0,0,0,116,35,0,0,0,0,0,0,0,0,100, + 6,124,0,106,22,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,0,106,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,3,0, + 0,0,0,0,0,1,0,100,7,124,0,95,8,0,0,0, + 0,0,0,0,0,124,2,83,0,35,0,1,0,9,0,116, + 18,0,0,0,0,0,0,0,0,106,20,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,106, + 22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,61,0,130,0,35,0,116,30,0,0,0,0,0, + 0,0,0,36,0,114,3,1,0,89,0,130,0,119,0,120, + 3,89,0,119,1,120,3,89,0,119,1,35,0,100,7,124, + 0,95,8,0,0,0,0,0,0,0,0,119,0,120,3,89, + 0,119,1,41,8,78,114,19,1,0,0,114,26,1,0,0, + 84,114,25,1,0,0,114,25,0,0,0,122,18,105,109,112, + 111,114,116,32,123,33,114,125,32,35,32,123,33,114,125,70, + 41,18,114,213,0,0,0,114,13,0,0,0,114,8,0,0, + 0,114,191,0,0,0,114,192,0,0,0,114,27,1,0,0, + 114,30,1,0,0,114,21,1,0,0,218,13,95,105,110,105, + 116,105,97,108,105,122,105,110,103,114,24,0,0,0,114,195, + 0,0,0,114,26,0,0,0,114,223,0,0,0,114,178,0, + 0,0,114,19,1,0,0,114,73,0,0,0,114,68,0,0, + 0,114,173,0,0,0,41,3,114,199,0,0,0,114,198,0, + 0,0,114,200,0,0,0,115,3,0,0,0,32,32,32,114, + 7,0,0,0,218,14,95,108,111,97,100,95,117,110,108,111, + 99,107,101,100,114,33,1,0,0,143,3,0,0,115,72,1, + 0,0,128,0,224,7,11,135,123,129,123,208,7,30,228,15, + 22,144,116,151,123,145,123,160,77,212,15,50,220,22,34,160, + 52,167,59,161,59,211,22,47,208,21,48,240,0,1,49,52, + 240,0,1,20,52,136,67,228,12,21,143,78,137,78,152,51, + 164,13,212,12,46,220,19,44,168,84,211,19,50,208,12,50, + 228,13,29,152,100,211,13,35,128,70,240,10,0,26,30,128, + 68,212,4,22,240,2,23,5,35,216,33,39,140,3,143,11, + 137,11,144,68,151,73,145,73,209,8,30,240,2,12,9,18, + 216,15,19,143,123,137,123,208,15,34,216,19,23,215,19,50, + 209,19,50,208,19,58,220,26,37,208,38,54,184,84,191,89, + 185,89,212,26,71,208,20,71,240,6,0,17,21,151,11,145, + 11,215,16,39,209,16,39,168,6,212,16,47,244,22,0,18, + 21,151,27,145,27,151,31,145,31,160,20,167,25,161,25,211, + 17,43,136,6,216,33,39,140,3,143,11,137,11,144,68,151, + 73,145,73,209,8,30,220,8,24,208,25,45,168,116,175,121, + 169,121,184,36,191,43,185,43,212,8,70,224,29,34,136,4, + 212,8,26,224,11,17,128,77,248,240,33,5,9,18,240,2, + 3,13,21,220,20,23,151,75,145,75,160,4,167,9,161,9, + 208,20,42,240,6,0,13,18,248,244,5,0,20,28,242,0, + 1,13,21,216,16,20,216,12,17,240,5,1,13,21,254,240, + 22,0,30,35,136,4,213,8,26,250,115,74,0,0,0,193, + 51,29,69,60,0,194,17,65,10,69,11,0,195,27,65,39, + 69,60,0,197,11,2,69,57,3,197,14,27,69,42,2,197, + 41,1,69,57,3,197,42,9,69,54,5,197,51,2,69,57, + 3,197,53,1,69,54,5,197,54,3,69,57,3,197,57,3, + 69,60,0,197,60,9,70,5,3,99,1,0,0,0,0,0, + 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,110, + 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, + 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,171,1,0,0,0,0,0,0,53,0,1, + 0,116,5,0,0,0,0,0,0,0,0,124,0,171,1,0, + 0,0,0,0,0,99,2,100,1,100,1,100,1,171,2,0, + 0,0,0,0,0,1,0,83,0,35,0,49,0,115,1,119, + 2,1,0,89,0,1,0,1,0,121,1,120,3,89,0,119, + 1,41,2,122,191,82,101,116,117,114,110,32,97,32,110,101, + 119,32,109,111,100,117,108,101,32,111,98,106,101,99,116,44, + 32,108,111,97,100,101,100,32,98,121,32,116,104,101,32,115, + 112,101,99,39,115,32,108,111,97,100,101,114,46,10,10,32, + 32,32,32,84,104,101,32,109,111,100,117,108,101,32,105,115, + 32,110,111,116,32,97,100,100,101,100,32,116,111,32,105,116, + 115,32,112,97,114,101,110,116,46,10,10,32,32,32,32,73, + 102,32,97,32,109,111,100,117,108,101,32,105,115,32,97,108, + 114,101,97,100,121,32,105,110,32,115,121,115,46,109,111,100, + 117,108,101,115,44,32,116,104,97,116,32,101,120,105,115,116, + 105,110,103,32,109,111,100,117,108,101,32,103,101,116,115,10, + 32,32,32,32,99,108,111,98,98,101,114,101,100,46,10,10, + 32,32,32,32,78,41,3,114,142,0,0,0,114,26,0,0, + 0,114,33,1,0,0,169,1,114,199,0,0,0,115,1,0, + 0,0,32,114,7,0,0,0,114,197,0,0,0,114,197,0, + 0,0,188,3,0,0,115,45,0,0,0,128,0,244,18,0, + 10,28,152,68,159,73,153,73,211,9,38,241,0,1,5,36, + 220,15,29,152,100,211,15,35,247,3,1,5,36,247,0,1, + 5,36,242,0,1,5,36,250,115,8,0,0,0,150,11,43, + 3,171,5,52,7,99,0,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,0,0,0,0,243,164,0,0,0,151, + 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,90, + 4,101,5,100,10,100,4,132,1,171,0,0,0,0,0,0, + 0,90,6,101,7,100,5,132,0,171,0,0,0,0,0,0, + 0,90,8,101,7,100,6,132,0,171,0,0,0,0,0,0, + 0,90,9,101,5,101,10,100,7,132,0,171,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,90,11,101,5,101, + 10,100,8,132,0,171,0,0,0,0,0,0,0,171,0,0, + 0,0,0,0,0,90,12,101,5,101,10,100,9,132,0,171, + 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,90, + 13,2,0,101,5,101,14,171,1,0,0,0,0,0,0,90, + 15,121,3,41,11,218,15,66,117,105,108,116,105,110,73,109, + 112,111,114,116,101,114,122,144,77,101,116,97,32,112,97,116, + 104,32,105,109,112,111,114,116,32,102,111,114,32,98,117,105, + 108,116,45,105,110,32,109,111,100,117,108,101,115,46,10,10, + 32,32,32,32,65,108,108,32,109,101,116,104,111,100,115,32, + 97,114,101,32,101,105,116,104,101,114,32,99,108,97,115,115, + 32,111,114,32,115,116,97,116,105,99,32,109,101,116,104,111, + 100,115,32,116,111,32,97,118,111,105,100,32,116,104,101,32, + 110,101,101,100,32,116,111,10,32,32,32,32,105,110,115,116, + 97,110,116,105,97,116,101,32,116,104,101,32,99,108,97,115, + 115,46,10,10,32,32,32,32,122,8,98,117,105,108,116,45, + 105,110,78,99,4,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,94,0,0,0,151,0,116, + 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, + 1,0,0,0,0,0,0,114,24,116,5,0,0,0,0,0, + 0,0,0,124,1,124,0,124,0,106,6,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,171, + 3,0,0,0,0,0,0,83,0,121,0,41,2,78,114,4, + 1,0,0,41,4,114,151,0,0,0,218,10,105,115,95,98, + 117,105,108,116,105,110,114,194,0,0,0,114,255,0,0,0, + 41,4,218,3,99,108,115,114,180,0,0,0,218,4,112,97, + 116,104,218,6,116,97,114,103,101,116,115,4,0,0,0,32, + 32,32,32,114,7,0,0,0,218,9,102,105,110,100,95,115, + 112,101,99,122,25,66,117,105,108,116,105,110,73,109,112,111, + 114,116,101,114,46,102,105,110,100,95,115,112,101,99,214,3, + 0,0,115,36,0,0,0,128,0,228,11,15,143,63,137,63, + 152,56,212,11,36,220,19,35,160,72,168,99,184,35,191,43, + 185,43,212,19,70,208,12,70,224,19,23,114,22,0,0,0, 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,56,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,116,2,0,0,0,0,0,0,0,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,2,0,0,0,0,0,0,1,0, - 121,1,41,2,122,22,69,120,101,99,32,97,32,98,117,105, - 108,116,45,105,110,32,109,111,100,117,108,101,78,41,3,114, - 161,0,0,0,114,151,0,0,0,218,12,101,120,101,99,95, - 98,117,105,108,116,105,110,41,1,114,200,0,0,0,115,1, - 0,0,0,32,114,7,0,0,0,114,19,1,0,0,122,27, - 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46, - 101,120,101,99,95,109,111,100,117,108,101,229,3,0,0,115, - 20,0,0,0,128,0,244,6,0,9,34,164,36,215,34,51, - 209,34,51,176,86,213,8,60,114,22,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,243,4,0,0,0,151,0,121,1,41,2,122,57,82, - 101,116,117,114,110,32,78,111,110,101,32,97,115,32,98,117, - 105,108,116,45,105,110,32,109,111,100,117,108,101,115,32,100, - 111,32,110,111,116,32,104,97,118,101,32,99,111,100,101,32, - 111,98,106,101,99,116,115,46,78,114,31,0,0,0,169,2, - 114,40,1,0,0,114,180,0,0,0,115,2,0,0,0,32, - 32,114,7,0,0,0,218,8,103,101,116,95,99,111,100,101, - 122,24,66,117,105,108,116,105,110,73,109,112,111,114,116,101, - 114,46,103,101,116,95,99,111,100,101,234,3,0,0,243,7, - 0,0,0,128,0,240,8,0,16,20,114,22,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,243,4,0,0,0,151,0,121,1,41,2,122, - 56,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32, - 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115, - 32,100,111,32,110,111,116,32,104,97,118,101,32,115,111,117, - 114,99,101,32,99,111,100,101,46,78,114,31,0,0,0,114, - 49,1,0,0,115,2,0,0,0,32,32,114,7,0,0,0, - 218,10,103,101,116,95,115,111,117,114,99,101,122,26,66,117, - 105,108,116,105,110,73,109,112,111,114,116,101,114,46,103,101, - 116,95,115,111,117,114,99,101,240,3,0,0,114,51,1,0, - 0,114,22,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,243,4,0,0,0, - 151,0,121,1,41,2,122,52,82,101,116,117,114,110,32,70, - 97,108,115,101,32,97,115,32,98,117,105,108,116,45,105,110, - 32,109,111,100,117,108,101,115,32,97,114,101,32,110,101,118, - 101,114,32,112,97,99,107,97,103,101,115,46,70,114,31,0, + 0,3,0,0,0,243,182,0,0,0,151,0,124,0,106,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,116,2,0,0,0,0,0,0,0,0,106,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 118,1,114,36,116,7,0,0,0,0,0,0,0,0,124,0, + 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,155,2,100,1,157,2,124,0,106,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 172,2,171,2,0,0,0,0,0,0,130,1,116,9,0,0, + 0,0,0,0,0,0,116,10,0,0,0,0,0,0,0,0, + 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,0,171,2,0,0,0,0,0,0,83,0, + 41,3,122,24,67,114,101,97,116,101,32,97,32,98,117,105, + 108,116,45,105,110,32,109,111,100,117,108,101,114,176,0,0, + 0,114,25,0,0,0,41,7,114,26,0,0,0,114,24,0, + 0,0,114,177,0,0,0,114,178,0,0,0,114,161,0,0, + 0,114,151,0,0,0,218,14,99,114,101,97,116,101,95,98, + 117,105,108,116,105,110,114,35,1,0,0,115,1,0,0,0, + 32,114,7,0,0,0,114,18,1,0,0,122,29,66,117,105, + 108,116,105,110,73,109,112,111,114,116,101,114,46,99,114,101, + 97,116,101,95,109,111,100,117,108,101,221,3,0,0,115,75, + 0,0,0,128,0,240,6,0,12,16,143,57,137,57,156,67, + 215,28,52,209,28,52,209,11,52,220,18,29,160,20,167,25, + 161,25,160,13,208,45,70,208,30,71,216,35,39,167,57,161, + 57,244,3,1,19,46,240,0,1,13,46,228,15,40,172,20, + 215,41,60,209,41,60,184,100,211,15,67,208,8,67,114,22, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,243,56,0,0,0,151,0,116, + 1,0,0,0,0,0,0,0,0,116,2,0,0,0,0,0, + 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,0,171,2,0,0,0,0,0, + 0,1,0,121,1,41,2,122,22,69,120,101,99,32,97,32, + 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,78, + 41,3,114,161,0,0,0,114,151,0,0,0,218,12,101,120, + 101,99,95,98,117,105,108,116,105,110,41,1,114,200,0,0, + 0,115,1,0,0,0,32,114,7,0,0,0,114,19,1,0, + 0,122,27,66,117,105,108,116,105,110,73,109,112,111,114,116, + 101,114,46,101,120,101,99,95,109,111,100,117,108,101,229,3, + 0,0,115,20,0,0,0,128,0,244,6,0,9,34,164,36, + 215,34,51,209,34,51,176,86,213,8,60,114,22,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,243,4,0,0,0,151,0,121,1,41,2, + 122,57,82,101,116,117,114,110,32,78,111,110,101,32,97,115, + 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101, + 115,32,100,111,32,110,111,116,32,104,97,118,101,32,99,111, + 100,101,32,111,98,106,101,99,116,115,46,78,114,31,0,0, + 0,169,2,114,40,1,0,0,114,180,0,0,0,115,2,0, + 0,0,32,32,114,7,0,0,0,218,8,103,101,116,95,99, + 111,100,101,122,24,66,117,105,108,116,105,110,73,109,112,111, + 114,116,101,114,46,103,101,116,95,99,111,100,101,234,3,0, + 0,243,7,0,0,0,128,0,240,8,0,16,20,114,22,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,243,4,0,0,0,151,0,121,1, + 41,2,122,56,82,101,116,117,114,110,32,78,111,110,101,32, + 97,115,32,98,117,105,108,116,45,105,110,32,109,111,100,117, + 108,101,115,32,100,111,32,110,111,116,32,104,97,118,101,32, + 115,111,117,114,99,101,32,99,111,100,101,46,78,114,31,0, 0,0,114,49,1,0,0,115,2,0,0,0,32,32,114,7, - 0,0,0,114,220,0,0,0,122,26,66,117,105,108,116,105, - 110,73,109,112,111,114,116,101,114,46,105,115,95,112,97,99, - 107,97,103,101,246,3,0,0,115,7,0,0,0,128,0,240, - 8,0,16,21,114,22,0,0,0,169,2,78,78,41,16,114, - 11,0,0,0,114,10,0,0,0,114,3,0,0,0,114,12, - 0,0,0,114,255,0,0,0,218,11,99,108,97,115,115,109, - 101,116,104,111,100,114,43,1,0,0,114,58,0,0,0,114, - 18,1,0,0,114,19,1,0,0,114,184,0,0,0,114,50, - 1,0,0,114,53,1,0,0,114,220,0,0,0,114,201,0, - 0,0,114,28,1,0,0,114,31,0,0,0,114,22,0,0, - 0,114,7,0,0,0,114,37,1,0,0,114,37,1,0,0, - 203,3,0,0,115,171,0,0,0,132,0,241,4,5,5,8, - 240,14,0,15,25,128,71,224,5,16,242,2,4,5,24,243, - 3,0,6,17,240,2,4,5,24,240,12,0,6,18,241,2, - 5,5,68,1,243,3,0,6,18,240,2,5,5,68,1,240, - 14,0,6,18,241,2,2,5,61,243,3,0,6,18,240,2, - 2,5,61,240,8,0,6,17,216,5,22,241,2,2,5,20, - 243,3,0,6,23,243,3,0,6,17,240,4,2,5,20,240, - 8,0,6,17,216,5,22,241,2,2,5,20,243,3,0,6, - 23,243,3,0,6,17,240,4,2,5,20,240,8,0,6,17, - 216,5,22,241,2,2,5,21,243,3,0,6,23,243,3,0, - 6,17,240,4,2,5,21,241,8,0,19,30,208,30,47,211, - 18,48,129,75,114,22,0,0,0,114,37,1,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0, - 0,0,0,243,198,0,0,0,151,0,101,0,90,1,100,0, - 90,2,100,1,90,3,100,2,90,4,101,5,100,3,132,0, - 171,0,0,0,0,0,0,0,90,6,101,5,100,13,100,5, - 132,1,171,0,0,0,0,0,0,0,90,7,101,5,100,14, - 100,6,132,1,171,0,0,0,0,0,0,0,90,8,101,9, - 100,7,132,0,171,0,0,0,0,0,0,0,90,10,101,9, - 100,8,132,0,171,0,0,0,0,0,0,0,90,11,101,5, - 100,9,132,0,171,0,0,0,0,0,0,0,90,12,101,5, - 101,13,100,10,132,0,171,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,90,14,101,5,101,13,100,11,132,0, - 171,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 90,15,101,5,101,13,100,12,132,0,171,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,90,16,121,4,41,15, - 218,14,70,114,111,122,101,110,73,109,112,111,114,116,101,114, - 122,142,77,101,116,97,32,112,97,116,104,32,105,109,112,111, - 114,116,32,102,111,114,32,102,114,111,122,101,110,32,109,111, - 100,117,108,101,115,46,10,10,32,32,32,32,65,108,108,32, - 109,101,116,104,111,100,115,32,97,114,101,32,101,105,116,104, - 101,114,32,99,108,97,115,115,32,111,114,32,115,116,97,116, - 105,99,32,109,101,116,104,111,100,115,32,116,111,32,97,118, - 111,105,100,32,116,104,101,32,110,101,101,100,32,116,111,10, - 32,32,32,32,105,110,115,116,97,110,116,105,97,116,101,32, - 116,104,101,32,99,108,97,115,115,46,10,10,32,32,32,32, - 218,6,102,114,111,122,101,110,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,243,18,6, - 0,0,151,0,124,1,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,2,124,2,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,125,3,124,3,144,1,128,88,116,5,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,106,7, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,1,100,0,171,2,0,0,0,0,0,0,125,4, - 124,4,115,7,74,0,100,2,171,0,0,0,0,0,0,0, - 130,1,116,9,0,0,0,0,0,0,0,0,124,1,100,3, - 171,2,0,0,0,0,0,0,125,5,116,10,0,0,0,0, - 0,0,0,0,106,13,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,106,14,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,124,5,107,40,0,0,115,7,74,0, - 124,5,171,0,0,0,0,0,0,0,130,1,124,0,106,17, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,4,124,2,106,18,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,5,171,3,0,0, - 0,0,0,0,92,2,0,0,125,6,125,7,2,0,116,21, - 0,0,0,0,0,0,0,0,116,22,0,0,0,0,0,0, - 0,0,106,24,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,124,6, - 124,4,172,4,171,2,0,0,0,0,0,0,124,2,95,1, - 0,0,0,0,0,0,0,0,124,2,106,26,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,8, - 124,5,114,43,124,8,103,0,107,40,0,0,115,7,74,0, - 124,8,171,0,0,0,0,0,0,0,130,1,124,7,114,38, - 124,2,106,26,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,106,29,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,5,124,7,171,2, - 0,0,0,0,0,0,1,0,110,9,124,8,129,7,74,0, - 124,8,171,0,0,0,0,0,0,0,130,1,116,9,0,0, - 0,0,0,0,0,0,124,1,100,6,171,2,0,0,0,0, - 0,0,114,17,74,0,124,1,106,30,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,130,1,124,6,114,8,9,0,124,6,124,1, - 95,15,0,0,0,0,0,0,0,0,124,5,144,1,114,195, - 124,1,106,34,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,8,107,55,0,0,144,1,114,179, - 124,1,106,34,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,103,0,107,40,0,0,115,17,74,0, - 124,1,106,34,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,130,1, - 124,1,106,34,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,106,37,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,8,171,1,0,0, - 0,0,0,0,1,0,144,1,110,118,124,2,106,26,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,8,124,8,100,0,117,1,125,5,116,39,0,0,0,0, - 0,0,0,0,116,5,0,0,0,0,0,0,0,0,124,3, - 171,1,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 100,7,100,8,103,2,107,40,0,0,115,7,74,0,124,3, - 171,0,0,0,0,0,0,0,130,1,124,3,106,40,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 114,109,124,0,106,17,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,3,106,40,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 106,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,5,171,3,0,0,0,0,0,0,92,2, - 0,0,125,9,125,7,124,3,106,42,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,9,107,40, - 0,0,115,19,74,0,124,3,106,42,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,9,102,2, - 171,0,0,0,0,0,0,0,130,1,124,7,114,15,124,8, - 124,7,103,1,107,40,0,0,115,72,74,0,124,8,124,7, - 102,2,171,0,0,0,0,0,0,0,130,1,124,8,124,5, - 114,2,103,0,110,1,100,0,107,40,0,0,115,54,74,0, - 124,8,171,0,0,0,0,0,0,0,130,1,100,0,125,9, - 124,3,106,42,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,129,17,74,0,124,3,106,42,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,130,1,124,8,124,5,114,2, - 103,0,110,1,100,0,107,40,0,0,115,7,74,0,124,8, - 171,0,0,0,0,0,0,0,130,1,124,9,114,48,116,9, - 0,0,0,0,0,0,0,0,124,1,100,6,171,2,0,0, - 0,0,0,0,115,2,74,0,130,1,124,1,106,30,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,9,107,40,0,0,115,48,74,0,124,1,106,30,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,9,102,2,171,0,0,0,0,0,0,0,130,1,116,9, - 0,0,0,0,0,0,0,0,124,1,100,6,171,2,0,0, - 0,0,0,0,114,17,74,0,124,1,106,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,130,1,124,5,114,48,116,9,0,0, - 0,0,0,0,0,0,124,1,100,3,171,2,0,0,0,0, - 0,0,115,2,74,0,130,1,124,1,106,34,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,8, - 107,40,0,0,115,48,74,0,124,1,106,34,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,8, - 102,2,171,0,0,0,0,0,0,0,130,1,116,9,0,0, - 0,0,0,0,0,0,124,1,100,3,171,2,0,0,0,0, - 0,0,114,17,74,0,124,1,106,34,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,130,1,124,2,106,44,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,114,2,74,0, - 130,1,121,0,35,0,116,32,0,0,0,0,0,0,0,0, - 36,0,114,4,1,0,89,0,144,1,140,225,119,0,120,3, - 89,0,119,1,41,9,78,218,12,95,95,111,114,105,103,110, - 97,109,101,95,95,122,39,115,101,101,32,80,121,73,109,112, - 111,114,116,95,73,109,112,111,114,116,70,114,111,122,101,110, - 77,111,100,117,108,101,79,98,106,101,99,116,40,41,114,7, - 1,0,0,169,2,114,214,0,0,0,218,8,111,114,105,103, - 110,97,109,101,114,125,0,0,0,114,212,0,0,0,114,214, - 0,0,0,114,63,1,0,0,41,23,114,204,0,0,0,114, - 219,0,0,0,218,4,118,97,114,115,114,68,0,0,0,114, - 13,0,0,0,114,151,0,0,0,218,17,105,115,95,102,114, - 111,122,101,110,95,112,97,99,107,97,103,101,114,11,0,0, - 0,218,17,95,114,101,115,111,108,118,101,95,102,105,108,101, - 110,97,109,101,114,26,0,0,0,114,5,0,0,0,114,24, - 0,0,0,218,14,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,114,223,0,0,0,218,6,105,110,115,101,114,116, - 114,212,0,0,0,114,4,0,0,0,114,7,1,0,0,218, - 6,101,120,116,101,110,100,218,6,115,111,114,116,101,100,114, - 63,1,0,0,114,214,0,0,0,114,233,0,0,0,41,10, - 114,40,1,0,0,114,200,0,0,0,114,199,0,0,0,218, - 5,115,116,97,116,101,114,63,1,0,0,218,5,105,115,112, - 107,103,114,214,0,0,0,218,6,112,107,103,100,105,114,114, - 7,1,0,0,114,212,0,0,0,115,10,0,0,0,32,32, - 32,32,32,32,32,32,32,32,114,7,0,0,0,218,14,95, - 102,105,120,95,117,112,95,109,111,100,117,108,101,122,29,70, - 114,111,122,101,110,73,109,112,111,114,116,101,114,46,95,102, - 105,120,95,117,112,95,109,111,100,117,108,101,10,4,0,0, - 115,212,2,0,0,128,0,224,15,21,143,127,137,127,136,4, - 216,16,20,215,16,33,209,16,33,136,5,216,11,16,137,61, - 244,8,0,24,28,152,70,147,124,215,23,39,209,23,39,168, - 14,184,4,211,23,61,136,72,217,19,27,208,12,70,208,29, - 70,212,12,70,220,20,27,152,70,160,74,211,20,47,136,69, - 220,19,23,215,19,41,209,19,41,168,38,175,47,169,47,211, - 19,58,184,101,210,19,67,208,12,74,192,85,212,12,74,216, - 31,34,215,31,52,209,31,52,176,88,184,116,191,121,185,121, - 200,37,211,31,80,209,12,28,136,72,144,102,216,32,56,164, - 4,164,83,215,37,55,209,37,55,211,32,56,216,25,33,216, - 25,33,244,5,3,33,14,136,68,212,12,29,240,8,0,24, - 28,215,23,54,209,23,54,136,72,217,15,20,216,23,31,160, - 50,146,126,208,16,47,160,120,212,16,47,217,19,25,216,20, - 24,215,20,51,209,20,51,215,20,58,209,20,58,184,49,184, - 102,213,20,69,224,23,31,208,23,39,208,16,49,168,24,212, - 16,49,244,6,0,24,31,152,118,160,122,212,23,50,208,12, - 67,176,70,183,79,177,79,212,12,67,217,15,23,240,2,3, + 0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,122, + 26,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114, + 46,103,101,116,95,115,111,117,114,99,101,240,3,0,0,114, + 51,1,0,0,114,22,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,243,4, + 0,0,0,151,0,121,1,41,2,122,52,82,101,116,117,114, + 110,32,70,97,108,115,101,32,97,115,32,98,117,105,108,116, + 45,105,110,32,109,111,100,117,108,101,115,32,97,114,101,32, + 110,101,118,101,114,32,112,97,99,107,97,103,101,115,46,70, + 114,31,0,0,0,114,49,1,0,0,115,2,0,0,0,32, + 32,114,7,0,0,0,114,220,0,0,0,122,26,66,117,105, + 108,116,105,110,73,109,112,111,114,116,101,114,46,105,115,95, + 112,97,99,107,97,103,101,246,3,0,0,115,7,0,0,0, + 128,0,240,8,0,16,21,114,22,0,0,0,169,2,78,78, + 41,16,114,11,0,0,0,114,10,0,0,0,114,3,0,0, + 0,114,12,0,0,0,114,255,0,0,0,218,11,99,108,97, + 115,115,109,101,116,104,111,100,114,43,1,0,0,114,58,0, + 0,0,114,18,1,0,0,114,19,1,0,0,114,184,0,0, + 0,114,50,1,0,0,114,53,1,0,0,114,220,0,0,0, + 114,201,0,0,0,114,28,1,0,0,114,31,0,0,0,114, + 22,0,0,0,114,7,0,0,0,114,37,1,0,0,114,37, + 1,0,0,203,3,0,0,115,171,0,0,0,132,0,241,4, + 5,5,8,240,14,0,15,25,128,71,224,5,16,242,2,4, + 5,24,243,3,0,6,17,240,2,4,5,24,240,12,0,6, + 18,241,2,5,5,68,1,243,3,0,6,18,240,2,5,5, + 68,1,240,14,0,6,18,241,2,2,5,61,243,3,0,6, + 18,240,2,2,5,61,240,8,0,6,17,216,5,22,241,2, + 2,5,20,243,3,0,6,23,243,3,0,6,17,240,4,2, + 5,20,240,8,0,6,17,216,5,22,241,2,2,5,20,243, + 3,0,6,23,243,3,0,6,17,240,4,2,5,20,240,8, + 0,6,17,216,5,22,241,2,2,5,21,243,3,0,6,23, + 243,3,0,6,17,240,4,2,5,21,241,8,0,19,30,208, + 30,47,211,18,48,129,75,114,22,0,0,0,114,37,1,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,0,0,0,0,243,198,0,0,0,151,0,101,0,90, + 1,100,0,90,2,100,1,90,3,100,2,90,4,101,5,100, + 3,132,0,171,0,0,0,0,0,0,0,90,6,101,5,100, + 13,100,5,132,1,171,0,0,0,0,0,0,0,90,7,101, + 5,100,14,100,6,132,1,171,0,0,0,0,0,0,0,90, + 8,101,9,100,7,132,0,171,0,0,0,0,0,0,0,90, + 10,101,9,100,8,132,0,171,0,0,0,0,0,0,0,90, + 11,101,5,100,9,132,0,171,0,0,0,0,0,0,0,90, + 12,101,5,101,13,100,10,132,0,171,0,0,0,0,0,0, + 0,171,0,0,0,0,0,0,0,90,14,101,5,101,13,100, + 11,132,0,171,0,0,0,0,0,0,0,171,0,0,0,0, + 0,0,0,90,15,101,5,101,13,100,12,132,0,171,0,0, + 0,0,0,0,0,171,0,0,0,0,0,0,0,90,16,121, + 4,41,15,218,14,70,114,111,122,101,110,73,109,112,111,114, + 116,101,114,122,142,77,101,116,97,32,112,97,116,104,32,105, + 109,112,111,114,116,32,102,111,114,32,102,114,111,122,101,110, + 32,109,111,100,117,108,101,115,46,10,10,32,32,32,32,65, + 108,108,32,109,101,116,104,111,100,115,32,97,114,101,32,101, + 105,116,104,101,114,32,99,108,97,115,115,32,111,114,32,115, + 116,97,116,105,99,32,109,101,116,104,111,100,115,32,116,111, + 32,97,118,111,105,100,32,116,104,101,32,110,101,101,100,32, + 116,111,10,32,32,32,32,105,110,115,116,97,110,116,105,97, + 116,101,32,116,104,101,32,99,108,97,115,115,46,10,10,32, + 32,32,32,218,6,102,114,111,122,101,110,99,2,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 243,18,6,0,0,151,0,124,1,106,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,125,2,124, + 2,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,125,3,124,3,144,1,128,88,116,5,0, + 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, + 0,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,100,1,100,0,171,2,0,0,0,0,0, + 0,125,4,124,4,115,7,74,0,100,2,171,0,0,0,0, + 0,0,0,130,1,116,9,0,0,0,0,0,0,0,0,124, + 1,100,3,171,2,0,0,0,0,0,0,125,5,116,10,0, + 0,0,0,0,0,0,0,106,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,1,106,14,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,171,1,0,0,0,0,0,0,124,5,107,40,0,0,115, + 7,74,0,124,5,171,0,0,0,0,0,0,0,130,1,124, + 0,106,17,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,4,124,2,106,18,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,5,171, + 3,0,0,0,0,0,0,92,2,0,0,125,6,125,7,2, + 0,116,21,0,0,0,0,0,0,0,0,116,22,0,0,0, + 0,0,0,0,0,106,24,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, + 0,124,6,124,4,172,4,171,2,0,0,0,0,0,0,124, + 2,95,1,0,0,0,0,0,0,0,0,124,2,106,26,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,125,8,124,5,114,43,124,8,103,0,107,40,0,0,115, + 7,74,0,124,8,171,0,0,0,0,0,0,0,130,1,124, + 7,114,38,124,2,106,26,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,106,29,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,5,124, + 7,171,2,0,0,0,0,0,0,1,0,110,9,124,8,129, + 7,74,0,124,8,171,0,0,0,0,0,0,0,130,1,116, + 9,0,0,0,0,0,0,0,0,124,1,100,6,171,2,0, + 0,0,0,0,0,114,17,74,0,124,1,106,30,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, + 0,0,0,0,0,0,0,130,1,124,6,114,8,9,0,124, + 6,124,1,95,15,0,0,0,0,0,0,0,0,124,5,144, + 1,114,195,124,1,106,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,8,107,55,0,0,144, + 1,114,179,124,1,106,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,103,0,107,40,0,0,115, + 17,74,0,124,1,106,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,130,1,124,1,106,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,106,37,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,8,171, + 1,0,0,0,0,0,0,1,0,144,1,110,118,124,2,106, + 26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,125,8,124,8,100,0,117,1,125,5,116,39,0, + 0,0,0,0,0,0,0,116,5,0,0,0,0,0,0,0, + 0,124,3,171,1,0,0,0,0,0,0,171,1,0,0,0, + 0,0,0,100,7,100,8,103,2,107,40,0,0,115,7,74, + 0,124,3,171,0,0,0,0,0,0,0,130,1,124,3,106, + 40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,114,109,124,0,106,17,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,3,106,40,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,2,106,18,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,5,171,3,0,0,0,0,0, + 0,92,2,0,0,125,9,125,7,124,3,106,42,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 9,107,40,0,0,115,19,74,0,124,3,106,42,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 9,102,2,171,0,0,0,0,0,0,0,130,1,124,7,114, + 15,124,8,124,7,103,1,107,40,0,0,115,72,74,0,124, + 8,124,7,102,2,171,0,0,0,0,0,0,0,130,1,124, + 8,124,5,114,2,103,0,110,1,100,0,107,40,0,0,115, + 54,74,0,124,8,171,0,0,0,0,0,0,0,130,1,100, + 0,125,9,124,3,106,42,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,129,17,74,0,124,3,106, + 42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,130,1,124,8,124, + 5,114,2,103,0,110,1,100,0,107,40,0,0,115,7,74, + 0,124,8,171,0,0,0,0,0,0,0,130,1,124,9,114, + 48,116,9,0,0,0,0,0,0,0,0,124,1,100,6,171, + 2,0,0,0,0,0,0,115,2,74,0,130,1,124,1,106, + 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,9,107,40,0,0,115,48,74,0,124,1,106, + 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,9,102,2,171,0,0,0,0,0,0,0,130, + 1,116,9,0,0,0,0,0,0,0,0,124,1,100,6,171, + 2,0,0,0,0,0,0,114,17,74,0,124,1,106,30,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,171,0,0,0,0,0,0,0,130,1,124,5,114,48,116, + 9,0,0,0,0,0,0,0,0,124,1,100,3,171,2,0, + 0,0,0,0,0,115,2,74,0,130,1,124,1,106,34,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,8,107,40,0,0,115,48,74,0,124,1,106,34,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,8,102,2,171,0,0,0,0,0,0,0,130,1,116, + 9,0,0,0,0,0,0,0,0,124,1,100,3,171,2,0, + 0,0,0,0,0,114,17,74,0,124,1,106,34,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, + 0,0,0,0,0,0,0,130,1,124,2,106,44,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114, + 2,74,0,130,1,121,0,35,0,116,32,0,0,0,0,0, + 0,0,0,36,0,114,4,1,0,89,0,144,1,140,225,119, + 0,120,3,89,0,119,1,41,9,78,218,12,95,95,111,114, + 105,103,110,97,109,101,95,95,122,39,115,101,101,32,80,121, + 73,109,112,111,114,116,95,73,109,112,111,114,116,70,114,111, + 122,101,110,77,111,100,117,108,101,79,98,106,101,99,116,40, + 41,114,7,1,0,0,169,2,114,214,0,0,0,218,8,111, + 114,105,103,110,97,109,101,114,125,0,0,0,114,212,0,0, + 0,114,214,0,0,0,114,63,1,0,0,41,23,114,204,0, + 0,0,114,219,0,0,0,218,4,118,97,114,115,114,68,0, + 0,0,114,13,0,0,0,114,151,0,0,0,218,17,105,115, + 95,102,114,111,122,101,110,95,112,97,99,107,97,103,101,114, + 11,0,0,0,218,17,95,114,101,115,111,108,118,101,95,102, + 105,108,101,110,97,109,101,114,26,0,0,0,114,5,0,0, + 0,114,24,0,0,0,218,14,105,109,112,108,101,109,101,110, + 116,97,116,105,111,110,114,223,0,0,0,218,6,105,110,115, + 101,114,116,114,212,0,0,0,114,4,0,0,0,114,7,1, + 0,0,218,6,101,120,116,101,110,100,218,6,115,111,114,116, + 101,100,114,63,1,0,0,114,214,0,0,0,114,233,0,0, + 0,41,10,114,40,1,0,0,114,200,0,0,0,114,199,0, + 0,0,218,5,115,116,97,116,101,114,63,1,0,0,218,5, + 105,115,112,107,103,114,214,0,0,0,218,6,112,107,103,100, + 105,114,114,7,1,0,0,114,212,0,0,0,115,10,0,0, + 0,32,32,32,32,32,32,32,32,32,32,114,7,0,0,0, + 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, + 122,29,70,114,111,122,101,110,73,109,112,111,114,116,101,114, + 46,95,102,105,120,95,117,112,95,109,111,100,117,108,101,10, + 4,0,0,115,11,3,0,0,128,0,224,15,21,143,127,137, + 127,136,4,216,16,20,215,16,33,209,16,33,136,5,216,11, + 16,137,61,244,8,0,24,28,152,70,147,124,215,23,39,209, + 23,39,168,14,184,4,211,23,61,136,72,217,19,27,208,12, + 70,208,29,70,211,12,70,144,56,220,20,27,152,70,160,74, + 211,20,47,136,69,220,19,23,215,19,41,209,19,41,168,38, + 175,47,169,47,211,19,58,184,101,210,19,67,208,12,74,192, + 85,211,12,74,208,19,67,216,31,34,215,31,52,209,31,52, + 176,88,184,116,191,121,185,121,200,37,211,31,80,209,12,28, + 136,72,144,102,216,32,56,164,4,164,83,215,37,55,209,37, + 55,211,32,56,216,25,33,216,25,33,244,5,3,33,14,136, + 68,212,12,29,240,8,0,24,28,215,23,54,209,23,54,136, + 72,217,15,20,216,23,31,160,50,146,126,208,16,47,160,120, + 211,16,47,144,126,217,19,25,216,20,24,215,20,51,209,20, + 51,215,20,58,209,20,58,184,49,184,102,213,20,69,224,23, + 31,208,23,39,208,16,49,168,24,211,16,49,208,23,39,244, + 6,0,24,31,152,118,160,122,212,23,50,208,12,67,176,70, + 183,79,177,79,211,12,67,208,19,50,217,15,23,240,2,3, 17,25,216,38,46,144,70,148,79,242,6,0,16,21,216,19, 25,151,63,145,63,160,104,211,19,46,216,27,33,159,63,153, - 63,168,98,210,27,48,208,20,65,176,38,183,47,177,47,212, - 20,65,216,20,26,151,79,145,79,215,20,42,209,20,42,168, - 56,214,20,52,240,8,0,24,28,215,23,54,209,23,54,136, - 72,216,20,28,160,68,208,20,40,136,69,228,19,25,156,36, - 152,117,155,43,211,19,38,168,58,176,122,208,42,66,210,19, - 66,208,12,73,192,69,212,12,73,216,15,20,143,126,138,126, - 240,6,0,22,25,215,21,42,209,21,42,168,53,175,62,169, - 62,184,52,191,57,185,57,192,101,211,21,76,241,3,1,17, - 19,144,24,152,54,224,23,28,151,126,145,126,168,24,210,23, - 49,208,16,77,176,69,183,78,177,78,192,72,208,51,77,212, - 16,77,217,19,25,216,27,35,168,6,160,120,210,27,47,208, - 20,67,176,40,184,70,208,49,67,212,20,67,224,27,35,169, - 101,169,2,184,20,210,27,62,208,20,72,192,8,212,20,72, - 224,27,31,144,8,216,23,28,151,126,145,126,208,23,45,208, - 16,61,168,117,175,126,169,126,212,16,61,216,23,31,169,37, - 161,66,176,84,210,23,58,208,16,68,184,72,212,16,68,225, - 15,23,220,23,30,152,118,160,122,212,23,50,209,16,50,216, - 23,29,151,127,145,127,168,40,210,23,50,208,16,79,176,86, - 183,95,177,95,192,104,208,52,79,212,16,79,228,27,34,160, - 54,168,58,212,27,54,208,16,71,184,6,191,15,185,15,212, - 16,71,217,15,20,220,23,30,152,118,160,122,212,23,50,209, - 16,50,216,23,29,151,127,145,127,168,40,210,23,50,208,16, - 79,176,86,183,95,177,95,192,104,208,52,79,212,16,79,228, - 27,34,160,54,168,58,212,27,54,208,16,71,184,6,191,15, - 185,15,212,16,71,216,19,23,215,19,36,210,19,36,209,8, - 36,208,19,36,248,244,75,1,0,24,38,242,0,1,17,25, - 218,20,24,240,3,1,17,25,250,115,18,0,0,0,196,29, - 7,75,57,0,203,57,9,76,6,3,204,5,1,76,6,3, - 78,99,4,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,243,140,1,0,0,151,0,124,1,114, - 17,116,1,0,0,0,0,0,0,0,0,116,2,0,0,0, - 0,0,0,0,0,100,1,100,0,171,3,0,0,0,0,0, - 0,115,1,121,2,9,0,124,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,4,124, - 1,124,2,107,55,0,0,114,32,124,1,106,11,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 6,171,1,0,0,0,0,0,0,114,13,124,1,100,7,100, - 0,26,0,125,1,124,3,115,8,124,1,155,0,100,8,157, - 2,125,1,110,2,100,9,125,3,124,1,106,13,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 10,124,4,171,2,0,0,0,0,0,0,125,5,124,3,114, - 33,116,2,0,0,0,0,0,0,0,0,106,14,0,0,0, + 63,168,98,210,27,48,208,20,65,176,38,183,47,177,47,211, + 20,65,208,27,48,216,20,26,151,79,145,79,215,20,42,209, + 20,42,168,56,214,20,52,240,8,0,24,28,215,23,54,209, + 23,54,136,72,216,20,28,160,68,208,20,40,136,69,228,19, + 25,156,36,152,117,155,43,211,19,38,168,58,176,122,208,42, + 66,210,19,66,208,12,73,192,69,211,12,73,208,19,66,216, + 15,20,143,126,138,126,240,6,0,22,25,215,21,42,209,21, + 42,168,53,175,62,169,62,184,52,191,57,185,57,192,101,211, + 21,76,241,3,1,17,19,144,24,152,54,224,23,28,151,126, + 145,126,168,24,210,23,49,208,16,77,176,69,183,78,177,78, + 192,72,208,51,77,211,16,77,208,23,49,217,19,25,216,27, + 35,168,6,160,120,210,27,47,208,20,67,176,40,184,70,208, + 49,67,211,20,67,208,27,47,224,27,35,169,101,169,2,184, + 20,210,27,62,208,20,72,192,8,211,20,72,208,27,62,224, + 27,31,144,8,216,23,28,151,126,145,126,208,23,45,208,16, + 61,168,117,175,126,169,126,211,16,61,208,23,45,216,23,31, + 169,37,161,66,176,84,210,23,58,208,16,68,184,72,211,16, + 68,208,23,58,225,15,23,220,23,30,152,118,160,122,212,23, + 50,208,16,50,208,23,50,216,23,29,151,127,145,127,168,40, + 210,23,50,208,16,79,176,86,183,95,177,95,192,104,208,52, + 79,211,16,79,208,23,50,228,27,34,160,54,168,58,212,27, + 54,208,16,71,184,6,191,15,185,15,211,16,71,208,23,54, + 217,15,20,220,23,30,152,118,160,122,212,23,50,208,16,50, + 208,23,50,216,23,29,151,127,145,127,168,40,210,23,50,208, + 16,79,176,86,183,95,177,95,192,104,208,52,79,211,16,79, + 208,23,50,228,27,34,160,54,168,58,212,27,54,208,16,71, + 184,6,191,15,185,15,211,16,71,208,23,54,216,19,23,215, + 19,36,210,19,36,208,8,36,208,15,36,208,19,36,248,244, + 75,1,0,24,38,242,0,1,17,25,218,20,24,240,3,1, + 17,25,250,115,18,0,0,0,196,29,7,75,57,0,203,57, + 9,76,6,3,204,5,1,76,6,3,78,99,4,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 243,140,1,0,0,151,0,124,1,114,17,116,1,0,0,0, + 0,0,0,0,0,116,2,0,0,0,0,0,0,0,0,100, + 1,100,0,171,3,0,0,0,0,0,0,115,1,121,2,9, + 0,124,0,106,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,125,4,124,1,124,2,107,55,0, + 0,114,32,124,1,106,11,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,100,6,171,1,0,0,0, + 0,0,0,114,13,124,1,100,7,100,0,26,0,125,1,124, + 3,115,8,124,1,155,0,100,8,157,2,125,1,110,2,100, + 9,125,3,124,1,106,13,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,100,10,124,4,171,2,0, + 0,0,0,0,0,125,5,124,3,114,33,116,2,0,0,0, + 0,0,0,0,0,106,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,155,0,124,4,155,0,124, + 5,155,0,157,3,125,6,124,6,155,0,124,4,155,0,100, + 11,157,3,125,7,124,7,124,6,102,2,83,0,100,0,125, + 6,116,2,0,0,0,0,0,0,0,0,106,14,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,155, - 0,124,4,155,0,124,5,155,0,157,3,125,6,124,6,155, - 0,124,4,155,0,100,11,157,3,125,7,124,7,124,6,102, - 2,83,0,100,0,125,6,116,2,0,0,0,0,0,0,0, - 0,106,14,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,155,0,124,4,155,0,124,5,155,0,100, - 12,157,4,125,7,124,7,124,6,102,2,83,0,35,0,116, - 6,0,0,0,0,0,0,0,0,36,0,114,33,1,0,116, - 2,0,0,0,0,0,0,0,0,106,8,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,3,107, - 40,0,0,114,2,100,4,110,1,100,5,120,1,125,4,124, - 0,95,2,0,0,0,0,0,0,0,0,89,0,140,160,119, - 0,120,3,89,0,119,1,41,13,78,218,11,95,115,116,100, - 108,105,98,95,100,105,114,114,55,1,0,0,218,5,119,105, - 110,51,50,250,1,92,250,1,47,250,1,60,114,138,0,0, - 0,122,9,46,95,95,105,110,105,116,95,95,70,114,244,0, - 0,0,122,11,95,95,105,110,105,116,95,95,46,112,121,122, - 3,46,112,121,41,8,114,15,0,0,0,114,24,0,0,0, - 218,4,95,83,69,80,114,4,0,0,0,218,8,112,108,97, - 116,102,111,114,109,114,168,0,0,0,114,20,0,0,0,114, - 76,1,0,0,41,8,114,40,1,0,0,114,180,0,0,0, - 218,5,97,108,105,97,115,114,72,1,0,0,218,3,115,101, - 112,218,7,114,101,108,102,105,108,101,114,73,1,0,0,114, - 214,0,0,0,115,8,0,0,0,32,32,32,32,32,32,32, - 32,114,7,0,0,0,114,66,1,0,0,122,32,70,114,111, - 122,101,110,73,109,112,111,114,116,101,114,46,95,114,101,115, - 111,108,118,101,95,102,105,108,101,110,97,109,101,79,4,0, - 0,115,249,0,0,0,128,0,225,15,23,156,119,164,115,168, - 77,184,52,212,31,64,216,19,29,240,2,3,9,70,1,216, - 18,21,151,40,145,40,136,67,240,8,0,12,20,144,117,210, - 11,28,216,15,23,215,15,34,209,15,34,160,51,212,15,39, - 216,27,35,160,65,160,66,152,60,144,8,217,23,28,216,34, - 42,160,26,168,57,208,31,53,145,72,224,24,29,144,5,216, - 18,26,215,18,34,209,18,34,160,51,168,3,211,18,44,136, - 7,217,11,16,220,24,27,159,15,153,15,208,23,40,168,19, - 168,5,168,103,168,89,208,21,55,136,70,216,26,32,152,24, - 160,35,160,21,160,107,208,23,50,136,72,240,8,0,16,24, - 152,22,208,15,31,208,8,31,240,5,0,22,26,136,70,220, - 26,29,159,47,153,47,208,25,42,168,51,168,37,176,7,168, - 121,184,3,208,23,60,136,72,216,15,23,152,22,208,15,31, - 208,8,31,248,244,35,0,16,30,242,0,1,9,70,1,220, - 37,40,167,92,161,92,176,87,210,37,60,153,84,192,35,208, - 12,69,136,67,144,35,150,40,240,3,1,9,70,1,250,115, - 17,0,0,0,150,12,66,25,0,194,25,39,67,3,3,195, - 2,1,67,3,3,99,4,0,0,0,0,0,0,0,0,0, - 0,0,6,0,0,0,3,0,0,0,243,50,1,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,116,2,0,0,0, - 0,0,0,0,0,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,2,0,0,0, - 0,0,0,125,4,124,4,128,1,121,0,124,4,92,3,0, - 0,125,5,125,6,125,7,116,7,0,0,0,0,0,0,0, - 0,124,1,124,0,124,0,106,8,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,6,172,1,171, - 4,0,0,0,0,0,0,125,8,124,0,106,11,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 7,124,1,124,6,171,3,0,0,0,0,0,0,92,2,0, - 0,125,9,125,10,2,0,116,13,0,0,0,0,0,0,0, - 0,116,14,0,0,0,0,0,0,0,0,106,16,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,124,9,124,7,172,2,171,2,0, - 0,0,0,0,0,124,8,95,9,0,0,0,0,0,0,0, - 0,124,10,114,28,124,8,106,20,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,23,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 3,124,10,171,2,0,0,0,0,0,0,1,0,124,8,83, - 0,41,4,78,114,253,0,0,0,114,62,1,0,0,114,125, - 0,0,0,41,12,114,161,0,0,0,114,151,0,0,0,218, - 11,102,105,110,100,95,102,114,111,122,101,110,114,194,0,0, - 0,114,255,0,0,0,114,66,1,0,0,114,5,0,0,0, - 114,24,0,0,0,114,67,1,0,0,114,219,0,0,0,114, - 223,0,0,0,114,68,1,0,0,41,11,114,40,1,0,0, - 114,180,0,0,0,114,41,1,0,0,114,42,1,0,0,218, - 4,105,110,102,111,218,1,95,114,72,1,0,0,114,63,1, - 0,0,114,199,0,0,0,114,214,0,0,0,114,73,1,0, - 0,115,11,0,0,0,32,32,32,32,32,32,32,32,32,32, - 32,114,7,0,0,0,114,43,1,0,0,122,24,70,114,111, - 122,101,110,73,109,112,111,114,116,101,114,46,102,105,110,100, - 95,115,112,101,99,104,4,0,0,115,157,0,0,0,128,0, - 228,15,40,172,20,215,41,57,209,41,57,184,56,211,15,68, - 136,4,216,11,15,136,60,216,19,23,240,26,0,30,34,209, - 8,26,136,1,136,53,144,40,220,15,31,160,8,168,35,216, - 39,42,167,123,161,123,216,43,48,244,5,2,16,50,136,4, - 240,6,0,28,31,215,27,48,209,27,48,176,24,184,56,192, - 85,211,27,75,209,8,24,136,8,144,38,216,28,52,156,68, - 164,19,215,33,51,209,33,51,211,28,52,216,21,29,216,21, - 29,244,5,3,29,10,136,4,212,8,25,241,8,0,12,18, - 216,12,16,215,12,43,209,12,43,215,12,50,209,12,50,176, - 49,176,102,212,12,61,216,15,19,136,11,114,22,0,0,0, + 0,124,4,155,0,124,5,155,0,100,12,157,4,125,7,124, + 7,124,6,102,2,83,0,35,0,116,6,0,0,0,0,0, + 0,0,0,36,0,114,33,1,0,116,2,0,0,0,0,0, + 0,0,0,106,8,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,100,3,107,40,0,0,114,2,100, + 4,110,1,100,5,120,1,125,4,124,0,95,2,0,0,0, + 0,0,0,0,0,89,0,140,160,119,0,120,3,89,0,119, + 1,41,13,78,218,11,95,115,116,100,108,105,98,95,100,105, + 114,114,55,1,0,0,218,5,119,105,110,51,50,250,1,92, + 250,1,47,250,1,60,114,138,0,0,0,122,9,46,95,95, + 105,110,105,116,95,95,70,114,244,0,0,0,122,11,95,95, + 105,110,105,116,95,95,46,112,121,122,3,46,112,121,41,8, + 114,15,0,0,0,114,24,0,0,0,218,4,95,83,69,80, + 114,4,0,0,0,218,8,112,108,97,116,102,111,114,109,114, + 168,0,0,0,114,20,0,0,0,114,76,1,0,0,41,8, + 114,40,1,0,0,114,180,0,0,0,218,5,97,108,105,97, + 115,114,72,1,0,0,218,3,115,101,112,218,7,114,101,108, + 102,105,108,101,114,73,1,0,0,114,214,0,0,0,115,8, + 0,0,0,32,32,32,32,32,32,32,32,114,7,0,0,0, + 114,66,1,0,0,122,32,70,114,111,122,101,110,73,109,112, + 111,114,116,101,114,46,95,114,101,115,111,108,118,101,95,102, + 105,108,101,110,97,109,101,79,4,0,0,115,249,0,0,0, + 128,0,225,15,23,156,119,164,115,168,77,184,52,212,31,64, + 216,19,29,240,2,3,9,70,1,216,18,21,151,40,145,40, + 136,67,240,8,0,12,20,144,117,210,11,28,216,15,23,215, + 15,34,209,15,34,160,51,212,15,39,216,27,35,160,65,160, + 66,152,60,144,8,217,23,28,216,34,42,160,26,168,57,208, + 31,53,145,72,224,24,29,144,5,216,18,26,215,18,34,209, + 18,34,160,51,168,3,211,18,44,136,7,217,11,16,220,24, + 27,159,15,153,15,208,23,40,168,19,168,5,168,103,168,89, + 208,21,55,136,70,216,26,32,152,24,160,35,160,21,160,107, + 208,23,50,136,72,240,8,0,16,24,152,22,208,15,31,208, + 8,31,240,5,0,22,26,136,70,220,26,29,159,47,153,47, + 208,25,42,168,51,168,37,176,7,168,121,184,3,208,23,60, + 136,72,216,15,23,152,22,208,15,31,208,8,31,248,244,35, + 0,16,30,242,0,1,9,70,1,220,37,40,167,92,161,92, + 176,87,210,37,60,153,84,192,35,208,12,69,136,67,144,35, + 150,40,240,3,1,9,70,1,250,115,17,0,0,0,150,12, + 66,25,0,194,25,39,67,3,3,195,2,1,67,3,3,99, + 4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 3,0,0,0,243,50,1,0,0,151,0,116,1,0,0,0, + 0,0,0,0,0,116,2,0,0,0,0,0,0,0,0,106, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,1,171,2,0,0,0,0,0,0,125,4,124, + 4,128,1,121,0,124,4,92,3,0,0,125,5,125,6,125, + 7,116,7,0,0,0,0,0,0,0,0,124,1,124,0,124, + 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,6,172,1,171,4,0,0,0,0,0, + 0,125,8,124,0,106,11,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,7,124,1,124,6,171, + 3,0,0,0,0,0,0,92,2,0,0,125,9,125,10,2, + 0,116,13,0,0,0,0,0,0,0,0,116,14,0,0,0, + 0,0,0,0,0,106,16,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, + 0,124,9,124,7,172,2,171,2,0,0,0,0,0,0,124, + 8,95,9,0,0,0,0,0,0,0,0,124,10,114,28,124, + 8,106,20,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,106,23,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,100,3,124,10,171,2,0, + 0,0,0,0,0,1,0,124,8,83,0,41,4,78,114,253, + 0,0,0,114,62,1,0,0,114,125,0,0,0,41,12,114, + 161,0,0,0,114,151,0,0,0,218,11,102,105,110,100,95, + 102,114,111,122,101,110,114,194,0,0,0,114,255,0,0,0, + 114,66,1,0,0,114,5,0,0,0,114,24,0,0,0,114, + 67,1,0,0,114,219,0,0,0,114,223,0,0,0,114,68, + 1,0,0,41,11,114,40,1,0,0,114,180,0,0,0,114, + 41,1,0,0,114,42,1,0,0,218,4,105,110,102,111,218, + 1,95,114,72,1,0,0,114,63,1,0,0,114,199,0,0, + 0,114,214,0,0,0,114,73,1,0,0,115,11,0,0,0, + 32,32,32,32,32,32,32,32,32,32,32,114,7,0,0,0, + 114,43,1,0,0,122,24,70,114,111,122,101,110,73,109,112, + 111,114,116,101,114,46,102,105,110,100,95,115,112,101,99,104, + 4,0,0,115,157,0,0,0,128,0,228,15,40,172,20,215, + 41,57,209,41,57,184,56,211,15,68,136,4,216,11,15,136, + 60,216,19,23,240,26,0,30,34,209,8,26,136,1,136,53, + 144,40,220,15,31,160,8,168,35,216,39,42,167,123,161,123, + 216,43,48,244,5,2,16,50,136,4,240,6,0,28,31,215, + 27,48,209,27,48,176,24,184,56,192,85,211,27,75,209,8, + 24,136,8,144,38,216,28,52,156,68,164,19,215,33,51,209, + 33,51,211,28,52,216,21,29,216,21,29,244,5,3,29,10, + 136,4,212,8,25,241,8,0,12,18,216,12,16,215,12,43, + 209,12,43,215,12,50,209,12,50,176,49,176,102,212,12,61, + 216,15,19,136,11,114,22,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 144,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, + 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,171,1,0,0,0,0,0,0,125,1, + 9,0,124,0,106,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,106,6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,125,2,124,2, + 114,7,124,2,124,1,95,4,0,0,0,0,0,0,0,0, + 124,1,83,0,35,0,116,10,0,0,0,0,0,0,0,0, + 36,0,114,4,1,0,89,0,124,1,83,0,119,0,120,3, + 89,0,119,1,41,1,122,22,83,101,116,32,95,95,102,105, + 108,101,95,95,44,32,105,102,32,97,98,108,101,46,41,6, + 114,27,0,0,0,114,26,0,0,0,114,219,0,0,0,114, + 214,0,0,0,114,212,0,0,0,114,4,0,0,0,41,3, + 114,199,0,0,0,114,200,0,0,0,114,214,0,0,0,115, + 3,0,0,0,32,32,32,114,7,0,0,0,114,18,1,0, + 0,122,28,70,114,111,122,101,110,73,109,112,111,114,116,101, + 114,46,99,114,101,97,116,101,95,109,111,100,117,108,101,134, + 4,0,0,115,84,0,0,0,128,0,244,6,0,18,29,152, + 84,159,89,153,89,211,17,39,136,6,240,2,6,9,43,216, + 23,27,215,23,40,209,23,40,215,23,49,209,23,49,136,72, + 241,8,0,16,24,216,34,42,144,6,148,15,216,15,21,136, + 13,248,244,11,0,16,30,242,0,1,9,17,216,12,16,240, + 8,0,16,22,136,13,240,11,1,9,17,250,115,15,0,0, + 0,151,22,56,0,184,9,65,5,3,193,4,1,65,5,3, 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,144,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,125,1,9,0,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,125,2,124,2,114,7,124,2,124,1,95,4,0,0, - 0,0,0,0,0,0,124,1,83,0,35,0,116,10,0,0, - 0,0,0,0,0,0,36,0,114,4,1,0,89,0,124,1, - 83,0,119,0,120,3,89,0,119,1,41,1,122,22,83,101, - 116,32,95,95,102,105,108,101,95,95,44,32,105,102,32,97, - 98,108,101,46,41,6,114,27,0,0,0,114,26,0,0,0, - 114,219,0,0,0,114,214,0,0,0,114,212,0,0,0,114, - 4,0,0,0,41,3,114,199,0,0,0,114,200,0,0,0, - 114,214,0,0,0,115,3,0,0,0,32,32,32,114,7,0, - 0,0,114,18,1,0,0,122,28,70,114,111,122,101,110,73, - 109,112,111,114,116,101,114,46,99,114,101,97,116,101,95,109, - 111,100,117,108,101,134,4,0,0,115,84,0,0,0,128,0, - 244,6,0,18,29,152,84,159,89,153,89,211,17,39,136,6, - 240,2,6,9,43,216,23,27,215,23,40,209,23,40,215,23, - 49,209,23,49,136,72,241,8,0,16,24,216,34,42,144,6, - 148,15,216,15,21,136,13,248,244,11,0,16,30,242,0,1, - 9,17,216,12,16,240,8,0,16,22,136,13,240,11,1,9, - 17,250,115,15,0,0,0,151,22,56,0,184,9,65,5,3, - 193,4,1,65,5,3,99,1,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,148,0,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,125,1,124,1,106,2,0,0, + 0,3,0,0,0,243,148,0,0,0,151,0,124,0,106,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,2,116,5,0,0,0,0,0,0,0,0,116,6,0,0, - 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,171,2,0,0, - 0,0,0,0,125,3,116,11,0,0,0,0,0,0,0,0, - 124,3,124,0,106,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, - 1,0,121,0,114,2,0,0,0,41,7,114,204,0,0,0, - 114,26,0,0,0,114,161,0,0,0,114,151,0,0,0,218, - 17,103,101,116,95,102,114,111,122,101,110,95,111,98,106,101, - 99,116,218,4,101,120,101,99,114,16,0,0,0,41,4,114, - 200,0,0,0,114,199,0,0,0,114,26,0,0,0,218,4, - 99,111,100,101,115,4,0,0,0,32,32,32,32,114,7,0, - 0,0,114,19,1,0,0,122,26,70,114,111,122,101,110,73, - 109,112,111,114,116,101,114,46,101,120,101,99,95,109,111,100, - 117,108,101,147,4,0,0,115,52,0,0,0,128,0,224,15, - 21,143,127,137,127,136,4,216,15,19,143,121,137,121,136,4, - 220,15,40,172,20,215,41,63,209,41,63,192,20,211,15,70, - 136,4,220,8,12,136,84,144,54,151,63,145,63,213,8,35, - 114,22,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,212,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,0,124,1,171, - 2,0,0,0,0,0,0,125,2,116,2,0,0,0,0,0, - 0,0,0,106,5,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,125,3,124,3,128,2,74,0,130,1,124,3,92,3,0, - 0,125,4,125,5,125,6,124,6,124,2,95,3,0,0,0, - 0,0,0,0,0,116,9,0,0,0,0,0,0,0,0,124, - 2,171,1,0,0,0,0,0,0,106,11,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,2,100, - 1,171,2,0,0,0,0,0,0,1,0,124,5,114,7,103, - 0,124,2,95,6,0,0,0,0,0,0,0,0,124,0,106, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,1,0,124, - 2,83,0,41,3,122,95,76,111,97,100,32,97,32,102,114, - 111,122,101,110,32,109,111,100,117,108,101,46,10,10,32,32, - 32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,111, - 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46, - 32,32,85,115,101,32,101,120,101,99,95,109,111,100,117,108, - 101,40,41,32,105,110,115,116,101,97,100,46,10,10,32,32, - 32,32,32,32,32,32,78,114,212,0,0,0,41,8,114,201, - 0,0,0,114,151,0,0,0,114,87,1,0,0,114,61,1, - 0,0,114,64,1,0,0,114,68,0,0,0,114,7,1,0, - 0,114,74,1,0,0,41,7,114,40,1,0,0,114,180,0, - 0,0,114,200,0,0,0,114,88,1,0,0,114,89,1,0, - 0,114,72,1,0,0,114,63,1,0,0,115,7,0,0,0, - 32,32,32,32,32,32,32,114,7,0,0,0,114,28,1,0, + 0,0,125,1,124,1,106,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,125,2,116,5,0,0, + 0,0,0,0,0,0,116,6,0,0,0,0,0,0,0,0, + 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,2,171,2,0,0,0,0,0,0,125,3, + 116,11,0,0,0,0,0,0,0,0,124,3,124,0,106,12, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,171,2,0,0,0,0,0,0,1,0,121,0,114,2, + 0,0,0,41,7,114,204,0,0,0,114,26,0,0,0,114, + 161,0,0,0,114,151,0,0,0,218,17,103,101,116,95,102, + 114,111,122,101,110,95,111,98,106,101,99,116,218,4,101,120, + 101,99,114,16,0,0,0,41,4,114,200,0,0,0,114,199, + 0,0,0,114,26,0,0,0,218,4,99,111,100,101,115,4, + 0,0,0,32,32,32,32,114,7,0,0,0,114,19,1,0, 0,122,26,70,114,111,122,101,110,73,109,112,111,114,116,101, - 114,46,108,111,97,100,95,109,111,100,117,108,101,154,4,0, - 0,115,110,0,0,0,128,0,244,16,0,18,35,160,51,168, - 8,211,17,49,136,6,220,15,19,215,15,31,209,15,31,160, - 8,211,15,41,136,4,216,15,19,208,15,31,209,8,31,216, - 29,33,209,8,26,136,1,136,53,144,40,216,30,38,136,6, - 212,8,27,220,8,12,136,86,139,12,215,8,24,209,8,24, - 152,26,160,84,212,8,42,217,11,16,216,30,32,136,70,140, - 79,216,8,11,215,8,26,209,8,26,152,54,212,8,34,216, - 15,21,136,13,114,22,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,44, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,83,0,41, - 1,122,45,82,101,116,117,114,110,32,116,104,101,32,99,111, - 100,101,32,111,98,106,101,99,116,32,102,111,114,32,116,104, - 101,32,102,114,111,122,101,110,32,109,111,100,117,108,101,46, - 41,2,114,151,0,0,0,114,92,1,0,0,114,49,1,0, - 0,115,2,0,0,0,32,32,114,7,0,0,0,114,50,1, - 0,0,122,23,70,114,111,122,101,110,73,109,112,111,114,116, - 101,114,46,103,101,116,95,99,111,100,101,173,4,0,0,243, - 21,0,0,0,128,0,244,8,0,16,20,215,15,37,209,15, - 37,160,104,211,15,47,208,8,47,114,22,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,243,4,0,0,0,151,0,121,1,41,2,122,54, - 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,102, - 114,111,122,101,110,32,109,111,100,117,108,101,115,32,100,111, - 32,110,111,116,32,104,97,118,101,32,115,111,117,114,99,101, - 32,99,111,100,101,46,78,114,31,0,0,0,114,49,1,0, - 0,115,2,0,0,0,32,32,114,7,0,0,0,114,53,1, - 0,0,122,25,70,114,111,122,101,110,73,109,112,111,114,116, - 101,114,46,103,101,116,95,115,111,117,114,99,101,179,4,0, - 0,114,51,1,0,0,114,22,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,44,0,0,0,151,0,116,0,0,0,0,0,0,0,0, - 0,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,171,1,0,0,0,0,0,0,83, - 0,41,1,122,46,82,101,116,117,114,110,32,84,114,117,101, - 32,105,102,32,116,104,101,32,102,114,111,122,101,110,32,109, - 111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97, - 103,101,46,41,2,114,151,0,0,0,114,65,1,0,0,114, - 49,1,0,0,115,2,0,0,0,32,32,114,7,0,0,0, - 114,220,0,0,0,122,25,70,114,111,122,101,110,73,109,112, - 111,114,116,101,114,46,105,115,95,112,97,99,107,97,103,101, - 185,4,0,0,114,97,1,0,0,114,22,0,0,0,114,222, - 0,0,0,114,55,1,0,0,41,17,114,11,0,0,0,114, - 10,0,0,0,114,3,0,0,0,114,12,0,0,0,114,255, - 0,0,0,114,56,1,0,0,114,74,1,0,0,114,66,1, - 0,0,114,43,1,0,0,114,58,0,0,0,114,18,1,0, - 0,114,19,1,0,0,114,28,1,0,0,114,189,0,0,0, - 114,50,1,0,0,114,53,1,0,0,114,220,0,0,0,114, - 31,0,0,0,114,22,0,0,0,114,7,0,0,0,114,58, - 1,0,0,114,58,1,0,0,255,3,0,0,115,219,0,0, - 0,132,0,241,4,5,5,8,240,14,0,15,23,128,71,224, - 5,16,241,2,66,1,5,37,243,3,0,6,17,240,2,66, - 1,5,37,240,72,2,0,6,17,242,2,22,5,32,243,3, - 0,6,17,240,2,22,5,32,240,48,0,6,17,242,2,27, - 5,20,243,3,0,6,17,240,2,27,5,20,240,58,0,6, - 18,241,2,10,5,22,243,3,0,6,18,240,2,10,5,22, - 240,24,0,6,18,241,2,4,5,36,243,3,0,6,18,240, - 2,4,5,36,240,12,0,6,17,241,2,16,5,22,243,3, - 0,6,17,240,2,16,5,22,240,36,0,6,17,216,5,21, - 241,2,2,5,48,243,3,0,6,22,243,3,0,6,17,240, - 4,2,5,48,240,8,0,6,17,216,5,21,241,2,2,5, - 20,243,3,0,6,22,243,3,0,6,17,240,4,2,5,20, - 240,8,0,6,17,216,5,21,241,2,2,5,48,243,3,0, - 6,22,243,3,0,6,17,241,4,2,5,48,114,22,0,0, - 0,114,58,1,0,0,99,0,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,0,0,0,0,243,28,0,0,0, - 151,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2, - 132,0,90,4,100,3,132,0,90,5,121,4,41,5,218,18, - 95,73,109,112,111,114,116,76,111,99,107,67,111,110,116,101, - 120,116,122,36,67,111,110,116,101,120,116,32,109,97,110,97, - 103,101,114,32,102,111,114,32,116,104,101,32,105,109,112,111, - 114,116,32,108,111,99,107,46,99,1,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,3,0,0,0,243,44,0, - 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,1,0,121,1,41,2, - 122,24,65,99,113,117,105,114,101,32,116,104,101,32,105,109, - 112,111,114,116,32,108,111,99,107,46,78,41,2,114,151,0, - 0,0,114,152,0,0,0,114,66,0,0,0,115,1,0,0, - 0,32,114,7,0,0,0,114,87,0,0,0,122,28,95,73, - 109,112,111,114,116,76,111,99,107,67,111,110,116,101,120,116, - 46,95,95,101,110,116,101,114,95,95,198,4,0,0,243,14, - 0,0,0,128,0,228,8,12,215,8,25,209,8,25,213,8, - 27,114,22,0,0,0,99,4,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,3,0,0,0,243,44,0,0,0, + 114,46,101,120,101,99,95,109,111,100,117,108,101,147,4,0, + 0,115,52,0,0,0,128,0,224,15,21,143,127,137,127,136, + 4,216,15,19,143,121,137,121,136,4,220,15,40,172,20,215, + 41,63,209,41,63,192,20,211,15,70,136,4,220,8,12,136, + 84,144,54,151,63,145,63,213,8,35,114,22,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,212,0,0,0,151,0,116,1,0,0,0, + 0,0,0,0,0,124,0,124,1,171,2,0,0,0,0,0, + 0,125,2,116,2,0,0,0,0,0,0,0,0,106,5,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,1,171,1,0,0,0,0,0,0,125,3,124,3,128, + 2,74,0,130,1,124,3,92,3,0,0,125,4,125,5,125, + 6,124,6,124,2,95,3,0,0,0,0,0,0,0,0,116, + 9,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, + 0,0,0,106,11,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,100,2,100,1,171,2,0,0,0, + 0,0,0,1,0,124,5,114,7,103,0,124,2,95,6,0, + 0,0,0,0,0,0,0,124,0,106,15,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,171, + 1,0,0,0,0,0,0,1,0,124,2,83,0,41,3,122, + 95,76,111,97,100,32,97,32,102,114,111,122,101,110,32,109, + 111,100,117,108,101,46,10,10,32,32,32,32,32,32,32,32, + 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100, + 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32, + 101,120,101,99,95,109,111,100,117,108,101,40,41,32,105,110, + 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32, + 78,114,212,0,0,0,41,8,114,201,0,0,0,114,151,0, + 0,0,114,87,1,0,0,114,61,1,0,0,114,64,1,0, + 0,114,68,0,0,0,114,7,1,0,0,114,74,1,0,0, + 41,7,114,40,1,0,0,114,180,0,0,0,114,200,0,0, + 0,114,88,1,0,0,114,89,1,0,0,114,72,1,0,0, + 114,63,1,0,0,115,7,0,0,0,32,32,32,32,32,32, + 32,114,7,0,0,0,114,28,1,0,0,122,26,70,114,111, + 122,101,110,73,109,112,111,114,116,101,114,46,108,111,97,100, + 95,109,111,100,117,108,101,154,4,0,0,115,113,0,0,0, + 128,0,244,16,0,18,35,160,51,168,8,211,17,49,136,6, + 220,15,19,215,15,31,209,15,31,160,8,211,15,41,136,4, + 216,15,19,208,15,31,208,8,31,208,15,31,216,29,33,209, + 8,26,136,1,136,53,144,40,216,30,38,136,6,212,8,27, + 220,8,12,136,86,139,12,215,8,24,209,8,24,152,26,160, + 84,212,8,42,217,11,16,216,30,32,136,70,140,79,216,8, + 11,215,8,26,209,8,26,152,54,212,8,34,216,15,21,136, + 13,114,22,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,3,0,0,0,243,44,0,0,0, 151,0,116,0,0,0,0,0,0,0,0,0,106,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,121,1,41,2,122,60, - 82,101,108,101,97,115,101,32,116,104,101,32,105,109,112,111, - 114,116,32,108,111,99,107,32,114,101,103,97,114,100,108,101, - 115,115,32,111,102,32,97,110,121,32,114,97,105,115,101,100, - 32,101,120,99,101,112,116,105,111,110,115,46,78,41,2,114, - 151,0,0,0,114,154,0,0,0,41,4,114,44,0,0,0, - 218,8,101,120,99,95,116,121,112,101,218,9,101,120,99,95, - 118,97,108,117,101,218,13,101,120,99,95,116,114,97,99,101, - 98,97,99,107,115,4,0,0,0,32,32,32,32,114,7,0, - 0,0,114,92,0,0,0,122,27,95,73,109,112,111,114,116, - 76,111,99,107,67,111,110,116,101,120,116,46,95,95,101,120, - 105,116,95,95,202,4,0,0,114,103,1,0,0,114,22,0, - 0,0,78,41,6,114,11,0,0,0,114,10,0,0,0,114, - 3,0,0,0,114,12,0,0,0,114,87,0,0,0,114,92, - 0,0,0,114,31,0,0,0,114,22,0,0,0,114,7,0, - 0,0,114,101,1,0,0,114,101,1,0,0,194,4,0,0, - 115,15,0,0,0,132,0,225,4,46,242,4,2,5,28,243, - 8,2,5,28,114,22,0,0,0,114,101,1,0,0,99,3, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, - 0,0,0,243,126,0,0,0,151,0,124,1,106,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,1,124,2,100,2,122,10,0,0,171,2,0,0,0,0, - 0,0,125,3,116,3,0,0,0,0,0,0,0,0,124,3, - 171,1,0,0,0,0,0,0,124,2,107,2,0,0,114,11, - 116,5,0,0,0,0,0,0,0,0,100,3,171,1,0,0, - 0,0,0,0,130,1,124,3,100,4,25,0,0,0,125,4, - 124,0,114,7,124,4,155,0,100,1,124,0,155,0,157,3, - 83,0,124,4,83,0,41,5,122,50,82,101,115,111,108,118, - 101,32,97,32,114,101,108,97,116,105,118,101,32,109,111,100, - 117,108,101,32,110,97,109,101,32,116,111,32,97,110,32,97, - 98,115,111,108,117,116,101,32,111,110,101,46,114,244,0,0, - 0,114,138,0,0,0,122,50,97,116,116,101,109,112,116,101, - 100,32,114,101,108,97,116,105,118,101,32,105,109,112,111,114, - 116,32,98,101,121,111,110,100,32,116,111,112,45,108,101,118, - 101,108,32,112,97,99,107,97,103,101,114,125,0,0,0,41, - 3,218,6,114,115,112,108,105,116,114,127,0,0,0,114,178, - 0,0,0,41,5,114,26,0,0,0,218,7,112,97,99,107, - 97,103,101,218,5,108,101,118,101,108,218,4,98,105,116,115, - 218,4,98,97,115,101,115,5,0,0,0,32,32,32,32,32, - 114,7,0,0,0,218,13,95,114,101,115,111,108,118,101,95, - 110,97,109,101,114,114,1,0,0,207,4,0,0,115,79,0, - 0,0,128,0,224,11,18,143,62,137,62,152,35,152,117,160, - 113,153,121,211,11,41,128,68,220,7,10,136,52,131,121,144, - 53,210,7,24,220,14,25,208,26,78,211,14,79,208,8,79, - 216,11,15,144,1,137,55,128,68,217,31,35,136,100,136,86, - 144,49,144,84,144,70,208,11,27,208,4,45,168,20,208,4, - 45,114,22,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,7,0,0,0,3,0,0,0,243,242,1,0,0, - 151,0,116,0,0,0,0,0,0,0,0,0,106,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,3,124,3,128,11,116,5,0,0,0,0,0,0,0,0, - 100,2,171,1,0,0,0,0,0,0,130,1,124,3,115,26, - 116,6,0,0,0,0,0,0,0,0,106,9,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,3, - 116,10,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,1,0,124,0,116,0,0,0,0,0,0,0,0,0, - 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,118,0,125,4,124,3,68,0,93,113,0,0, - 125,5,116,15,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,53,0,1,0,9,0,124,5,106,16,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,6,2,0,124,6,124,0,124,1,124,2,171,3,0,0, - 0,0,0,0,125,7,9,0,100,1,100,1,100,1,171,2, - 0,0,0,0,0,0,1,0,127,7,128,1,140,49,124,4, - 115,60,124,0,116,0,0,0,0,0,0,0,0,0,106,12, + 124,1,171,1,0,0,0,0,0,0,83,0,41,1,122,45, + 82,101,116,117,114,110,32,116,104,101,32,99,111,100,101,32, + 111,98,106,101,99,116,32,102,111,114,32,116,104,101,32,102, + 114,111,122,101,110,32,109,111,100,117,108,101,46,41,2,114, + 151,0,0,0,114,92,1,0,0,114,49,1,0,0,115,2, + 0,0,0,32,32,114,7,0,0,0,114,50,1,0,0,122, + 23,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46, + 103,101,116,95,99,111,100,101,173,4,0,0,243,21,0,0, + 0,128,0,244,8,0,16,20,215,15,37,209,15,37,160,104, + 211,15,47,208,8,47,114,22,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 243,4,0,0,0,151,0,121,1,41,2,122,54,82,101,116, + 117,114,110,32,78,111,110,101,32,97,115,32,102,114,111,122, + 101,110,32,109,111,100,117,108,101,115,32,100,111,32,110,111, + 116,32,104,97,118,101,32,115,111,117,114,99,101,32,99,111, + 100,101,46,78,114,31,0,0,0,114,49,1,0,0,115,2, + 0,0,0,32,32,114,7,0,0,0,114,53,1,0,0,122, + 25,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46, + 103,101,116,95,115,111,117,114,99,101,179,4,0,0,114,51, + 1,0,0,114,22,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,243,44,0, + 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,3, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,118,0,114,42,116,0,0,0,0,0,0,0,0,0, - 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,25,0,0,0,125,8,9,0,124,8, - 106,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,9,124,9,128,4,124,7,99,2,1,0, - 83,0,124,9,99,2,1,0,83,0,124,7,99,2,1,0, - 83,0,4,0,121,1,35,0,116,18,0,0,0,0,0,0, - 0,0,36,0,114,11,1,0,89,0,100,1,100,1,100,1, - 171,2,0,0,0,0,0,0,1,0,140,136,119,0,120,3, - 89,0,119,1,35,0,49,0,115,1,119,2,1,0,89,0, - 1,0,1,0,140,103,120,3,89,0,119,1,35,0,116,18, - 0,0,0,0,0,0,0,0,36,0,114,7,1,0,124,7, - 99,2,89,0,99,2,1,0,83,0,119,0,120,3,89,0, - 119,1,41,4,122,21,70,105,110,100,32,97,32,109,111,100, - 117,108,101,39,115,32,115,112,101,99,46,78,122,53,115,121, - 115,46,109,101,116,97,95,112,97,116,104,32,105,115,32,78, - 111,110,101,44,32,80,121,116,104,111,110,32,105,115,32,108, - 105,107,101,108,121,32,115,104,117,116,116,105,110,103,32,100, - 111,119,110,122,22,115,121,115,46,109,101,116,97,95,112,97, - 116,104,32,105,115,32,101,109,112,116,121,41,11,114,24,0, - 0,0,218,9,109,101,116,97,95,112,97,116,104,114,178,0, - 0,0,114,191,0,0,0,114,192,0,0,0,114,27,1,0, - 0,114,195,0,0,0,114,101,1,0,0,114,43,1,0,0, - 114,4,0,0,0,114,204,0,0,0,41,10,114,26,0,0, - 0,114,41,1,0,0,114,42,1,0,0,114,116,1,0,0, - 218,9,105,115,95,114,101,108,111,97,100,218,6,102,105,110, - 100,101,114,114,43,1,0,0,114,199,0,0,0,114,200,0, - 0,0,114,204,0,0,0,115,10,0,0,0,32,32,32,32, - 32,32,32,32,32,32,114,7,0,0,0,218,10,95,102,105, - 110,100,95,115,112,101,99,114,119,1,0,0,216,4,0,0, - 115,20,1,0,0,128,0,228,16,19,151,13,145,13,128,73, - 216,7,16,208,7,24,228,14,25,240,0,1,27,42,243,0, - 1,15,43,240,0,1,9,43,241,6,0,12,21,220,8,17, - 143,14,137,14,208,23,47,180,29,212,8,63,240,10,0,17, - 21,156,3,159,11,153,11,208,16,35,128,73,216,18,27,242, - 0,27,5,20,136,6,220,13,31,211,13,33,241,0,6,9, - 53,240,2,5,13,53,216,28,34,215,28,44,209,28,44,144, - 9,241,8,0,24,33,160,20,160,116,168,86,211,23,52,145, - 4,247,13,6,9,53,240,14,0,12,16,209,11,27,225,19, - 28,160,20,172,19,175,27,169,27,209,33,52,220,25,28,159, - 27,153,27,160,84,209,25,42,144,6,240,2,11,17,40,216, - 31,37,159,127,153,127,144,72,240,14,0,24,32,208,23,39, - 216,31,35,154,11,224,31,39,154,15,224,23,27,146,11,240, - 51,27,5,20,240,54,0,16,20,248,244,47,0,20,34,242, - 0,1,13,25,216,16,24,247,9,6,9,53,240,0,6,9, - 53,240,6,1,13,25,250,247,7,6,9,53,240,0,6,9, - 53,251,244,26,0,24,38,242,0,4,17,32,240,8,0,28, - 32,148,75,240,9,4,17,32,250,115,66,0,0,0,193,27, - 1,67,26,5,193,29,12,67,3,4,193,41,10,67,26,5, - 194,39,12,67,38,2,195,3,9,67,23,7,195,12,1,67, - 26,5,195,22,1,67,23,7,195,23,3,67,26,5,195,26, - 5,67,35,9,195,38,11,67,54,5,195,53,1,67,54,5, - 99,3,0,0,0,0,0,0,0,0,0,0,0,6,0,0, - 0,3,0,0,0,243,242,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,116,2,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,115,23,116,5,0,0, - 0,0,0,0,0,0,100,1,116,7,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,155,0,157,2, - 171,1,0,0,0,0,0,0,130,1,124,2,100,2,107,2, - 0,0,114,11,116,9,0,0,0,0,0,0,0,0,100,3, - 171,1,0,0,0,0,0,0,130,1,124,2,100,2,107,68, - 0,0,114,40,116,1,0,0,0,0,0,0,0,0,124,1, - 116,2,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,115,11,116,5,0,0,0,0,0,0,0,0,100,4, - 171,1,0,0,0,0,0,0,130,1,124,1,115,11,116,11, - 0,0,0,0,0,0,0,0,100,5,171,1,0,0,0,0, - 0,0,130,1,124,0,115,17,124,2,100,2,107,40,0,0, - 114,11,116,9,0,0,0,0,0,0,0,0,100,6,171,1, - 0,0,0,0,0,0,130,1,121,7,121,7,41,8,122,28, - 86,101,114,105,102,121,32,97,114,103,117,109,101,110,116,115, - 32,97,114,101,32,34,115,97,110,101,34,46,122,29,109,111, - 100,117,108,101,32,110,97,109,101,32,109,117,115,116,32,98, - 101,32,115,116,114,44,32,110,111,116,32,114,125,0,0,0, - 122,18,108,101,118,101,108,32,109,117,115,116,32,98,101,32, - 62,61,32,48,122,31,95,95,112,97,99,107,97,103,101,95, - 95,32,110,111,116,32,115,101,116,32,116,111,32,97,32,115, - 116,114,105,110,103,122,54,97,116,116,101,109,112,116,101,100, - 32,114,101,108,97,116,105,118,101,32,105,109,112,111,114,116, - 32,119,105,116,104,32,110,111,32,107,110,111,119,110,32,112, - 97,114,101,110,116,32,112,97,99,107,97,103,101,122,17,69, - 109,112,116,121,32,109,111,100,117,108,101,32,110,97,109,101, - 78,41,6,114,23,1,0,0,218,3,115,116,114,218,9,84, - 121,112,101,69,114,114,111,114,114,5,0,0,0,218,10,86, - 97,108,117,101,69,114,114,111,114,114,178,0,0,0,169,3, - 114,26,0,0,0,114,110,1,0,0,114,111,1,0,0,115, - 3,0,0,0,32,32,32,114,7,0,0,0,218,13,95,115, - 97,110,105,116,121,95,99,104,101,99,107,114,125,1,0,0, - 5,5,0,0,115,132,0,0,0,128,0,228,11,21,144,100, - 156,67,212,11,32,220,14,23,208,26,55,188,4,184,84,187, - 10,176,124,208,24,68,211,14,69,208,8,69,216,7,12,136, - 113,130,121,220,14,24,208,25,45,211,14,46,208,8,46,216, - 7,12,136,113,130,121,220,15,25,152,39,164,51,212,15,39, - 220,18,27,208,28,61,211,18,62,208,12,62,217,17,24,220, - 18,29,240,0,1,31,40,243,0,1,19,41,240,0,1,13, - 41,225,11,15,144,69,152,81,146,74,220,14,24,208,25,44, - 211,14,45,208,8,45,240,3,0,21,31,136,52,114,22,0, - 0,0,122,16,78,111,32,109,111,100,117,108,101,32,110,97, - 109,101,100,32,122,4,123,33,114,125,99,2,0,0,0,0, - 0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,243, - 86,3,0,0,151,0,100,0,125,2,124,0,106,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,1,171,1,0,0,0,0,0,0,100,2,25,0,0,0, - 125,3,100,0,125,4,124,3,114,131,124,3,116,2,0,0, - 0,0,0,0,0,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,118,1,114,12,116,7, - 0,0,0,0,0,0,0,0,124,1,124,3,171,2,0,0, - 0,0,0,0,1,0,124,0,116,2,0,0,0,0,0,0, - 0,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,118,0,114,19,116,2,0,0,0,0, - 0,0,0,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,25,0,0,0,83,0, - 116,2,0,0,0,0,0,0,0,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,3, - 25,0,0,0,125,5,9,0,124,5,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,2, - 124,5,106,16,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,4,124,0,106,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 171,1,0,0,0,0,0,0,100,6,25,0,0,0,125,7, - 116,19,0,0,0,0,0,0,0,0,124,0,124,2,171,2, - 0,0,0,0,0,0,125,8,124,8,128,21,116,15,0,0, - 0,0,0,0,0,0,116,12,0,0,0,0,0,0,0,0, - 155,0,124,0,155,2,157,2,124,0,172,5,171,2,0,0, - 0,0,0,0,130,1,124,4,114,27,124,4,106,20,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,127,7,171,1,0,0,0,0,0,0,1,0, - 9,0,116,25,0,0,0,0,0,0,0,0,124,8,171,1, - 0,0,0,0,0,0,125,9,124,4,114,27,124,4,106,20, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,27,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 9,0,124,3,114,35,116,2,0,0,0,0,0,0,0,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,3,25,0,0,0,125,5,9,0,116,29, - 0,0,0,0,0,0,0,0,124,5,127,7,124,9,171,3, - 0,0,0,0,0,0,1,0,124,9,83,0,124,9,83,0, - 35,0,116,10,0,0,0,0,0,0,0,0,36,0,114,29, - 1,0,116,12,0,0,0,0,0,0,0,0,155,0,124,0, - 155,2,100,3,124,3,155,2,100,4,157,5,125,6,116,15, - 0,0,0,0,0,0,0,0,124,6,124,0,172,5,171,2, - 0,0,0,0,0,0,100,0,130,2,119,0,120,3,89,0, - 119,1,35,0,124,4,114,27,124,4,106,20,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,27, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,1,0,119,0,119,0, - 120,3,89,0,119,1,35,0,116,10,0,0,0,0,0,0, - 0,0,36,0,114,38,1,0,100,7,124,3,155,2,100,8, - 127,7,155,2,157,4,125,6,116,30,0,0,0,0,0,0, - 0,0,106,33,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,6,116,34,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,1,0,89,0,124,9, - 83,0,119,0,120,3,89,0,119,1,41,9,78,114,244,0, - 0,0,114,125,0,0,0,122,2,59,32,122,17,32,105,115, - 32,110,111,116,32,97,32,112,97,99,107,97,103,101,114,25, - 0,0,0,233,2,0,0,0,122,27,67,97,110,110,111,116, - 32,115,101,116,32,97,110,32,97,116,116,114,105,98,117,116, - 101,32,111,110,32,122,18,32,102,111,114,32,99,104,105,108, - 100,32,109,111,100,117,108,101,32,41,18,114,245,0,0,0, - 114,24,0,0,0,114,195,0,0,0,114,161,0,0,0,114, - 7,1,0,0,114,4,0,0,0,218,15,95,69,82,82,95, - 77,83,71,95,80,82,69,70,73,88,218,19,77,111,100,117, - 108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,114, - 204,0,0,0,114,119,1,0,0,114,224,0,0,0,114,51, - 0,0,0,114,33,1,0,0,114,68,0,0,0,114,14,0, - 0,0,114,191,0,0,0,114,192,0,0,0,114,27,1,0, - 0,41,10,114,26,0,0,0,218,7,105,109,112,111,114,116, - 95,114,41,1,0,0,114,246,0,0,0,218,11,112,97,114, - 101,110,116,95,115,112,101,99,218,13,112,97,114,101,110,116, - 95,109,111,100,117,108,101,114,198,0,0,0,218,5,99,104, - 105,108,100,114,199,0,0,0,114,200,0,0,0,115,10,0, - 0,0,32,32,32,32,32,32,32,32,32,32,114,7,0,0, - 0,218,23,95,102,105,110,100,95,97,110,100,95,108,111,97, - 100,95,117,110,108,111,99,107,101,100,114,134,1,0,0,24, - 5,0,0,115,177,1,0,0,128,0,216,11,15,128,68,216, - 13,17,143,95,137,95,152,83,211,13,33,160,33,209,13,36, - 128,70,216,18,22,128,75,217,7,13,216,11,17,156,19,159, - 27,153,27,209,11,36,220,12,37,160,103,168,118,212,12,54, - 224,11,15,148,51,151,59,145,59,209,11,30,220,19,22,151, - 59,145,59,152,116,209,19,36,208,12,36,220,24,27,159,11, - 153,11,160,70,209,24,43,136,13,240,2,4,9,64,1,216, - 19,32,215,19,41,209,19,41,136,68,240,8,0,23,36,215, - 22,44,209,22,44,136,11,216,16,20,151,15,145,15,160,3, - 211,16,36,160,81,209,16,39,136,5,220,11,21,144,100,152, - 68,211,11,33,128,68,216,7,11,128,124,220,14,33,164,95, - 208,36,53,176,100,176,88,208,34,62,192,84,212,14,74,208, - 8,74,225,11,22,240,6,0,13,24,215,12,49,209,12,49, - 215,12,56,209,12,56,184,21,212,12,63,240,2,4,9,60, - 220,21,35,160,68,211,21,41,136,70,225,15,26,216,16,27, - 215,16,53,209,16,53,215,16,57,209,16,57,213,16,59,217, - 7,13,228,24,27,159,11,153,11,160,70,209,24,43,136,13, - 240,2,4,9,47,220,12,19,144,77,160,53,168,38,212,12, - 49,240,8,0,12,18,128,77,136,54,128,77,248,244,53,0, - 16,30,242,0,2,9,64,1,220,21,36,208,20,37,160,100, - 160,88,168,82,176,6,168,122,208,57,74,208,18,75,136,67, - 220,18,37,160,99,176,4,212,18,53,184,52,208,12,63,240, - 5,2,9,64,1,251,241,32,0,16,27,216,16,27,215,16, - 53,209,16,53,215,16,57,209,16,57,213,16,59,240,3,0, - 16,27,251,244,14,0,16,30,242,0,2,9,47,216,20,47, - 176,6,168,122,208,57,75,200,69,200,57,208,18,85,136,67, - 220,12,21,143,78,137,78,152,51,164,13,213,12,46,216,11, - 17,128,77,240,7,2,9,47,250,115,42,0,0,0,193,50, - 12,68,46,0,195,31,11,69,23,0,196,29,13,69,57,0, - 196,46,38,69,20,3,197,23,31,69,54,3,197,57,43,70, - 40,3,198,39,1,70,40,3,99,2,0,0,0,0,0,0, - 0,0,0,0,0,7,0,0,0,3,0,0,0,243,146,1, - 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,116,6,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,125,2,124,2,116,6, - 0,0,0,0,0,0,0,0,117,0,115,24,116,9,0,0, - 0,0,0,0,0,0,116,9,0,0,0,0,0,0,0,0, - 124,2,100,1,100,2,171,3,0,0,0,0,0,0,100,3, - 100,4,171,3,0,0,0,0,0,0,114,97,116,11,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 53,0,1,0,116,0,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,116,6,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,125,2,124,2,116,6, - 0,0,0,0,0,0,0,0,117,0,114,21,116,13,0,0, - 0,0,0,0,0,0,124,0,124,1,171,2,0,0,0,0, - 0,0,99,2,100,2,100,2,100,2,171,2,0,0,0,0, - 0,0,1,0,83,0,9,0,100,2,100,2,100,2,171,2, - 0,0,0,0,0,0,1,0,116,15,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,1,0,124,2, - 128,19,100,5,124,0,155,0,100,6,157,3,125,3,116,17, - 0,0,0,0,0,0,0,0,124,3,124,0,172,7,171,2, - 0,0,0,0,0,0,130,1,124,2,83,0,35,0,49,0, - 115,1,119,2,1,0,89,0,1,0,1,0,140,43,120,3, - 89,0,119,1,41,8,122,25,70,105,110,100,32,97,110,100, - 32,108,111,97,100,32,116,104,101,32,109,111,100,117,108,101, - 46,114,204,0,0,0,78,114,32,1,0,0,70,122,10,105, - 109,112,111,114,116,32,111,102,32,122,28,32,104,97,108,116, - 101,100,59,32,78,111,110,101,32,105,110,32,115,121,115,46, - 109,111,100,117,108,101,115,114,25,0,0,0,41,9,114,24, - 0,0,0,114,195,0,0,0,114,76,0,0,0,218,14,95, - 78,69,69,68,83,95,76,79,65,68,73,78,71,114,15,0, - 0,0,114,142,0,0,0,114,134,1,0,0,114,157,0,0, - 0,114,129,1,0,0,41,4,114,26,0,0,0,114,130,1, - 0,0,114,200,0,0,0,114,172,0,0,0,115,4,0,0, - 0,32,32,32,32,114,7,0,0,0,218,14,95,102,105,110, - 100,95,97,110,100,95,108,111,97,100,114,137,1,0,0,69, - 5,0,0,115,181,0,0,0,128,0,244,10,0,14,17,143, - 91,137,91,143,95,137,95,152,84,164,62,211,13,50,128,70, - 216,8,14,148,46,209,8,32,220,8,15,148,7,152,6,160, - 10,168,68,211,16,49,176,63,192,69,212,8,74,220,13,31, - 160,4,211,13,37,241,0,3,9,62,220,21,24,151,91,145, - 91,151,95,145,95,160,84,172,62,211,21,58,136,70,216,15, - 21,156,30,209,15,39,220,23,46,168,116,176,87,211,23,61, - 247,7,3,9,62,241,0,3,9,62,224,15,39,247,5,3, - 9,62,244,18,0,9,28,152,68,212,8,33,224,7,13,128, - 126,216,20,30,152,116,152,102,208,36,64,208,18,65,136,7, - 220,14,33,160,39,176,4,212,14,53,208,8,53,224,11,17, - 128,77,247,31,3,9,62,240,0,3,9,62,250,115,12,0, - 0,0,193,16,56,66,61,3,194,61,5,67,6,7,99,3, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, - 0,0,0,243,96,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,124,1,124,2,171,3,0,0,0,0, - 0,0,1,0,124,2,100,1,107,68,0,0,114,13,116,3, - 0,0,0,0,0,0,0,0,124,0,124,1,124,2,171,3, - 0,0,0,0,0,0,125,0,116,5,0,0,0,0,0,0, - 0,0,124,0,116,6,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,83,0,41,2,97,50,1,0,0,73, - 109,112,111,114,116,32,97,110,100,32,114,101,116,117,114,110, - 32,116,104,101,32,109,111,100,117,108,101,32,98,97,115,101, - 100,32,111,110,32,105,116,115,32,110,97,109,101,44,32,116, - 104,101,32,112,97,99,107,97,103,101,32,116,104,101,32,99, - 97,108,108,32,105,115,10,32,32,32,32,98,101,105,110,103, - 32,109,97,100,101,32,102,114,111,109,44,32,97,110,100,32, - 116,104,101,32,108,101,118,101,108,32,97,100,106,117,115,116, - 109,101,110,116,46,10,10,32,32,32,32,84,104,105,115,32, - 102,117,110,99,116,105,111,110,32,114,101,112,114,101,115,101, - 110,116,115,32,116,104,101,32,103,114,101,97,116,101,115,116, - 32,99,111,109,109,111,110,32,100,101,110,111,109,105,110,97, - 116,111,114,32,111,102,32,102,117,110,99,116,105,111,110,97, - 108,105,116,121,10,32,32,32,32,98,101,116,119,101,101,110, - 32,105,109,112,111,114,116,95,109,111,100,117,108,101,32,97, - 110,100,32,95,95,105,109,112,111,114,116,95,95,46,32,84, - 104,105,115,32,105,110,99,108,117,100,101,115,32,115,101,116, - 116,105,110,103,32,95,95,112,97,99,107,97,103,101,95,95, - 32,105,102,10,32,32,32,32,116,104,101,32,108,111,97,100, - 101,114,32,100,105,100,32,110,111,116,46,10,10,32,32,32, - 32,114,125,0,0,0,41,4,114,125,1,0,0,114,114,1, - 0,0,114,137,1,0,0,218,11,95,103,99,100,95,105,109, - 112,111,114,116,114,124,1,0,0,115,3,0,0,0,32,32, - 32,114,7,0,0,0,114,139,1,0,0,114,139,1,0,0, - 95,5,0,0,115,50,0,0,0,128,0,244,18,0,5,18, - 144,36,152,7,160,21,212,4,39,216,7,12,136,113,130,121, - 220,15,28,152,84,160,55,168,69,211,15,50,136,4,220,11, - 25,152,36,164,11,211,11,44,208,4,44,114,22,0,0,0, - 169,1,218,9,114,101,99,117,114,115,105,118,101,99,3,0, - 0,0,0,0,0,0,1,0,0,0,9,0,0,0,3,0, - 0,0,243,236,1,0,0,151,0,124,1,68,0,93,164,0, - 0,125,4,116,1,0,0,0,0,0,0,0,0,124,4,116, - 2,0,0,0,0,0,0,0,0,171,2,0,0,0,0,0, - 0,115,56,124,3,114,16,124,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,122, - 0,0,0,125,5,110,2,100,2,125,5,116,7,0,0,0, - 0,0,0,0,0,100,3,124,5,155,0,100,4,116,9,0, - 0,0,0,0,0,0,0,124,4,171,1,0,0,0,0,0, - 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,155,0,157,4,171,1,0,0,0,0,0, - 0,130,1,124,4,100,5,107,40,0,0,114,42,124,3,114, - 1,140,83,116,11,0,0,0,0,0,0,0,0,124,0,100, - 6,171,2,0,0,0,0,0,0,115,1,140,96,116,13,0, - 0,0,0,0,0,0,0,124,0,124,0,106,14,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 2,100,7,172,8,171,4,0,0,0,0,0,0,1,0,140, - 122,116,11,0,0,0,0,0,0,0,0,124,0,124,4,171, - 2,0,0,0,0,0,0,114,1,140,135,124,0,106,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,155,0,100,9,124,4,155,0,157,3,125,6,9,0,116, - 17,0,0,0,0,0,0,0,0,124,2,124,6,171,2,0, - 0,0,0,0,0,1,0,140,166,4,0,124,0,83,0,35, - 0,116,18,0,0,0,0,0,0,0,0,36,0,114,62,125, - 7,124,7,106,20,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,6,107,40,0,0,114,41,116, - 22,0,0,0,0,0,0,0,0,106,24,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,27,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,6,116,28,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,129,5,89,0,100,10,125,7,126,7,140, - 234,130,0,100,10,125,7,126,7,119,1,119,0,120,3,89, - 0,119,1,41,11,122,238,70,105,103,117,114,101,32,111,117, - 116,32,119,104,97,116,32,95,95,105,109,112,111,114,116,95, - 95,32,115,104,111,117,108,100,32,114,101,116,117,114,110,46, - 10,10,32,32,32,32,84,104,101,32,105,109,112,111,114,116, - 95,32,112,97,114,97,109,101,116,101,114,32,105,115,32,97, - 32,99,97,108,108,97,98,108,101,32,119,104,105,99,104,32, - 116,97,107,101,115,32,116,104,101,32,110,97,109,101,32,111, - 102,32,109,111,100,117,108,101,32,116,111,10,32,32,32,32, - 105,109,112,111,114,116,46,32,73,116,32,105,115,32,114,101, - 113,117,105,114,101,100,32,116,111,32,100,101,99,111,117,112, - 108,101,32,116,104,101,32,102,117,110,99,116,105,111,110,32, - 102,114,111,109,32,97,115,115,117,109,105,110,103,32,105,109, - 112,111,114,116,108,105,98,39,115,10,32,32,32,32,105,109, - 112,111,114,116,32,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,32,105,115,32,100,101,115,105,114,101,100,46,10, - 10,32,32,32,32,122,8,46,95,95,97,108,108,95,95,122, - 13,96,96,102,114,111,109,32,108,105,115,116,39,39,122,8, - 73,116,101,109,32,105,110,32,122,18,32,109,117,115,116,32, - 98,101,32,115,116,114,44,32,110,111,116,32,250,1,42,218, - 7,95,95,97,108,108,95,95,84,114,140,1,0,0,114,244, - 0,0,0,78,41,15,114,23,1,0,0,114,121,1,0,0, - 114,11,0,0,0,114,122,1,0,0,114,5,0,0,0,114, - 13,0,0,0,218,16,95,104,97,110,100,108,101,95,102,114, - 111,109,108,105,115,116,114,144,1,0,0,114,161,0,0,0, - 114,129,1,0,0,114,26,0,0,0,114,24,0,0,0,114, - 195,0,0,0,114,76,0,0,0,114,136,1,0,0,41,8, - 114,200,0,0,0,218,8,102,114,111,109,108,105,115,116,114, - 130,1,0,0,114,141,1,0,0,218,1,120,218,5,119,104, - 101,114,101,218,9,102,114,111,109,95,110,97,109,101,218,3, - 101,120,99,115,8,0,0,0,32,32,32,32,32,32,32,32, - 114,7,0,0,0,114,145,1,0,0,114,145,1,0,0,110, - 5,0,0,115,248,0,0,0,128,0,240,20,0,14,22,242, - 0,23,5,22,136,1,220,15,25,152,33,156,83,212,15,33, - 217,15,24,216,24,30,159,15,153,15,168,42,209,24,52,145, - 5,224,24,39,144,5,220,18,27,152,104,160,117,160,103,240, - 0,1,46,35,220,35,39,168,1,163,55,215,35,51,209,35, - 51,208,34,52,240,3,1,29,54,243,0,1,19,55,240,0, - 1,13,55,224,13,14,144,35,138,88,218,19,28,164,23,168, - 22,176,25,213,33,59,220,16,32,160,22,168,22,175,30,169, - 30,184,23,216,43,47,246,3,1,17,49,228,17,24,152,22, - 160,17,213,17,35,216,27,33,159,63,153,63,208,26,43,168, - 49,168,81,168,67,208,24,48,136,73,240,2,9,13,22,220, - 16,41,168,39,176,57,213,16,61,240,31,23,5,22,240,48, - 0,12,18,128,77,248,244,17,0,20,39,242,0,7,13,22, - 240,8,0,21,24,151,72,145,72,160,9,210,20,41,220,20, - 23,151,75,145,75,151,79,145,79,160,73,172,126,211,20,62, - 208,20,74,220,20,28,216,16,21,251,240,15,7,13,22,250, - 115,30,0,0,0,194,28,12,66,44,2,194,44,9,67,51, - 5,194,53,51,67,46,5,195,45,1,67,46,5,195,46,5, - 67,51,5,99,1,0,0,0,0,0,0,0,0,0,0,0, - 7,0,0,0,3,0,0,0,243,92,1,0,0,151,0,124, - 0,106,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,171,1,0,0,0,0,0,0,125, - 1,124,0,106,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,2,171,1,0,0,0,0,0, - 0,125,2,124,1,129,64,124,2,129,60,124,1,124,2,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,107,55,0,0,114,45,116,4,0,0,0,0,0, - 0,0,0,106,7,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,3,124,1,155,2,100,4,124, - 2,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,155,2,100,5,157,5,116,8,0,0,0, - 0,0,0,0,0,100,6,172,7,171,3,0,0,0,0,0, - 0,1,0,124,1,83,0,124,2,129,12,124,2,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,83,0,116,4,0,0,0,0,0,0,0,0,106,7,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,8,116,10,0,0,0,0,0,0,0,0,100,6,172, - 7,171,3,0,0,0,0,0,0,1,0,124,0,100,9,25, - 0,0,0,125,1,100,10,124,0,118,1,114,20,124,1,106, - 13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,11,171,1,0,0,0,0,0,0,100,12,25, - 0,0,0,125,1,124,1,83,0,41,13,122,167,67,97,108, - 99,117,108,97,116,101,32,119,104,97,116,32,95,95,112,97, - 99,107,97,103,101,95,95,32,115,104,111,117,108,100,32,98, - 101,46,10,10,32,32,32,32,95,95,112,97,99,107,97,103, - 101,95,95,32,105,115,32,110,111,116,32,103,117,97,114,97, - 110,116,101,101,100,32,116,111,32,98,101,32,100,101,102,105, - 110,101,100,32,111,114,32,99,111,117,108,100,32,98,101,32, - 115,101,116,32,116,111,32,78,111,110,101,10,32,32,32,32, - 116,111,32,114,101,112,114,101,115,101,110,116,32,116,104,97, - 116,32,105,116,115,32,112,114,111,112,101,114,32,118,97,108, - 117,101,32,105,115,32,117,110,107,110,111,119,110,46,10,10, - 32,32,32,32,114,13,1,0,0,114,204,0,0,0,122,32, - 95,95,112,97,99,107,97,103,101,95,95,32,33,61,32,95, - 95,115,112,101,99,95,95,46,112,97,114,101,110,116,32,40, - 122,4,32,33,61,32,114,229,0,0,0,233,3,0,0,0, - 41,1,218,10,115,116,97,99,107,108,101,118,101,108,122,89, - 99,97,110,39,116,32,114,101,115,111,108,118,101,32,112,97, - 99,107,97,103,101,32,102,114,111,109,32,95,95,115,112,101, - 99,95,95,32,111,114,32,95,95,112,97,99,107,97,103,101, - 95,95,44,32,102,97,108,108,105,110,103,32,98,97,99,107, - 32,111,110,32,95,95,110,97,109,101,95,95,32,97,110,100, - 32,95,95,112,97,116,104,95,95,114,11,0,0,0,114,7, - 1,0,0,114,244,0,0,0,114,125,0,0,0,41,7,114, - 76,0,0,0,114,246,0,0,0,114,191,0,0,0,114,192, - 0,0,0,114,193,0,0,0,114,27,1,0,0,114,245,0, - 0,0,41,3,218,7,103,108,111,98,97,108,115,114,110,1, - 0,0,114,199,0,0,0,115,3,0,0,0,32,32,32,114, - 7,0,0,0,218,17,95,99,97,108,99,95,95,95,112,97, - 99,107,97,103,101,95,95,114,155,1,0,0,147,5,0,0, - 115,200,0,0,0,128,0,240,14,0,15,22,143,107,137,107, - 152,45,211,14,40,128,71,216,11,18,143,59,137,59,144,122, - 211,11,34,128,68,216,7,14,208,7,26,216,11,15,208,11, - 27,160,7,168,52,175,59,169,59,210,32,54,220,12,21,143, - 78,137,78,240,0,1,28,31,216,31,38,152,107,168,20,168, - 100,175,107,169,107,168,95,184,65,240,3,1,28,63,228,27, - 45,184,33,240,5,0,13,27,244,0,2,13,61,240,6,0, - 16,23,136,14,216,9,13,208,9,25,216,15,19,143,123,137, - 123,208,8,26,228,8,17,143,14,137,14,240,0,1,24,63, - 228,23,36,176,17,240,5,0,9,23,244,0,2,9,52,240, - 6,0,19,26,152,42,209,18,37,136,7,216,11,21,152,87, - 209,11,36,216,22,29,215,22,40,209,22,40,168,19,211,22, - 45,168,97,209,22,48,136,71,216,11,18,128,78,114,22,0, - 0,0,99,5,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,3,0,0,0,243,172,1,0,0,151,0,124,4, - 100,1,107,40,0,0,114,12,116,1,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,5,110,30, - 124,1,129,2,124,1,110,1,105,0,125,6,116,3,0,0, - 0,0,0,0,0,0,124,6,171,1,0,0,0,0,0,0, - 125,7,116,1,0,0,0,0,0,0,0,0,124,0,124,7, - 124,4,171,3,0,0,0,0,0,0,125,5,124,3,115,133, - 124,4,100,1,107,40,0,0,114,29,116,1,0,0,0,0, - 0,0,0,0,124,0,106,5,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,3,171,1,0,0, - 0,0,0,0,100,1,25,0,0,0,171,1,0,0,0,0, - 0,0,83,0,124,0,115,2,124,5,83,0,116,7,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 116,7,0,0,0,0,0,0,0,0,124,0,106,5,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,3,171,1,0,0,0,0,0,0,100,1,25,0,0,0, - 171,1,0,0,0,0,0,0,122,10,0,0,125,8,116,8, - 0,0,0,0,0,0,0,0,106,10,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,5,106,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,2,116,7,0,0,0,0,0,0,0,0,124,5, - 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,124,8,122,10, - 0,0,26,0,25,0,0,0,83,0,116,15,0,0,0,0, - 0,0,0,0,124,5,100,4,171,2,0,0,0,0,0,0, - 114,17,116,17,0,0,0,0,0,0,0,0,124,5,124,3, - 116,0,0,0,0,0,0,0,0,0,171,3,0,0,0,0, - 0,0,83,0,124,5,83,0,41,5,97,215,1,0,0,73, - 109,112,111,114,116,32,97,32,109,111,100,117,108,101,46,10, - 10,32,32,32,32,84,104,101,32,39,103,108,111,98,97,108, - 115,39,32,97,114,103,117,109,101,110,116,32,105,115,32,117, - 115,101,100,32,116,111,32,105,110,102,101,114,32,119,104,101, - 114,101,32,116,104,101,32,105,109,112,111,114,116,32,105,115, - 32,111,99,99,117,114,114,105,110,103,32,102,114,111,109,10, - 32,32,32,32,116,111,32,104,97,110,100,108,101,32,114,101, - 108,97,116,105,118,101,32,105,109,112,111,114,116,115,46,32, - 84,104,101,32,39,108,111,99,97,108,115,39,32,97,114,103, - 117,109,101,110,116,32,105,115,32,105,103,110,111,114,101,100, - 46,32,84,104,101,10,32,32,32,32,39,102,114,111,109,108, - 105,115,116,39,32,97,114,103,117,109,101,110,116,32,115,112, - 101,99,105,102,105,101,115,32,119,104,97,116,32,115,104,111, - 117,108,100,32,101,120,105,115,116,32,97,115,32,97,116,116, - 114,105,98,117,116,101,115,32,111,110,32,116,104,101,32,109, - 111,100,117,108,101,10,32,32,32,32,98,101,105,110,103,32, - 105,109,112,111,114,116,101,100,32,40,101,46,103,46,32,96, - 96,102,114,111,109,32,109,111,100,117,108,101,32,105,109,112, - 111,114,116,32,60,102,114,111,109,108,105,115,116,62,96,96, - 41,46,32,32,84,104,101,32,39,108,101,118,101,108,39,10, - 32,32,32,32,97,114,103,117,109,101,110,116,32,114,101,112, - 114,101,115,101,110,116,115,32,116,104,101,32,112,97,99,107, - 97,103,101,32,108,111,99,97,116,105,111,110,32,116,111,32, - 105,109,112,111,114,116,32,102,114,111,109,32,105,110,32,97, - 32,114,101,108,97,116,105,118,101,10,32,32,32,32,105,109, - 112,111,114,116,32,40,101,46,103,46,32,96,96,102,114,111, - 109,32,46,46,112,107,103,32,105,109,112,111,114,116,32,109, - 111,100,96,96,32,119,111,117,108,100,32,104,97,118,101,32, - 97,32,39,108,101,118,101,108,39,32,111,102,32,50,41,46, - 10,10,32,32,32,32,114,125,0,0,0,78,114,244,0,0, - 0,114,7,1,0,0,41,9,114,139,1,0,0,114,155,1, - 0,0,218,9,112,97,114,116,105,116,105,111,110,114,127,0, - 0,0,114,24,0,0,0,114,195,0,0,0,114,11,0,0, - 0,114,13,0,0,0,114,145,1,0,0,41,9,114,26,0, - 0,0,114,154,1,0,0,218,6,108,111,99,97,108,115,114, - 146,1,0,0,114,111,1,0,0,114,200,0,0,0,218,8, - 103,108,111,98,97,108,115,95,114,110,1,0,0,218,7,99, - 117,116,95,111,102,102,115,9,0,0,0,32,32,32,32,32, - 32,32,32,32,114,7,0,0,0,218,10,95,95,105,109,112, - 111,114,116,95,95,114,161,1,0,0,174,5,0,0,115,210, - 0,0,0,128,0,240,22,0,8,13,144,1,130,122,220,17, - 28,152,84,211,17,34,137,6,224,30,37,208,30,49,145,55, - 176,114,136,8,220,18,35,160,72,211,18,45,136,7,220,17, - 28,152,84,160,55,168,69,211,17,50,136,6,217,11,19,240, - 6,0,12,17,144,65,138,58,220,19,30,152,116,159,126,153, - 126,168,99,211,31,50,176,49,209,31,53,211,19,54,208,12, - 54,217,17,21,216,19,25,136,77,244,8,0,23,26,152,36, - 147,105,164,35,160,100,167,110,161,110,176,83,211,38,57,184, - 33,209,38,60,211,34,61,209,22,61,136,71,244,6,0,20, - 23,151,59,145,59,152,118,159,127,153,127,208,47,76,180,3, - 176,70,183,79,177,79,211,48,68,192,87,209,48,76,208,31, - 77,209,19,78,208,12,78,220,9,16,144,22,152,26,212,9, - 36,220,15,31,160,6,168,8,180,43,211,15,62,208,8,62, - 224,15,21,136,13,114,22,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 98,0,0,0,151,0,116,0,0,0,0,0,0,0,0,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,125,1, - 124,1,128,14,116,5,0,0,0,0,0,0,0,0,100,1, - 124,0,122,0,0,0,171,1,0,0,0,0,0,0,130,1, - 116,7,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,83,0,41,2,78,122,25,110,111,32,98,117, - 105,108,116,45,105,110,32,109,111,100,117,108,101,32,110,97, - 109,101,100,32,41,4,114,37,1,0,0,114,43,1,0,0, - 114,178,0,0,0,114,33,1,0,0,41,2,114,26,0,0, - 0,114,199,0,0,0,115,2,0,0,0,32,32,114,7,0, - 0,0,218,18,95,98,117,105,108,116,105,110,95,102,114,111, - 109,95,110,97,109,101,114,163,1,0,0,211,5,0,0,115, - 51,0,0,0,128,0,220,11,26,215,11,36,209,11,36,160, - 84,211,11,42,128,68,216,7,11,128,124,220,14,25,208,26, - 53,184,4,209,26,60,211,14,61,208,8,61,220,11,25,152, - 36,211,11,31,208,4,31,114,22,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0, - 0,243,44,2,0,0,151,0,124,1,97,0,124,0,97,1, - 116,5,0,0,0,0,0,0,0,0,116,2,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,125,2,116,2, - 0,0,0,0,0,0,0,0,106,6,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,9,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,68,0,93,122,0,0,92,2, - 0,0,125,3,125,4,116,11,0,0,0,0,0,0,0,0, - 124,4,124,2,171,2,0,0,0,0,0,0,115,1,140,19, - 124,3,116,2,0,0,0,0,0,0,0,0,106,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 118,0,114,7,116,14,0,0,0,0,0,0,0,0,125,5, - 110,29,116,0,0,0,0,0,0,0,0,0,106,17,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,3,171,1,0,0,0,0,0,0,114,7,116,18,0,0, - 0,0,0,0,0,0,125,5,110,1,140,73,116,21,0,0, - 0,0,0,0,0,0,124,4,124,5,171,2,0,0,0,0, - 0,0,125,6,116,23,0,0,0,0,0,0,0,0,124,6, - 124,4,171,2,0,0,0,0,0,0,1,0,124,5,116,18, - 0,0,0,0,0,0,0,0,117,0,115,1,140,106,124,5, - 106,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,171,1,0,0,0,0,0,0,1,0, - 140,124,4,0,116,2,0,0,0,0,0,0,0,0,106,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,26,0,0,0,0,0,0,0,0,25,0,0,0, - 125,7,100,1,68,0,93,64,0,0,125,8,124,8,116,2, - 0,0,0,0,0,0,0,0,106,6,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,118,1,114,12, - 116,29,0,0,0,0,0,0,0,0,124,8,171,1,0,0, - 0,0,0,0,125,9,110,19,116,2,0,0,0,0,0,0, - 0,0,106,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,8,25,0,0,0,125,9,116,31, - 0,0,0,0,0,0,0,0,124,7,124,8,124,9,171,3, - 0,0,0,0,0,0,1,0,140,66,4,0,116,33,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,97,17, - 121,2,41,3,122,250,83,101,116,117,112,32,105,109,112,111, - 114,116,108,105,98,32,98,121,32,105,109,112,111,114,116,105, - 110,103,32,110,101,101,100,101,100,32,98,117,105,108,116,45, - 105,110,32,109,111,100,117,108,101,115,32,97,110,100,32,105, - 110,106,101,99,116,105,110,103,32,116,104,101,109,10,32,32, - 32,32,105,110,116,111,32,116,104,101,32,103,108,111,98,97, - 108,32,110,97,109,101,115,112,97,99,101,46,10,10,32,32, - 32,32,65,115,32,115,121,115,32,105,115,32,110,101,101,100, - 101,100,32,102,111,114,32,115,121,115,46,109,111,100,117,108, - 101,115,32,97,99,99,101,115,115,32,97,110,100,32,95,105, - 109,112,32,105,115,32,110,101,101,100,101,100,32,116,111,32, - 108,111,97,100,32,98,117,105,108,116,45,105,110,10,32,32, - 32,32,109,111,100,117,108,101,115,44,32,116,104,111,115,101, - 32,116,119,111,32,109,111,100,117,108,101,115,32,109,117,115, - 116,32,98,101,32,101,120,112,108,105,99,105,116,108,121,32, - 112,97,115,115,101,100,32,105,110,46,10,10,32,32,32,32, - 41,3,114,109,0,0,0,114,191,0,0,0,114,52,0,0, - 0,78,41,18,114,151,0,0,0,114,24,0,0,0,114,5, - 0,0,0,114,195,0,0,0,218,5,105,116,101,109,115,114, - 23,1,0,0,114,177,0,0,0,114,37,1,0,0,114,187, - 0,0,0,114,58,1,0,0,114,9,1,0,0,114,16,1, - 0,0,114,74,1,0,0,114,11,0,0,0,114,163,1,0, - 0,114,14,0,0,0,114,34,0,0,0,114,85,0,0,0, - 41,10,218,10,115,121,115,95,109,111,100,117,108,101,218,11, - 95,105,109,112,95,109,111,100,117,108,101,218,11,109,111,100, - 117,108,101,95,116,121,112,101,114,26,0,0,0,114,200,0, - 0,0,114,213,0,0,0,114,199,0,0,0,218,11,115,101, - 108,102,95,109,111,100,117,108,101,218,12,98,117,105,108,116, - 105,110,95,110,97,109,101,218,14,98,117,105,108,116,105,110, - 95,109,111,100,117,108,101,115,10,0,0,0,32,32,32,32, - 32,32,32,32,32,32,114,7,0,0,0,218,6,95,115,101, - 116,117,112,114,172,1,0,0,218,5,0,0,115,239,0,0, - 0,128,0,240,18,0,12,23,128,68,216,10,20,128,67,244, - 6,0,19,23,148,115,147,41,128,75,220,24,27,159,11,153, - 11,215,24,41,209,24,41,211,24,43,242,0,11,5,46,137, - 12,136,4,136,102,220,11,21,144,102,152,107,213,11,42,216, - 15,19,148,115,215,23,47,209,23,47,209,15,47,220,25,40, - 145,6,220,17,21,151,30,145,30,160,4,212,17,37,220,25, - 39,145,6,224,16,24,220,19,36,160,86,168,86,211,19,52, - 136,68,220,12,30,152,116,160,86,212,12,44,216,15,21,156, - 30,210,15,39,216,16,22,215,16,37,209,16,37,160,102,213, - 16,45,240,23,11,5,46,244,28,0,19,22,151,43,145,43, - 156,104,209,18,39,128,75,216,24,60,242,0,5,5,59,136, - 12,216,11,23,156,115,159,123,153,123,209,11,42,220,29,47, - 176,12,211,29,61,137,78,228,29,32,159,91,153,91,168,28, - 209,29,54,136,78,220,8,15,144,11,152,92,168,62,213,8, - 58,240,11,5,5,59,244,16,0,20,40,211,19,41,129,76, - 114,22,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,168,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,0,124,1,171, - 2,0,0,0,0,0,0,1,0,116,2,0,0,0,0,0, + 0,0,124,1,171,1,0,0,0,0,0,0,83,0,41,1, + 122,46,82,101,116,117,114,110,32,84,114,117,101,32,105,102, + 32,116,104,101,32,102,114,111,122,101,110,32,109,111,100,117, + 108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,46, + 41,2,114,151,0,0,0,114,65,1,0,0,114,49,1,0, + 0,115,2,0,0,0,32,32,114,7,0,0,0,114,220,0, + 0,0,122,25,70,114,111,122,101,110,73,109,112,111,114,116, + 101,114,46,105,115,95,112,97,99,107,97,103,101,185,4,0, + 0,114,97,1,0,0,114,22,0,0,0,114,222,0,0,0, + 114,55,1,0,0,41,17,114,11,0,0,0,114,10,0,0, + 0,114,3,0,0,0,114,12,0,0,0,114,255,0,0,0, + 114,56,1,0,0,114,74,1,0,0,114,66,1,0,0,114, + 43,1,0,0,114,58,0,0,0,114,18,1,0,0,114,19, + 1,0,0,114,28,1,0,0,114,189,0,0,0,114,50,1, + 0,0,114,53,1,0,0,114,220,0,0,0,114,31,0,0, + 0,114,22,0,0,0,114,7,0,0,0,114,58,1,0,0, + 114,58,1,0,0,255,3,0,0,115,219,0,0,0,132,0, + 241,4,5,5,8,240,14,0,15,23,128,71,224,5,16,241, + 2,66,1,5,37,243,3,0,6,17,240,2,66,1,5,37, + 240,72,2,0,6,17,242,2,22,5,32,243,3,0,6,17, + 240,2,22,5,32,240,48,0,6,17,242,2,27,5,20,243, + 3,0,6,17,240,2,27,5,20,240,58,0,6,18,241,2, + 10,5,22,243,3,0,6,18,240,2,10,5,22,240,24,0, + 6,18,241,2,4,5,36,243,3,0,6,18,240,2,4,5, + 36,240,12,0,6,17,241,2,16,5,22,243,3,0,6,17, + 240,2,16,5,22,240,36,0,6,17,216,5,21,241,2,2, + 5,48,243,3,0,6,22,243,3,0,6,17,240,4,2,5, + 48,240,8,0,6,17,216,5,21,241,2,2,5,20,243,3, + 0,6,22,243,3,0,6,17,240,4,2,5,20,240,8,0, + 6,17,216,5,21,241,2,2,5,48,243,3,0,6,22,243, + 3,0,6,17,241,4,2,5,48,114,22,0,0,0,114,58, + 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,243,28,0,0,0,151,0,101, + 0,90,1,100,0,90,2,100,1,90,3,100,2,132,0,90, + 4,100,3,132,0,90,5,121,4,41,5,218,18,95,73,109, + 112,111,114,116,76,111,99,107,67,111,110,116,101,120,116,122, + 36,67,111,110,116,101,120,116,32,109,97,110,97,103,101,114, + 32,102,111,114,32,116,104,101,32,105,109,112,111,114,116,32, + 108,111,99,107,46,99,1,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,3,0,0,0,243,44,0,0,0,151, + 0,116,0,0,0,0,0,0,0,0,0,106,3,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, + 0,0,0,0,0,0,0,1,0,121,1,41,2,122,24,65, + 99,113,117,105,114,101,32,116,104,101,32,105,109,112,111,114, + 116,32,108,111,99,107,46,78,41,2,114,151,0,0,0,114, + 152,0,0,0,114,66,0,0,0,115,1,0,0,0,32,114, + 7,0,0,0,114,87,0,0,0,122,28,95,73,109,112,111, + 114,116,76,111,99,107,67,111,110,116,101,120,116,46,95,95, + 101,110,116,101,114,95,95,198,4,0,0,243,14,0,0,0, + 128,0,228,8,12,215,8,25,209,8,25,213,8,27,114,22, + 0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,243,44,0,0,0,151,0,116, + 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, + 0,0,0,0,0,1,0,121,1,41,2,122,60,82,101,108, + 101,97,115,101,32,116,104,101,32,105,109,112,111,114,116,32, + 108,111,99,107,32,114,101,103,97,114,100,108,101,115,115,32, + 111,102,32,97,110,121,32,114,97,105,115,101,100,32,101,120, + 99,101,112,116,105,111,110,115,46,78,41,2,114,151,0,0, + 0,114,154,0,0,0,41,4,114,44,0,0,0,218,8,101, + 120,99,95,116,121,112,101,218,9,101,120,99,95,118,97,108, + 117,101,218,13,101,120,99,95,116,114,97,99,101,98,97,99, + 107,115,4,0,0,0,32,32,32,32,114,7,0,0,0,114, + 92,0,0,0,122,27,95,73,109,112,111,114,116,76,111,99, + 107,67,111,110,116,101,120,116,46,95,95,101,120,105,116,95, + 95,202,4,0,0,114,103,1,0,0,114,22,0,0,0,78, + 41,6,114,11,0,0,0,114,10,0,0,0,114,3,0,0, + 0,114,12,0,0,0,114,87,0,0,0,114,92,0,0,0, + 114,31,0,0,0,114,22,0,0,0,114,7,0,0,0,114, + 101,1,0,0,114,101,1,0,0,194,4,0,0,115,15,0, + 0,0,132,0,225,4,46,242,4,2,5,28,243,8,2,5, + 28,114,22,0,0,0,114,101,1,0,0,99,3,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 243,126,0,0,0,151,0,124,1,106,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,124, + 2,100,2,122,10,0,0,171,2,0,0,0,0,0,0,125, + 3,116,3,0,0,0,0,0,0,0,0,124,3,171,1,0, + 0,0,0,0,0,124,2,107,2,0,0,114,11,116,5,0, + 0,0,0,0,0,0,0,100,3,171,1,0,0,0,0,0, + 0,130,1,124,3,100,4,25,0,0,0,125,4,124,0,114, + 7,124,4,155,0,100,1,124,0,155,0,157,3,83,0,124, + 4,83,0,41,5,122,50,82,101,115,111,108,118,101,32,97, + 32,114,101,108,97,116,105,118,101,32,109,111,100,117,108,101, + 32,110,97,109,101,32,116,111,32,97,110,32,97,98,115,111, + 108,117,116,101,32,111,110,101,46,114,244,0,0,0,114,138, + 0,0,0,122,50,97,116,116,101,109,112,116,101,100,32,114, + 101,108,97,116,105,118,101,32,105,109,112,111,114,116,32,98, + 101,121,111,110,100,32,116,111,112,45,108,101,118,101,108,32, + 112,97,99,107,97,103,101,114,125,0,0,0,41,3,218,6, + 114,115,112,108,105,116,114,127,0,0,0,114,178,0,0,0, + 41,5,114,26,0,0,0,218,7,112,97,99,107,97,103,101, + 218,5,108,101,118,101,108,218,4,98,105,116,115,218,4,98, + 97,115,101,115,5,0,0,0,32,32,32,32,32,114,7,0, + 0,0,218,13,95,114,101,115,111,108,118,101,95,110,97,109, + 101,114,114,1,0,0,207,4,0,0,115,79,0,0,0,128, + 0,224,11,18,143,62,137,62,152,35,152,117,160,113,153,121, + 211,11,41,128,68,220,7,10,136,52,131,121,144,53,210,7, + 24,220,14,25,208,26,78,211,14,79,208,8,79,216,11,15, + 144,1,137,55,128,68,217,31,35,136,100,136,86,144,49,144, + 84,144,70,208,11,27,208,4,45,168,20,208,4,45,114,22, + 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, + 7,0,0,0,3,0,0,0,243,242,1,0,0,151,0,116, + 0,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,125,3,124, + 3,128,11,116,5,0,0,0,0,0,0,0,0,100,2,171, + 1,0,0,0,0,0,0,130,1,124,3,115,26,116,6,0, + 0,0,0,0,0,0,0,106,9,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,3,116,10,0, + 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,1, + 0,124,0,116,0,0,0,0,0,0,0,0,0,106,12,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,118,0,125,4,124,3,68,0,93,113,0,0,125,5,116, + 15,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,53,0,1,0,9,0,124,5,106,16,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,125,6,2, + 0,124,6,124,0,124,1,124,2,171,3,0,0,0,0,0, + 0,125,7,9,0,100,1,100,1,100,1,171,2,0,0,0, + 0,0,0,1,0,127,7,128,1,140,49,124,4,115,60,124, + 0,116,0,0,0,0,0,0,0,0,0,106,12,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118, + 0,114,42,116,0,0,0,0,0,0,0,0,0,106,12,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,0,25,0,0,0,125,8,9,0,124,8,106,20,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,125,9,124,9,128,4,124,7,99,2,1,0,83,0,124, + 9,99,2,1,0,83,0,124,7,99,2,1,0,83,0,4, + 0,121,1,35,0,116,18,0,0,0,0,0,0,0,0,36, + 0,114,11,1,0,89,0,100,1,100,1,100,1,171,2,0, + 0,0,0,0,0,1,0,140,136,119,0,120,3,89,0,119, + 1,35,0,49,0,115,1,119,2,1,0,89,0,1,0,1, + 0,140,103,120,3,89,0,119,1,35,0,116,18,0,0,0, + 0,0,0,0,0,36,0,114,7,1,0,124,7,99,2,89, + 0,99,2,1,0,83,0,119,0,120,3,89,0,119,1,41, + 4,122,21,70,105,110,100,32,97,32,109,111,100,117,108,101, + 39,115,32,115,112,101,99,46,78,122,53,115,121,115,46,109, + 101,116,97,95,112,97,116,104,32,105,115,32,78,111,110,101, + 44,32,80,121,116,104,111,110,32,105,115,32,108,105,107,101, + 108,121,32,115,104,117,116,116,105,110,103,32,100,111,119,110, + 122,22,115,121,115,46,109,101,116,97,95,112,97,116,104,32, + 105,115,32,101,109,112,116,121,41,11,114,24,0,0,0,218, + 9,109,101,116,97,95,112,97,116,104,114,178,0,0,0,114, + 191,0,0,0,114,192,0,0,0,114,27,1,0,0,114,195, + 0,0,0,114,101,1,0,0,114,43,1,0,0,114,4,0, + 0,0,114,204,0,0,0,41,10,114,26,0,0,0,114,41, + 1,0,0,114,42,1,0,0,114,116,1,0,0,218,9,105, + 115,95,114,101,108,111,97,100,218,6,102,105,110,100,101,114, + 114,43,1,0,0,114,199,0,0,0,114,200,0,0,0,114, + 204,0,0,0,115,10,0,0,0,32,32,32,32,32,32,32, + 32,32,32,114,7,0,0,0,218,10,95,102,105,110,100,95, + 115,112,101,99,114,119,1,0,0,216,4,0,0,115,20,1, + 0,0,128,0,228,16,19,151,13,145,13,128,73,216,7,16, + 208,7,24,228,14,25,240,0,1,27,42,243,0,1,15,43, + 240,0,1,9,43,241,6,0,12,21,220,8,17,143,14,137, + 14,208,23,47,180,29,212,8,63,240,10,0,17,21,156,3, + 159,11,153,11,208,16,35,128,73,216,18,27,242,0,27,5, + 20,136,6,220,13,31,211,13,33,241,0,6,9,53,240,2, + 5,13,53,216,28,34,215,28,44,209,28,44,144,9,241,8, + 0,24,33,160,20,160,116,168,86,211,23,52,145,4,247,13, + 6,9,53,240,14,0,12,16,209,11,27,225,19,28,160,20, + 172,19,175,27,169,27,209,33,52,220,25,28,159,27,153,27, + 160,84,209,25,42,144,6,240,2,11,17,40,216,31,37,159, + 127,153,127,144,72,240,14,0,24,32,208,23,39,216,31,35, + 154,11,224,31,39,154,15,224,23,27,146,11,240,51,27,5, + 20,240,54,0,16,20,248,244,47,0,20,34,242,0,1,13, + 25,216,16,24,247,9,6,9,53,240,0,6,9,53,240,6, + 1,13,25,250,247,7,6,9,53,240,0,6,9,53,251,244, + 26,0,24,38,242,0,4,17,32,240,8,0,28,32,148,75, + 240,9,4,17,32,250,115,66,0,0,0,193,27,1,67,26, + 5,193,29,12,67,3,4,193,41,10,67,26,5,194,39,12, + 67,38,2,195,3,9,67,23,7,195,12,1,67,26,5,195, + 22,1,67,23,7,195,23,3,67,26,5,195,26,5,67,35, + 9,195,38,11,67,54,5,195,53,1,67,54,5,99,3,0, + 0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0, + 0,0,243,242,0,0,0,151,0,116,1,0,0,0,0,0, + 0,0,0,124,0,116,2,0,0,0,0,0,0,0,0,171, + 2,0,0,0,0,0,0,115,23,116,5,0,0,0,0,0, + 0,0,0,100,1,116,7,0,0,0,0,0,0,0,0,124, + 0,171,1,0,0,0,0,0,0,155,0,157,2,171,1,0, + 0,0,0,0,0,130,1,124,2,100,2,107,2,0,0,114, + 11,116,9,0,0,0,0,0,0,0,0,100,3,171,1,0, + 0,0,0,0,0,130,1,124,2,100,2,107,68,0,0,114, + 40,116,1,0,0,0,0,0,0,0,0,124,1,116,2,0, + 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,115, + 11,116,5,0,0,0,0,0,0,0,0,100,4,171,1,0, + 0,0,0,0,0,130,1,124,1,115,11,116,11,0,0,0, + 0,0,0,0,0,100,5,171,1,0,0,0,0,0,0,130, + 1,124,0,115,17,124,2,100,2,107,40,0,0,114,11,116, + 9,0,0,0,0,0,0,0,0,100,6,171,1,0,0,0, + 0,0,0,130,1,121,7,121,7,41,8,122,28,86,101,114, + 105,102,121,32,97,114,103,117,109,101,110,116,115,32,97,114, + 101,32,34,115,97,110,101,34,46,122,29,109,111,100,117,108, + 101,32,110,97,109,101,32,109,117,115,116,32,98,101,32,115, + 116,114,44,32,110,111,116,32,114,125,0,0,0,122,18,108, + 101,118,101,108,32,109,117,115,116,32,98,101,32,62,61,32, + 48,122,31,95,95,112,97,99,107,97,103,101,95,95,32,110, + 111,116,32,115,101,116,32,116,111,32,97,32,115,116,114,105, + 110,103,122,54,97,116,116,101,109,112,116,101,100,32,114,101, + 108,97,116,105,118,101,32,105,109,112,111,114,116,32,119,105, + 116,104,32,110,111,32,107,110,111,119,110,32,112,97,114,101, + 110,116,32,112,97,99,107,97,103,101,122,17,69,109,112,116, + 121,32,109,111,100,117,108,101,32,110,97,109,101,78,41,6, + 114,23,1,0,0,218,3,115,116,114,218,9,84,121,112,101, + 69,114,114,111,114,114,5,0,0,0,218,10,86,97,108,117, + 101,69,114,114,111,114,114,178,0,0,0,169,3,114,26,0, + 0,0,114,110,1,0,0,114,111,1,0,0,115,3,0,0, + 0,32,32,32,114,7,0,0,0,218,13,95,115,97,110,105, + 116,121,95,99,104,101,99,107,114,125,1,0,0,5,5,0, + 0,115,132,0,0,0,128,0,228,11,21,144,100,156,67,212, + 11,32,220,14,23,208,26,55,188,4,184,84,187,10,176,124, + 208,24,68,211,14,69,208,8,69,216,7,12,136,113,130,121, + 220,14,24,208,25,45,211,14,46,208,8,46,216,7,12,136, + 113,130,121,220,15,25,152,39,164,51,212,15,39,220,18,27, + 208,28,61,211,18,62,208,12,62,217,17,24,220,18,29,240, + 0,1,31,40,243,0,1,19,41,240,0,1,13,41,225,11, + 15,144,69,152,81,146,74,220,14,24,208,25,44,211,14,45, + 208,8,45,240,3,0,21,31,136,52,114,22,0,0,0,122, + 16,78,111,32,109,111,100,117,108,101,32,110,97,109,101,100, + 32,122,4,123,33,114,125,99,2,0,0,0,0,0,0,0, + 0,0,0,0,6,0,0,0,3,0,0,0,243,86,3,0, + 0,151,0,100,0,125,2,124,0,106,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,171, + 1,0,0,0,0,0,0,100,2,25,0,0,0,125,3,100, + 0,125,4,124,3,114,131,124,3,116,2,0,0,0,0,0, 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,116,8,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,1,0,116, - 2,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,7,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,116,10,0,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,1,0,121,1,41,2,122,48,73,110,115,116,97, - 108,108,32,105,109,112,111,114,116,101,114,115,32,102,111,114, - 32,98,117,105,108,116,105,110,32,97,110,100,32,102,114,111, - 122,101,110,32,109,111,100,117,108,101,115,78,41,6,114,172, - 1,0,0,114,24,0,0,0,114,116,1,0,0,114,51,0, - 0,0,114,37,1,0,0,114,58,1,0,0,41,2,114,166, - 1,0,0,114,167,1,0,0,115,2,0,0,0,32,32,114, - 7,0,0,0,218,8,95,105,110,115,116,97,108,108,114,174, - 1,0,0,2,6,0,0,115,48,0,0,0,128,0,228,4, - 10,136,58,144,123,212,4,35,228,4,7,135,77,129,77,215, - 4,24,209,4,24,156,31,212,4,41,220,4,7,135,77,129, - 77,215,4,24,209,4,24,156,30,213,4,40,114,22,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,92,0,0,0,151,0,100,1,100, - 2,108,0,125,0,124,0,97,1,124,0,106,5,0,0,0, + 0,0,0,0,0,0,0,118,1,114,12,116,7,0,0,0, + 0,0,0,0,0,124,1,124,3,171,2,0,0,0,0,0, + 0,1,0,124,0,116,2,0,0,0,0,0,0,0,0,106, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,118,0,114,19,116,2,0,0,0,0,0,0,0, + 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,0,25,0,0,0,83,0,116,2,0, + 0,0,0,0,0,0,0,106,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,3,25,0,0, + 0,125,5,9,0,124,5,106,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,125,2,124,5,106, + 16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,125,4,124,0,106,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,1,171,1,0, + 0,0,0,0,0,100,6,25,0,0,0,125,7,116,19,0, + 0,0,0,0,0,0,0,124,0,124,2,171,2,0,0,0, + 0,0,0,125,8,124,8,128,21,116,15,0,0,0,0,0, + 0,0,0,116,12,0,0,0,0,0,0,0,0,155,0,124, + 0,155,2,157,2,124,0,172,5,171,2,0,0,0,0,0, + 0,130,1,124,4,114,27,124,4,106,20,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,106,23,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,127,7,171,1,0,0,0,0,0,0,1,0,9,0,116, + 25,0,0,0,0,0,0,0,0,124,8,171,1,0,0,0, + 0,0,0,125,9,124,4,114,27,124,4,106,20,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, + 27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,1,0,9,0,124, + 3,114,35,116,2,0,0,0,0,0,0,0,0,106,4,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,3,25,0,0,0,125,5,9,0,116,29,0,0,0, + 0,0,0,0,0,124,5,127,7,124,9,171,3,0,0,0, + 0,0,0,1,0,124,9,83,0,124,9,83,0,35,0,116, + 10,0,0,0,0,0,0,0,0,36,0,114,29,1,0,116, + 12,0,0,0,0,0,0,0,0,155,0,124,0,155,2,100, + 3,124,3,155,2,100,4,157,5,125,6,116,15,0,0,0, + 0,0,0,0,0,124,6,124,0,172,5,171,2,0,0,0, + 0,0,0,100,0,130,2,119,0,120,3,89,0,119,1,35, + 0,124,4,114,27,124,4,106,20,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,106,27,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, + 0,0,0,0,0,0,0,1,0,119,0,119,0,120,3,89, + 0,119,1,35,0,116,10,0,0,0,0,0,0,0,0,36, + 0,114,38,1,0,100,7,124,3,155,2,100,8,127,7,155, + 2,157,4,125,6,116,30,0,0,0,0,0,0,0,0,106, + 33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,6,116,34,0,0,0,0,0,0,0,0,171, + 2,0,0,0,0,0,0,1,0,89,0,124,9,83,0,119, + 0,120,3,89,0,119,1,41,9,78,114,244,0,0,0,114, + 125,0,0,0,122,2,59,32,122,17,32,105,115,32,110,111, + 116,32,97,32,112,97,99,107,97,103,101,114,25,0,0,0, + 233,2,0,0,0,122,27,67,97,110,110,111,116,32,115,101, + 116,32,97,110,32,97,116,116,114,105,98,117,116,101,32,111, + 110,32,122,18,32,102,111,114,32,99,104,105,108,100,32,109, + 111,100,117,108,101,32,41,18,114,245,0,0,0,114,24,0, + 0,0,114,195,0,0,0,114,161,0,0,0,114,7,1,0, + 0,114,4,0,0,0,218,15,95,69,82,82,95,77,83,71, + 95,80,82,69,70,73,88,218,19,77,111,100,117,108,101,78, + 111,116,70,111,117,110,100,69,114,114,111,114,114,204,0,0, + 0,114,119,1,0,0,114,224,0,0,0,114,51,0,0,0, + 114,33,1,0,0,114,68,0,0,0,114,14,0,0,0,114, + 191,0,0,0,114,192,0,0,0,114,27,1,0,0,41,10, + 114,26,0,0,0,218,7,105,109,112,111,114,116,95,114,41, + 1,0,0,114,246,0,0,0,218,11,112,97,114,101,110,116, + 95,115,112,101,99,218,13,112,97,114,101,110,116,95,109,111, + 100,117,108,101,114,198,0,0,0,218,5,99,104,105,108,100, + 114,199,0,0,0,114,200,0,0,0,115,10,0,0,0,32, + 32,32,32,32,32,32,32,32,32,114,7,0,0,0,218,23, + 95,102,105,110,100,95,97,110,100,95,108,111,97,100,95,117, + 110,108,111,99,107,101,100,114,134,1,0,0,24,5,0,0, + 115,177,1,0,0,128,0,216,11,15,128,68,216,13,17,143, + 95,137,95,152,83,211,13,33,160,33,209,13,36,128,70,216, + 18,22,128,75,217,7,13,216,11,17,156,19,159,27,153,27, + 209,11,36,220,12,37,160,103,168,118,212,12,54,224,11,15, + 148,51,151,59,145,59,209,11,30,220,19,22,151,59,145,59, + 152,116,209,19,36,208,12,36,220,24,27,159,11,153,11,160, + 70,209,24,43,136,13,240,2,4,9,64,1,216,19,32,215, + 19,41,209,19,41,136,68,240,8,0,23,36,215,22,44,209, + 22,44,136,11,216,16,20,151,15,145,15,160,3,211,16,36, + 160,81,209,16,39,136,5,220,11,21,144,100,152,68,211,11, + 33,128,68,216,7,11,128,124,220,14,33,164,95,208,36,53, + 176,100,176,88,208,34,62,192,84,212,14,74,208,8,74,225, + 11,22,240,6,0,13,24,215,12,49,209,12,49,215,12,56, + 209,12,56,184,21,212,12,63,240,2,4,9,60,220,21,35, + 160,68,211,21,41,136,70,225,15,26,216,16,27,215,16,53, + 209,16,53,215,16,57,209,16,57,213,16,59,217,7,13,228, + 24,27,159,11,153,11,160,70,209,24,43,136,13,240,2,4, + 9,47,220,12,19,144,77,160,53,168,38,212,12,49,240,8, + 0,12,18,128,77,136,54,128,77,248,244,53,0,16,30,242, + 0,2,9,64,1,220,21,36,208,20,37,160,100,160,88,168, + 82,176,6,168,122,208,57,74,208,18,75,136,67,220,18,37, + 160,99,176,4,212,18,53,184,52,208,12,63,240,5,2,9, + 64,1,251,241,32,0,16,27,216,16,27,215,16,53,209,16, + 53,215,16,57,209,16,57,213,16,59,240,3,0,16,27,251, + 244,14,0,16,30,242,0,2,9,47,216,20,47,176,6,168, + 122,208,57,75,200,69,200,57,208,18,85,136,67,220,12,21, + 143,78,137,78,152,51,164,13,213,12,46,216,11,17,128,77, + 240,7,2,9,47,250,115,42,0,0,0,193,50,12,68,46, + 0,195,31,11,69,23,0,196,29,13,69,57,0,196,46,38, + 69,20,3,197,23,31,69,54,3,197,57,43,70,40,3,198, + 39,1,70,40,3,99,2,0,0,0,0,0,0,0,0,0, + 0,0,7,0,0,0,3,0,0,0,243,146,1,0,0,151, + 0,116,0,0,0,0,0,0,0,0,0,106,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, + 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,0,116,6,0,0,0,0,0,0,0,0,171, + 2,0,0,0,0,0,0,125,2,124,2,116,6,0,0,0, + 0,0,0,0,0,117,0,115,24,116,9,0,0,0,0,0, + 0,0,0,116,9,0,0,0,0,0,0,0,0,124,2,100, + 1,100,2,171,3,0,0,0,0,0,0,100,3,100,4,171, + 3,0,0,0,0,0,0,114,97,116,11,0,0,0,0,0, + 0,0,0,124,0,171,1,0,0,0,0,0,0,53,0,1, + 0,116,0,0,0,0,0,0,0,0,0,106,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, + 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,0,116,6,0,0,0,0,0,0,0,0,171, + 2,0,0,0,0,0,0,125,2,124,2,116,6,0,0,0, + 0,0,0,0,0,117,0,114,21,116,13,0,0,0,0,0, + 0,0,0,124,0,124,1,171,2,0,0,0,0,0,0,99, + 2,100,2,100,2,100,2,171,2,0,0,0,0,0,0,1, + 0,83,0,9,0,100,2,100,2,100,2,171,2,0,0,0, + 0,0,0,1,0,116,15,0,0,0,0,0,0,0,0,124, + 0,171,1,0,0,0,0,0,0,1,0,124,2,128,19,100, + 5,124,0,155,0,100,6,157,3,125,3,116,17,0,0,0, + 0,0,0,0,0,124,3,124,0,172,7,171,2,0,0,0, + 0,0,0,130,1,124,2,83,0,35,0,49,0,115,1,119, + 2,1,0,89,0,1,0,1,0,140,43,120,3,89,0,119, + 1,41,8,122,25,70,105,110,100,32,97,110,100,32,108,111, + 97,100,32,116,104,101,32,109,111,100,117,108,101,46,114,204, + 0,0,0,78,114,32,1,0,0,70,122,10,105,109,112,111, + 114,116,32,111,102,32,122,28,32,104,97,108,116,101,100,59, + 32,78,111,110,101,32,105,110,32,115,121,115,46,109,111,100, + 117,108,101,115,114,25,0,0,0,41,9,114,24,0,0,0, + 114,195,0,0,0,114,76,0,0,0,218,14,95,78,69,69, + 68,83,95,76,79,65,68,73,78,71,114,15,0,0,0,114, + 142,0,0,0,114,134,1,0,0,114,157,0,0,0,114,129, + 1,0,0,41,4,114,26,0,0,0,114,130,1,0,0,114, + 200,0,0,0,114,172,0,0,0,115,4,0,0,0,32,32, + 32,32,114,7,0,0,0,218,14,95,102,105,110,100,95,97, + 110,100,95,108,111,97,100,114,137,1,0,0,69,5,0,0, + 115,181,0,0,0,128,0,244,10,0,14,17,143,91,137,91, + 143,95,137,95,152,84,164,62,211,13,50,128,70,216,8,14, + 148,46,209,8,32,220,8,15,148,7,152,6,160,10,168,68, + 211,16,49,176,63,192,69,212,8,74,220,13,31,160,4,211, + 13,37,241,0,3,9,62,220,21,24,151,91,145,91,151,95, + 145,95,160,84,172,62,211,21,58,136,70,216,15,21,156,30, + 209,15,39,220,23,46,168,116,176,87,211,23,61,247,7,3, + 9,62,241,0,3,9,62,224,15,39,247,5,3,9,62,244, + 18,0,9,28,152,68,212,8,33,224,7,13,128,126,216,20, + 30,152,116,152,102,208,36,64,208,18,65,136,7,220,14,33, + 160,39,176,4,212,14,53,208,8,53,224,11,17,128,77,247, + 31,3,9,62,240,0,3,9,62,250,115,12,0,0,0,193, + 16,56,66,61,3,194,61,5,67,6,7,99,3,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 243,96,0,0,0,151,0,116,1,0,0,0,0,0,0,0, + 0,124,0,124,1,124,2,171,3,0,0,0,0,0,0,1, + 0,124,2,100,1,107,68,0,0,114,13,116,3,0,0,0, + 0,0,0,0,0,124,0,124,1,124,2,171,3,0,0,0, + 0,0,0,125,0,116,5,0,0,0,0,0,0,0,0,124, + 0,116,6,0,0,0,0,0,0,0,0,171,2,0,0,0, + 0,0,0,83,0,41,2,97,50,1,0,0,73,109,112,111, + 114,116,32,97,110,100,32,114,101,116,117,114,110,32,116,104, + 101,32,109,111,100,117,108,101,32,98,97,115,101,100,32,111, + 110,32,105,116,115,32,110,97,109,101,44,32,116,104,101,32, + 112,97,99,107,97,103,101,32,116,104,101,32,99,97,108,108, + 32,105,115,10,32,32,32,32,98,101,105,110,103,32,109,97, + 100,101,32,102,114,111,109,44,32,97,110,100,32,116,104,101, + 32,108,101,118,101,108,32,97,100,106,117,115,116,109,101,110, + 116,46,10,10,32,32,32,32,84,104,105,115,32,102,117,110, + 99,116,105,111,110,32,114,101,112,114,101,115,101,110,116,115, + 32,116,104,101,32,103,114,101,97,116,101,115,116,32,99,111, + 109,109,111,110,32,100,101,110,111,109,105,110,97,116,111,114, + 32,111,102,32,102,117,110,99,116,105,111,110,97,108,105,116, + 121,10,32,32,32,32,98,101,116,119,101,101,110,32,105,109, + 112,111,114,116,95,109,111,100,117,108,101,32,97,110,100,32, + 95,95,105,109,112,111,114,116,95,95,46,32,84,104,105,115, + 32,105,110,99,108,117,100,101,115,32,115,101,116,116,105,110, + 103,32,95,95,112,97,99,107,97,103,101,95,95,32,105,102, + 10,32,32,32,32,116,104,101,32,108,111,97,100,101,114,32, + 100,105,100,32,110,111,116,46,10,10,32,32,32,32,114,125, + 0,0,0,41,4,114,125,1,0,0,114,114,1,0,0,114, + 137,1,0,0,218,11,95,103,99,100,95,105,109,112,111,114, + 116,114,124,1,0,0,115,3,0,0,0,32,32,32,114,7, + 0,0,0,114,139,1,0,0,114,139,1,0,0,95,5,0, + 0,115,50,0,0,0,128,0,244,18,0,5,18,144,36,152, + 7,160,21,212,4,39,216,7,12,136,113,130,121,220,15,28, + 152,84,160,55,168,69,211,15,50,136,4,220,11,25,152,36, + 164,11,211,11,44,208,4,44,114,22,0,0,0,169,1,218, + 9,114,101,99,117,114,115,105,118,101,99,3,0,0,0,0, + 0,0,0,1,0,0,0,9,0,0,0,3,0,0,0,243, + 236,1,0,0,151,0,124,1,68,0,93,164,0,0,125,4, + 116,1,0,0,0,0,0,0,0,0,124,4,116,2,0,0, + 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,56, + 124,3,114,16,124,0,106,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,100,1,122,0,0,0, + 125,5,110,2,100,2,125,5,116,7,0,0,0,0,0,0, + 0,0,100,3,124,5,155,0,100,4,116,9,0,0,0,0, + 0,0,0,0,124,4,171,1,0,0,0,0,0,0,106,4, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,155,0,157,4,171,1,0,0,0,0,0,0,130,1, + 124,4,100,5,107,40,0,0,114,42,124,3,114,1,140,83, + 116,11,0,0,0,0,0,0,0,0,124,0,100,6,171,2, + 0,0,0,0,0,0,115,1,140,96,116,13,0,0,0,0, + 0,0,0,0,124,0,124,0,106,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,2,100,7, + 172,8,171,4,0,0,0,0,0,0,1,0,140,122,116,11, + 0,0,0,0,0,0,0,0,124,0,124,4,171,2,0,0, + 0,0,0,0,114,1,140,135,124,0,106,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,155,0, + 100,9,124,4,155,0,157,3,125,6,9,0,116,17,0,0, + 0,0,0,0,0,0,124,2,124,6,171,2,0,0,0,0, + 0,0,1,0,140,166,4,0,124,0,83,0,35,0,116,18, + 0,0,0,0,0,0,0,0,36,0,114,62,125,7,124,7, + 106,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,6,107,40,0,0,114,41,116,22,0,0, + 0,0,0,0,0,0,106,24,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,106,27,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,6, + 116,28,0,0,0,0,0,0,0,0,171,2,0,0,0,0, + 0,0,129,5,89,0,100,10,125,7,126,7,140,234,130,0, + 100,10,125,7,126,7,119,1,119,0,120,3,89,0,119,1, + 41,11,122,238,70,105,103,117,114,101,32,111,117,116,32,119, + 104,97,116,32,95,95,105,109,112,111,114,116,95,95,32,115, + 104,111,117,108,100,32,114,101,116,117,114,110,46,10,10,32, + 32,32,32,84,104,101,32,105,109,112,111,114,116,95,32,112, + 97,114,97,109,101,116,101,114,32,105,115,32,97,32,99,97, + 108,108,97,98,108,101,32,119,104,105,99,104,32,116,97,107, + 101,115,32,116,104,101,32,110,97,109,101,32,111,102,32,109, + 111,100,117,108,101,32,116,111,10,32,32,32,32,105,109,112, + 111,114,116,46,32,73,116,32,105,115,32,114,101,113,117,105, + 114,101,100,32,116,111,32,100,101,99,111,117,112,108,101,32, + 116,104,101,32,102,117,110,99,116,105,111,110,32,102,114,111, + 109,32,97,115,115,117,109,105,110,103,32,105,109,112,111,114, + 116,108,105,98,39,115,10,32,32,32,32,105,109,112,111,114, + 116,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, + 32,105,115,32,100,101,115,105,114,101,100,46,10,10,32,32, + 32,32,122,8,46,95,95,97,108,108,95,95,122,13,96,96, + 102,114,111,109,32,108,105,115,116,39,39,122,8,73,116,101, + 109,32,105,110,32,122,18,32,109,117,115,116,32,98,101,32, + 115,116,114,44,32,110,111,116,32,250,1,42,218,7,95,95, + 97,108,108,95,95,84,114,140,1,0,0,114,244,0,0,0, + 78,41,15,114,23,1,0,0,114,121,1,0,0,114,11,0, + 0,0,114,122,1,0,0,114,5,0,0,0,114,13,0,0, + 0,218,16,95,104,97,110,100,108,101,95,102,114,111,109,108, + 105,115,116,114,144,1,0,0,114,161,0,0,0,114,129,1, + 0,0,114,26,0,0,0,114,24,0,0,0,114,195,0,0, + 0,114,76,0,0,0,114,136,1,0,0,41,8,114,200,0, + 0,0,218,8,102,114,111,109,108,105,115,116,114,130,1,0, + 0,114,141,1,0,0,218,1,120,218,5,119,104,101,114,101, + 218,9,102,114,111,109,95,110,97,109,101,218,3,101,120,99, + 115,8,0,0,0,32,32,32,32,32,32,32,32,114,7,0, + 0,0,114,145,1,0,0,114,145,1,0,0,110,5,0,0, + 115,248,0,0,0,128,0,240,20,0,14,22,242,0,23,5, + 22,136,1,220,15,25,152,33,156,83,212,15,33,217,15,24, + 216,24,30,159,15,153,15,168,42,209,24,52,145,5,224,24, + 39,144,5,220,18,27,152,104,160,117,160,103,240,0,1,46, + 35,220,35,39,168,1,163,55,215,35,51,209,35,51,208,34, + 52,240,3,1,29,54,243,0,1,19,55,240,0,1,13,55, + 224,13,14,144,35,138,88,218,19,28,164,23,168,22,176,25, + 213,33,59,220,16,32,160,22,168,22,175,30,169,30,184,23, + 216,43,47,246,3,1,17,49,228,17,24,152,22,160,17,213, + 17,35,216,27,33,159,63,153,63,208,26,43,168,49,168,81, + 168,67,208,24,48,136,73,240,2,9,13,22,220,16,41,168, + 39,176,57,213,16,61,240,31,23,5,22,240,48,0,12,18, + 128,77,248,244,17,0,20,39,242,0,7,13,22,240,8,0, + 21,24,151,72,145,72,160,9,210,20,41,220,20,23,151,75, + 145,75,151,79,145,79,160,73,172,126,211,20,62,208,20,74, + 220,20,28,216,16,21,251,240,15,7,13,22,250,115,30,0, + 0,0,194,28,12,66,44,2,194,44,9,67,51,5,194,53, + 51,67,46,5,195,45,1,67,46,5,195,46,5,67,51,5, + 99,1,0,0,0,0,0,0,0,0,0,0,0,7,0,0, + 0,3,0,0,0,243,92,1,0,0,151,0,124,0,106,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,100,1,171,1,0,0,0,0,0,0,125,1,124,0, + 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,100,2,171,1,0,0,0,0,0,0,125,2, + 124,1,129,64,124,2,129,60,124,1,124,2,106,2,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 107,55,0,0,114,45,116,4,0,0,0,0,0,0,0,0, + 106,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,100,3,124,1,155,2,100,4,124,2,106,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,155,2,100,5,157,5,116,8,0,0,0,0,0,0, + 0,0,100,6,172,7,171,3,0,0,0,0,0,0,1,0, + 124,1,83,0,124,2,129,12,124,2,106,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0, + 116,4,0,0,0,0,0,0,0,0,106,7,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,8, + 116,10,0,0,0,0,0,0,0,0,100,6,172,7,171,3, + 0,0,0,0,0,0,1,0,124,0,100,9,25,0,0,0, + 125,1,100,10,124,0,118,1,114,20,124,1,106,13,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 100,11,171,1,0,0,0,0,0,0,100,12,25,0,0,0, + 125,1,124,1,83,0,41,13,122,167,67,97,108,99,117,108, + 97,116,101,32,119,104,97,116,32,95,95,112,97,99,107,97, + 103,101,95,95,32,115,104,111,117,108,100,32,98,101,46,10, + 10,32,32,32,32,95,95,112,97,99,107,97,103,101,95,95, + 32,105,115,32,110,111,116,32,103,117,97,114,97,110,116,101, + 101,100,32,116,111,32,98,101,32,100,101,102,105,110,101,100, + 32,111,114,32,99,111,117,108,100,32,98,101,32,115,101,116, + 32,116,111,32,78,111,110,101,10,32,32,32,32,116,111,32, + 114,101,112,114,101,115,101,110,116,32,116,104,97,116,32,105, + 116,115,32,112,114,111,112,101,114,32,118,97,108,117,101,32, + 105,115,32,117,110,107,110,111,119,110,46,10,10,32,32,32, + 32,114,13,1,0,0,114,204,0,0,0,122,32,95,95,112, + 97,99,107,97,103,101,95,95,32,33,61,32,95,95,115,112, + 101,99,95,95,46,112,97,114,101,110,116,32,40,122,4,32, + 33,61,32,114,229,0,0,0,233,3,0,0,0,41,1,218, + 10,115,116,97,99,107,108,101,118,101,108,122,89,99,97,110, + 39,116,32,114,101,115,111,108,118,101,32,112,97,99,107,97, + 103,101,32,102,114,111,109,32,95,95,115,112,101,99,95,95, + 32,111,114,32,95,95,112,97,99,107,97,103,101,95,95,44, + 32,102,97,108,108,105,110,103,32,98,97,99,107,32,111,110, + 32,95,95,110,97,109,101,95,95,32,97,110,100,32,95,95, + 112,97,116,104,95,95,114,11,0,0,0,114,7,1,0,0, + 114,244,0,0,0,114,125,0,0,0,41,7,114,76,0,0, + 0,114,246,0,0,0,114,191,0,0,0,114,192,0,0,0, + 114,193,0,0,0,114,27,1,0,0,114,245,0,0,0,41, + 3,218,7,103,108,111,98,97,108,115,114,110,1,0,0,114, + 199,0,0,0,115,3,0,0,0,32,32,32,114,7,0,0, + 0,218,17,95,99,97,108,99,95,95,95,112,97,99,107,97, + 103,101,95,95,114,155,1,0,0,147,5,0,0,115,200,0, + 0,0,128,0,240,14,0,15,22,143,107,137,107,152,45,211, + 14,40,128,71,216,11,18,143,59,137,59,144,122,211,11,34, + 128,68,216,7,14,208,7,26,216,11,15,208,11,27,160,7, + 168,52,175,59,169,59,210,32,54,220,12,21,143,78,137,78, + 240,0,1,28,31,216,31,38,152,107,168,20,168,100,175,107, + 169,107,168,95,184,65,240,3,1,28,63,228,27,45,184,33, + 240,5,0,13,27,244,0,2,13,61,240,6,0,16,23,136, + 14,216,9,13,208,9,25,216,15,19,143,123,137,123,208,8, + 26,228,8,17,143,14,137,14,240,0,1,24,63,228,23,36, + 176,17,240,5,0,9,23,244,0,2,9,52,240,6,0,19, + 26,152,42,209,18,37,136,7,216,11,21,152,87,209,11,36, + 216,22,29,215,22,40,209,22,40,168,19,211,22,45,168,97, + 209,22,48,136,71,216,11,18,128,78,114,22,0,0,0,99, + 5,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 3,0,0,0,243,172,1,0,0,151,0,124,4,100,1,107, + 40,0,0,114,12,116,1,0,0,0,0,0,0,0,0,124, + 0,171,1,0,0,0,0,0,0,125,5,110,30,124,1,129, + 2,124,1,110,1,105,0,125,6,116,3,0,0,0,0,0, + 0,0,0,124,6,171,1,0,0,0,0,0,0,125,7,116, + 1,0,0,0,0,0,0,0,0,124,0,124,7,124,4,171, + 3,0,0,0,0,0,0,125,5,124,3,115,133,124,4,100, + 1,107,40,0,0,114,29,116,1,0,0,0,0,0,0,0, + 0,124,0,106,5,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,100,3,171,1,0,0,0,0,0, + 0,100,1,25,0,0,0,171,1,0,0,0,0,0,0,83, + 0,124,0,115,2,124,5,83,0,116,7,0,0,0,0,0, + 0,0,0,124,0,171,1,0,0,0,0,0,0,116,7,0, + 0,0,0,0,0,0,0,124,0,106,5,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,3,171, + 1,0,0,0,0,0,0,100,1,25,0,0,0,171,1,0, + 0,0,0,0,0,122,10,0,0,125,8,116,8,0,0,0, + 0,0,0,0,0,106,10,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,5,106,12,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, + 2,116,7,0,0,0,0,0,0,0,0,124,5,106,12,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,171,1,0,0,0,0,0,0,124,8,122,10,0,0,26, + 0,25,0,0,0,83,0,116,15,0,0,0,0,0,0,0, + 0,124,5,100,4,171,2,0,0,0,0,0,0,114,17,116, + 17,0,0,0,0,0,0,0,0,124,5,124,3,116,0,0, + 0,0,0,0,0,0,0,171,3,0,0,0,0,0,0,83, + 0,124,5,83,0,41,5,97,215,1,0,0,73,109,112,111, + 114,116,32,97,32,109,111,100,117,108,101,46,10,10,32,32, + 32,32,84,104,101,32,39,103,108,111,98,97,108,115,39,32, + 97,114,103,117,109,101,110,116,32,105,115,32,117,115,101,100, + 32,116,111,32,105,110,102,101,114,32,119,104,101,114,101,32, + 116,104,101,32,105,109,112,111,114,116,32,105,115,32,111,99, + 99,117,114,114,105,110,103,32,102,114,111,109,10,32,32,32, + 32,116,111,32,104,97,110,100,108,101,32,114,101,108,97,116, + 105,118,101,32,105,109,112,111,114,116,115,46,32,84,104,101, + 32,39,108,111,99,97,108,115,39,32,97,114,103,117,109,101, + 110,116,32,105,115,32,105,103,110,111,114,101,100,46,32,84, + 104,101,10,32,32,32,32,39,102,114,111,109,108,105,115,116, + 39,32,97,114,103,117,109,101,110,116,32,115,112,101,99,105, + 102,105,101,115,32,119,104,97,116,32,115,104,111,117,108,100, + 32,101,120,105,115,116,32,97,115,32,97,116,116,114,105,98, + 117,116,101,115,32,111,110,32,116,104,101,32,109,111,100,117, + 108,101,10,32,32,32,32,98,101,105,110,103,32,105,109,112, + 111,114,116,101,100,32,40,101,46,103,46,32,96,96,102,114, + 111,109,32,109,111,100,117,108,101,32,105,109,112,111,114,116, + 32,60,102,114,111,109,108,105,115,116,62,96,96,41,46,32, + 32,84,104,101,32,39,108,101,118,101,108,39,10,32,32,32, + 32,97,114,103,117,109,101,110,116,32,114,101,112,114,101,115, + 101,110,116,115,32,116,104,101,32,112,97,99,107,97,103,101, + 32,108,111,99,97,116,105,111,110,32,116,111,32,105,109,112, + 111,114,116,32,102,114,111,109,32,105,110,32,97,32,114,101, + 108,97,116,105,118,101,10,32,32,32,32,105,109,112,111,114, + 116,32,40,101,46,103,46,32,96,96,102,114,111,109,32,46, + 46,112,107,103,32,105,109,112,111,114,116,32,109,111,100,96, + 96,32,119,111,117,108,100,32,104,97,118,101,32,97,32,39, + 108,101,118,101,108,39,32,111,102,32,50,41,46,10,10,32, + 32,32,32,114,125,0,0,0,78,114,244,0,0,0,114,7, + 1,0,0,41,9,114,139,1,0,0,114,155,1,0,0,218, + 9,112,97,114,116,105,116,105,111,110,114,127,0,0,0,114, + 24,0,0,0,114,195,0,0,0,114,11,0,0,0,114,13, + 0,0,0,114,145,1,0,0,41,9,114,26,0,0,0,114, + 154,1,0,0,218,6,108,111,99,97,108,115,114,146,1,0, + 0,114,111,1,0,0,114,200,0,0,0,218,8,103,108,111, + 98,97,108,115,95,114,110,1,0,0,218,7,99,117,116,95, + 111,102,102,115,9,0,0,0,32,32,32,32,32,32,32,32, + 32,114,7,0,0,0,218,10,95,95,105,109,112,111,114,116, + 95,95,114,161,1,0,0,174,5,0,0,115,210,0,0,0, + 128,0,240,22,0,8,13,144,1,130,122,220,17,28,152,84, + 211,17,34,137,6,224,30,37,208,30,49,145,55,176,114,136, + 8,220,18,35,160,72,211,18,45,136,7,220,17,28,152,84, + 160,55,168,69,211,17,50,136,6,217,11,19,240,6,0,12, + 17,144,65,138,58,220,19,30,152,116,159,126,153,126,168,99, + 211,31,50,176,49,209,31,53,211,19,54,208,12,54,217,17, + 21,216,19,25,136,77,244,8,0,23,26,152,36,147,105,164, + 35,160,100,167,110,161,110,176,83,211,38,57,184,33,209,38, + 60,211,34,61,209,22,61,136,71,244,6,0,20,23,151,59, + 145,59,152,118,159,127,153,127,208,47,76,180,3,176,70,183, + 79,177,79,211,48,68,192,87,209,48,76,208,31,77,209,19, + 78,208,12,78,220,9,16,144,22,152,26,212,9,36,220,15, + 31,160,6,168,8,180,43,211,15,62,208,8,62,224,15,21, + 136,13,114,22,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,98,0,0, + 0,151,0,116,0,0,0,0,0,0,0,0,0,106,3,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,0,171,1,0,0,0,0,0,0,125,1,124,1,128, + 14,116,5,0,0,0,0,0,0,0,0,100,1,124,0,122, + 0,0,0,171,1,0,0,0,0,0,0,130,1,116,7,0, + 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, + 0,83,0,41,2,78,122,25,110,111,32,98,117,105,108,116, + 45,105,110,32,109,111,100,117,108,101,32,110,97,109,101,100, + 32,41,4,114,37,1,0,0,114,43,1,0,0,114,178,0, + 0,0,114,33,1,0,0,41,2,114,26,0,0,0,114,199, + 0,0,0,115,2,0,0,0,32,32,114,7,0,0,0,218, + 18,95,98,117,105,108,116,105,110,95,102,114,111,109,95,110, + 97,109,101,114,163,1,0,0,211,5,0,0,115,51,0,0, + 0,128,0,220,11,26,215,11,36,209,11,36,160,84,211,11, + 42,128,68,216,7,11,128,124,220,14,25,208,26,53,184,4, + 209,26,60,211,14,61,208,8,61,220,11,25,152,36,211,11, + 31,208,4,31,114,22,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,44, + 2,0,0,151,0,124,1,97,0,124,0,97,1,116,5,0, + 0,0,0,0,0,0,0,116,2,0,0,0,0,0,0,0, + 0,171,1,0,0,0,0,0,0,125,2,116,2,0,0,0, + 0,0,0,0,0,106,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,106,9,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, + 0,0,0,0,0,68,0,93,122,0,0,92,2,0,0,125, + 3,125,4,116,11,0,0,0,0,0,0,0,0,124,4,124, + 2,171,2,0,0,0,0,0,0,115,1,140,19,124,3,116, + 2,0,0,0,0,0,0,0,0,106,12,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,118,0,114, + 7,116,14,0,0,0,0,0,0,0,0,125,5,110,29,116, + 0,0,0,0,0,0,0,0,0,106,17,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,3,171, + 1,0,0,0,0,0,0,114,7,116,18,0,0,0,0,0, + 0,0,0,125,5,110,1,140,73,116,21,0,0,0,0,0, + 0,0,0,124,4,124,5,171,2,0,0,0,0,0,0,125, + 6,116,23,0,0,0,0,0,0,0,0,124,6,124,4,171, + 2,0,0,0,0,0,0,1,0,124,5,116,18,0,0,0, + 0,0,0,0,0,117,0,115,1,140,106,124,5,106,25,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,4,171,1,0,0,0,0,0,0,1,0,140,124,4, + 0,116,2,0,0,0,0,0,0,0,0,106,6,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, - 6,0,0,0,0,0,0,0,0,106,8,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,116,10,0, - 0,0,0,0,0,0,0,25,0,0,0,171,1,0,0,0, - 0,0,0,1,0,121,2,41,3,122,57,73,110,115,116,97, - 108,108,32,105,109,112,111,114,116,101,114,115,32,116,104,97, - 116,32,114,101,113,117,105,114,101,32,101,120,116,101,114,110, - 97,108,32,102,105,108,101,115,121,115,116,101,109,32,97,99, - 99,101,115,115,114,125,0,0,0,78,41,6,218,26,95,102, - 114,111,122,101,110,95,105,109,112,111,114,116,108,105,98,95, - 101,120,116,101,114,110,97,108,114,239,0,0,0,114,174,1, - 0,0,114,24,0,0,0,114,195,0,0,0,114,11,0,0, - 0,41,1,114,176,1,0,0,115,1,0,0,0,32,114,7, - 0,0,0,218,27,95,105,110,115,116,97,108,108,95,101,120, - 116,101,114,110,97,108,95,105,109,112,111,114,116,101,114,115, - 114,177,1,0,0,10,6,0,0,115,36,0,0,0,128,0, - 243,6,0,5,38,216,26,52,208,4,23,216,4,30,215,4, - 39,209,4,39,172,3,175,11,169,11,180,72,209,40,61,213, - 4,62,114,22,0,0,0,114,55,1,0,0,114,2,0,0, - 0,114,136,0,0,0,41,4,78,78,114,31,0,0,0,114, - 125,0,0,0,41,58,114,12,0,0,0,114,8,0,0,0, - 114,109,0,0,0,114,191,0,0,0,114,52,0,0,0,114, - 239,0,0,0,114,21,0,0,0,114,27,0,0,0,114,6, - 1,0,0,114,29,0,0,0,114,34,0,0,0,114,153,0, - 0,0,114,85,0,0,0,114,80,0,0,0,114,126,0,0, - 0,114,94,0,0,0,114,101,0,0,0,114,107,0,0,0, - 114,134,0,0,0,114,142,0,0,0,114,147,0,0,0,114, - 157,0,0,0,114,161,0,0,0,114,173,0,0,0,114,184, - 0,0,0,114,189,0,0,0,114,201,0,0,0,114,215,0, - 0,0,114,217,0,0,0,114,194,0,0,0,114,9,1,0, - 0,114,16,1,0,0,114,21,1,0,0,114,211,0,0,0, - 114,196,0,0,0,114,30,1,0,0,114,33,1,0,0,114, - 197,0,0,0,114,37,1,0,0,114,58,1,0,0,114,101, - 1,0,0,114,114,1,0,0,114,119,1,0,0,114,125,1, - 0,0,114,128,1,0,0,218,8,95,69,82,82,95,77,83, - 71,114,134,1,0,0,218,6,111,98,106,101,99,116,114,136, - 1,0,0,114,137,1,0,0,114,139,1,0,0,114,145,1, - 0,0,114,155,1,0,0,114,161,1,0,0,114,163,1,0, - 0,114,172,1,0,0,114,174,1,0,0,114,177,1,0,0, - 114,31,0,0,0,114,22,0,0,0,114,7,0,0,0,250, - 8,60,109,111,100,117,108,101,62,114,180,1,0,0,1,0, - 0,0,115,154,1,0,0,240,3,1,1,1,241,2,7,1, - 4,242,44,4,1,38,240,18,0,11,15,128,7,216,12,16, - 128,9,216,11,15,128,8,240,6,0,23,27,208,0,19,242, - 6,5,1,38,242,16,1,1,27,244,14,1,1,9,136,68, - 244,0,1,1,9,247,14,73,1,1,21,241,0,73,1,1, - 21,240,92,2,0,17,19,128,13,240,26,0,16,20,128,12, - 247,6,19,1,42,241,0,19,1,42,244,44,1,1,9,144, - 92,244,0,1,1,9,242,10,40,1,17,247,86,1,96,2, - 1,59,241,0,96,2,1,59,247,70,5,18,1,64,1,241, - 0,18,1,64,1,247,42,11,1,29,241,0,11,1,29,242, - 32,34,1,16,242,74,1,14,1,23,242,34,8,1,28,240, - 22,0,48,49,244,0,5,1,54,242,16,8,1,37,242,22, - 8,1,36,242,24,15,1,27,242,38,18,1,54,247,42,97, - 1,1,41,241,0,97,1,1,41,240,72,3,0,46,50,184, - 100,244,0,26,1,74,1,243,58,39,1,16,240,84,1,0, - 50,55,244,0,70,1,1,18,242,82,2,14,1,18,242,34, - 18,1,61,242,44,27,1,18,242,60,34,1,18,242,72,1, - 41,1,18,242,90,1,10,1,36,247,30,49,1,49,241,0, - 49,1,49,247,104,1,126,2,1,48,241,0,126,2,1,48, - 247,70,6,10,1,28,241,0,10,1,28,242,26,6,1,46, - 243,18,42,1,20,242,90,1,13,1,46,240,32,0,19,37, - 128,15,216,11,26,152,86,209,11,35,128,8,242,4,39,1, - 18,241,84,1,0,18,24,147,24,128,14,242,6,23,1,18, - 243,52,12,1,45,240,30,0,62,67,1,244,0,34,1,18, - 242,74,1,24,1,19,243,54,34,1,22,242,74,1,4,1, - 32,242,14,37,1,42,242,80,1,5,1,41,243,16,5,1, - 63,114,22,0,0,0, + 26,0,0,0,0,0,0,0,0,25,0,0,0,125,7,100, + 1,68,0,93,64,0,0,125,8,124,8,116,2,0,0,0, + 0,0,0,0,0,106,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,118,1,114,12,116,29,0, + 0,0,0,0,0,0,0,124,8,171,1,0,0,0,0,0, + 0,125,9,110,19,116,2,0,0,0,0,0,0,0,0,106, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,8,25,0,0,0,125,9,116,31,0,0,0, + 0,0,0,0,0,124,7,124,8,124,9,171,3,0,0,0, + 0,0,0,1,0,140,66,4,0,116,33,0,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,97,17,121,2,41, + 3,122,250,83,101,116,117,112,32,105,109,112,111,114,116,108, + 105,98,32,98,121,32,105,109,112,111,114,116,105,110,103,32, + 110,101,101,100,101,100,32,98,117,105,108,116,45,105,110,32, + 109,111,100,117,108,101,115,32,97,110,100,32,105,110,106,101, + 99,116,105,110,103,32,116,104,101,109,10,32,32,32,32,105, + 110,116,111,32,116,104,101,32,103,108,111,98,97,108,32,110, + 97,109,101,115,112,97,99,101,46,10,10,32,32,32,32,65, + 115,32,115,121,115,32,105,115,32,110,101,101,100,101,100,32, + 102,111,114,32,115,121,115,46,109,111,100,117,108,101,115,32, + 97,99,99,101,115,115,32,97,110,100,32,95,105,109,112,32, + 105,115,32,110,101,101,100,101,100,32,116,111,32,108,111,97, + 100,32,98,117,105,108,116,45,105,110,10,32,32,32,32,109, + 111,100,117,108,101,115,44,32,116,104,111,115,101,32,116,119, + 111,32,109,111,100,117,108,101,115,32,109,117,115,116,32,98, + 101,32,101,120,112,108,105,99,105,116,108,121,32,112,97,115, + 115,101,100,32,105,110,46,10,10,32,32,32,32,41,3,114, + 109,0,0,0,114,191,0,0,0,114,52,0,0,0,78,41, + 18,114,151,0,0,0,114,24,0,0,0,114,5,0,0,0, + 114,195,0,0,0,218,5,105,116,101,109,115,114,23,1,0, + 0,114,177,0,0,0,114,37,1,0,0,114,187,0,0,0, + 114,58,1,0,0,114,9,1,0,0,114,16,1,0,0,114, + 74,1,0,0,114,11,0,0,0,114,163,1,0,0,114,14, + 0,0,0,114,34,0,0,0,114,85,0,0,0,41,10,218, + 10,115,121,115,95,109,111,100,117,108,101,218,11,95,105,109, + 112,95,109,111,100,117,108,101,218,11,109,111,100,117,108,101, + 95,116,121,112,101,114,26,0,0,0,114,200,0,0,0,114, + 213,0,0,0,114,199,0,0,0,218,11,115,101,108,102,95, + 109,111,100,117,108,101,218,12,98,117,105,108,116,105,110,95, + 110,97,109,101,218,14,98,117,105,108,116,105,110,95,109,111, + 100,117,108,101,115,10,0,0,0,32,32,32,32,32,32,32, + 32,32,32,114,7,0,0,0,218,6,95,115,101,116,117,112, + 114,172,1,0,0,218,5,0,0,115,239,0,0,0,128,0, + 240,18,0,12,23,128,68,216,10,20,128,67,244,6,0,19, + 23,148,115,147,41,128,75,220,24,27,159,11,153,11,215,24, + 41,209,24,41,211,24,43,242,0,11,5,46,137,12,136,4, + 136,102,220,11,21,144,102,152,107,213,11,42,216,15,19,148, + 115,215,23,47,209,23,47,209,15,47,220,25,40,145,6,220, + 17,21,151,30,145,30,160,4,212,17,37,220,25,39,145,6, + 224,16,24,220,19,36,160,86,168,86,211,19,52,136,68,220, + 12,30,152,116,160,86,212,12,44,216,15,21,156,30,210,15, + 39,216,16,22,215,16,37,209,16,37,160,102,213,16,45,240, + 23,11,5,46,244,28,0,19,22,151,43,145,43,156,104,209, + 18,39,128,75,216,24,60,242,0,5,5,59,136,12,216,11, + 23,156,115,159,123,153,123,209,11,42,220,29,47,176,12,211, + 29,61,137,78,228,29,32,159,91,153,91,168,28,209,29,54, + 136,78,220,8,15,144,11,152,92,168,62,213,8,58,240,11, + 5,5,59,244,16,0,20,40,211,19,41,129,76,114,22,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,168,0,0,0,151,0,116,1, + 0,0,0,0,0,0,0,0,124,0,124,1,171,2,0,0, + 0,0,0,0,1,0,116,2,0,0,0,0,0,0,0,0, + 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,106,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,116,8,0,0,0,0,0,0, + 0,0,171,1,0,0,0,0,0,0,1,0,116,2,0,0, + 0,0,0,0,0,0,106,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,106,7,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,10, + 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, + 1,0,121,1,41,2,122,48,73,110,115,116,97,108,108,32, + 105,109,112,111,114,116,101,114,115,32,102,111,114,32,98,117, + 105,108,116,105,110,32,97,110,100,32,102,114,111,122,101,110, + 32,109,111,100,117,108,101,115,78,41,6,114,172,1,0,0, + 114,24,0,0,0,114,116,1,0,0,114,51,0,0,0,114, + 37,1,0,0,114,58,1,0,0,41,2,114,166,1,0,0, + 114,167,1,0,0,115,2,0,0,0,32,32,114,7,0,0, + 0,218,8,95,105,110,115,116,97,108,108,114,174,1,0,0, + 2,6,0,0,115,48,0,0,0,128,0,228,4,10,136,58, + 144,123,212,4,35,228,4,7,135,77,129,77,215,4,24,209, + 4,24,156,31,212,4,41,220,4,7,135,77,129,77,215,4, + 24,209,4,24,156,30,213,4,40,114,22,0,0,0,99,0, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,92,0,0,0,151,0,100,1,100,2,108,0, + 125,0,124,0,97,1,124,0,106,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,116,6,0,0, + 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,116,10,0,0,0,0, + 0,0,0,0,25,0,0,0,171,1,0,0,0,0,0,0, + 1,0,121,2,41,3,122,57,73,110,115,116,97,108,108,32, + 105,109,112,111,114,116,101,114,115,32,116,104,97,116,32,114, + 101,113,117,105,114,101,32,101,120,116,101,114,110,97,108,32, + 102,105,108,101,115,121,115,116,101,109,32,97,99,99,101,115, + 115,114,125,0,0,0,78,41,6,218,26,95,102,114,111,122, + 101,110,95,105,109,112,111,114,116,108,105,98,95,101,120,116, + 101,114,110,97,108,114,239,0,0,0,114,174,1,0,0,114, + 24,0,0,0,114,195,0,0,0,114,11,0,0,0,41,1, + 114,176,1,0,0,115,1,0,0,0,32,114,7,0,0,0, + 218,27,95,105,110,115,116,97,108,108,95,101,120,116,101,114, + 110,97,108,95,105,109,112,111,114,116,101,114,115,114,177,1, + 0,0,10,6,0,0,115,36,0,0,0,128,0,243,6,0, + 5,38,216,26,52,208,4,23,216,4,30,215,4,39,209,4, + 39,172,3,175,11,169,11,180,72,209,40,61,213,4,62,114, + 22,0,0,0,114,55,1,0,0,114,2,0,0,0,114,136, + 0,0,0,41,4,78,78,114,31,0,0,0,114,125,0,0, + 0,41,58,114,12,0,0,0,114,8,0,0,0,114,109,0, + 0,0,114,191,0,0,0,114,52,0,0,0,114,239,0,0, + 0,114,21,0,0,0,114,27,0,0,0,114,6,1,0,0, + 114,29,0,0,0,114,34,0,0,0,114,153,0,0,0,114, + 85,0,0,0,114,80,0,0,0,114,126,0,0,0,114,94, + 0,0,0,114,101,0,0,0,114,107,0,0,0,114,134,0, + 0,0,114,142,0,0,0,114,147,0,0,0,114,157,0,0, + 0,114,161,0,0,0,114,173,0,0,0,114,184,0,0,0, + 114,189,0,0,0,114,201,0,0,0,114,215,0,0,0,114, + 217,0,0,0,114,194,0,0,0,114,9,1,0,0,114,16, + 1,0,0,114,21,1,0,0,114,211,0,0,0,114,196,0, + 0,0,114,30,1,0,0,114,33,1,0,0,114,197,0,0, + 0,114,37,1,0,0,114,58,1,0,0,114,101,1,0,0, + 114,114,1,0,0,114,119,1,0,0,114,125,1,0,0,114, + 128,1,0,0,218,8,95,69,82,82,95,77,83,71,114,134, + 1,0,0,218,6,111,98,106,101,99,116,114,136,1,0,0, + 114,137,1,0,0,114,139,1,0,0,114,145,1,0,0,114, + 155,1,0,0,114,161,1,0,0,114,163,1,0,0,114,172, + 1,0,0,114,174,1,0,0,114,177,1,0,0,114,31,0, + 0,0,114,22,0,0,0,114,7,0,0,0,250,8,60,109, + 111,100,117,108,101,62,114,180,1,0,0,1,0,0,0,115, + 154,1,0,0,240,3,1,1,1,241,2,7,1,4,242,44, + 4,1,38,240,18,0,11,15,128,7,216,12,16,128,9,216, + 11,15,128,8,240,6,0,23,27,208,0,19,242,6,5,1, + 38,242,16,1,1,27,244,14,1,1,9,136,68,244,0,1, + 1,9,247,14,73,1,1,21,241,0,73,1,1,21,240,92, + 2,0,17,19,128,13,240,26,0,16,20,128,12,247,6,19, + 1,42,241,0,19,1,42,244,44,1,1,9,144,92,244,0, + 1,1,9,242,10,40,1,17,247,86,1,96,2,1,59,241, + 0,96,2,1,59,247,70,5,18,1,64,1,241,0,18,1, + 64,1,247,42,11,1,29,241,0,11,1,29,242,32,34,1, + 16,242,74,1,14,1,23,242,34,8,1,28,240,22,0,48, + 49,244,0,5,1,54,242,16,8,1,37,242,22,8,1,36, + 242,24,15,1,27,242,38,18,1,54,247,42,97,1,1,41, + 241,0,97,1,1,41,240,72,3,0,46,50,184,100,244,0, + 26,1,74,1,243,58,39,1,16,240,84,1,0,50,55,244, + 0,70,1,1,18,242,82,2,14,1,18,242,34,18,1,61, + 242,44,27,1,18,242,60,34,1,18,242,72,1,41,1,18, + 242,90,1,10,1,36,247,30,49,1,49,241,0,49,1,49, + 247,104,1,126,2,1,48,241,0,126,2,1,48,247,70,6, + 10,1,28,241,0,10,1,28,242,26,6,1,46,243,18,42, + 1,20,242,90,1,13,1,46,240,32,0,19,37,128,15,216, + 11,26,152,86,209,11,35,128,8,242,4,39,1,18,241,84, + 1,0,18,24,147,24,128,14,242,6,23,1,18,243,52,12, + 1,45,240,30,0,62,67,1,244,0,34,1,18,242,74,1, + 24,1,19,243,54,34,1,22,242,74,1,4,1,32,242,14, + 37,1,42,242,80,1,5,1,41,243,16,5,1,63,114,22, + 0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap_external.h b/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap_external.h index 0fa4dc9016..4e892a2c60 100644 --- a/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap_external.h +++ b/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap_external.h @@ -198,3612 +198,3618 @@ const unsigned char _Py_M__importlib__bootstrap_external[] = { 0,0,218,10,102,114,111,109,95,98,121,116,101,115,169,1, 218,4,100,97,116,97,115,1,0,0,0,32,114,10,0,0, 0,218,14,95,117,110,112,97,99,107,95,117,105,110,116,51, - 50,114,49,0,0,0,84,0,0,0,243,33,0,0,0,128, - 0,228,11,14,136,116,139,57,152,1,138,62,209,4,25,220, - 11,14,143,62,137,62,152,36,160,8,211,11,41,208,4,41, - 114,28,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,78,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,100,1,107,40,0,0,115,2,74,0,130, - 1,116,2,0,0,0,0,0,0,0,0,106,5,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,100,2,171,2,0,0,0,0,0,0,83,0,41,3,122, - 47,67,111,110,118,101,114,116,32,50,32,98,121,116,101,115, - 32,105,110,32,108,105,116,116,108,101,45,101,110,100,105,97, - 110,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46, - 233,2,0,0,0,114,39,0,0,0,114,45,0,0,0,114, - 47,0,0,0,115,1,0,0,0,32,114,10,0,0,0,218, - 14,95,117,110,112,97,99,107,95,117,105,110,116,49,54,114, - 53,0,0,0,89,0,0,0,114,50,0,0,0,114,28,0, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,7,0,0,0,243,148,2,0,0,151,0,124,0, - 115,1,121,1,116,1,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,100,2,107,40,0,0,114,5, - 124,0,100,3,25,0,0,0,83,0,100,1,125,1,103,0, - 125,2,116,3,0,0,0,0,0,0,0,0,116,4,0,0, - 0,0,0,0,0,0,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,2,0,0, - 0,0,0,0,68,0,93,180,0,0,92,2,0,0,125,3, - 125,4,124,3,106,9,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,10,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,115,21,124,3,106,13, + 50,114,49,0,0,0,84,0,0,0,243,35,0,0,0,128, + 0,228,11,14,136,116,139,57,152,1,138,62,208,4,25,136, + 62,220,11,14,143,62,137,62,152,36,160,8,211,11,41,208, + 4,41,114,28,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,78,0,0, + 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,171, + 1,0,0,0,0,0,0,100,1,107,40,0,0,115,2,74, + 0,130,1,116,2,0,0,0,0,0,0,0,0,106,5,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,10,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,114,36,124,3,106,15,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,16,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,120,1, - 115,2,1,0,124,1,125,1,116,18,0,0,0,0,0,0, - 0,0,124,4,122,0,0,0,103,1,125,2,140,84,124,3, + 0,124,0,100,2,171,2,0,0,0,0,0,0,83,0,41, + 3,122,47,67,111,110,118,101,114,116,32,50,32,98,121,116, + 101,115,32,105,110,32,108,105,116,116,108,101,45,101,110,100, + 105,97,110,32,116,111,32,97,110,32,105,110,116,101,103,101, + 114,46,233,2,0,0,0,114,39,0,0,0,114,45,0,0, + 0,114,47,0,0,0,115,1,0,0,0,32,114,10,0,0, + 0,218,14,95,117,110,112,97,99,107,95,117,105,110,116,49, + 54,114,53,0,0,0,89,0,0,0,114,50,0,0,0,114, + 28,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,7,0,0,0,243,148,2,0,0,151,0, + 124,0,115,1,121,1,116,1,0,0,0,0,0,0,0,0, + 124,0,171,1,0,0,0,0,0,0,100,2,107,40,0,0, + 114,5,124,0,100,3,25,0,0,0,83,0,100,1,125,1, + 103,0,125,2,116,3,0,0,0,0,0,0,0,0,116,4, + 0,0,0,0,0,0,0,0,106,6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,0,171,2, + 0,0,0,0,0,0,68,0,93,180,0,0,92,2,0,0, + 125,3,125,4,124,3,106,9,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,116,10,0,0,0,0, + 0,0,0,0,171,1,0,0,0,0,0,0,115,21,124,3, 106,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,4,171,1,0,0,0,0,0,0,114,57, - 124,1,106,21,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,124,3, - 106,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,107,55,0,0, - 114,6,124,3,125,1,124,4,103,1,125,2,140,140,124,2, - 106,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,171,1,0,0,0,0,0,0,1,0, - 140,158,124,3,120,1,115,2,1,0,124,1,125,1,124,2, - 106,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,171,1,0,0,0,0,0,0,1,0, - 140,182,4,0,124,2,68,0,143,5,99,2,103,0,99,2, - 93,26,0,0,125,5,124,5,115,1,140,6,124,5,106,15, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,16,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,145,2,140,28,4,0,125,2,125,5,116,1, + 0,0,0,0,116,10,0,0,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,114,36,124,3,106,15,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,16, + 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, + 120,1,115,2,1,0,124,1,125,1,116,18,0,0,0,0, + 0,0,0,0,124,4,122,0,0,0,103,1,125,2,140,84, + 124,3,106,13,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,100,4,171,1,0,0,0,0,0,0, + 114,57,124,1,106,21,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, + 124,3,106,21,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,171,0,0,0,0,0,0,0,107,55, + 0,0,114,6,124,3,125,1,124,4,103,1,125,2,140,140, + 124,2,106,23,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,4,171,1,0,0,0,0,0,0, + 1,0,140,158,124,3,120,1,115,2,1,0,124,1,125,1, + 124,2,106,23,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,4,171,1,0,0,0,0,0,0, + 1,0,140,182,4,0,124,2,68,0,143,5,99,2,103,0, + 99,2,93,26,0,0,125,5,124,5,115,1,140,6,124,5, + 106,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,116,16,0,0,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,145,2,140,28,4,0,125,2,125,5, + 116,1,0,0,0,0,0,0,0,0,124,2,171,1,0,0, + 0,0,0,0,100,2,107,40,0,0,114,14,124,2,100,3, + 25,0,0,0,115,9,124,1,116,18,0,0,0,0,0,0, + 0,0,122,0,0,0,83,0,124,1,116,18,0,0,0,0, + 0,0,0,0,106,25,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,124,2,171,1,0,0,0,0, - 0,0,100,2,107,40,0,0,114,14,124,2,100,3,25,0, - 0,0,115,9,124,1,116,18,0,0,0,0,0,0,0,0, - 122,0,0,0,83,0,124,1,116,18,0,0,0,0,0,0, - 0,0,106,25,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 122,0,0,0,83,0,99,2,1,0,99,2,125,5,119,0, - 41,5,250,31,82,101,112,108,97,99,101,109,101,110,116,32, - 102,111,114,32,111,115,46,112,97,116,104,46,106,111,105,110, - 40,41,46,114,12,0,0,0,114,6,0,0,0,114,1,0, - 0,0,114,13,0,0,0,41,13,114,7,0,0,0,218,3, - 109,97,112,114,23,0,0,0,218,15,95,112,97,116,104,95, - 115,112,108,105,116,114,111,111,116,114,32,0,0,0,218,14, - 112,97,116,104,95,115,101,112,95,116,117,112,108,101,218,8, - 101,110,100,115,119,105,116,104,218,6,114,115,116,114,105,112, - 218,15,112,97,116,104,95,115,101,112,97,114,97,116,111,114, - 115,218,8,112,97,116,104,95,115,101,112,218,8,99,97,115, - 101,102,111,108,100,218,6,97,112,112,101,110,100,218,4,106, - 111,105,110,41,6,218,10,112,97,116,104,95,112,97,114,116, - 115,218,4,114,111,111,116,218,4,112,97,116,104,218,8,110, - 101,119,95,114,111,111,116,218,4,116,97,105,108,218,1,112, - 115,6,0,0,0,32,32,32,32,32,32,114,10,0,0,0, - 218,10,95,112,97,116,104,95,106,111,105,110,114,72,0,0, - 0,96,0,0,0,115,43,1,0,0,128,0,225,15,25,216, - 19,21,220,11,14,136,122,139,63,152,97,210,11,31,216,19, - 29,152,97,145,61,208,12,32,216,15,17,136,4,216,15,17, - 136,4,220,30,33,164,35,215,34,53,209,34,53,176,122,211, - 30,66,242,0,14,9,34,137,78,136,72,144,100,216,15,23, - 215,15,34,209,15,34,164,62,212,15,50,176,104,215,54,71, - 209,54,71,204,14,212,54,87,216,23,31,151,127,145,127,164, - 127,211,23,55,210,23,63,184,52,144,4,220,24,32,160,52, - 153,15,208,23,40,145,4,216,17,25,215,17,34,209,17,34, - 160,51,212,17,39,216,19,23,151,61,145,61,147,63,160,104, - 215,38,55,209,38,55,211,38,57,210,19,57,240,6,0,28, - 36,144,68,216,28,32,152,54,145,68,224,20,24,151,75,145, - 75,160,4,213,20,37,224,23,31,210,23,39,160,52,144,4, - 216,16,20,151,11,145,11,152,68,213,16,33,240,29,14,9, - 34,240,30,0,52,56,214,15,61,168,97,186,49,144,1,151, - 8,145,8,156,31,213,16,41,208,15,61,136,4,208,15,61, - 220,11,14,136,116,139,57,152,1,138,62,160,36,160,113,162, - 39,224,19,23,156,40,145,63,208,12,34,216,15,19,148,104, - 151,109,145,109,160,68,211,22,41,209,15,41,208,8,41,249, - 242,9,0,16,62,115,12,0,0,0,195,48,7,69,5,4, - 195,56,23,69,5,4,99,0,0,0,0,0,0,0,0,0, - 0,0,0,8,0,0,0,7,0,0,0,243,124,0,0,0, - 151,0,116,0,0,0,0,0,0,0,0,0,106,3,0,0, + 0,0,122,0,0,0,83,0,99,2,1,0,99,2,125,5, + 119,0,41,5,250,31,82,101,112,108,97,99,101,109,101,110, + 116,32,102,111,114,32,111,115,46,112,97,116,104,46,106,111, + 105,110,40,41,46,114,12,0,0,0,114,6,0,0,0,114, + 1,0,0,0,114,13,0,0,0,41,13,114,7,0,0,0, + 218,3,109,97,112,114,23,0,0,0,218,15,95,112,97,116, + 104,95,115,112,108,105,116,114,111,111,116,114,32,0,0,0, + 218,14,112,97,116,104,95,115,101,112,95,116,117,112,108,101, + 218,8,101,110,100,115,119,105,116,104,218,6,114,115,116,114, + 105,112,218,15,112,97,116,104,95,115,101,112,97,114,97,116, + 111,114,115,218,8,112,97,116,104,95,115,101,112,218,8,99, + 97,115,101,102,111,108,100,218,6,97,112,112,101,110,100,218, + 4,106,111,105,110,41,6,218,10,112,97,116,104,95,112,97, + 114,116,115,218,4,114,111,111,116,218,4,112,97,116,104,218, + 8,110,101,119,95,114,111,111,116,218,4,116,97,105,108,218, + 1,112,115,6,0,0,0,32,32,32,32,32,32,114,10,0, + 0,0,218,10,95,112,97,116,104,95,106,111,105,110,114,72, + 0,0,0,96,0,0,0,115,43,1,0,0,128,0,225,15, + 25,216,19,21,220,11,14,136,122,139,63,152,97,210,11,31, + 216,19,29,152,97,145,61,208,12,32,216,15,17,136,4,216, + 15,17,136,4,220,30,33,164,35,215,34,53,209,34,53,176, + 122,211,30,66,242,0,14,9,34,137,78,136,72,144,100,216, + 15,23,215,15,34,209,15,34,164,62,212,15,50,176,104,215, + 54,71,209,54,71,204,14,212,54,87,216,23,31,151,127,145, + 127,164,127,211,23,55,210,23,63,184,52,144,4,220,24,32, + 160,52,153,15,208,23,40,145,4,216,17,25,215,17,34,209, + 17,34,160,51,212,17,39,216,19,23,151,61,145,61,147,63, + 160,104,215,38,55,209,38,55,211,38,57,210,19,57,240,6, + 0,28,36,144,68,216,28,32,152,54,145,68,224,20,24,151, + 75,145,75,160,4,213,20,37,224,23,31,210,23,39,160,52, + 144,4,216,16,20,151,11,145,11,152,68,213,16,33,240,29, + 14,9,34,240,30,0,52,56,214,15,61,168,97,186,49,144, + 1,151,8,145,8,156,31,213,16,41,208,15,61,136,4,208, + 15,61,220,11,14,136,116,139,57,152,1,138,62,160,36,160, + 113,162,39,224,19,23,156,40,145,63,208,12,34,216,15,19, + 148,104,151,109,145,109,160,68,211,22,41,209,15,41,208,8, + 41,249,242,9,0,16,62,115,12,0,0,0,195,48,7,69, + 5,4,195,56,23,69,5,4,99,0,0,0,0,0,0,0, + 0,0,0,0,0,8,0,0,0,7,0,0,0,243,124,0, + 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,3, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,68,0,143,1,99,2,103,0,99,2,93,25,0,0, - 125,1,124,1,114,21,124,1,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,6,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,145,2, - 140,27,4,0,99,2,125,1,171,1,0,0,0,0,0,0, - 83,0,99,2,1,0,99,2,125,1,119,0,41,1,114,55, - 0,0,0,41,4,114,62,0,0,0,114,65,0,0,0,114, - 60,0,0,0,114,61,0,0,0,41,2,114,66,0,0,0, - 218,4,112,97,114,116,115,2,0,0,0,32,32,114,10,0, - 0,0,114,72,0,0,0,114,72,0,0,0,126,0,0,0, - 115,57,0,0,0,128,0,228,15,23,143,125,137,125,216,42, - 52,246,3,1,30,62,216,34,38,185,4,240,3,0,31,35, - 159,107,153,107,172,47,213,30,58,242,0,1,30,62,243,0, - 1,16,63,240,0,1,9,63,249,242,0,1,30,62,115,4, - 0,0,0,148,30,57,8,99,1,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,96,0,0, - 0,135,0,151,0,116,1,0,0,0,0,0,0,0,0,136, - 0,102,1,100,1,132,8,116,2,0,0,0,0,0,0,0, - 0,68,0,171,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,125,1,124,1,100,2,107,2,0,0,114,4,100, - 3,137,0,102,2,83,0,137,0,100,4,124,1,26,0,137, - 0,124,1,100,5,122,0,0,0,100,4,26,0,102,2,83, - 0,41,6,122,32,82,101,112,108,97,99,101,109,101,110,116, - 32,102,111,114,32,111,115,46,112,97,116,104,46,115,112,108, - 105,116,40,41,46,99,1,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,51,0,0,0,243,64,0,0,0,149, - 1,75,0,1,0,151,0,124,0,93,21,0,0,125,1,137, - 2,106,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,171,1,0,0,0,0,0,0,150, - 1,151,1,1,0,140,23,4,0,121,0,173,3,119,1,169, - 1,78,41,1,218,5,114,102,105,110,100,41,3,114,8,0, - 0,0,114,71,0,0,0,114,68,0,0,0,115,3,0,0, - 0,32,32,128,114,10,0,0,0,114,11,0,0,0,122,30, - 95,112,97,116,104,95,115,112,108,105,116,46,60,108,111,99, - 97,108,115,62,46,60,103,101,110,101,120,112,114,62,134,0, - 0,0,115,25,0,0,0,248,232,0,248,128,0,210,11,51, - 152,97,136,68,143,74,137,74,144,113,143,77,209,11,51,249, - 115,4,0,0,0,131,27,30,1,114,1,0,0,0,114,12, - 0,0,0,78,114,6,0,0,0,41,2,218,3,109,97,120, - 114,61,0,0,0,41,2,114,68,0,0,0,218,1,105,115, - 2,0,0,0,96,32,114,10,0,0,0,218,11,95,112,97, - 116,104,95,115,112,108,105,116,114,81,0,0,0,132,0,0, - 0,115,62,0,0,0,248,128,0,228,8,11,211,11,51,164, - 63,212,11,51,211,8,51,128,65,216,7,8,136,49,130,117, - 216,15,17,144,52,136,120,136,15,216,11,15,144,2,144,17, - 136,56,144,84,152,33,152,97,153,37,152,38,144,92,208,11, - 33,208,4,33,114,28,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,44, - 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,83,0,41, - 1,122,126,83,116,97,116,32,116,104,101,32,112,97,116,104, - 46,10,10,32,32,32,32,77,97,100,101,32,97,32,115,101, - 112,97,114,97,116,101,32,102,117,110,99,116,105,111,110,32, - 116,111,32,109,97,107,101,32,105,116,32,101,97,115,105,101, - 114,32,116,111,32,111,118,101,114,114,105,100,101,32,105,110, - 32,101,120,112,101,114,105,109,101,110,116,115,10,32,32,32, - 32,40,101,46,103,46,32,99,97,99,104,101,32,115,116,97, - 116,32,114,101,115,117,108,116,115,41,46,10,10,32,32,32, - 32,41,2,114,23,0,0,0,218,4,115,116,97,116,169,1, - 114,68,0,0,0,115,1,0,0,0,32,114,10,0,0,0, - 218,10,95,112,97,116,104,95,115,116,97,116,114,85,0,0, - 0,140,0,0,0,115,18,0,0,0,128,0,244,14,0,12, - 15,143,56,137,56,144,68,139,62,208,4,25,114,28,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,92,0,0,0,151,0,9,0,116, - 1,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,125,2,124,2,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,2,122,1,0, - 0,124,1,107,40,0,0,83,0,35,0,116,2,0,0,0, - 0,0,0,0,0,36,0,114,3,1,0,89,0,121,1,119, - 0,120,3,89,0,119,1,41,3,122,49,84,101,115,116,32, - 119,104,101,116,104,101,114,32,116,104,101,32,112,97,116,104, - 32,105,115,32,116,104,101,32,115,112,101,99,105,102,105,101, - 100,32,109,111,100,101,32,116,121,112,101,46,70,105,0,240, - 0,0,41,3,114,85,0,0,0,218,7,79,83,69,114,114, - 111,114,218,7,115,116,95,109,111,100,101,41,3,114,68,0, - 0,0,218,4,109,111,100,101,218,9,115,116,97,116,95,105, - 110,102,111,115,3,0,0,0,32,32,32,114,10,0,0,0, - 218,18,95,112,97,116,104,95,105,115,95,109,111,100,101,95, - 116,121,112,101,114,91,0,0,0,150,0,0,0,115,61,0, - 0,0,128,0,240,4,3,5,21,220,20,30,152,116,211,20, - 36,136,9,240,6,0,13,22,215,12,29,209,12,29,160,8, - 209,12,40,168,84,209,11,49,208,4,49,248,244,5,0,12, - 19,242,0,1,5,21,217,15,20,240,3,1,5,21,250,115, - 12,0,0,0,130,11,31,0,159,9,43,3,170,1,43,3, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,26,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,100,1,171,2,0,0,0,0, - 0,0,83,0,41,2,122,31,82,101,112,108,97,99,101,109, - 101,110,116,32,102,111,114,32,111,115,46,112,97,116,104,46, - 105,115,102,105,108,101,46,105,0,128,0,0,41,1,114,91, - 0,0,0,114,84,0,0,0,115,1,0,0,0,32,114,10, - 0,0,0,218,12,95,112,97,116,104,95,105,115,102,105,108, - 101,114,93,0,0,0,159,0,0,0,115,15,0,0,0,128, - 0,228,11,29,152,100,160,72,211,11,45,208,4,45,114,28, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,70,0,0,0,151,0,124, - 0,115,20,116,1,0,0,0,0,0,0,0,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,125,0,116,5,0,0,0, - 0,0,0,0,0,124,0,100,1,171,2,0,0,0,0,0, - 0,83,0,41,2,122,30,82,101,112,108,97,99,101,109,101, - 110,116,32,102,111,114,32,111,115,46,112,97,116,104,46,105, - 115,100,105,114,46,105,0,64,0,0,41,3,114,23,0,0, - 0,218,6,103,101,116,99,119,100,114,91,0,0,0,114,84, - 0,0,0,115,1,0,0,0,32,114,10,0,0,0,218,11, - 95,112,97,116,104,95,105,115,100,105,114,114,96,0,0,0, - 164,0,0,0,115,29,0,0,0,128,0,225,11,15,220,15, - 18,143,122,137,122,139,124,136,4,220,11,29,152,100,160,72, - 211,11,45,208,4,45,114,28,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,192,0,0,0,151,0,124,0,115,1,121,1,116,1,0, - 0,0,0,0,0,0,0,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,100,2,25,0,0,0,106,5,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 3,100,4,171,2,0,0,0,0,0,0,125,1,116,7,0, + 0,0,124,0,68,0,143,1,99,2,103,0,99,2,93,25, + 0,0,125,1,124,1,114,21,124,1,106,5,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,6, + 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, + 145,2,140,27,4,0,99,2,125,1,171,1,0,0,0,0, + 0,0,83,0,99,2,1,0,99,2,125,1,119,0,41,1, + 114,55,0,0,0,41,4,114,62,0,0,0,114,65,0,0, + 0,114,60,0,0,0,114,61,0,0,0,41,2,114,66,0, + 0,0,218,4,112,97,114,116,115,2,0,0,0,32,32,114, + 10,0,0,0,114,72,0,0,0,114,72,0,0,0,126,0, + 0,0,115,57,0,0,0,128,0,228,15,23,143,125,137,125, + 216,42,52,246,3,1,30,62,216,34,38,185,4,240,3,0, + 31,35,159,107,153,107,172,47,213,30,58,242,0,1,30,62, + 243,0,1,16,63,240,0,1,9,63,249,242,0,1,30,62, + 115,4,0,0,0,148,30,57,8,99,1,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,96, + 0,0,0,135,0,151,0,116,1,0,0,0,0,0,0,0, + 0,136,0,102,1,100,1,132,8,116,2,0,0,0,0,0, + 0,0,0,68,0,171,0,0,0,0,0,0,0,171,1,0, + 0,0,0,0,0,125,1,124,1,100,2,107,2,0,0,114, + 4,100,3,137,0,102,2,83,0,137,0,100,4,124,1,26, + 0,137,0,124,1,100,5,122,0,0,0,100,4,26,0,102, + 2,83,0,41,6,122,32,82,101,112,108,97,99,101,109,101, + 110,116,32,102,111,114,32,111,115,46,112,97,116,104,46,115, + 112,108,105,116,40,41,46,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,51,0,0,0,243,64,0,0, + 0,149,1,75,0,1,0,151,0,124,0,93,21,0,0,125, + 1,137,2,106,1,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,100,5,107,68,0,0,120,1,114,36,1,0,124,1,106, - 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,6,171,1,0,0,0,0,0,0,120,1,115, - 17,1,0,124,1,106,11,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,4,171,1,0,0,0, - 0,0,0,83,0,41,7,250,30,82,101,112,108,97,99,101, + 0,150,1,151,1,1,0,140,23,4,0,121,0,173,3,119, + 1,169,1,78,41,1,218,5,114,102,105,110,100,41,3,114, + 8,0,0,0,114,71,0,0,0,114,68,0,0,0,115,3, + 0,0,0,32,32,128,114,10,0,0,0,114,11,0,0,0, + 122,30,95,112,97,116,104,95,115,112,108,105,116,46,60,108, + 111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62, + 134,0,0,0,115,25,0,0,0,248,232,0,248,128,0,210, + 11,51,152,97,136,68,143,74,137,74,144,113,143,77,209,11, + 51,249,115,4,0,0,0,131,27,30,1,114,1,0,0,0, + 114,12,0,0,0,78,114,6,0,0,0,41,2,218,3,109, + 97,120,114,61,0,0,0,41,2,114,68,0,0,0,218,1, + 105,115,2,0,0,0,96,32,114,10,0,0,0,218,11,95, + 112,97,116,104,95,115,112,108,105,116,114,81,0,0,0,132, + 0,0,0,115,62,0,0,0,248,128,0,228,8,11,211,11, + 51,164,63,212,11,51,211,8,51,128,65,216,7,8,136,49, + 130,117,216,15,17,144,52,136,120,136,15,216,11,15,144,2, + 144,17,136,56,144,84,152,33,152,97,153,37,152,38,144,92, + 208,11,33,208,4,33,114,28,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, + 243,44,0,0,0,151,0,116,1,0,0,0,0,0,0,0, + 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,83, + 0,41,1,122,126,83,116,97,116,32,116,104,101,32,112,97, + 116,104,46,10,10,32,32,32,32,77,97,100,101,32,97,32, + 115,101,112,97,114,97,116,101,32,102,117,110,99,116,105,111, + 110,32,116,111,32,109,97,107,101,32,105,116,32,101,97,115, + 105,101,114,32,116,111,32,111,118,101,114,114,105,100,101,32, + 105,110,32,101,120,112,101,114,105,109,101,110,116,115,10,32, + 32,32,32,40,101,46,103,46,32,99,97,99,104,101,32,115, + 116,97,116,32,114,101,115,117,108,116,115,41,46,10,10,32, + 32,32,32,41,2,114,23,0,0,0,218,4,115,116,97,116, + 169,1,114,68,0,0,0,115,1,0,0,0,32,114,10,0, + 0,0,218,10,95,112,97,116,104,95,115,116,97,116,114,85, + 0,0,0,140,0,0,0,115,18,0,0,0,128,0,244,14, + 0,12,15,143,56,137,56,144,68,139,62,208,4,25,114,28, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,243,92,0,0,0,151,0,9, + 0,116,1,0,0,0,0,0,0,0,0,124,0,171,1,0, + 0,0,0,0,0,125,2,124,2,106,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,2,122, + 1,0,0,124,1,107,40,0,0,83,0,35,0,116,2,0, + 0,0,0,0,0,0,0,36,0,114,3,1,0,89,0,121, + 1,119,0,120,3,89,0,119,1,41,3,122,49,84,101,115, + 116,32,119,104,101,116,104,101,114,32,116,104,101,32,112,97, + 116,104,32,105,115,32,116,104,101,32,115,112,101,99,105,102, + 105,101,100,32,109,111,100,101,32,116,121,112,101,46,70,105, + 0,240,0,0,41,3,114,85,0,0,0,218,7,79,83,69, + 114,114,111,114,218,7,115,116,95,109,111,100,101,41,3,114, + 68,0,0,0,218,4,109,111,100,101,218,9,115,116,97,116, + 95,105,110,102,111,115,3,0,0,0,32,32,32,114,10,0, + 0,0,218,18,95,112,97,116,104,95,105,115,95,109,111,100, + 101,95,116,121,112,101,114,91,0,0,0,150,0,0,0,115, + 61,0,0,0,128,0,240,4,3,5,21,220,20,30,152,116, + 211,20,36,136,9,240,6,0,13,22,215,12,29,209,12,29, + 160,8,209,12,40,168,84,209,11,49,208,4,49,248,244,5, + 0,12,19,242,0,1,5,21,217,15,20,240,3,1,5,21, + 250,115,12,0,0,0,130,11,31,0,159,9,43,3,170,1, + 43,3,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,26,0,0,0,151,0,116,1, + 0,0,0,0,0,0,0,0,124,0,100,1,171,2,0,0, + 0,0,0,0,83,0,41,2,122,31,82,101,112,108,97,99, + 101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,116, + 104,46,105,115,102,105,108,101,46,105,0,128,0,0,41,1, + 114,91,0,0,0,114,84,0,0,0,115,1,0,0,0,32, + 114,10,0,0,0,218,12,95,112,97,116,104,95,105,115,102, + 105,108,101,114,93,0,0,0,159,0,0,0,115,15,0,0, + 0,128,0,228,11,29,152,100,160,72,211,11,45,208,4,45, + 114,28,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,3,0,0,0,243,70,0,0,0,151, + 0,124,0,115,20,116,1,0,0,0,0,0,0,0,0,106, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,125,0,116,5,0, + 0,0,0,0,0,0,0,124,0,100,1,171,2,0,0,0, + 0,0,0,83,0,41,2,122,30,82,101,112,108,97,99,101, 109,101,110,116,32,102,111,114,32,111,115,46,112,97,116,104, - 46,105,115,97,98,115,46,70,114,1,0,0,0,114,4,0, - 0,0,114,3,0,0,0,114,6,0,0,0,122,2,92,92, - 41,6,114,23,0,0,0,114,57,0,0,0,218,7,114,101, - 112,108,97,99,101,114,7,0,0,0,114,32,0,0,0,114, - 59,0,0,0,41,2,114,68,0,0,0,114,67,0,0,0, - 115,2,0,0,0,32,32,114,10,0,0,0,218,11,95,112, - 97,116,104,95,105,115,97,98,115,114,100,0,0,0,172,0, - 0,0,115,84,0,0,0,128,0,225,15,19,216,19,24,220, - 15,18,215,15,34,209,15,34,160,52,211,15,40,168,17,209, - 15,43,215,15,51,209,15,51,176,67,184,20,211,15,62,136, - 4,220,15,18,144,52,139,121,152,49,137,125,210,15,81,160, - 36,167,47,161,47,176,38,211,34,57,210,34,80,184,84,191, - 93,185,93,200,52,211,61,80,208,8,81,114,28,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,44,0,0,0,151,0,124,0,106,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,2,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,83,0,41,1,114,98,0,0,0,41,2,114, - 32,0,0,0,114,61,0,0,0,114,84,0,0,0,115,1, - 0,0,0,32,114,10,0,0,0,114,100,0,0,0,114,100, - 0,0,0,180,0,0,0,115,17,0,0,0,128,0,224,15, - 19,143,127,137,127,156,127,211,15,47,208,8,47,114,28,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,150,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,115,61,116,2,0,0,0,0,0,0,0,0,68,0, - 93,22,0,0,125,1,124,0,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,1,124,1, - 155,0,157,2,171,1,0,0,0,0,0,0,125,0,140,24, - 4,0,116,7,0,0,0,0,0,0,0,0,116,9,0,0, - 0,0,0,0,0,0,106,10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,124,0,171,2,0,0,0,0,0,0,83,0,124,0, - 83,0,41,2,122,32,82,101,112,108,97,99,101,109,101,110, - 116,32,102,111,114,32,111,115,46,112,97,116,104,46,97,98, - 115,112,97,116,104,46,250,1,46,41,6,114,100,0,0,0, - 114,61,0,0,0,218,12,114,101,109,111,118,101,112,114,101, - 102,105,120,114,72,0,0,0,114,23,0,0,0,114,95,0, - 0,0,41,2,114,68,0,0,0,114,9,0,0,0,115,2, - 0,0,0,32,32,114,10,0,0,0,218,13,95,112,97,116, - 104,95,97,98,115,112,97,116,104,114,105,0,0,0,185,0, - 0,0,115,71,0,0,0,128,0,228,11,22,144,116,212,11, - 28,220,19,34,242,0,1,9,48,136,67,216,19,23,215,19, - 36,209,19,36,160,113,168,19,168,5,160,89,211,19,47,137, - 68,240,3,1,9,48,228,15,25,156,35,159,42,153,42,155, - 44,168,4,211,15,45,208,8,45,224,15,19,136,11,114,28, - 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, - 6,0,0,0,3,0,0,0,243,196,1,0,0,151,0,124, - 0,155,0,100,1,116,1,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,155,0,157,3,125,3,116, - 3,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,3,116, - 2,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,116,2,0, - 0,0,0,0,0,0,0,106,8,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,122,7,0,0,116, - 2,0,0,0,0,0,0,0,0,106,10,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,122,7,0, - 0,124,2,100,2,122,1,0,0,171,3,0,0,0,0,0, - 0,125,4,9,0,116,13,0,0,0,0,0,0,0,0,106, - 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,4,100,3,171,2,0,0,0,0,0,0,53, - 0,125,5,124,5,106,17,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,1,0,100,4,100,4,100,4,171,2,0,0,0, - 0,0,0,1,0,116,3,0,0,0,0,0,0,0,0,106, - 18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,3,124,0,171,2,0,0,0,0,0,0,1, - 0,121,4,35,0,49,0,115,1,119,2,1,0,89,0,1, - 0,1,0,140,32,120,3,89,0,119,1,35,0,116,20,0, - 0,0,0,0,0,0,0,36,0,114,39,1,0,9,0,116, - 3,0,0,0,0,0,0,0,0,106,22,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,3,171, - 1,0,0,0,0,0,0,1,0,130,0,35,0,116,20,0, - 0,0,0,0,0,0,0,36,0,114,3,1,0,89,0,130, - 0,119,0,120,3,89,0,119,1,119,0,120,3,89,0,119, - 1,41,5,122,162,66,101,115,116,45,101,102,102,111,114,116, - 32,102,117,110,99,116,105,111,110,32,116,111,32,119,114,105, - 116,101,32,100,97,116,97,32,116,111,32,97,32,112,97,116, - 104,32,97,116,111,109,105,99,97,108,108,121,46,10,32,32, - 32,32,66,101,32,112,114,101,112,97,114,101,100,32,116,111, - 32,104,97,110,100,108,101,32,97,32,70,105,108,101,69,120, - 105,115,116,115,69,114,114,111,114,32,105,102,32,99,111,110, - 99,117,114,114,101,110,116,32,119,114,105,116,105,110,103,32, - 111,102,32,116,104,101,10,32,32,32,32,116,101,109,112,111, - 114,97,114,121,32,102,105,108,101,32,105,115,32,97,116,116, - 101,109,112,116,101,100,46,114,103,0,0,0,233,182,1,0, - 0,218,2,119,98,78,41,12,218,2,105,100,114,23,0,0, - 0,218,4,111,112,101,110,218,6,79,95,69,88,67,76,218, - 7,79,95,67,82,69,65,84,218,8,79,95,87,82,79,78, - 76,89,218,3,95,105,111,218,6,70,105,108,101,73,79,218, - 5,119,114,105,116,101,114,99,0,0,0,114,87,0,0,0, - 218,6,117,110,108,105,110,107,41,6,114,68,0,0,0,114, - 48,0,0,0,114,89,0,0,0,218,8,112,97,116,104,95, - 116,109,112,218,2,102,100,218,4,102,105,108,101,115,6,0, - 0,0,32,32,32,32,32,32,114,10,0,0,0,218,13,95, - 119,114,105,116,101,95,97,116,111,109,105,99,114,121,0,0, - 0,195,0,0,0,115,203,0,0,0,128,0,240,10,0,19, - 23,144,22,144,113,156,18,152,68,155,24,152,10,208,15,35, - 128,72,220,9,12,143,24,137,24,144,40,220,18,21,151,42, - 145,42,156,115,159,123,153,123,209,18,42,172,83,175,92,169, - 92,209,18,57,184,52,192,37,185,60,243,3,1,10,73,1, - 128,66,240,4,11,5,14,244,6,0,14,17,143,90,137,90, - 152,2,152,68,211,13,33,240,0,1,9,29,160,84,216,12, - 16,143,74,137,74,144,116,212,12,28,247,3,1,9,29,228, - 8,11,143,11,137,11,144,72,152,100,213,8,35,247,5,1, - 9,29,240,0,1,9,29,251,244,6,0,12,19,242,0,5, - 5,14,240,2,3,9,17,220,12,15,143,74,137,74,144,120, - 212,12,32,240,6,0,9,14,248,244,5,0,16,23,242,0, - 1,9,17,216,12,16,216,8,13,240,5,1,9,17,250,240, - 7,5,5,14,250,115,72,0,0,0,193,28,22,66,47,0, - 193,50,18,66,35,3,194,4,30,66,47,0,194,35,5,66, - 44,7,194,40,7,66,47,0,194,47,9,67,31,3,194,57, - 21,67,15,2,195,14,1,67,31,3,195,15,9,67,27,5, - 195,24,2,67,31,3,195,26,1,67,27,5,195,27,4,67, - 31,3,105,203,13,0,0,114,52,0,0,0,114,39,0,0, - 0,115,2,0,0,0,13,10,218,11,95,95,112,121,99,97, - 99,104,101,95,95,122,4,111,112,116,45,122,3,46,112,121, - 122,4,46,112,121,119,122,4,46,112,121,99,41,1,218,12, - 111,112,116,105,109,105,122,97,116,105,111,110,99,2,0,0, - 0,0,0,0,0,1,0,0,0,6,0,0,0,3,0,0, - 0,243,60,3,0,0,151,0,124,1,129,47,116,1,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,2,116,4,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,1,0, - 124,2,129,13,100,3,125,3,116,7,0,0,0,0,0,0, - 0,0,124,3,171,1,0,0,0,0,0,0,130,1,124,1, - 114,2,100,4,110,1,100,5,125,2,116,9,0,0,0,0, - 0,0,0,0,106,10,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,0,116,13,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,92,2,0,0,125,4,125,5, - 124,5,106,15,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,6,171,1,0,0,0,0,0,0, - 92,3,0,0,125,6,125,7,125,8,116,16,0,0,0,0, - 0,0,0,0,106,18,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,20,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,125,9,124,9, - 128,11,116,23,0,0,0,0,0,0,0,0,100,7,171,1, - 0,0,0,0,0,0,130,1,100,4,106,25,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,6, - 114,2,124,6,110,1,124,8,124,7,124,9,103,3,171,1, - 0,0,0,0,0,0,125,10,124,2,128,58,116,16,0,0, - 0,0,0,0,0,0,106,26,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,28,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,8, - 107,40,0,0,114,3,100,4,125,2,110,26,116,16,0,0, - 0,0,0,0,0,0,106,26,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,28,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,2, - 116,31,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,125,2,124,2,100,4,107,55,0,0,114,43, - 124,2,106,33,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,115,14, - 116,35,0,0,0,0,0,0,0,0,124,2,155,2,100,9, - 157,2,171,1,0,0,0,0,0,0,130,1,124,10,155,0, - 100,6,116,36,0,0,0,0,0,0,0,0,155,0,124,2, - 155,0,157,4,125,10,124,10,116,38,0,0,0,0,0,0, - 0,0,100,8,25,0,0,0,122,0,0,0,125,11,116,16, - 0,0,0,0,0,0,0,0,106,40,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,129,81,116,43, - 0,0,0,0,0,0,0,0,124,4,171,1,0,0,0,0, - 0,0,125,4,124,4,100,5,25,0,0,0,100,10,107,40, - 0,0,114,16,124,4,100,8,25,0,0,0,116,44,0,0, - 0,0,0,0,0,0,118,1,114,5,124,4,100,11,100,1, - 26,0,125,4,116,47,0,0,0,0,0,0,0,0,116,16, - 0,0,0,0,0,0,0,0,106,40,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,4,106,49, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,44,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,124,11,171,3,0,0,0,0,0,0,83,0, - 116,47,0,0,0,0,0,0,0,0,124,4,116,50,0,0, - 0,0,0,0,0,0,124,11,171,3,0,0,0,0,0,0, - 83,0,41,12,97,254,2,0,0,71,105,118,101,110,32,116, - 104,101,32,112,97,116,104,32,116,111,32,97,32,46,112,121, - 32,102,105,108,101,44,32,114,101,116,117,114,110,32,116,104, - 101,32,112,97,116,104,32,116,111,32,105,116,115,32,46,112, - 121,99,32,102,105,108,101,46,10,10,32,32,32,32,84,104, - 101,32,46,112,121,32,102,105,108,101,32,100,111,101,115,32, - 110,111,116,32,110,101,101,100,32,116,111,32,101,120,105,115, - 116,59,32,116,104,105,115,32,115,105,109,112,108,121,32,114, - 101,116,117,114,110,115,32,116,104,101,32,112,97,116,104,32, - 116,111,32,116,104,101,10,32,32,32,32,46,112,121,99,32, - 102,105,108,101,32,99,97,108,99,117,108,97,116,101,100,32, - 97,115,32,105,102,32,116,104,101,32,46,112,121,32,102,105, - 108,101,32,119,101,114,101,32,105,109,112,111,114,116,101,100, - 46,10,10,32,32,32,32,84,104,101,32,39,111,112,116,105, - 109,105,122,97,116,105,111,110,39,32,112,97,114,97,109,101, - 116,101,114,32,99,111,110,116,114,111,108,115,32,116,104,101, - 32,112,114,101,115,117,109,101,100,32,111,112,116,105,109,105, - 122,97,116,105,111,110,32,108,101,118,101,108,32,111,102,10, - 32,32,32,32,116,104,101,32,98,121,116,101,99,111,100,101, - 32,102,105,108,101,46,32,73,102,32,39,111,112,116,105,109, - 105,122,97,116,105,111,110,39,32,105,115,32,110,111,116,32, - 78,111,110,101,44,32,116,104,101,32,115,116,114,105,110,103, - 32,114,101,112,114,101,115,101,110,116,97,116,105,111,110,10, - 32,32,32,32,111,102,32,116,104,101,32,97,114,103,117,109, - 101,110,116,32,105,115,32,116,97,107,101,110,32,97,110,100, - 32,118,101,114,105,102,105,101,100,32,116,111,32,98,101,32, - 97,108,112,104,97,110,117,109,101,114,105,99,32,40,101,108, - 115,101,32,86,97,108,117,101,69,114,114,111,114,10,32,32, - 32,32,105,115,32,114,97,105,115,101,100,41,46,10,10,32, - 32,32,32,84,104,101,32,100,101,98,117,103,95,111,118,101, - 114,114,105,100,101,32,112,97,114,97,109,101,116,101,114,32, - 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,73, - 102,32,100,101,98,117,103,95,111,118,101,114,114,105,100,101, - 32,105,115,32,110,111,116,32,78,111,110,101,44,10,32,32, - 32,32,97,32,84,114,117,101,32,118,97,108,117,101,32,105, - 115,32,116,104,101,32,115,97,109,101,32,97,115,32,115,101, - 116,116,105,110,103,32,39,111,112,116,105,109,105,122,97,116, - 105,111,110,39,32,116,111,32,116,104,101,32,101,109,112,116, - 121,32,115,116,114,105,110,103,10,32,32,32,32,119,104,105, - 108,101,32,97,32,70,97,108,115,101,32,118,97,108,117,101, - 32,105,115,32,101,113,117,105,118,97,108,101,110,116,32,116, - 111,32,115,101,116,116,105,110,103,32,39,111,112,116,105,109, - 105,122,97,116,105,111,110,39,32,116,111,32,39,49,39,46, - 10,10,32,32,32,32,73,102,32,115,121,115,46,105,109,112, - 108,101,109,101,110,116,97,116,105,111,110,46,99,97,99,104, - 101,95,116,97,103,32,105,115,32,78,111,110,101,32,116,104, - 101,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101, - 100,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, - 46,10,10,32,32,32,32,78,122,70,116,104,101,32,100,101, - 98,117,103,95,111,118,101,114,114,105,100,101,32,112,97,114, - 97,109,101,116,101,114,32,105,115,32,100,101,112,114,101,99, - 97,116,101,100,59,32,117,115,101,32,39,111,112,116,105,109, - 105,122,97,116,105,111,110,39,32,105,110,115,116,101,97,100, - 122,50,100,101,98,117,103,95,111,118,101,114,114,105,100,101, - 32,111,114,32,111,112,116,105,109,105,122,97,116,105,111,110, - 32,109,117,115,116,32,98,101,32,115,101,116,32,116,111,32, - 78,111,110,101,114,12,0,0,0,114,6,0,0,0,114,103, - 0,0,0,250,36,115,121,115,46,105,109,112,108,101,109,101, - 110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,97, - 103,32,105,115,32,78,111,110,101,114,1,0,0,0,122,20, - 32,105,115,32,110,111,116,32,97,108,112,104,97,110,117,109, - 101,114,105,99,114,13,0,0,0,114,52,0,0,0,41,26, - 218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,114, - 110,218,18,68,101,112,114,101,99,97,116,105,111,110,87,97, - 114,110,105,110,103,218,9,84,121,112,101,69,114,114,111,114, - 114,23,0,0,0,218,6,102,115,112,97,116,104,114,81,0, - 0,0,218,10,114,112,97,114,116,105,116,105,111,110,114,20, - 0,0,0,218,14,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,218,9,99,97,99,104,101,95,116,97,103,218,19, - 78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114, - 114,111,114,114,65,0,0,0,114,21,0,0,0,218,8,111, - 112,116,105,109,105,122,101,218,3,115,116,114,218,7,105,115, - 97,108,110,117,109,218,10,86,97,108,117,101,69,114,114,111, - 114,218,4,95,79,80,84,218,17,66,89,84,69,67,79,68, - 69,95,83,85,70,70,73,88,69,83,218,14,112,121,99,97, - 99,104,101,95,112,114,101,102,105,120,114,105,0,0,0,114, - 61,0,0,0,114,72,0,0,0,218,6,108,115,116,114,105, - 112,218,8,95,80,89,67,65,67,72,69,41,12,114,68,0, - 0,0,218,14,100,101,98,117,103,95,111,118,101,114,114,105, - 100,101,114,123,0,0,0,218,7,109,101,115,115,97,103,101, - 218,4,104,101,97,100,114,70,0,0,0,218,4,98,97,115, - 101,114,9,0,0,0,218,4,114,101,115,116,218,3,116,97, - 103,218,15,97,108,109,111,115,116,95,102,105,108,101,110,97, - 109,101,218,8,102,105,108,101,110,97,109,101,115,12,0,0, - 0,32,32,32,32,32,32,32,32,32,32,32,32,114,10,0, - 0,0,218,17,99,97,99,104,101,95,102,114,111,109,95,115, - 111,117,114,99,101,114,152,0,0,0,226,1,0,0,115,159, - 1,0,0,128,0,240,36,0,8,22,208,7,33,220,8,17, - 143,14,137,14,240,0,1,24,48,220,49,67,244,3,1,9, - 69,1,224,11,23,208,11,35,216,22,74,136,71,220,18,27, - 152,71,211,18,36,208,12,36,217,29,43,145,114,176,17,136, - 12,220,11,14,143,58,137,58,144,100,211,11,27,128,68,220, - 17,28,152,84,211,17,34,129,74,128,68,136,36,216,22,26, - 151,111,145,111,160,99,211,22,42,129,79,128,68,136,35,136, - 116,220,10,13,215,10,28,209,10,28,215,10,38,209,10,38, - 128,67,216,7,10,128,123,220,14,33,208,34,72,211,14,73, - 208,8,73,216,22,24,151,103,145,103,169,4,161,4,176,36, - 184,19,184,99,208,30,66,211,22,67,128,79,216,7,19,208, - 7,27,220,11,14,143,57,137,57,215,11,29,209,11,29,160, - 17,210,11,34,216,27,29,137,76,228,27,30,159,57,153,57, - 215,27,45,209,27,45,136,76,220,19,22,144,124,211,19,36, - 128,76,216,7,19,144,114,210,7,25,216,15,27,215,15,35, - 209,15,35,212,15,37,220,18,28,160,12,208,31,47,208,47, - 67,208,29,68,211,18,69,208,12,69,216,29,44,208,28,45, - 168,81,172,116,168,102,176,92,176,78,208,26,67,136,15,216, - 15,30,212,33,50,176,49,209,33,53,209,15,53,128,72,220, - 7,10,215,7,25,209,7,25,208,7,37,244,18,0,16,29, - 152,84,211,15,34,136,4,240,10,0,12,16,144,1,137,55, - 144,99,138,62,152,100,160,49,153,103,172,95,209,30,60,216, - 19,23,152,1,152,2,144,56,136,68,244,8,0,16,26,220, - 12,15,215,12,30,209,12,30,216,12,16,143,75,137,75,156, - 15,211,12,40,216,12,20,243,7,4,16,10,240,0,4,9, - 10,244,10,0,12,22,144,100,156,72,160,104,211,11,47,208, - 4,47,114,28,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,6,0,0,0,3,0,0,0,243,36,3,0, - 0,151,0,116,0,0,0,0,0,0,0,0,0,106,2,0, + 46,105,115,100,105,114,46,105,0,64,0,0,41,3,114,23, + 0,0,0,218,6,103,101,116,99,119,100,114,91,0,0,0, + 114,84,0,0,0,115,1,0,0,0,32,114,10,0,0,0, + 218,11,95,112,97,116,104,95,105,115,100,105,114,114,96,0, + 0,0,164,0,0,0,115,29,0,0,0,128,0,225,11,15, + 220,15,18,143,122,137,122,139,124,136,4,220,11,29,152,100, + 160,72,211,11,45,208,4,45,114,28,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,192,0,0,0,151,0,124,0,115,1,121,1,116, + 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, + 1,0,0,0,0,0,0,100,2,25,0,0,0,106,5,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,128,11,116,7,0,0,0,0,0,0,0, - 0,100,2,171,1,0,0,0,0,0,0,130,1,116,9,0, - 0,0,0,0,0,0,0,106,10,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,125,0,116,13,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,92,2,0,0,125, - 1,125,2,100,3,125,3,116,0,0,0,0,0,0,0,0, - 0,106,14,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,129,75,116,0,0,0,0,0,0,0,0, - 0,106,14,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,17,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,116,18,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,125,4,124,1,106, - 21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,4,116,22,0,0,0,0,0,0,0,0,122, - 0,0,0,171,1,0,0,0,0,0,0,114,16,124,1,116, - 25,0,0,0,0,0,0,0,0,124,4,171,1,0,0,0, - 0,0,0,100,1,26,0,125,1,100,4,125,3,124,3,115, - 43,116,13,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,92,2,0,0,125,1,125,5,124,5,116, - 26,0,0,0,0,0,0,0,0,107,55,0,0,114,20,116, - 29,0,0,0,0,0,0,0,0,116,26,0,0,0,0,0, - 0,0,0,155,0,100,5,124,0,155,2,157,3,171,1,0, - 0,0,0,0,0,130,1,124,2,106,31,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,6,171, - 1,0,0,0,0,0,0,125,6,124,6,100,7,118,1,114, - 14,116,29,0,0,0,0,0,0,0,0,100,8,124,2,155, - 2,157,2,171,1,0,0,0,0,0,0,130,1,124,6,100, - 9,107,40,0,0,114,109,124,2,106,33,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,6,100, - 10,171,2,0,0,0,0,0,0,100,11,25,0,0,0,125, - 7,124,7,106,21,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,116,34,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,115,18,116,29,0,0,0, - 0,0,0,0,0,100,12,116,34,0,0,0,0,0,0,0, - 0,155,2,157,2,171,1,0,0,0,0,0,0,130,1,124, - 7,116,25,0,0,0,0,0,0,0,0,116,34,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,100,1,26, - 0,125,8,124,8,106,37,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,115,15,116,29,0,0,0,0,0,0,0,0,100,13,124, - 7,155,2,100,14,157,3,171,1,0,0,0,0,0,0,130, - 1,124,2,106,39,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,6,171,1,0,0,0,0,0, - 0,100,15,25,0,0,0,125,9,116,41,0,0,0,0,0, - 0,0,0,124,1,124,9,116,42,0,0,0,0,0,0,0, - 0,100,15,25,0,0,0,122,0,0,0,171,2,0,0,0, - 0,0,0,83,0,41,16,97,110,1,0,0,71,105,118,101, - 110,32,116,104,101,32,112,97,116,104,32,116,111,32,97,32, - 46,112,121,99,46,32,102,105,108,101,44,32,114,101,116,117, - 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,105, - 116,115,32,46,112,121,32,102,105,108,101,46,10,10,32,32, - 32,32,84,104,101,32,46,112,121,99,32,102,105,108,101,32, - 100,111,101,115,32,110,111,116,32,110,101,101,100,32,116,111, - 32,101,120,105,115,116,59,32,116,104,105,115,32,115,105,109, - 112,108,121,32,114,101,116,117,114,110,115,32,116,104,101,32, - 112,97,116,104,32,116,111,10,32,32,32,32,116,104,101,32, - 46,112,121,32,102,105,108,101,32,99,97,108,99,117,108,97, - 116,101,100,32,116,111,32,99,111,114,114,101,115,112,111,110, - 100,32,116,111,32,116,104,101,32,46,112,121,99,32,102,105, - 108,101,46,32,32,73,102,32,112,97,116,104,32,100,111,101, - 115,10,32,32,32,32,110,111,116,32,99,111,110,102,111,114, - 109,32,116,111,32,80,69,80,32,51,49,52,55,47,52,56, - 56,32,102,111,114,109,97,116,44,32,86,97,108,117,101,69, - 114,114,111,114,32,119,105,108,108,32,98,101,32,114,97,105, - 115,101,100,46,32,73,102,10,32,32,32,32,115,121,115,46, - 105,109,112,108,101,109,101,110,116,97,116,105,111,110,46,99, - 97,99,104,101,95,116,97,103,32,105,115,32,78,111,110,101, - 32,116,104,101,110,32,78,111,116,73,109,112,108,101,109,101, - 110,116,101,100,69,114,114,111,114,32,105,115,32,114,97,105, - 115,101,100,46,10,10,32,32,32,32,78,114,125,0,0,0, - 70,84,122,31,32,110,111,116,32,98,111,116,116,111,109,45, - 108,101,118,101,108,32,100,105,114,101,99,116,111,114,121,32, - 105,110,32,114,103,0,0,0,62,2,0,0,0,114,52,0, - 0,0,233,3,0,0,0,122,29,101,120,112,101,99,116,101, - 100,32,111,110,108,121,32,50,32,111,114,32,51,32,100,111, - 116,115,32,105,110,32,114,154,0,0,0,114,52,0,0,0, - 233,254,255,255,255,122,53,111,112,116,105,109,105,122,97,116, - 105,111,110,32,112,111,114,116,105,111,110,32,111,102,32,102, - 105,108,101,110,97,109,101,32,100,111,101,115,32,110,111,116, - 32,115,116,97,114,116,32,119,105,116,104,32,122,19,111,112, - 116,105,109,105,122,97,116,105,111,110,32,108,101,118,101,108, - 32,122,29,32,105,115,32,110,111,116,32,97,110,32,97,108, - 112,104,97,110,117,109,101,114,105,99,32,118,97,108,117,101, - 114,1,0,0,0,41,22,114,20,0,0,0,114,132,0,0, - 0,114,133,0,0,0,114,134,0,0,0,114,23,0,0,0, - 114,130,0,0,0,114,81,0,0,0,114,141,0,0,0,114, - 60,0,0,0,114,61,0,0,0,114,32,0,0,0,114,62, - 0,0,0,114,7,0,0,0,114,143,0,0,0,114,138,0, - 0,0,218,5,99,111,117,110,116,218,6,114,115,112,108,105, - 116,114,139,0,0,0,114,137,0,0,0,218,9,112,97,114, - 116,105,116,105,111,110,114,72,0,0,0,218,15,83,79,85, - 82,67,69,95,83,85,70,70,73,88,69,83,41,10,114,68, - 0,0,0,114,146,0,0,0,218,16,112,121,99,97,99,104, - 101,95,102,105,108,101,110,97,109,101,218,23,102,111,117,110, - 100,95,105,110,95,112,121,99,97,99,104,101,95,112,114,101, - 102,105,120,218,13,115,116,114,105,112,112,101,100,95,112,97, - 116,104,218,7,112,121,99,97,99,104,101,218,9,100,111,116, - 95,99,111,117,110,116,114,123,0,0,0,218,9,111,112,116, - 95,108,101,118,101,108,218,13,98,97,115,101,95,102,105,108, - 101,110,97,109,101,115,10,0,0,0,32,32,32,32,32,32, - 32,32,32,32,114,10,0,0,0,218,17,115,111,117,114,99, - 101,95,102,114,111,109,95,99,97,99,104,101,114,167,0,0, - 0,40,2,0,0,115,165,1,0,0,128,0,244,18,0,8, - 11,215,7,25,209,7,25,215,7,35,209,7,35,208,7,43, - 220,14,33,208,34,72,211,14,73,208,8,73,220,11,14,143, - 58,137,58,144,100,211,11,27,128,68,220,29,40,168,20,211, - 29,46,209,4,26,128,68,208,10,26,216,30,35,208,4,27, - 220,7,10,215,7,25,209,7,25,208,7,37,220,24,27,215, - 24,42,209,24,42,215,24,49,209,24,49,180,47,211,24,66, - 136,13,216,11,15,143,63,137,63,152,61,172,56,209,27,51, - 212,11,52,216,19,23,156,3,152,77,211,24,42,208,24,43, - 208,19,44,136,68,216,38,42,208,12,35,217,11,34,220,24, - 35,160,68,211,24,41,137,13,136,4,136,103,216,11,18,148, - 104,210,11,30,220,18,28,164,8,152,122,208,41,72,216,32, - 36,152,120,240,3,1,30,41,243,0,1,19,42,240,0,1, - 13,42,224,16,32,215,16,38,209,16,38,160,115,211,16,43, - 128,73,216,7,16,152,6,209,7,30,220,14,24,208,27,56, - 208,57,73,208,56,76,208,25,77,211,14,78,208,8,78,216, - 9,18,144,97,138,30,216,23,39,215,23,46,209,23,46,168, - 115,176,65,211,23,54,176,114,209,23,58,136,12,216,15,27, - 215,15,38,209,15,38,164,116,212,15,44,220,18,28,240,0, - 1,30,37,220,37,41,160,72,240,3,1,30,46,243,0,1, - 19,47,240,0,1,13,47,224,20,32,164,19,164,84,163,25, - 160,26,208,20,44,136,9,216,15,24,215,15,32,209,15,32, - 212,15,34,220,18,28,208,31,50,176,60,208,50,66,240,0, - 1,67,1,50,240,0,1,30,50,243,0,1,19,51,240,0, - 1,13,51,224,20,36,215,20,46,209,20,46,168,115,211,20, - 51,176,65,209,20,54,128,77,220,11,21,144,100,152,77,172, - 79,184,65,209,44,62,209,28,62,211,11,63,208,4,63,114, + 0,100,3,100,4,171,2,0,0,0,0,0,0,125,1,116, + 7,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, + 0,0,0,100,5,107,68,0,0,120,1,114,36,1,0,124, + 1,106,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,100,6,171,1,0,0,0,0,0,0,120, + 1,115,17,1,0,124,1,106,11,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,4,171,1,0, + 0,0,0,0,0,83,0,41,7,250,30,82,101,112,108,97, + 99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,97, + 116,104,46,105,115,97,98,115,46,70,114,1,0,0,0,114, + 4,0,0,0,114,3,0,0,0,114,6,0,0,0,122,2, + 92,92,41,6,114,23,0,0,0,114,57,0,0,0,218,7, + 114,101,112,108,97,99,101,114,7,0,0,0,114,32,0,0, + 0,114,59,0,0,0,41,2,114,68,0,0,0,114,67,0, + 0,0,115,2,0,0,0,32,32,114,10,0,0,0,218,11, + 95,112,97,116,104,95,105,115,97,98,115,114,100,0,0,0, + 172,0,0,0,115,84,0,0,0,128,0,225,15,19,216,19, + 24,220,15,18,215,15,34,209,15,34,160,52,211,15,40,168, + 17,209,15,43,215,15,51,209,15,51,176,67,184,20,211,15, + 62,136,4,220,15,18,144,52,139,121,152,49,137,125,210,15, + 81,160,36,167,47,161,47,176,38,211,34,57,210,34,80,184, + 84,191,93,185,93,200,52,211,61,80,208,8,81,114,28,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,44,0,0,0,151,0,124,0, + 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,116,2,0,0,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,83,0,41,1,114,98,0,0,0,41, + 2,114,32,0,0,0,114,61,0,0,0,114,84,0,0,0, + 115,1,0,0,0,32,114,10,0,0,0,114,100,0,0,0, + 114,100,0,0,0,180,0,0,0,115,17,0,0,0,128,0, + 224,15,19,143,127,137,127,156,127,211,15,47,208,8,47,114, 28,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,232,0,0,0,151,0, + 0,5,0,0,0,3,0,0,0,243,150,0,0,0,151,0, 116,1,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,100,1,107,40,0,0,114,1,121,2,124,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,3,171,1,0,0,0,0,0,0,92,3, - 0,0,125,1,125,2,125,3,124,1,114,22,124,3,106,5, + 0,0,0,0,115,61,116,2,0,0,0,0,0,0,0,0, + 68,0,93,22,0,0,125,1,124,0,106,5,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, + 124,1,155,0,157,2,171,1,0,0,0,0,0,0,125,0, + 140,24,4,0,116,7,0,0,0,0,0,0,0,0,116,9, + 0,0,0,0,0,0,0,0,106,10,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, + 0,0,0,0,124,0,171,2,0,0,0,0,0,0,83,0, + 124,0,83,0,41,2,122,32,82,101,112,108,97,99,101,109, + 101,110,116,32,102,111,114,32,111,115,46,112,97,116,104,46, + 97,98,115,112,97,116,104,46,250,1,46,41,6,114,100,0, + 0,0,114,61,0,0,0,218,12,114,101,109,111,118,101,112, + 114,101,102,105,120,114,72,0,0,0,114,23,0,0,0,114, + 95,0,0,0,41,2,114,68,0,0,0,114,9,0,0,0, + 115,2,0,0,0,32,32,114,10,0,0,0,218,13,95,112, + 97,116,104,95,97,98,115,112,97,116,104,114,105,0,0,0, + 185,0,0,0,115,71,0,0,0,128,0,228,11,22,144,116, + 212,11,28,220,19,34,242,0,1,9,48,136,67,216,19,23, + 215,19,36,209,19,36,160,113,168,19,168,5,160,89,211,19, + 47,137,68,240,3,1,9,48,228,15,25,156,35,159,42,153, + 42,155,44,168,4,211,15,45,208,8,45,224,15,19,136,11, + 114,28,0,0,0,99,3,0,0,0,0,0,0,0,0,0, + 0,0,6,0,0,0,3,0,0,0,243,196,1,0,0,151, + 0,124,0,155,0,100,1,116,1,0,0,0,0,0,0,0, + 0,124,0,171,1,0,0,0,0,0,0,155,0,157,3,125, + 3,116,3,0,0,0,0,0,0,0,0,106,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 3,116,2,0,0,0,0,0,0,0,0,106,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, + 2,0,0,0,0,0,0,0,0,106,8,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,122,7,0, + 0,116,2,0,0,0,0,0,0,0,0,106,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122, + 7,0,0,124,2,100,2,122,1,0,0,171,3,0,0,0, + 0,0,0,125,4,9,0,116,13,0,0,0,0,0,0,0, + 0,106,14,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,4,100,3,171,2,0,0,0,0,0, + 0,53,0,125,5,124,5,106,17,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, + 0,0,0,0,0,1,0,100,4,100,4,100,4,171,2,0, + 0,0,0,0,0,1,0,116,3,0,0,0,0,0,0,0, + 0,106,18,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,3,124,0,171,2,0,0,0,0,0, + 0,1,0,121,4,35,0,49,0,115,1,119,2,1,0,89, + 0,1,0,1,0,140,32,120,3,89,0,119,1,35,0,116, + 20,0,0,0,0,0,0,0,0,36,0,114,39,1,0,9, + 0,116,3,0,0,0,0,0,0,0,0,106,22,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 3,171,1,0,0,0,0,0,0,1,0,130,0,35,0,116, + 20,0,0,0,0,0,0,0,0,36,0,114,3,1,0,89, + 0,130,0,119,0,120,3,89,0,119,1,119,0,120,3,89, + 0,119,1,41,5,122,162,66,101,115,116,45,101,102,102,111, + 114,116,32,102,117,110,99,116,105,111,110,32,116,111,32,119, + 114,105,116,101,32,100,97,116,97,32,116,111,32,97,32,112, + 97,116,104,32,97,116,111,109,105,99,97,108,108,121,46,10, + 32,32,32,32,66,101,32,112,114,101,112,97,114,101,100,32, + 116,111,32,104,97,110,100,108,101,32,97,32,70,105,108,101, + 69,120,105,115,116,115,69,114,114,111,114,32,105,102,32,99, + 111,110,99,117,114,114,101,110,116,32,119,114,105,116,105,110, + 103,32,111,102,32,116,104,101,10,32,32,32,32,116,101,109, + 112,111,114,97,114,121,32,102,105,108,101,32,105,115,32,97, + 116,116,101,109,112,116,101,100,46,114,103,0,0,0,233,182, + 1,0,0,218,2,119,98,78,41,12,218,2,105,100,114,23, + 0,0,0,218,4,111,112,101,110,218,6,79,95,69,88,67, + 76,218,7,79,95,67,82,69,65,84,218,8,79,95,87,82, + 79,78,76,89,218,3,95,105,111,218,6,70,105,108,101,73, + 79,218,5,119,114,105,116,101,114,99,0,0,0,114,87,0, + 0,0,218,6,117,110,108,105,110,107,41,6,114,68,0,0, + 0,114,48,0,0,0,114,89,0,0,0,218,8,112,97,116, + 104,95,116,109,112,218,2,102,100,218,4,102,105,108,101,115, + 6,0,0,0,32,32,32,32,32,32,114,10,0,0,0,218, + 13,95,119,114,105,116,101,95,97,116,111,109,105,99,114,121, + 0,0,0,195,0,0,0,115,203,0,0,0,128,0,240,10, + 0,19,23,144,22,144,113,156,18,152,68,155,24,152,10,208, + 15,35,128,72,220,9,12,143,24,137,24,144,40,220,18,21, + 151,42,145,42,156,115,159,123,153,123,209,18,42,172,83,175, + 92,169,92,209,18,57,184,52,192,37,185,60,243,3,1,10, + 73,1,128,66,240,4,11,5,14,244,6,0,14,17,143,90, + 137,90,152,2,152,68,211,13,33,240,0,1,9,29,160,84, + 216,12,16,143,74,137,74,144,116,212,12,28,247,3,1,9, + 29,228,8,11,143,11,137,11,144,72,152,100,213,8,35,247, + 5,1,9,29,240,0,1,9,29,251,244,6,0,12,19,242, + 0,5,5,14,240,2,3,9,17,220,12,15,143,74,137,74, + 144,120,212,12,32,240,6,0,9,14,248,244,5,0,16,23, + 242,0,1,9,17,216,12,16,216,8,13,240,5,1,9,17, + 250,240,7,5,5,14,250,115,72,0,0,0,193,28,22,66, + 47,0,193,50,18,66,35,3,194,4,30,66,47,0,194,35, + 5,66,44,7,194,40,7,66,47,0,194,47,9,67,31,3, + 194,57,21,67,15,2,195,14,1,67,31,3,195,15,9,67, + 27,5,195,24,2,67,31,3,195,26,1,67,27,5,195,27, + 4,67,31,3,105,203,13,0,0,114,52,0,0,0,114,39, + 0,0,0,115,2,0,0,0,13,10,218,11,95,95,112,121, + 99,97,99,104,101,95,95,122,4,111,112,116,45,122,3,46, + 112,121,122,4,46,112,121,119,122,4,46,112,121,99,41,1, + 218,12,111,112,116,105,109,105,122,97,116,105,111,110,99,2, + 0,0,0,0,0,0,0,1,0,0,0,6,0,0,0,3, + 0,0,0,243,60,3,0,0,151,0,124,1,129,47,116,1, + 0,0,0,0,0,0,0,0,106,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,100,2,116,4, + 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, + 1,0,124,2,129,13,100,3,125,3,116,7,0,0,0,0, + 0,0,0,0,124,3,171,1,0,0,0,0,0,0,130,1, + 124,1,114,2,100,4,110,1,100,5,125,2,116,9,0,0, + 0,0,0,0,0,0,106,10,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,0,171,1,0,0, + 0,0,0,0,125,0,116,13,0,0,0,0,0,0,0,0, + 124,0,171,1,0,0,0,0,0,0,92,2,0,0,125,4, + 125,5,124,5,106,15,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,100,6,171,1,0,0,0,0, + 0,0,92,3,0,0,125,6,125,7,125,8,116,16,0,0, + 0,0,0,0,0,0,106,18,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,106,20,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,9, + 124,9,128,11,116,23,0,0,0,0,0,0,0,0,100,7, + 171,1,0,0,0,0,0,0,130,1,100,4,106,25,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,100,4,100,5,26,0, - 100,6,107,55,0,0,114,2,124,0,83,0,9,0,116,7, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,4,116,13,0,0,0,0,0,0,0,0,124,4, - 171,1,0,0,0,0,0,0,114,2,124,4,83,0,124,0, - 83,0,35,0,116,8,0,0,0,0,0,0,0,0,116,10, - 0,0,0,0,0,0,0,0,102,2,36,0,114,8,1,0, - 124,0,100,2,100,5,26,0,125,4,89,0,140,37,119,0, - 120,3,89,0,119,1,41,7,122,188,67,111,110,118,101,114, - 116,32,97,32,98,121,116,101,99,111,100,101,32,102,105,108, - 101,32,112,97,116,104,32,116,111,32,97,32,115,111,117,114, - 99,101,32,112,97,116,104,32,40,105,102,32,112,111,115,115, - 105,98,108,101,41,46,10,10,32,32,32,32,84,104,105,115, - 32,102,117,110,99,116,105,111,110,32,101,120,105,115,116,115, - 32,112,117,114,101,108,121,32,102,111,114,32,98,97,99,107, - 119,97,114,100,115,45,99,111,109,112,97,116,105,98,105,108, - 105,116,121,32,102,111,114,10,32,32,32,32,80,121,73,109, - 112,111,114,116,95,69,120,101,99,67,111,100,101,77,111,100, - 117,108,101,87,105,116,104,70,105,108,101,110,97,109,101,115, - 40,41,32,105,110,32,116,104,101,32,67,32,65,80,73,46, - 10,10,32,32,32,32,114,1,0,0,0,78,114,103,0,0, - 0,233,253,255,255,255,233,255,255,255,255,218,2,112,121,41, - 7,114,7,0,0,0,114,131,0,0,0,218,5,108,111,119, - 101,114,114,167,0,0,0,114,134,0,0,0,114,138,0,0, - 0,114,93,0,0,0,41,5,218,13,98,121,116,101,99,111, - 100,101,95,112,97,116,104,114,148,0,0,0,218,1,95,218, - 9,101,120,116,101,110,115,105,111,110,218,11,115,111,117,114, - 99,101,95,112,97,116,104,115,5,0,0,0,32,32,32,32, - 32,114,10,0,0,0,218,15,95,103,101,116,95,115,111,117, - 114,99,101,102,105,108,101,114,177,0,0,0,80,2,0,0, - 115,142,0,0,0,128,0,244,14,0,8,11,136,61,211,7, - 25,152,81,210,7,30,216,15,19,216,25,38,215,25,49,209, - 25,49,176,35,211,25,54,209,4,22,128,68,136,33,136,89, - 217,11,15,144,57,151,63,145,63,211,19,36,160,82,168,2, - 208,19,43,168,116,210,19,51,216,15,28,208,8,28,240,2, - 3,5,41,220,22,39,168,13,211,22,54,136,11,244,6,0, - 27,39,160,123,212,26,51,136,59,208,4,70,184,29,208,4, - 70,248,244,5,0,13,32,164,26,208,11,44,242,0,1,5, - 41,216,22,35,160,67,160,82,208,22,40,138,11,240,3,1, - 5,41,250,115,18,0,0,0,193,0,11,65,26,0,193,26, - 20,65,49,3,193,48,1,65,49,3,99,1,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, - 182,0,0,0,151,0,124,0,106,1,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,3,0,0, - 0,0,0,0,0,0,116,4,0,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 114,12,9,0,116,7,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,83,0,124,0,106,1,0,0, + 124,6,114,2,124,6,110,1,124,8,124,7,124,9,103,3, + 171,1,0,0,0,0,0,0,125,10,124,2,128,58,116,16, + 0,0,0,0,0,0,0,0,106,26,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,106,28,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,3,0,0,0,0,0,0,0,0,116,10,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,114,2,124,0,83,0,121,0,35,0,116,8, - 0,0,0,0,0,0,0,0,36,0,114,3,1,0,89,0, - 121,0,119,0,120,3,89,0,119,1,114,77,0,0,0,41, - 6,114,59,0,0,0,218,5,116,117,112,108,101,114,159,0, - 0,0,114,152,0,0,0,114,134,0,0,0,114,140,0,0, - 0,41,1,114,151,0,0,0,115,1,0,0,0,32,114,10, - 0,0,0,218,11,95,103,101,116,95,99,97,99,104,101,100, - 114,180,0,0,0,99,2,0,0,115,87,0,0,0,128,0, - 216,7,15,215,7,24,209,7,24,156,21,156,127,211,25,47, - 212,7,48,240,2,3,9,17,220,19,36,160,88,211,19,46, - 208,12,46,240,6,0,10,18,215,9,26,209,9,26,156,53, - 212,33,50,211,27,51,212,9,52,216,15,23,136,15,224,15, - 19,248,244,11,0,16,35,242,0,1,9,17,217,12,16,240, - 3,1,9,17,250,115,17,0,0,0,160,10,65,12,0,193, - 12,9,65,24,3,193,23,1,65,24,3,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,94,0,0,0,151,0,9,0,116,1,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,106,2,0, + 100,8,107,40,0,0,114,3,100,4,125,2,110,26,116,16, + 0,0,0,0,0,0,0,0,106,26,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,106,28,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,1,124,1,100,2,122,20,0,0,125,1,124,1,83, - 0,35,0,116,4,0,0,0,0,0,0,0,0,36,0,114, - 5,1,0,100,1,125,1,89,0,140,20,119,0,120,3,89, - 0,119,1,41,3,122,51,67,97,108,99,117,108,97,116,101, - 32,116,104,101,32,109,111,100,101,32,112,101,114,109,105,115, - 115,105,111,110,115,32,102,111,114,32,97,32,98,121,116,101, - 99,111,100,101,32,102,105,108,101,46,114,107,0,0,0,233, - 128,0,0,0,41,3,114,85,0,0,0,114,88,0,0,0, - 114,87,0,0,0,41,2,114,68,0,0,0,114,89,0,0, - 0,115,2,0,0,0,32,32,114,10,0,0,0,218,10,95, - 99,97,108,99,95,109,111,100,101,114,183,0,0,0,111,2, - 0,0,115,61,0,0,0,128,0,240,4,3,5,21,220,15, - 25,152,36,211,15,31,215,15,39,209,15,39,136,4,240,10, - 0,5,9,136,69,129,77,128,68,216,11,15,128,75,248,244, - 11,0,12,19,242,0,1,5,21,216,15,20,138,4,240,3, - 1,5,21,250,115,12,0,0,0,130,21,30,0,158,11,44, - 3,171,1,44,3,99,1,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,90,0,0,0,135, - 0,151,0,100,3,136,0,102,1,100,1,132,9,125,1,116, - 0,0,0,0,0,0,0,0,0,129,17,116,0,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,125,2,110,3,100,2,132, - 0,125,2,2,0,124,2,124,1,137,0,171,2,0,0,0, - 0,0,0,1,0,124,1,83,0,41,4,122,252,68,101,99, - 111,114,97,116,111,114,32,116,111,32,118,101,114,105,102,121, - 32,116,104,97,116,32,116,104,101,32,109,111,100,117,108,101, - 32,98,101,105,110,103,32,114,101,113,117,101,115,116,101,100, - 32,109,97,116,99,104,101,115,32,116,104,101,32,111,110,101, - 32,116,104,101,10,32,32,32,32,108,111,97,100,101,114,32, - 99,97,110,32,104,97,110,100,108,101,46,10,10,32,32,32, - 32,84,104,101,32,102,105,114,115,116,32,97,114,103,117,109, - 101,110,116,32,40,115,101,108,102,41,32,109,117,115,116,32, - 100,101,102,105,110,101,32,95,110,97,109,101,32,119,104,105, - 99,104,32,116,104,101,32,115,101,99,111,110,100,32,97,114, - 103,117,109,101,110,116,32,105,115,10,32,32,32,32,99,111, - 109,112,97,114,101,100,32,97,103,97,105,110,115,116,46,32, - 73,102,32,116,104,101,32,99,111,109,112,97,114,105,115,111, - 110,32,102,97,105,108,115,32,116,104,101,110,32,73,109,112, - 111,114,116,69,114,114,111,114,32,105,115,32,114,97,105,115, - 101,100,46,10,10,32,32,32,32,99,2,0,0,0,0,0, - 0,0,0,0,0,0,6,0,0,0,31,0,0,0,243,148, - 0,0,0,149,1,151,0,124,1,128,13,124,0,106,0,0, + 125,2,116,31,0,0,0,0,0,0,0,0,124,2,171,1, + 0,0,0,0,0,0,125,2,124,2,100,4,107,55,0,0, + 114,43,124,2,106,33,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, + 115,14,116,35,0,0,0,0,0,0,0,0,124,2,155,2, + 100,9,157,2,171,1,0,0,0,0,0,0,130,1,124,10, + 155,0,100,6,116,36,0,0,0,0,0,0,0,0,155,0, + 124,2,155,0,157,4,125,10,124,10,116,38,0,0,0,0, + 0,0,0,0,100,8,25,0,0,0,122,0,0,0,125,11, + 116,16,0,0,0,0,0,0,0,0,106,40,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,81, + 116,43,0,0,0,0,0,0,0,0,124,4,171,1,0,0, + 0,0,0,0,125,4,124,4,100,5,25,0,0,0,100,10, + 107,40,0,0,114,16,124,4,100,8,25,0,0,0,116,44, + 0,0,0,0,0,0,0,0,118,1,114,5,124,4,100,11, + 100,1,26,0,125,4,116,47,0,0,0,0,0,0,0,0, + 116,16,0,0,0,0,0,0,0,0,106,40,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,4, + 106,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,116,44,0,0,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,124,11,171,3,0,0,0,0,0,0, + 83,0,116,47,0,0,0,0,0,0,0,0,124,4,116,50, + 0,0,0,0,0,0,0,0,124,11,171,3,0,0,0,0, + 0,0,83,0,41,12,97,254,2,0,0,71,105,118,101,110, + 32,116,104,101,32,112,97,116,104,32,116,111,32,97,32,46, + 112,121,32,102,105,108,101,44,32,114,101,116,117,114,110,32, + 116,104,101,32,112,97,116,104,32,116,111,32,105,116,115,32, + 46,112,121,99,32,102,105,108,101,46,10,10,32,32,32,32, + 84,104,101,32,46,112,121,32,102,105,108,101,32,100,111,101, + 115,32,110,111,116,32,110,101,101,100,32,116,111,32,101,120, + 105,115,116,59,32,116,104,105,115,32,115,105,109,112,108,121, + 32,114,101,116,117,114,110,115,32,116,104,101,32,112,97,116, + 104,32,116,111,32,116,104,101,10,32,32,32,32,46,112,121, + 99,32,102,105,108,101,32,99,97,108,99,117,108,97,116,101, + 100,32,97,115,32,105,102,32,116,104,101,32,46,112,121,32, + 102,105,108,101,32,119,101,114,101,32,105,109,112,111,114,116, + 101,100,46,10,10,32,32,32,32,84,104,101,32,39,111,112, + 116,105,109,105,122,97,116,105,111,110,39,32,112,97,114,97, + 109,101,116,101,114,32,99,111,110,116,114,111,108,115,32,116, + 104,101,32,112,114,101,115,117,109,101,100,32,111,112,116,105, + 109,105,122,97,116,105,111,110,32,108,101,118,101,108,32,111, + 102,10,32,32,32,32,116,104,101,32,98,121,116,101,99,111, + 100,101,32,102,105,108,101,46,32,73,102,32,39,111,112,116, + 105,109,105,122,97,116,105,111,110,39,32,105,115,32,110,111, + 116,32,78,111,110,101,44,32,116,104,101,32,115,116,114,105, + 110,103,32,114,101,112,114,101,115,101,110,116,97,116,105,111, + 110,10,32,32,32,32,111,102,32,116,104,101,32,97,114,103, + 117,109,101,110,116,32,105,115,32,116,97,107,101,110,32,97, + 110,100,32,118,101,114,105,102,105,101,100,32,116,111,32,98, + 101,32,97,108,112,104,97,110,117,109,101,114,105,99,32,40, + 101,108,115,101,32,86,97,108,117,101,69,114,114,111,114,10, + 32,32,32,32,105,115,32,114,97,105,115,101,100,41,46,10, + 10,32,32,32,32,84,104,101,32,100,101,98,117,103,95,111, + 118,101,114,114,105,100,101,32,112,97,114,97,109,101,116,101, + 114,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46, + 32,73,102,32,100,101,98,117,103,95,111,118,101,114,114,105, + 100,101,32,105,115,32,110,111,116,32,78,111,110,101,44,10, + 32,32,32,32,97,32,84,114,117,101,32,118,97,108,117,101, + 32,105,115,32,116,104,101,32,115,97,109,101,32,97,115,32, + 115,101,116,116,105,110,103,32,39,111,112,116,105,109,105,122, + 97,116,105,111,110,39,32,116,111,32,116,104,101,32,101,109, + 112,116,121,32,115,116,114,105,110,103,10,32,32,32,32,119, + 104,105,108,101,32,97,32,70,97,108,115,101,32,118,97,108, + 117,101,32,105,115,32,101,113,117,105,118,97,108,101,110,116, + 32,116,111,32,115,101,116,116,105,110,103,32,39,111,112,116, + 105,109,105,122,97,116,105,111,110,39,32,116,111,32,39,49, + 39,46,10,10,32,32,32,32,73,102,32,115,121,115,46,105, + 109,112,108,101,109,101,110,116,97,116,105,111,110,46,99,97, + 99,104,101,95,116,97,103,32,105,115,32,78,111,110,101,32, + 116,104,101,110,32,78,111,116,73,109,112,108,101,109,101,110, + 116,101,100,69,114,114,111,114,32,105,115,32,114,97,105,115, + 101,100,46,10,10,32,32,32,32,78,122,70,116,104,101,32, + 100,101,98,117,103,95,111,118,101,114,114,105,100,101,32,112, + 97,114,97,109,101,116,101,114,32,105,115,32,100,101,112,114, + 101,99,97,116,101,100,59,32,117,115,101,32,39,111,112,116, + 105,109,105,122,97,116,105,111,110,39,32,105,110,115,116,101, + 97,100,122,50,100,101,98,117,103,95,111,118,101,114,114,105, + 100,101,32,111,114,32,111,112,116,105,109,105,122,97,116,105, + 111,110,32,109,117,115,116,32,98,101,32,115,101,116,32,116, + 111,32,78,111,110,101,114,12,0,0,0,114,6,0,0,0, + 114,103,0,0,0,250,36,115,121,115,46,105,109,112,108,101, + 109,101,110,116,97,116,105,111,110,46,99,97,99,104,101,95, + 116,97,103,32,105,115,32,78,111,110,101,114,1,0,0,0, + 122,20,32,105,115,32,110,111,116,32,97,108,112,104,97,110, + 117,109,101,114,105,99,114,13,0,0,0,114,52,0,0,0, + 41,26,218,9,95,119,97,114,110,105,110,103,115,218,4,119, + 97,114,110,218,18,68,101,112,114,101,99,97,116,105,111,110, + 87,97,114,110,105,110,103,218,9,84,121,112,101,69,114,114, + 111,114,114,23,0,0,0,218,6,102,115,112,97,116,104,114, + 81,0,0,0,218,10,114,112,97,114,116,105,116,105,111,110, + 114,20,0,0,0,218,14,105,109,112,108,101,109,101,110,116, + 97,116,105,111,110,218,9,99,97,99,104,101,95,116,97,103, + 218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,100, + 69,114,114,111,114,114,65,0,0,0,114,21,0,0,0,218, + 8,111,112,116,105,109,105,122,101,218,3,115,116,114,218,7, + 105,115,97,108,110,117,109,218,10,86,97,108,117,101,69,114, + 114,111,114,218,4,95,79,80,84,218,17,66,89,84,69,67, + 79,68,69,95,83,85,70,70,73,88,69,83,218,14,112,121, + 99,97,99,104,101,95,112,114,101,102,105,120,114,105,0,0, + 0,114,61,0,0,0,114,72,0,0,0,218,6,108,115,116, + 114,105,112,218,8,95,80,89,67,65,67,72,69,41,12,114, + 68,0,0,0,218,14,100,101,98,117,103,95,111,118,101,114, + 114,105,100,101,114,123,0,0,0,218,7,109,101,115,115,97, + 103,101,218,4,104,101,97,100,114,70,0,0,0,218,4,98, + 97,115,101,114,9,0,0,0,218,4,114,101,115,116,218,3, + 116,97,103,218,15,97,108,109,111,115,116,95,102,105,108,101, + 110,97,109,101,218,8,102,105,108,101,110,97,109,101,115,12, + 0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,114, + 10,0,0,0,218,17,99,97,99,104,101,95,102,114,111,109, + 95,115,111,117,114,99,101,114,152,0,0,0,226,1,0,0, + 115,159,1,0,0,128,0,240,36,0,8,22,208,7,33,220, + 8,17,143,14,137,14,240,0,1,24,48,220,49,67,244,3, + 1,9,69,1,224,11,23,208,11,35,216,22,74,136,71,220, + 18,27,152,71,211,18,36,208,12,36,217,29,43,145,114,176, + 17,136,12,220,11,14,143,58,137,58,144,100,211,11,27,128, + 68,220,17,28,152,84,211,17,34,129,74,128,68,136,36,216, + 22,26,151,111,145,111,160,99,211,22,42,129,79,128,68,136, + 35,136,116,220,10,13,215,10,28,209,10,28,215,10,38,209, + 10,38,128,67,216,7,10,128,123,220,14,33,208,34,72,211, + 14,73,208,8,73,216,22,24,151,103,145,103,169,4,161,4, + 176,36,184,19,184,99,208,30,66,211,22,67,128,79,216,7, + 19,208,7,27,220,11,14,143,57,137,57,215,11,29,209,11, + 29,160,17,210,11,34,216,27,29,137,76,228,27,30,159,57, + 153,57,215,27,45,209,27,45,136,76,220,19,22,144,124,211, + 19,36,128,76,216,7,19,144,114,210,7,25,216,15,27,215, + 15,35,209,15,35,212,15,37,220,18,28,160,12,208,31,47, + 208,47,67,208,29,68,211,18,69,208,12,69,216,29,44,208, + 28,45,168,81,172,116,168,102,176,92,176,78,208,26,67,136, + 15,216,15,30,212,33,50,176,49,209,33,53,209,15,53,128, + 72,220,7,10,215,7,25,209,7,25,208,7,37,244,18,0, + 16,29,152,84,211,15,34,136,4,240,10,0,12,16,144,1, + 137,55,144,99,138,62,152,100,160,49,153,103,172,95,209,30, + 60,216,19,23,152,1,152,2,144,56,136,68,244,8,0,16, + 26,220,12,15,215,12,30,209,12,30,216,12,16,143,75,137, + 75,156,15,211,12,40,216,12,20,243,7,4,16,10,240,0, + 4,9,10,244,10,0,12,22,144,100,156,72,160,104,211,11, + 47,208,4,47,114,28,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,36, + 3,0,0,151,0,116,0,0,0,0,0,0,0,0,0,106, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,128,11,116,7,0,0,0,0,0, + 0,0,0,100,2,171,1,0,0,0,0,0,0,130,1,116, + 9,0,0,0,0,0,0,0,0,106,10,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, + 1,0,0,0,0,0,0,125,0,116,13,0,0,0,0,0, + 0,0,0,124,0,171,1,0,0,0,0,0,0,92,2,0, + 0,125,1,125,2,100,3,125,3,116,0,0,0,0,0,0, + 0,0,0,106,14,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,129,75,116,0,0,0,0,0,0, + 0,0,0,106,14,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,106,17,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,116,18,0,0,0, + 0,0,0,0,0,171,1,0,0,0,0,0,0,125,4,124, + 1,106,21,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,4,116,22,0,0,0,0,0,0,0, + 0,122,0,0,0,171,1,0,0,0,0,0,0,114,16,124, + 1,116,25,0,0,0,0,0,0,0,0,124,4,171,1,0, + 0,0,0,0,0,100,1,26,0,125,1,100,4,125,3,124, + 3,115,43,116,13,0,0,0,0,0,0,0,0,124,1,171, + 1,0,0,0,0,0,0,92,2,0,0,125,1,125,5,124, + 5,116,26,0,0,0,0,0,0,0,0,107,55,0,0,114, + 20,116,29,0,0,0,0,0,0,0,0,116,26,0,0,0, + 0,0,0,0,0,155,0,100,5,124,0,155,2,157,3,171, + 1,0,0,0,0,0,0,130,1,124,2,106,31,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, + 6,171,1,0,0,0,0,0,0,125,6,124,6,100,7,118, + 1,114,14,116,29,0,0,0,0,0,0,0,0,100,8,124, + 2,155,2,157,2,171,1,0,0,0,0,0,0,130,1,124, + 6,100,9,107,40,0,0,114,109,124,2,106,33,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, + 6,100,10,171,2,0,0,0,0,0,0,100,11,25,0,0, + 0,125,7,124,7,106,21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,116,34,0,0,0,0,0, + 0,0,0,171,1,0,0,0,0,0,0,115,18,116,29,0, + 0,0,0,0,0,0,0,100,12,116,34,0,0,0,0,0, + 0,0,0,155,2,157,2,171,1,0,0,0,0,0,0,130, + 1,124,7,116,25,0,0,0,0,0,0,0,0,116,34,0, + 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,100, + 1,26,0,125,8,124,8,106,37,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, + 0,0,0,115,15,116,29,0,0,0,0,0,0,0,0,100, + 13,124,7,155,2,100,14,157,3,171,1,0,0,0,0,0, + 0,130,1,124,2,106,39,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,100,6,171,1,0,0,0, + 0,0,0,100,15,25,0,0,0,125,9,116,41,0,0,0, + 0,0,0,0,0,124,1,124,9,116,42,0,0,0,0,0, + 0,0,0,100,15,25,0,0,0,122,0,0,0,171,2,0, + 0,0,0,0,0,83,0,41,16,97,110,1,0,0,71,105, + 118,101,110,32,116,104,101,32,112,97,116,104,32,116,111,32, + 97,32,46,112,121,99,46,32,102,105,108,101,44,32,114,101, + 116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,111, + 32,105,116,115,32,46,112,121,32,102,105,108,101,46,10,10, + 32,32,32,32,84,104,101,32,46,112,121,99,32,102,105,108, + 101,32,100,111,101,115,32,110,111,116,32,110,101,101,100,32, + 116,111,32,101,120,105,115,116,59,32,116,104,105,115,32,115, + 105,109,112,108,121,32,114,101,116,117,114,110,115,32,116,104, + 101,32,112,97,116,104,32,116,111,10,32,32,32,32,116,104, + 101,32,46,112,121,32,102,105,108,101,32,99,97,108,99,117, + 108,97,116,101,100,32,116,111,32,99,111,114,114,101,115,112, + 111,110,100,32,116,111,32,116,104,101,32,46,112,121,99,32, + 102,105,108,101,46,32,32,73,102,32,112,97,116,104,32,100, + 111,101,115,10,32,32,32,32,110,111,116,32,99,111,110,102, + 111,114,109,32,116,111,32,80,69,80,32,51,49,52,55,47, + 52,56,56,32,102,111,114,109,97,116,44,32,86,97,108,117, + 101,69,114,114,111,114,32,119,105,108,108,32,98,101,32,114, + 97,105,115,101,100,46,32,73,102,10,32,32,32,32,115,121, + 115,46,105,109,112,108,101,109,101,110,116,97,116,105,111,110, + 46,99,97,99,104,101,95,116,97,103,32,105,115,32,78,111, + 110,101,32,116,104,101,110,32,78,111,116,73,109,112,108,101, + 109,101,110,116,101,100,69,114,114,111,114,32,105,115,32,114, + 97,105,115,101,100,46,10,10,32,32,32,32,78,114,125,0, + 0,0,70,84,122,31,32,110,111,116,32,98,111,116,116,111, + 109,45,108,101,118,101,108,32,100,105,114,101,99,116,111,114, + 121,32,105,110,32,114,103,0,0,0,62,2,0,0,0,114, + 52,0,0,0,233,3,0,0,0,122,29,101,120,112,101,99, + 116,101,100,32,111,110,108,121,32,50,32,111,114,32,51,32, + 100,111,116,115,32,105,110,32,114,154,0,0,0,114,52,0, + 0,0,233,254,255,255,255,122,53,111,112,116,105,109,105,122, + 97,116,105,111,110,32,112,111,114,116,105,111,110,32,111,102, + 32,102,105,108,101,110,97,109,101,32,100,111,101,115,32,110, + 111,116,32,115,116,97,114,116,32,119,105,116,104,32,122,19, + 111,112,116,105,109,105,122,97,116,105,111,110,32,108,101,118, + 101,108,32,122,29,32,105,115,32,110,111,116,32,97,110,32, + 97,108,112,104,97,110,117,109,101,114,105,99,32,118,97,108, + 117,101,114,1,0,0,0,41,22,114,20,0,0,0,114,132, + 0,0,0,114,133,0,0,0,114,134,0,0,0,114,23,0, + 0,0,114,130,0,0,0,114,81,0,0,0,114,141,0,0, + 0,114,60,0,0,0,114,61,0,0,0,114,32,0,0,0, + 114,62,0,0,0,114,7,0,0,0,114,143,0,0,0,114, + 138,0,0,0,218,5,99,111,117,110,116,218,6,114,115,112, + 108,105,116,114,139,0,0,0,114,137,0,0,0,218,9,112, + 97,114,116,105,116,105,111,110,114,72,0,0,0,218,15,83, + 79,85,82,67,69,95,83,85,70,70,73,88,69,83,41,10, + 114,68,0,0,0,114,146,0,0,0,218,16,112,121,99,97, + 99,104,101,95,102,105,108,101,110,97,109,101,218,23,102,111, + 117,110,100,95,105,110,95,112,121,99,97,99,104,101,95,112, + 114,101,102,105,120,218,13,115,116,114,105,112,112,101,100,95, + 112,97,116,104,218,7,112,121,99,97,99,104,101,218,9,100, + 111,116,95,99,111,117,110,116,114,123,0,0,0,218,9,111, + 112,116,95,108,101,118,101,108,218,13,98,97,115,101,95,102, + 105,108,101,110,97,109,101,115,10,0,0,0,32,32,32,32, + 32,32,32,32,32,32,114,10,0,0,0,218,17,115,111,117, + 114,99,101,95,102,114,111,109,95,99,97,99,104,101,114,167, + 0,0,0,40,2,0,0,115,165,1,0,0,128,0,244,18, + 0,8,11,215,7,25,209,7,25,215,7,35,209,7,35,208, + 7,43,220,14,33,208,34,72,211,14,73,208,8,73,220,11, + 14,143,58,137,58,144,100,211,11,27,128,68,220,29,40,168, + 20,211,29,46,209,4,26,128,68,208,10,26,216,30,35,208, + 4,27,220,7,10,215,7,25,209,7,25,208,7,37,220,24, + 27,215,24,42,209,24,42,215,24,49,209,24,49,180,47,211, + 24,66,136,13,216,11,15,143,63,137,63,152,61,172,56,209, + 27,51,212,11,52,216,19,23,156,3,152,77,211,24,42,208, + 24,43,208,19,44,136,68,216,38,42,208,12,35,217,11,34, + 220,24,35,160,68,211,24,41,137,13,136,4,136,103,216,11, + 18,148,104,210,11,30,220,18,28,164,8,152,122,208,41,72, + 216,32,36,152,120,240,3,1,30,41,243,0,1,19,42,240, + 0,1,13,42,224,16,32,215,16,38,209,16,38,160,115,211, + 16,43,128,73,216,7,16,152,6,209,7,30,220,14,24,208, + 27,56,208,57,73,208,56,76,208,25,77,211,14,78,208,8, + 78,216,9,18,144,97,138,30,216,23,39,215,23,46,209,23, + 46,168,115,176,65,211,23,54,176,114,209,23,58,136,12,216, + 15,27,215,15,38,209,15,38,164,116,212,15,44,220,18,28, + 240,0,1,30,37,220,37,41,160,72,240,3,1,30,46,243, + 0,1,19,47,240,0,1,13,47,224,20,32,164,19,164,84, + 163,25,160,26,208,20,44,136,9,216,15,24,215,15,32,209, + 15,32,212,15,34,220,18,28,208,31,50,176,60,208,50,66, + 240,0,1,67,1,50,240,0,1,30,50,243,0,1,19,51, + 240,0,1,13,51,224,20,36,215,20,46,209,20,46,168,115, + 211,20,51,176,65,209,20,54,128,77,220,11,21,144,100,152, + 77,172,79,184,65,209,44,62,209,28,62,211,11,63,208,4, + 63,114,28,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,232,0,0,0, + 151,0,116,1,0,0,0,0,0,0,0,0,124,0,171,1, + 0,0,0,0,0,0,100,1,107,40,0,0,114,1,121,2, + 124,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,100,3,171,1,0,0,0,0,0,0, + 92,3,0,0,125,1,125,2,125,3,124,1,114,22,124,3, + 106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,171,0,0,0,0,0,0,0,100,4,100,5, + 26,0,100,6,107,55,0,0,114,2,124,0,83,0,9,0, + 116,7,0,0,0,0,0,0,0,0,124,0,171,1,0,0, + 0,0,0,0,125,4,116,13,0,0,0,0,0,0,0,0, + 124,4,171,1,0,0,0,0,0,0,114,2,124,4,83,0, + 124,0,83,0,35,0,116,8,0,0,0,0,0,0,0,0, + 116,10,0,0,0,0,0,0,0,0,102,2,36,0,114,8, + 1,0,124,0,100,2,100,5,26,0,125,4,89,0,140,37, + 119,0,120,3,89,0,119,1,41,7,122,188,67,111,110,118, + 101,114,116,32,97,32,98,121,116,101,99,111,100,101,32,102, + 105,108,101,32,112,97,116,104,32,116,111,32,97,32,115,111, + 117,114,99,101,32,112,97,116,104,32,40,105,102,32,112,111, + 115,115,105,98,108,101,41,46,10,10,32,32,32,32,84,104, + 105,115,32,102,117,110,99,116,105,111,110,32,101,120,105,115, + 116,115,32,112,117,114,101,108,121,32,102,111,114,32,98,97, + 99,107,119,97,114,100,115,45,99,111,109,112,97,116,105,98, + 105,108,105,116,121,32,102,111,114,10,32,32,32,32,80,121, + 73,109,112,111,114,116,95,69,120,101,99,67,111,100,101,77, + 111,100,117,108,101,87,105,116,104,70,105,108,101,110,97,109, + 101,115,40,41,32,105,110,32,116,104,101,32,67,32,65,80, + 73,46,10,10,32,32,32,32,114,1,0,0,0,78,114,103, + 0,0,0,233,253,255,255,255,233,255,255,255,255,218,2,112, + 121,41,7,114,7,0,0,0,114,131,0,0,0,218,5,108, + 111,119,101,114,114,167,0,0,0,114,134,0,0,0,114,138, + 0,0,0,114,93,0,0,0,41,5,218,13,98,121,116,101, + 99,111,100,101,95,112,97,116,104,114,148,0,0,0,218,1, + 95,218,9,101,120,116,101,110,115,105,111,110,218,11,115,111, + 117,114,99,101,95,112,97,116,104,115,5,0,0,0,32,32, + 32,32,32,114,10,0,0,0,218,15,95,103,101,116,95,115, + 111,117,114,99,101,102,105,108,101,114,177,0,0,0,80,2, + 0,0,115,142,0,0,0,128,0,244,14,0,8,11,136,61, + 211,7,25,152,81,210,7,30,216,15,19,216,25,38,215,25, + 49,209,25,49,176,35,211,25,54,209,4,22,128,68,136,33, + 136,89,217,11,15,144,57,151,63,145,63,211,19,36,160,82, + 168,2,208,19,43,168,116,210,19,51,216,15,28,208,8,28, + 240,2,3,5,41,220,22,39,168,13,211,22,54,136,11,244, + 6,0,27,39,160,123,212,26,51,136,59,208,4,70,184,29, + 208,4,70,248,244,5,0,13,32,164,26,208,11,44,242,0, + 1,5,41,216,22,35,160,67,160,82,208,22,40,138,11,240, + 3,1,5,41,250,115,18,0,0,0,193,0,11,65,26,0, + 193,26,20,65,49,3,193,48,1,65,49,3,99,1,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,243,182,0,0,0,151,0,124,0,106,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,3, + 0,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0, + 0,0,171,1,0,0,0,0,0,0,171,1,0,0,0,0, + 0,0,114,12,9,0,116,7,0,0,0,0,0,0,0,0, + 124,0,171,1,0,0,0,0,0,0,83,0,124,0,106,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,1,110,44,124,0,106,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,107,55,0, - 0,114,29,116,3,0,0,0,0,0,0,0,0,100,1,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,155,1,100,2,124,1,155,1,157,4,124, - 1,172,3,171,2,0,0,0,0,0,0,130,1,2,0,137, - 4,124,0,124,1,103,2,124,2,162,1,173,6,105,0,124, - 3,164,1,142,1,83,0,41,4,78,122,11,108,111,97,100, - 101,114,32,102,111,114,32,122,15,32,99,97,110,110,111,116, - 32,104,97,110,100,108,101,32,169,1,218,4,110,97,109,101, - 41,2,114,187,0,0,0,218,11,73,109,112,111,114,116,69, - 114,114,111,114,41,5,218,4,115,101,108,102,114,187,0,0, - 0,218,4,97,114,103,115,218,6,107,119,97,114,103,115,218, - 6,109,101,116,104,111,100,115,5,0,0,0,32,32,32,32, - 128,114,10,0,0,0,218,19,95,99,104,101,99,107,95,110, - 97,109,101,95,119,114,97,112,112,101,114,122,40,95,99,104, - 101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,115, - 62,46,95,99,104,101,99,107,95,110,97,109,101,95,119,114, - 97,112,112,101,114,131,2,0,0,115,82,0,0,0,248,128, - 0,216,11,15,136,60,216,19,23,151,57,145,57,137,68,216, - 13,17,143,89,137,89,152,36,210,13,30,221,18,29,216,33, - 37,167,25,163,25,169,68,240,3,1,31,50,216,56,60,244, - 3,1,19,62,240,0,1,13,62,225,15,21,144,100,152,68, - 208,15,50,160,52,210,15,50,168,54,209,15,50,208,8,50, - 114,28,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,9,0,0,0,19,0,0,0,243,164,0,0,0,151, - 0,100,1,68,0,93,38,0,0,125,2,116,1,0,0,0, - 0,0,0,0,0,124,1,124,2,171,2,0,0,0,0,0, - 0,115,1,140,16,116,3,0,0,0,0,0,0,0,0,124, - 0,124,2,116,5,0,0,0,0,0,0,0,0,124,1,124, - 2,171,2,0,0,0,0,0,0,171,3,0,0,0,0,0, - 0,1,0,140,40,4,0,124,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,9,0, + 0,0,116,3,0,0,0,0,0,0,0,0,116,10,0,0, + 0,0,0,0,0,0,171,1,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,114,2,124,0,83,0,121,0,35,0, + 116,8,0,0,0,0,0,0,0,0,36,0,114,3,1,0, + 89,0,121,0,119,0,120,3,89,0,119,1,114,77,0,0, + 0,41,6,114,59,0,0,0,218,5,116,117,112,108,101,114, + 159,0,0,0,114,152,0,0,0,114,134,0,0,0,114,140, + 0,0,0,41,1,114,151,0,0,0,115,1,0,0,0,32, + 114,10,0,0,0,218,11,95,103,101,116,95,99,97,99,104, + 101,100,114,180,0,0,0,99,2,0,0,115,87,0,0,0, + 128,0,216,7,15,215,7,24,209,7,24,156,21,156,127,211, + 25,47,212,7,48,240,2,3,9,17,220,19,36,160,88,211, + 19,46,208,12,46,240,6,0,10,18,215,9,26,209,9,26, + 156,53,212,33,50,211,27,51,212,9,52,216,15,23,136,15, + 224,15,19,248,244,11,0,16,35,242,0,1,9,17,217,12, + 16,240,3,1,9,17,250,115,17,0,0,0,160,10,65,12, + 0,193,12,9,65,24,3,193,23,1,65,24,3,99,1,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,94,0,0,0,151,0,9,0,116,1,0,0,0, + 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,106, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,125,1,124,1,100,2,122,20,0,0,125,1,124, + 1,83,0,35,0,116,4,0,0,0,0,0,0,0,0,36, + 0,114,5,1,0,100,1,125,1,89,0,140,20,119,0,120, + 3,89,0,119,1,41,3,122,51,67,97,108,99,117,108,97, + 116,101,32,116,104,101,32,109,111,100,101,32,112,101,114,109, + 105,115,115,105,111,110,115,32,102,111,114,32,97,32,98,121, + 116,101,99,111,100,101,32,102,105,108,101,46,114,107,0,0, + 0,233,128,0,0,0,41,3,114,85,0,0,0,114,88,0, + 0,0,114,87,0,0,0,41,2,114,68,0,0,0,114,89, + 0,0,0,115,2,0,0,0,32,32,114,10,0,0,0,218, + 10,95,99,97,108,99,95,109,111,100,101,114,183,0,0,0, + 111,2,0,0,115,61,0,0,0,128,0,240,4,3,5,21, + 220,15,25,152,36,211,15,31,215,15,39,209,15,39,136,4, + 240,10,0,5,9,136,69,129,77,128,68,216,11,15,128,75, + 248,244,11,0,12,19,242,0,1,5,21,216,15,20,138,4, + 240,3,1,5,21,250,115,12,0,0,0,130,21,30,0,158, + 11,44,3,171,1,44,3,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,90,0,0, + 0,135,0,151,0,100,3,136,0,102,1,100,1,132,9,125, + 1,116,0,0,0,0,0,0,0,0,0,129,17,116,0,0, + 0,0,0,0,0,0,0,106,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,125,2,110,3,100, + 2,132,0,125,2,2,0,124,2,124,1,137,0,171,2,0, + 0,0,0,0,0,1,0,124,1,83,0,41,4,122,252,68, + 101,99,111,114,97,116,111,114,32,116,111,32,118,101,114,105, + 102,121,32,116,104,97,116,32,116,104,101,32,109,111,100,117, + 108,101,32,98,101,105,110,103,32,114,101,113,117,101,115,116, + 101,100,32,109,97,116,99,104,101,115,32,116,104,101,32,111, + 110,101,32,116,104,101,10,32,32,32,32,108,111,97,100,101, + 114,32,99,97,110,32,104,97,110,100,108,101,46,10,10,32, + 32,32,32,84,104,101,32,102,105,114,115,116,32,97,114,103, + 117,109,101,110,116,32,40,115,101,108,102,41,32,109,117,115, + 116,32,100,101,102,105,110,101,32,95,110,97,109,101,32,119, + 104,105,99,104,32,116,104,101,32,115,101,99,111,110,100,32, + 97,114,103,117,109,101,110,116,32,105,115,10,32,32,32,32, + 99,111,109,112,97,114,101,100,32,97,103,97,105,110,115,116, + 46,32,73,102,32,116,104,101,32,99,111,109,112,97,114,105, + 115,111,110,32,102,97,105,108,115,32,116,104,101,110,32,73, + 109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,97, + 105,115,101,100,46,10,10,32,32,32,32,99,2,0,0,0, + 0,0,0,0,0,0,0,0,6,0,0,0,31,0,0,0, + 243,148,0,0,0,149,1,151,0,124,1,128,13,124,0,106, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,1, - 0,121,0,41,2,78,41,4,218,10,95,95,109,111,100,117, - 108,101,95,95,218,8,95,95,110,97,109,101,95,95,218,12, - 95,95,113,117,97,108,110,97,109,101,95,95,218,7,95,95, - 100,111,99,95,95,41,5,218,7,104,97,115,97,116,116,114, - 218,7,115,101,116,97,116,116,114,218,7,103,101,116,97,116, - 116,114,218,8,95,95,100,105,99,116,95,95,218,6,117,112, - 100,97,116,101,41,3,218,3,110,101,119,218,3,111,108,100, - 114,99,0,0,0,115,3,0,0,0,32,32,32,114,10,0, - 0,0,218,5,95,119,114,97,112,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,144,2,0,0,115,72,0,0,0,128,0, - 216,27,80,242,0,2,13,65,1,144,7,220,19,26,152,51, - 160,7,213,19,40,220,20,27,152,67,160,23,172,39,176,35, - 176,119,211,42,63,213,20,64,240,5,2,13,65,1,240,6, - 0,13,16,143,76,137,76,215,12,31,209,12,31,160,3,167, - 12,161,12,213,12,45,114,28,0,0,0,114,77,0,0,0, - 41,2,218,10,95,98,111,111,116,115,116,114,97,112,114,206, - 0,0,0,41,3,114,192,0,0,0,114,193,0,0,0,114, - 206,0,0,0,115,3,0,0,0,96,32,32,114,10,0,0, - 0,218,11,95,99,104,101,99,107,95,110,97,109,101,114,208, - 0,0,0,123,2,0,0,115,51,0,0,0,248,128,0,245, - 16,6,5,51,244,20,0,8,18,208,7,29,220,16,26,215, - 16,32,209,16,32,137,5,242,4,4,9,46,241,12,0,5, - 10,208,10,29,152,118,212,4,38,216,11,30,208,4,30,114, - 28,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,3,0,0,0,243,44,1,0,0,151,0, - 124,0,100,1,100,2,26,0,125,3,124,3,116,0,0,0, - 0,0,0,0,0,0,107,55,0,0,114,42,100,3,124,1, - 155,2,100,4,124,3,155,2,157,4,125,4,116,2,0,0, - 0,0,0,0,0,0,106,5,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,5,124,4,171,2, - 0,0,0,0,0,0,1,0,116,7,0,0,0,0,0,0, - 0,0,124,4,102,1,105,0,124,2,164,1,142,1,130,1, - 116,9,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,100,6,107,2,0,0,114,38,100,7,124,1, - 155,2,157,2,125,4,116,2,0,0,0,0,0,0,0,0, - 106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,5,124,4,171,2,0,0,0,0,0,0, - 1,0,116,11,0,0,0,0,0,0,0,0,124,4,171,1, - 0,0,0,0,0,0,130,1,116,13,0,0,0,0,0,0, - 0,0,124,0,100,2,100,8,26,0,171,1,0,0,0,0, - 0,0,125,5,124,5,100,9,122,1,0,0,114,20,100,10, - 124,5,155,2,100,11,124,1,155,2,157,4,125,4,116,7, - 0,0,0,0,0,0,0,0,124,4,102,1,105,0,124,2, - 164,1,142,1,130,1,124,5,83,0,41,12,97,84,2,0, - 0,80,101,114,102,111,114,109,32,98,97,115,105,99,32,118, - 97,108,105,100,105,116,121,32,99,104,101,99,107,105,110,103, - 32,111,102,32,97,32,112,121,99,32,104,101,97,100,101,114, - 32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32, - 102,108,97,103,115,32,102,105,101,108,100,44,10,32,32,32, - 32,119,104,105,99,104,32,100,101,116,101,114,109,105,110,101, - 115,32,104,111,119,32,116,104,101,32,112,121,99,32,115,104, - 111,117,108,100,32,98,101,32,102,117,114,116,104,101,114,32, - 118,97,108,105,100,97,116,101,100,32,97,103,97,105,110,115, - 116,32,116,104,101,32,115,111,117,114,99,101,46,10,10,32, - 32,32,32,42,100,97,116,97,42,32,105,115,32,116,104,101, - 32,99,111,110,116,101,110,116,115,32,111,102,32,116,104,101, - 32,112,121,99,32,102,105,108,101,46,32,40,79,110,108,121, - 32,116,104,101,32,102,105,114,115,116,32,49,54,32,98,121, - 116,101,115,32,97,114,101,10,32,32,32,32,114,101,113,117, - 105,114,101,100,44,32,116,104,111,117,103,104,46,41,10,10, - 32,32,32,32,42,110,97,109,101,42,32,105,115,32,116,104, - 101,32,110,97,109,101,32,111,102,32,116,104,101,32,109,111, - 100,117,108,101,32,98,101,105,110,103,32,105,109,112,111,114, - 116,101,100,46,32,73,116,32,105,115,32,117,115,101,100,32, - 102,111,114,32,108,111,103,103,105,110,103,46,10,10,32,32, - 32,32,42,101,120,99,95,100,101,116,97,105,108,115,42,32, - 105,115,32,97,32,100,105,99,116,105,111,110,97,114,121,32, - 112,97,115,115,101,100,32,116,111,32,73,109,112,111,114,116, - 69,114,114,111,114,32,105,102,32,105,116,32,114,97,105,115, - 101,100,32,102,111,114,10,32,32,32,32,105,109,112,114,111, - 118,101,100,32,100,101,98,117,103,103,105,110,103,46,10,10, - 32,32,32,32,73,109,112,111,114,116,69,114,114,111,114,32, + 0,0,0,125,1,110,44,124,0,106,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,107, + 55,0,0,114,29,116,3,0,0,0,0,0,0,0,0,100, + 1,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,155,1,100,2,124,1,155,1,157, + 4,124,1,172,3,171,2,0,0,0,0,0,0,130,1,2, + 0,137,4,124,0,124,1,103,2,124,2,162,1,173,6,105, + 0,124,3,164,1,142,1,83,0,41,4,78,122,11,108,111, + 97,100,101,114,32,102,111,114,32,122,15,32,99,97,110,110, + 111,116,32,104,97,110,100,108,101,32,169,1,218,4,110,97, + 109,101,41,2,114,187,0,0,0,218,11,73,109,112,111,114, + 116,69,114,114,111,114,41,5,218,4,115,101,108,102,114,187, + 0,0,0,218,4,97,114,103,115,218,6,107,119,97,114,103, + 115,218,6,109,101,116,104,111,100,115,5,0,0,0,32,32, + 32,32,128,114,10,0,0,0,218,19,95,99,104,101,99,107, + 95,110,97,109,101,95,119,114,97,112,112,101,114,122,40,95, + 99,104,101,99,107,95,110,97,109,101,46,60,108,111,99,97, + 108,115,62,46,95,99,104,101,99,107,95,110,97,109,101,95, + 119,114,97,112,112,101,114,131,2,0,0,115,82,0,0,0, + 248,128,0,216,11,15,136,60,216,19,23,151,57,145,57,137, + 68,216,13,17,143,89,137,89,152,36,210,13,30,221,18,29, + 216,33,37,167,25,163,25,169,68,240,3,1,31,50,216,56, + 60,244,3,1,19,62,240,0,1,13,62,225,15,21,144,100, + 152,68,208,15,50,160,52,210,15,50,168,54,209,15,50,208, + 8,50,114,28,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,9,0,0,0,19,0,0,0,243,164,0,0, + 0,151,0,100,1,68,0,93,38,0,0,125,2,116,1,0, + 0,0,0,0,0,0,0,124,1,124,2,171,2,0,0,0, + 0,0,0,115,1,140,16,116,3,0,0,0,0,0,0,0, + 0,124,0,124,2,116,5,0,0,0,0,0,0,0,0,124, + 1,124,2,171,2,0,0,0,0,0,0,171,3,0,0,0, + 0,0,0,1,0,140,40,4,0,124,0,106,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, + 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,1,106,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, + 0,1,0,121,0,41,2,78,41,4,218,10,95,95,109,111, + 100,117,108,101,95,95,218,8,95,95,110,97,109,101,95,95, + 218,12,95,95,113,117,97,108,110,97,109,101,95,95,218,7, + 95,95,100,111,99,95,95,41,5,218,7,104,97,115,97,116, + 116,114,218,7,115,101,116,97,116,116,114,218,7,103,101,116, + 97,116,116,114,218,8,95,95,100,105,99,116,95,95,218,6, + 117,112,100,97,116,101,41,3,218,3,110,101,119,218,3,111, + 108,100,114,99,0,0,0,115,3,0,0,0,32,32,32,114, + 10,0,0,0,218,5,95,119,114,97,112,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,144,2,0,0,115,72,0,0,0, + 128,0,216,27,80,242,0,2,13,65,1,144,7,220,19,26, + 152,51,160,7,213,19,40,220,20,27,152,67,160,23,172,39, + 176,35,176,119,211,42,63,213,20,64,240,5,2,13,65,1, + 240,6,0,13,16,143,76,137,76,215,12,31,209,12,31,160, + 3,167,12,161,12,213,12,45,114,28,0,0,0,114,77,0, + 0,0,41,2,218,10,95,98,111,111,116,115,116,114,97,112, + 114,206,0,0,0,41,3,114,192,0,0,0,114,193,0,0, + 0,114,206,0,0,0,115,3,0,0,0,96,32,32,114,10, + 0,0,0,218,11,95,99,104,101,99,107,95,110,97,109,101, + 114,208,0,0,0,123,2,0,0,115,51,0,0,0,248,128, + 0,245,16,6,5,51,244,20,0,8,18,208,7,29,220,16, + 26,215,16,32,209,16,32,137,5,242,4,4,9,46,241,12, + 0,5,10,208,10,29,152,118,212,4,38,216,11,30,208,4, + 30,114,28,0,0,0,99,3,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,3,0,0,0,243,44,1,0,0, + 151,0,124,0,100,1,100,2,26,0,125,3,124,3,116,0, + 0,0,0,0,0,0,0,0,107,55,0,0,114,42,100,3, + 124,1,155,2,100,4,124,3,155,2,157,4,125,4,116,2, + 0,0,0,0,0,0,0,0,106,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,100,5,124,4, + 171,2,0,0,0,0,0,0,1,0,116,7,0,0,0,0, + 0,0,0,0,124,4,102,1,105,0,124,2,164,1,142,1, + 130,1,116,9,0,0,0,0,0,0,0,0,124,0,171,1, + 0,0,0,0,0,0,100,6,107,2,0,0,114,38,100,7, + 124,1,155,2,157,2,125,4,116,2,0,0,0,0,0,0, + 0,0,106,5,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,100,5,124,4,171,2,0,0,0,0, + 0,0,1,0,116,11,0,0,0,0,0,0,0,0,124,4, + 171,1,0,0,0,0,0,0,130,1,116,13,0,0,0,0, + 0,0,0,0,124,0,100,2,100,8,26,0,171,1,0,0, + 0,0,0,0,125,5,124,5,100,9,122,1,0,0,114,20, + 100,10,124,5,155,2,100,11,124,1,155,2,157,4,125,4, + 116,7,0,0,0,0,0,0,0,0,124,4,102,1,105,0, + 124,2,164,1,142,1,130,1,124,5,83,0,41,12,97,84, + 2,0,0,80,101,114,102,111,114,109,32,98,97,115,105,99, + 32,118,97,108,105,100,105,116,121,32,99,104,101,99,107,105, + 110,103,32,111,102,32,97,32,112,121,99,32,104,101,97,100, + 101,114,32,97,110,100,32,114,101,116,117,114,110,32,116,104, + 101,32,102,108,97,103,115,32,102,105,101,108,100,44,10,32, + 32,32,32,119,104,105,99,104,32,100,101,116,101,114,109,105, + 110,101,115,32,104,111,119,32,116,104,101,32,112,121,99,32, + 115,104,111,117,108,100,32,98,101,32,102,117,114,116,104,101, + 114,32,118,97,108,105,100,97,116,101,100,32,97,103,97,105, + 110,115,116,32,116,104,101,32,115,111,117,114,99,101,46,10, + 10,32,32,32,32,42,100,97,116,97,42,32,105,115,32,116, + 104,101,32,99,111,110,116,101,110,116,115,32,111,102,32,116, + 104,101,32,112,121,99,32,102,105,108,101,46,32,40,79,110, + 108,121,32,116,104,101,32,102,105,114,115,116,32,49,54,32, + 98,121,116,101,115,32,97,114,101,10,32,32,32,32,114,101, + 113,117,105,114,101,100,44,32,116,104,111,117,103,104,46,41, + 10,10,32,32,32,32,42,110,97,109,101,42,32,105,115,32, + 116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32, + 109,111,100,117,108,101,32,98,101,105,110,103,32,105,109,112, + 111,114,116,101,100,46,32,73,116,32,105,115,32,117,115,101, + 100,32,102,111,114,32,108,111,103,103,105,110,103,46,10,10, + 32,32,32,32,42,101,120,99,95,100,101,116,97,105,108,115, + 42,32,105,115,32,97,32,100,105,99,116,105,111,110,97,114, + 121,32,112,97,115,115,101,100,32,116,111,32,73,109,112,111, + 114,116,69,114,114,111,114,32,105,102,32,105,116,32,114,97, + 105,115,101,100,32,102,111,114,10,32,32,32,32,105,109,112, + 114,111,118,101,100,32,100,101,98,117,103,103,105,110,103,46, + 10,10,32,32,32,32,73,109,112,111,114,116,69,114,114,111, + 114,32,105,115,32,114,97,105,115,101,100,32,119,104,101,110, + 32,116,104,101,32,109,97,103,105,99,32,110,117,109,98,101, + 114,32,105,115,32,105,110,99,111,114,114,101,99,116,32,111, + 114,32,119,104,101,110,32,116,104,101,32,102,108,97,103,115, + 10,32,32,32,32,102,105,101,108,100,32,105,115,32,105,110, + 118,97,108,105,100,46,32,69,79,70,69,114,114,111,114,32, 105,115,32,114,97,105,115,101,100,32,119,104,101,110,32,116, - 104,101,32,109,97,103,105,99,32,110,117,109,98,101,114,32, - 105,115,32,105,110,99,111,114,114,101,99,116,32,111,114,32, - 119,104,101,110,32,116,104,101,32,102,108,97,103,115,10,32, - 32,32,32,102,105,101,108,100,32,105,115,32,105,110,118,97, - 108,105,100,46,32,69,79,70,69,114,114,111,114,32,105,115, - 32,114,97,105,115,101,100,32,119,104,101,110,32,116,104,101, - 32,100,97,116,97,32,105,115,32,102,111,117,110,100,32,116, - 111,32,98,101,32,116,114,117,110,99,97,116,101,100,46,10, - 10,32,32,32,32,78,114,38,0,0,0,122,20,98,97,100, - 32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,110, - 32,122,2,58,32,250,2,123,125,233,16,0,0,0,122,40, - 114,101,97,99,104,101,100,32,69,79,70,32,119,104,105,108, - 101,32,114,101,97,100,105,110,103,32,112,121,99,32,104,101, - 97,100,101,114,32,111,102,32,233,8,0,0,0,233,252,255, - 255,255,122,14,105,110,118,97,108,105,100,32,102,108,97,103, - 115,32,122,4,32,105,110,32,41,7,218,12,77,65,71,73, - 67,95,78,85,77,66,69,82,114,207,0,0,0,218,16,95, - 118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,114, - 188,0,0,0,114,7,0,0,0,218,8,69,79,70,69,114, - 114,111,114,114,49,0,0,0,41,6,114,48,0,0,0,114, - 187,0,0,0,218,11,101,120,99,95,100,101,116,97,105,108, - 115,218,5,109,97,103,105,99,114,145,0,0,0,114,21,0, - 0,0,115,6,0,0,0,32,32,32,32,32,32,114,10,0, - 0,0,218,13,95,99,108,97,115,115,105,102,121,95,112,121, - 99,114,219,0,0,0,154,2,0,0,115,185,0,0,0,128, - 0,240,32,0,13,17,144,18,144,33,136,72,128,69,216,7, - 12,148,12,210,7,28,216,20,40,168,20,168,8,176,2,176, - 53,176,41,208,18,60,136,7,220,8,18,215,8,35,209,8, - 35,160,68,168,39,212,8,50,220,14,25,152,39,209,14,49, - 160,91,209,14,49,208,8,49,220,7,10,136,52,131,121,144, - 50,130,126,216,20,60,184,84,184,72,208,18,69,136,7,220, - 8,18,215,8,35,209,8,35,160,68,168,39,212,8,50,220, - 14,22,144,119,211,14,31,208,8,31,220,12,26,152,52,160, - 1,160,33,152,57,211,12,37,128,69,224,7,12,136,117,130, - 125,216,20,34,160,53,160,41,168,52,176,4,168,120,208,18, - 56,136,7,220,14,25,152,39,209,14,49,160,91,209,14,49, - 208,8,49,216,11,16,128,76,114,28,0,0,0,99,5,0, - 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, - 0,0,243,198,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,100,1,100,2,26,0,171,1,0,0,0, - 0,0,0,124,1,100,3,122,1,0,0,107,55,0,0,114, - 39,100,4,124,3,155,2,157,2,125,5,116,2,0,0,0, - 0,0,0,0,0,106,5,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,5,124,5,171,2,0, - 0,0,0,0,0,1,0,116,7,0,0,0,0,0,0,0, - 0,124,5,102,1,105,0,124,4,164,1,142,1,130,1,124, - 2,129,36,116,1,0,0,0,0,0,0,0,0,124,0,100, - 2,100,7,26,0,171,1,0,0,0,0,0,0,124,2,100, - 3,122,1,0,0,107,55,0,0,114,15,116,7,0,0,0, - 0,0,0,0,0,100,4,124,3,155,2,157,2,102,1,105, - 0,124,4,164,1,142,1,130,1,121,6,121,6,41,8,97, - 7,2,0,0,86,97,108,105,100,97,116,101,32,97,32,112, - 121,99,32,97,103,97,105,110,115,116,32,116,104,101,32,115, - 111,117,114,99,101,32,108,97,115,116,45,109,111,100,105,102, - 105,101,100,32,116,105,109,101,46,10,10,32,32,32,32,42, - 100,97,116,97,42,32,105,115,32,116,104,101,32,99,111,110, - 116,101,110,116,115,32,111,102,32,116,104,101,32,112,121,99, - 32,102,105,108,101,46,32,40,79,110,108,121,32,116,104,101, - 32,102,105,114,115,116,32,49,54,32,98,121,116,101,115,32, - 97,114,101,10,32,32,32,32,114,101,113,117,105,114,101,100, - 46,41,10,10,32,32,32,32,42,115,111,117,114,99,101,95, - 109,116,105,109,101,42,32,105,115,32,116,104,101,32,108,97, - 115,116,32,109,111,100,105,102,105,101,100,32,116,105,109,101, - 115,116,97,109,112,32,111,102,32,116,104,101,32,115,111,117, - 114,99,101,32,102,105,108,101,46,10,10,32,32,32,32,42, - 115,111,117,114,99,101,95,115,105,122,101,42,32,105,115,32, - 78,111,110,101,32,111,114,32,116,104,101,32,115,105,122,101, - 32,111,102,32,116,104,101,32,115,111,117,114,99,101,32,102, - 105,108,101,32,105,110,32,98,121,116,101,115,46,10,10,32, - 32,32,32,42,110,97,109,101,42,32,105,115,32,116,104,101, - 32,110,97,109,101,32,111,102,32,116,104,101,32,109,111,100, - 117,108,101,32,98,101,105,110,103,32,105,109,112,111,114,116, - 101,100,46,32,73,116,32,105,115,32,117,115,101,100,32,102, - 111,114,32,108,111,103,103,105,110,103,46,10,10,32,32,32, - 32,42,101,120,99,95,100,101,116,97,105,108,115,42,32,105, - 115,32,97,32,100,105,99,116,105,111,110,97,114,121,32,112, - 97,115,115,101,100,32,116,111,32,73,109,112,111,114,116,69, - 114,114,111,114,32,105,102,32,105,116,32,114,97,105,115,101, - 100,32,102,111,114,10,32,32,32,32,105,109,112,114,111,118, - 101,100,32,100,101,98,117,103,103,105,110,103,46,10,10,32, - 32,32,32,65,110,32,73,109,112,111,114,116,69,114,114,111, - 114,32,105,115,32,114,97,105,115,101,100,32,105,102,32,116, - 104,101,32,98,121,116,101,99,111,100,101,32,105,115,32,115, - 116,97,108,101,46,10,10,32,32,32,32,114,212,0,0,0, - 233,12,0,0,0,114,37,0,0,0,122,22,98,121,116,101, - 99,111,100,101,32,105,115,32,115,116,97,108,101,32,102,111, - 114,32,114,210,0,0,0,78,114,211,0,0,0,41,4,114, - 49,0,0,0,114,207,0,0,0,114,215,0,0,0,114,188, - 0,0,0,41,6,114,48,0,0,0,218,12,115,111,117,114, - 99,101,95,109,116,105,109,101,218,11,115,111,117,114,99,101, - 95,115,105,122,101,114,187,0,0,0,114,217,0,0,0,114, - 145,0,0,0,115,6,0,0,0,32,32,32,32,32,32,114, - 10,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,114,224,0, - 0,0,187,2,0,0,115,137,0,0,0,128,0,244,38,0, - 8,22,144,100,152,49,152,82,144,106,211,7,33,160,108,176, - 90,209,38,63,210,7,64,216,20,42,168,52,168,40,208,18, - 51,136,7,220,8,18,215,8,35,209,8,35,160,68,168,39, - 212,8,50,220,14,25,152,39,209,14,49,160,91,209,14,49, - 208,8,49,216,8,19,208,8,31,220,8,22,144,116,152,66, - 152,114,144,123,211,8,35,168,11,176,106,209,40,64,210,8, - 65,220,14,25,208,28,50,176,52,176,40,208,26,59,209,14, - 75,184,123,209,14,75,208,8,75,240,3,0,9,66,1,240, - 3,0,9,32,114,28,0,0,0,99,4,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,50, - 0,0,0,151,0,124,0,100,1,100,2,26,0,124,1,107, - 55,0,0,114,15,116,1,0,0,0,0,0,0,0,0,100, - 3,124,2,155,2,157,2,102,1,105,0,124,3,164,1,142, - 1,130,1,121,4,41,5,97,243,1,0,0,86,97,108,105, - 100,97,116,101,32,97,32,104,97,115,104,45,98,97,115,101, - 100,32,112,121,99,32,98,121,32,99,104,101,99,107,105,110, - 103,32,116,104,101,32,114,101,97,108,32,115,111,117,114,99, - 101,32,104,97,115,104,32,97,103,97,105,110,115,116,32,116, - 104,101,32,111,110,101,32,105,110,10,32,32,32,32,116,104, - 101,32,112,121,99,32,104,101,97,100,101,114,46,10,10,32, - 32,32,32,42,100,97,116,97,42,32,105,115,32,116,104,101, - 32,99,111,110,116,101,110,116,115,32,111,102,32,116,104,101, - 32,112,121,99,32,102,105,108,101,46,32,40,79,110,108,121, - 32,116,104,101,32,102,105,114,115,116,32,49,54,32,98,121, - 116,101,115,32,97,114,101,10,32,32,32,32,114,101,113,117, - 105,114,101,100,46,41,10,10,32,32,32,32,42,115,111,117, - 114,99,101,95,104,97,115,104,42,32,105,115,32,116,104,101, - 32,105,109,112,111,114,116,108,105,98,46,117,116,105,108,46, - 115,111,117,114,99,101,95,104,97,115,104,40,41,32,111,102, - 32,116,104,101,32,115,111,117,114,99,101,32,102,105,108,101, - 46,10,10,32,32,32,32,42,110,97,109,101,42,32,105,115, - 32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,101, - 32,109,111,100,117,108,101,32,98,101,105,110,103,32,105,109, - 112,111,114,116,101,100,46,32,73,116,32,105,115,32,117,115, - 101,100,32,102,111,114,32,108,111,103,103,105,110,103,46,10, - 10,32,32,32,32,42,101,120,99,95,100,101,116,97,105,108, - 115,42,32,105,115,32,97,32,100,105,99,116,105,111,110,97, - 114,121,32,112,97,115,115,101,100,32,116,111,32,73,109,112, - 111,114,116,69,114,114,111,114,32,105,102,32,105,116,32,114, - 97,105,115,101,100,32,102,111,114,10,32,32,32,32,105,109, - 112,114,111,118,101,100,32,100,101,98,117,103,103,105,110,103, - 46,10,10,32,32,32,32,65,110,32,73,109,112,111,114,116, - 69,114,114,111,114,32,105,115,32,114,97,105,115,101,100,32, - 105,102,32,116,104,101,32,98,121,116,101,99,111,100,101,32, - 105,115,32,115,116,97,108,101,46,10,10,32,32,32,32,114, - 212,0,0,0,114,211,0,0,0,122,46,104,97,115,104,32, - 105,110,32,98,121,116,101,99,111,100,101,32,100,111,101,115, - 110,39,116,32,109,97,116,99,104,32,104,97,115,104,32,111, - 102,32,115,111,117,114,99,101,32,78,41,1,114,188,0,0, - 0,41,4,114,48,0,0,0,218,11,115,111,117,114,99,101, - 95,104,97,115,104,114,187,0,0,0,114,217,0,0,0,115, - 4,0,0,0,32,32,32,32,114,10,0,0,0,218,18,95, - 118,97,108,105,100,97,116,101,95,104,97,115,104,95,112,121, - 99,114,227,0,0,0,215,2,0,0,115,54,0,0,0,128, - 0,240,34,0,8,12,136,65,136,98,128,122,144,91,210,7, - 32,220,14,25,216,14,61,184,100,184,88,208,12,70,241,3, - 3,15,10,224,14,25,241,5,3,15,10,240,0,3,9,10, - 240,3,0,8,33,114,28,0,0,0,99,4,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, - 206,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,125,4, - 116,5,0,0,0,0,0,0,0,0,124,4,116,6,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,114,48, - 116,8,0,0,0,0,0,0,0,0,106,11,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 124,2,171,2,0,0,0,0,0,0,1,0,124,3,129,22, - 116,13,0,0,0,0,0,0,0,0,106,14,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,4, - 124,3,171,2,0,0,0,0,0,0,1,0,124,4,83,0, - 116,17,0,0,0,0,0,0,0,0,100,2,124,2,155,2, - 157,2,124,1,124,2,172,3,171,3,0,0,0,0,0,0, - 130,1,41,4,122,35,67,111,109,112,105,108,101,32,98,121, - 116,101,99,111,100,101,32,97,115,32,102,111,117,110,100,32, - 105,110,32,97,32,112,121,99,46,122,21,99,111,100,101,32, - 111,98,106,101,99,116,32,102,114,111,109,32,123,33,114,125, - 122,19,78,111,110,45,99,111,100,101,32,111,98,106,101,99, - 116,32,105,110,32,169,2,114,187,0,0,0,114,68,0,0, - 0,41,9,218,7,109,97,114,115,104,97,108,218,5,108,111, - 97,100,115,218,10,105,115,105,110,115,116,97,110,99,101,218, - 10,95,99,111,100,101,95,116,121,112,101,114,207,0,0,0, - 114,215,0,0,0,218,4,95,105,109,112,218,16,95,102,105, - 120,95,99,111,95,102,105,108,101,110,97,109,101,114,188,0, - 0,0,41,5,114,48,0,0,0,114,187,0,0,0,114,173, - 0,0,0,114,176,0,0,0,218,4,99,111,100,101,115,5, - 0,0,0,32,32,32,32,32,114,10,0,0,0,218,17,95, - 99,111,109,112,105,108,101,95,98,121,116,101,99,111,100,101, - 114,237,0,0,0,239,2,0,0,115,99,0,0,0,128,0, - 228,11,18,143,61,137,61,152,20,211,11,30,128,68,220,7, - 17,144,36,156,10,212,7,35,220,8,18,215,8,35,209,8, - 35,208,36,59,184,93,212,8,75,216,11,22,208,11,34,220, - 12,16,215,12,33,209,12,33,160,36,168,11,212,12,52,216, - 15,19,136,11,228,14,25,208,28,47,176,13,208,47,64,208, - 26,65,216,31,35,168,45,244,3,1,15,57,240,0,1,9, - 57,114,28,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,8,1,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,116,2,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,125,3, - 124,3,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,7,0,0,0,0,0,0,0,0, - 100,1,171,1,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,1,0,124,3,106,5,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,7,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,1,0,124,3,106,5,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,7, - 0,0,0,0,0,0,0,0,124,2,171,1,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,1,0,124,3,106,5, + 104,101,32,100,97,116,97,32,105,115,32,102,111,117,110,100, + 32,116,111,32,98,101,32,116,114,117,110,99,97,116,101,100, + 46,10,10,32,32,32,32,78,114,38,0,0,0,122,20,98, + 97,100,32,109,97,103,105,99,32,110,117,109,98,101,114,32, + 105,110,32,122,2,58,32,250,2,123,125,233,16,0,0,0, + 122,40,114,101,97,99,104,101,100,32,69,79,70,32,119,104, + 105,108,101,32,114,101,97,100,105,110,103,32,112,121,99,32, + 104,101,97,100,101,114,32,111,102,32,233,8,0,0,0,233, + 252,255,255,255,122,14,105,110,118,97,108,105,100,32,102,108, + 97,103,115,32,122,4,32,105,110,32,41,7,218,12,77,65, + 71,73,67,95,78,85,77,66,69,82,114,207,0,0,0,218, + 16,95,118,101,114,98,111,115,101,95,109,101,115,115,97,103, + 101,114,188,0,0,0,114,7,0,0,0,218,8,69,79,70, + 69,114,114,111,114,114,49,0,0,0,41,6,114,48,0,0, + 0,114,187,0,0,0,218,11,101,120,99,95,100,101,116,97, + 105,108,115,218,5,109,97,103,105,99,114,145,0,0,0,114, + 21,0,0,0,115,6,0,0,0,32,32,32,32,32,32,114, + 10,0,0,0,218,13,95,99,108,97,115,115,105,102,121,95, + 112,121,99,114,219,0,0,0,154,2,0,0,115,185,0,0, + 0,128,0,240,32,0,13,17,144,18,144,33,136,72,128,69, + 216,7,12,148,12,210,7,28,216,20,40,168,20,168,8,176, + 2,176,53,176,41,208,18,60,136,7,220,8,18,215,8,35, + 209,8,35,160,68,168,39,212,8,50,220,14,25,152,39,209, + 14,49,160,91,209,14,49,208,8,49,220,7,10,136,52,131, + 121,144,50,130,126,216,20,60,184,84,184,72,208,18,69,136, + 7,220,8,18,215,8,35,209,8,35,160,68,168,39,212,8, + 50,220,14,22,144,119,211,14,31,208,8,31,220,12,26,152, + 52,160,1,160,33,152,57,211,12,37,128,69,224,7,12,136, + 117,130,125,216,20,34,160,53,160,41,168,52,176,4,168,120, + 208,18,56,136,7,220,14,25,152,39,209,14,49,160,91,209, + 14,49,208,8,49,216,11,16,128,76,114,28,0,0,0,99, + 5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 3,0,0,0,243,198,0,0,0,151,0,116,1,0,0,0, + 0,0,0,0,0,124,0,100,1,100,2,26,0,171,1,0, + 0,0,0,0,0,124,1,100,3,122,1,0,0,107,55,0, + 0,114,39,100,4,124,3,155,2,157,2,125,5,116,2,0, + 0,0,0,0,0,0,0,106,5,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,5,124,5,171, + 2,0,0,0,0,0,0,1,0,116,7,0,0,0,0,0, + 0,0,0,124,5,102,1,105,0,124,4,164,1,142,1,130, + 1,124,2,129,36,116,1,0,0,0,0,0,0,0,0,124, + 0,100,2,100,7,26,0,171,1,0,0,0,0,0,0,124, + 2,100,3,122,1,0,0,107,55,0,0,114,15,116,7,0, + 0,0,0,0,0,0,0,100,4,124,3,155,2,157,2,102, + 1,105,0,124,4,164,1,142,1,130,1,121,6,121,6,41, + 8,97,7,2,0,0,86,97,108,105,100,97,116,101,32,97, + 32,112,121,99,32,97,103,97,105,110,115,116,32,116,104,101, + 32,115,111,117,114,99,101,32,108,97,115,116,45,109,111,100, + 105,102,105,101,100,32,116,105,109,101,46,10,10,32,32,32, + 32,42,100,97,116,97,42,32,105,115,32,116,104,101,32,99, + 111,110,116,101,110,116,115,32,111,102,32,116,104,101,32,112, + 121,99,32,102,105,108,101,46,32,40,79,110,108,121,32,116, + 104,101,32,102,105,114,115,116,32,49,54,32,98,121,116,101, + 115,32,97,114,101,10,32,32,32,32,114,101,113,117,105,114, + 101,100,46,41,10,10,32,32,32,32,42,115,111,117,114,99, + 101,95,109,116,105,109,101,42,32,105,115,32,116,104,101,32, + 108,97,115,116,32,109,111,100,105,102,105,101,100,32,116,105, + 109,101,115,116,97,109,112,32,111,102,32,116,104,101,32,115, + 111,117,114,99,101,32,102,105,108,101,46,10,10,32,32,32, + 32,42,115,111,117,114,99,101,95,115,105,122,101,42,32,105, + 115,32,78,111,110,101,32,111,114,32,116,104,101,32,115,105, + 122,101,32,111,102,32,116,104,101,32,115,111,117,114,99,101, + 32,102,105,108,101,32,105,110,32,98,121,116,101,115,46,10, + 10,32,32,32,32,42,110,97,109,101,42,32,105,115,32,116, + 104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,109, + 111,100,117,108,101,32,98,101,105,110,103,32,105,109,112,111, + 114,116,101,100,46,32,73,116,32,105,115,32,117,115,101,100, + 32,102,111,114,32,108,111,103,103,105,110,103,46,10,10,32, + 32,32,32,42,101,120,99,95,100,101,116,97,105,108,115,42, + 32,105,115,32,97,32,100,105,99,116,105,111,110,97,114,121, + 32,112,97,115,115,101,100,32,116,111,32,73,109,112,111,114, + 116,69,114,114,111,114,32,105,102,32,105,116,32,114,97,105, + 115,101,100,32,102,111,114,10,32,32,32,32,105,109,112,114, + 111,118,101,100,32,100,101,98,117,103,103,105,110,103,46,10, + 10,32,32,32,32,65,110,32,73,109,112,111,114,116,69,114, + 114,111,114,32,105,115,32,114,97,105,115,101,100,32,105,102, + 32,116,104,101,32,98,121,116,101,99,111,100,101,32,105,115, + 32,115,116,97,108,101,46,10,10,32,32,32,32,114,212,0, + 0,0,233,12,0,0,0,114,37,0,0,0,122,22,98,121, + 116,101,99,111,100,101,32,105,115,32,115,116,97,108,101,32, + 102,111,114,32,114,210,0,0,0,78,114,211,0,0,0,41, + 4,114,49,0,0,0,114,207,0,0,0,114,215,0,0,0, + 114,188,0,0,0,41,6,114,48,0,0,0,218,12,115,111, + 117,114,99,101,95,109,116,105,109,101,218,11,115,111,117,114, + 99,101,95,115,105,122,101,114,187,0,0,0,114,217,0,0, + 0,114,145,0,0,0,115,6,0,0,0,32,32,32,32,32, + 32,114,10,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,114, + 224,0,0,0,187,2,0,0,115,137,0,0,0,128,0,244, + 38,0,8,22,144,100,152,49,152,82,144,106,211,7,33,160, + 108,176,90,209,38,63,210,7,64,216,20,42,168,52,168,40, + 208,18,51,136,7,220,8,18,215,8,35,209,8,35,160,68, + 168,39,212,8,50,220,14,25,152,39,209,14,49,160,91,209, + 14,49,208,8,49,216,8,19,208,8,31,220,8,22,144,116, + 152,66,152,114,144,123,211,8,35,168,11,176,106,209,40,64, + 210,8,65,220,14,25,208,28,50,176,52,176,40,208,26,59, + 209,14,75,184,123,209,14,75,208,8,75,240,3,0,9,66, + 1,240,3,0,9,32,114,28,0,0,0,99,4,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 243,50,0,0,0,151,0,124,0,100,1,100,2,26,0,124, + 1,107,55,0,0,114,15,116,1,0,0,0,0,0,0,0, + 0,100,3,124,2,155,2,157,2,102,1,105,0,124,3,164, + 1,142,1,130,1,121,4,41,5,97,243,1,0,0,86,97, + 108,105,100,97,116,101,32,97,32,104,97,115,104,45,98,97, + 115,101,100,32,112,121,99,32,98,121,32,99,104,101,99,107, + 105,110,103,32,116,104,101,32,114,101,97,108,32,115,111,117, + 114,99,101,32,104,97,115,104,32,97,103,97,105,110,115,116, + 32,116,104,101,32,111,110,101,32,105,110,10,32,32,32,32, + 116,104,101,32,112,121,99,32,104,101,97,100,101,114,46,10, + 10,32,32,32,32,42,100,97,116,97,42,32,105,115,32,116, + 104,101,32,99,111,110,116,101,110,116,115,32,111,102,32,116, + 104,101,32,112,121,99,32,102,105,108,101,46,32,40,79,110, + 108,121,32,116,104,101,32,102,105,114,115,116,32,49,54,32, + 98,121,116,101,115,32,97,114,101,10,32,32,32,32,114,101, + 113,117,105,114,101,100,46,41,10,10,32,32,32,32,42,115, + 111,117,114,99,101,95,104,97,115,104,42,32,105,115,32,116, + 104,101,32,105,109,112,111,114,116,108,105,98,46,117,116,105, + 108,46,115,111,117,114,99,101,95,104,97,115,104,40,41,32, + 111,102,32,116,104,101,32,115,111,117,114,99,101,32,102,105, + 108,101,46,10,10,32,32,32,32,42,110,97,109,101,42,32, + 105,115,32,116,104,101,32,110,97,109,101,32,111,102,32,116, + 104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,32, + 105,109,112,111,114,116,101,100,46,32,73,116,32,105,115,32, + 117,115,101,100,32,102,111,114,32,108,111,103,103,105,110,103, + 46,10,10,32,32,32,32,42,101,120,99,95,100,101,116,97, + 105,108,115,42,32,105,115,32,97,32,100,105,99,116,105,111, + 110,97,114,121,32,112,97,115,115,101,100,32,116,111,32,73, + 109,112,111,114,116,69,114,114,111,114,32,105,102,32,105,116, + 32,114,97,105,115,101,100,32,102,111,114,10,32,32,32,32, + 105,109,112,114,111,118,101,100,32,100,101,98,117,103,103,105, + 110,103,46,10,10,32,32,32,32,65,110,32,73,109,112,111, + 114,116,69,114,114,111,114,32,105,115,32,114,97,105,115,101, + 100,32,105,102,32,116,104,101,32,98,121,116,101,99,111,100, + 101,32,105,115,32,115,116,97,108,101,46,10,10,32,32,32, + 32,114,212,0,0,0,114,211,0,0,0,122,46,104,97,115, + 104,32,105,110,32,98,121,116,101,99,111,100,101,32,100,111, + 101,115,110,39,116,32,109,97,116,99,104,32,104,97,115,104, + 32,111,102,32,115,111,117,114,99,101,32,78,41,1,114,188, + 0,0,0,41,4,114,48,0,0,0,218,11,115,111,117,114, + 99,101,95,104,97,115,104,114,187,0,0,0,114,217,0,0, + 0,115,4,0,0,0,32,32,32,32,114,10,0,0,0,218, + 18,95,118,97,108,105,100,97,116,101,95,104,97,115,104,95, + 112,121,99,114,227,0,0,0,215,2,0,0,115,54,0,0, + 0,128,0,240,34,0,8,12,136,65,136,98,128,122,144,91, + 210,7,32,220,14,25,216,14,61,184,100,184,88,208,12,70, + 241,3,3,15,10,224,14,25,241,5,3,15,10,240,0,3, + 9,10,240,3,0,8,33,114,28,0,0,0,99,4,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,243,206,0,0,0,151,0,116,1,0,0,0,0,0,0, + 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, + 125,4,116,5,0,0,0,0,0,0,0,0,124,4,116,6, + 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, + 114,48,116,8,0,0,0,0,0,0,0,0,106,11,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,9,0,0,0,0,0,0,0,0,106,10,0,0, + 100,1,124,2,171,2,0,0,0,0,0,0,1,0,124,3, + 129,22,116,13,0,0,0,0,0,0,0,0,106,14,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,1,0,124,3,83,0,41,2,122,43,80,114,111,100, - 117,99,101,32,116,104,101,32,100,97,116,97,32,102,111,114, - 32,97,32,116,105,109,101,115,116,97,109,112,45,98,97,115, - 101,100,32,112,121,99,46,114,1,0,0,0,41,6,218,9, - 98,121,116,101,97,114,114,97,121,114,214,0,0,0,218,6, - 101,120,116,101,110,100,114,43,0,0,0,114,230,0,0,0, - 218,5,100,117,109,112,115,41,4,114,236,0,0,0,218,5, - 109,116,105,109,101,114,223,0,0,0,114,48,0,0,0,115, - 4,0,0,0,32,32,32,32,114,10,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,114,243,0,0,0,252,2,0,0,115,88, - 0,0,0,128,0,228,11,20,148,92,211,11,34,128,68,216, - 4,8,135,75,129,75,148,12,152,81,147,15,212,4,32,216, - 4,8,135,75,129,75,148,12,152,85,211,16,35,212,4,36, - 216,4,8,135,75,129,75,148,12,152,91,211,16,41,212,4, - 42,216,4,8,135,75,129,75,148,7,151,13,145,13,152,100, - 211,16,35,212,4,36,216,11,15,128,75,114,28,0,0,0, - 99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,242,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,116,2,0,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,125,3,100,1,124,2,100,1, - 122,3,0,0,122,7,0,0,125,4,124,3,106,5,0,0, + 124,4,124,3,171,2,0,0,0,0,0,0,1,0,124,4, + 83,0,116,17,0,0,0,0,0,0,0,0,100,2,124,2, + 155,2,157,2,124,1,124,2,172,3,171,3,0,0,0,0, + 0,0,130,1,41,4,122,35,67,111,109,112,105,108,101,32, + 98,121,116,101,99,111,100,101,32,97,115,32,102,111,117,110, + 100,32,105,110,32,97,32,112,121,99,46,122,21,99,111,100, + 101,32,111,98,106,101,99,116,32,102,114,111,109,32,123,33, + 114,125,122,19,78,111,110,45,99,111,100,101,32,111,98,106, + 101,99,116,32,105,110,32,169,2,114,187,0,0,0,114,68, + 0,0,0,41,9,218,7,109,97,114,115,104,97,108,218,5, + 108,111,97,100,115,218,10,105,115,105,110,115,116,97,110,99, + 101,218,10,95,99,111,100,101,95,116,121,112,101,114,207,0, + 0,0,114,215,0,0,0,218,4,95,105,109,112,218,16,95, + 102,105,120,95,99,111,95,102,105,108,101,110,97,109,101,114, + 188,0,0,0,41,5,114,48,0,0,0,114,187,0,0,0, + 114,173,0,0,0,114,176,0,0,0,218,4,99,111,100,101, + 115,5,0,0,0,32,32,32,32,32,114,10,0,0,0,218, + 17,95,99,111,109,112,105,108,101,95,98,121,116,101,99,111, + 100,101,114,237,0,0,0,239,2,0,0,115,99,0,0,0, + 128,0,228,11,18,143,61,137,61,152,20,211,11,30,128,68, + 220,7,17,144,36,156,10,212,7,35,220,8,18,215,8,35, + 209,8,35,208,36,59,184,93,212,8,75,216,11,22,208,11, + 34,220,12,16,215,12,33,209,12,33,160,36,168,11,212,12, + 52,216,15,19,136,11,228,14,25,208,28,47,176,13,208,47, + 64,208,26,65,216,31,35,168,45,244,3,1,15,57,240,0, + 1,9,57,114,28,0,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,8,1, + 0,0,151,0,116,1,0,0,0,0,0,0,0,0,116,2, + 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, + 125,3,124,3,106,5,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,116,7,0,0,0,0,0,0, + 0,0,100,1,171,1,0,0,0,0,0,0,171,1,0,0, + 0,0,0,0,1,0,124,3,106,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,116,7,0,0, + 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, + 171,1,0,0,0,0,0,0,1,0,124,3,106,5,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,7,0,0,0,0,0,0,0,0,124,4,171,1,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,1,0,116,9, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,100,2,107,40,0,0,115,2,74,0,130,1,124,3, + 116,7,0,0,0,0,0,0,0,0,124,2,171,1,0,0, + 0,0,0,0,171,1,0,0,0,0,0,0,1,0,124,3, 106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,1,0, + 0,0,0,0,116,9,0,0,0,0,0,0,0,0,106,10, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,124,0,171,1,0,0,0,0,0,0,171,1,0,0, + 0,0,0,0,1,0,124,3,83,0,41,2,122,43,80,114, + 111,100,117,99,101,32,116,104,101,32,100,97,116,97,32,102, + 111,114,32,97,32,116,105,109,101,115,116,97,109,112,45,98, + 97,115,101,100,32,112,121,99,46,114,1,0,0,0,41,6, + 218,9,98,121,116,101,97,114,114,97,121,114,214,0,0,0, + 218,6,101,120,116,101,110,100,114,43,0,0,0,114,230,0, + 0,0,218,5,100,117,109,112,115,41,4,114,236,0,0,0, + 218,5,109,116,105,109,101,114,223,0,0,0,114,48,0,0, + 0,115,4,0,0,0,32,32,32,32,114,10,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,114,243,0,0,0,252,2,0,0, + 115,88,0,0,0,128,0,228,11,20,148,92,211,11,34,128, + 68,216,4,8,135,75,129,75,148,12,152,81,147,15,212,4, + 32,216,4,8,135,75,129,75,148,12,152,85,211,16,35,212, + 4,36,216,4,8,135,75,129,75,148,12,152,91,211,16,41, + 212,4,42,216,4,8,135,75,129,75,148,7,151,13,145,13, + 152,100,211,16,35,212,4,36,216,11,15,128,75,114,28,0, + 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,5, + 0,0,0,3,0,0,0,243,242,0,0,0,151,0,116,1, + 0,0,0,0,0,0,0,0,116,2,0,0,0,0,0,0, + 0,0,171,1,0,0,0,0,0,0,125,3,100,1,124,2, + 100,1,122,3,0,0,122,7,0,0,125,4,124,3,106,5, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,116,7,0,0,0,0,0,0,0,0,124,4,171,1, + 0,0,0,0,0,0,171,1,0,0,0,0,0,0,1,0, + 116,9,0,0,0,0,0,0,0,0,124,1,171,1,0,0, + 0,0,0,0,100,2,107,40,0,0,115,2,74,0,130,1, 124,3,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,11,0,0,0,0,0,0,0,0, - 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,1,0,124,3,83,0,41,3,122,38, - 80,114,111,100,117,99,101,32,116,104,101,32,100,97,116,97, - 32,102,111,114,32,97,32,104,97,115,104,45,98,97,115,101, - 100,32,112,121,99,46,114,6,0,0,0,114,212,0,0,0, - 41,7,114,239,0,0,0,114,214,0,0,0,114,240,0,0, - 0,114,43,0,0,0,114,7,0,0,0,114,230,0,0,0, - 114,241,0,0,0,41,5,114,236,0,0,0,114,226,0,0, - 0,218,7,99,104,101,99,107,101,100,114,48,0,0,0,114, - 21,0,0,0,115,5,0,0,0,32,32,32,32,32,114,10, - 0,0,0,218,17,95,99,111,100,101,95,116,111,95,104,97, - 115,104,95,112,121,99,114,246,0,0,0,6,3,0,0,115, - 97,0,0,0,128,0,228,11,20,148,92,211,11,34,128,68, - 216,12,15,144,39,152,81,145,44,209,12,30,128,69,216,4, - 8,135,75,129,75,148,12,152,85,211,16,35,212,4,36,220, - 11,14,136,123,211,11,27,152,113,210,11,32,209,4,32,216, - 4,8,135,75,129,75,144,11,212,4,28,216,4,8,135,75, - 129,75,148,7,151,13,145,13,152,100,211,16,35,212,4,36, - 216,11,15,128,75,114,28,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,243, - 220,0,0,0,151,0,100,1,100,2,108,0,125,1,116,3, - 0,0,0,0,0,0,0,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,2,124,1,106,9, + 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, + 1,0,124,3,106,5,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,116,11,0,0,0,0,0,0, + 0,0,106,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, + 171,1,0,0,0,0,0,0,1,0,124,3,83,0,41,3, + 122,38,80,114,111,100,117,99,101,32,116,104,101,32,100,97, + 116,97,32,102,111,114,32,97,32,104,97,115,104,45,98,97, + 115,101,100,32,112,121,99,46,114,6,0,0,0,114,212,0, + 0,0,41,7,114,239,0,0,0,114,214,0,0,0,114,240, + 0,0,0,114,43,0,0,0,114,7,0,0,0,114,230,0, + 0,0,114,241,0,0,0,41,5,114,236,0,0,0,114,226, + 0,0,0,218,7,99,104,101,99,107,101,100,114,48,0,0, + 0,114,21,0,0,0,115,5,0,0,0,32,32,32,32,32, + 114,10,0,0,0,218,17,95,99,111,100,101,95,116,111,95, + 104,97,115,104,95,112,121,99,114,246,0,0,0,6,3,0, + 0,115,100,0,0,0,128,0,228,11,20,148,92,211,11,34, + 128,68,216,12,15,144,39,152,81,145,44,209,12,30,128,69, + 216,4,8,135,75,129,75,148,12,152,85,211,16,35,212,4, + 36,220,11,14,136,123,211,11,27,152,113,210,11,32,208,4, + 32,208,11,32,216,4,8,135,75,129,75,144,11,212,4,28, + 216,4,8,135,75,129,75,148,7,151,13,145,13,152,100,211, + 16,35,212,4,36,216,11,15,128,75,114,28,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 3,0,0,0,243,220,0,0,0,151,0,100,1,100,2,108, + 0,125,1,116,3,0,0,0,0,0,0,0,0,106,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,125,3,116,3, - 0,0,0,0,0,0,0,0,106,10,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,2,100,3, - 171,2,0,0,0,0,0,0,125,4,124,4,106,13,0,0, + 0,124,0,171,1,0,0,0,0,0,0,106,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125, + 2,124,1,106,9,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,2,171,1,0,0,0,0,0, + 0,125,3,116,3,0,0,0,0,0,0,0,0,106,10,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,13,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,3,100,1,25,0,0,0,171,1, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,83,0, - 41,4,122,121,68,101,99,111,100,101,32,98,121,116,101,115, - 32,114,101,112,114,101,115,101,110,116,105,110,103,32,115,111, - 117,114,99,101,32,99,111,100,101,32,97,110,100,32,114,101, - 116,117,114,110,32,116,104,101,32,115,116,114,105,110,103,46, - 10,10,32,32,32,32,85,110,105,118,101,114,115,97,108,32, - 110,101,119,108,105,110,101,32,115,117,112,112,111,114,116,32, - 105,115,32,117,115,101,100,32,105,110,32,116,104,101,32,100, - 101,99,111,100,105,110,103,46,10,32,32,32,32,114,1,0, - 0,0,78,84,41,7,218,8,116,111,107,101,110,105,122,101, - 114,114,0,0,0,218,7,66,121,116,101,115,73,79,218,8, - 114,101,97,100,108,105,110,101,218,15,100,101,116,101,99,116, - 95,101,110,99,111,100,105,110,103,218,25,73,110,99,114,101, - 109,101,110,116,97,108,78,101,119,108,105,110,101,68,101,99, - 111,100,101,114,218,6,100,101,99,111,100,101,41,5,218,12, - 115,111,117,114,99,101,95,98,121,116,101,115,114,248,0,0, - 0,218,21,115,111,117,114,99,101,95,98,121,116,101,115,95, - 114,101,97,100,108,105,110,101,218,8,101,110,99,111,100,105, - 110,103,218,15,110,101,119,108,105,110,101,95,100,101,99,111, - 100,101,114,115,5,0,0,0,32,32,32,32,32,114,10,0, - 0,0,218,13,100,101,99,111,100,101,95,115,111,117,114,99, - 101,114,2,1,0,0,17,3,0,0,115,95,0,0,0,128, - 0,243,10,0,5,20,220,28,31,159,75,153,75,168,12,211, - 28,53,215,28,62,209,28,62,208,4,25,216,15,23,215,15, - 39,209,15,39,208,40,61,211,15,62,128,72,220,22,25,215, - 22,51,209,22,51,176,68,184,36,211,22,63,128,79,216,11, - 26,215,11,33,209,11,33,160,44,215,34,53,209,34,53,176, - 104,184,113,177,107,211,34,66,211,11,67,208,4,67,114,28, - 0,0,0,169,2,218,6,108,111,97,100,101,114,218,26,115, + 0,100,2,100,3,171,2,0,0,0,0,0,0,125,4,124, + 4,106,13,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,0,106,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,3,100,1,25, + 0,0,0,171,1,0,0,0,0,0,0,171,1,0,0,0, + 0,0,0,83,0,41,4,122,121,68,101,99,111,100,101,32, + 98,121,116,101,115,32,114,101,112,114,101,115,101,110,116,105, + 110,103,32,115,111,117,114,99,101,32,99,111,100,101,32,97, + 110,100,32,114,101,116,117,114,110,32,116,104,101,32,115,116, + 114,105,110,103,46,10,10,32,32,32,32,85,110,105,118,101, + 114,115,97,108,32,110,101,119,108,105,110,101,32,115,117,112, + 112,111,114,116,32,105,115,32,117,115,101,100,32,105,110,32, + 116,104,101,32,100,101,99,111,100,105,110,103,46,10,32,32, + 32,32,114,1,0,0,0,78,84,41,7,218,8,116,111,107, + 101,110,105,122,101,114,114,0,0,0,218,7,66,121,116,101, + 115,73,79,218,8,114,101,97,100,108,105,110,101,218,15,100, + 101,116,101,99,116,95,101,110,99,111,100,105,110,103,218,25, + 73,110,99,114,101,109,101,110,116,97,108,78,101,119,108,105, + 110,101,68,101,99,111,100,101,114,218,6,100,101,99,111,100, + 101,41,5,218,12,115,111,117,114,99,101,95,98,121,116,101, + 115,114,248,0,0,0,218,21,115,111,117,114,99,101,95,98, + 121,116,101,115,95,114,101,97,100,108,105,110,101,218,8,101, + 110,99,111,100,105,110,103,218,15,110,101,119,108,105,110,101, + 95,100,101,99,111,100,101,114,115,5,0,0,0,32,32,32, + 32,32,114,10,0,0,0,218,13,100,101,99,111,100,101,95, + 115,111,117,114,99,101,114,2,1,0,0,17,3,0,0,115, + 95,0,0,0,128,0,243,10,0,5,20,220,28,31,159,75, + 153,75,168,12,211,28,53,215,28,62,209,28,62,208,4,25, + 216,15,23,215,15,39,209,15,39,208,40,61,211,15,62,128, + 72,220,22,25,215,22,51,209,22,51,176,68,184,36,211,22, + 63,128,79,216,11,26,215,11,33,209,11,33,160,44,215,34, + 53,209,34,53,176,104,184,113,177,107,211,34,66,211,11,67, + 208,4,67,114,28,0,0,0,169,2,218,6,108,111,97,100, + 101,114,218,26,115,117,98,109,111,100,117,108,101,95,115,101, + 97,114,99,104,95,108,111,99,97,116,105,111,110,115,99,2, + 0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,3, + 0,0,0,243,138,2,0,0,151,0,124,1,128,33,100,2, + 125,1,116,1,0,0,0,0,0,0,0,0,124,2,100,3, + 171,2,0,0,0,0,0,0,114,52,9,0,124,2,106,3, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,124,0,171,1,0,0,0,0,0,0,125,1,110,33, + 116,7,0,0,0,0,0,0,0,0,106,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, + 171,1,0,0,0,0,0,0,125,1,9,0,116,11,0,0, + 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, + 125,1,116,14,0,0,0,0,0,0,0,0,106,17,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 124,0,124,2,124,1,172,4,171,3,0,0,0,0,0,0, + 125,4,100,5,124,4,95,9,0,0,0,0,0,0,0,0, + 124,2,128,63,116,21,0,0,0,0,0,0,0,0,171,0, + 0,0,0,0,0,0,68,0,93,49,0,0,92,2,0,0, + 125,5,125,6,124,1,106,23,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,116,25,0,0,0,0, + 0,0,0,0,124,6,171,1,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,115,1,140,33,2,0,124,5,124,0, + 124,1,171,2,0,0,0,0,0,0,125,2,124,2,124,4, + 95,13,0,0,0,0,0,0,0,0,1,0,110,2,4,0, + 121,1,124,3,116,28,0,0,0,0,0,0,0,0,117,0, + 114,40,116,1,0,0,0,0,0,0,0,0,124,2,100,6, + 171,2,0,0,0,0,0,0,114,35,9,0,124,2,106,31, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,124,0,171,1,0,0,0,0,0,0,125,7,124,7, + 114,15,103,0,124,4,95,16,0,0,0,0,0,0,0,0, + 110,7,124,3,124,4,95,16,0,0,0,0,0,0,0,0, + 124,4,106,32,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,103,0,107,40,0,0,114,43,124,1, + 114,41,116,35,0,0,0,0,0,0,0,0,124,1,171,1, + 0,0,0,0,0,0,100,7,25,0,0,0,125,8,124,4, + 106,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,106,37,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,8,171,1,0,0,0,0, + 0,0,1,0,124,4,83,0,35,0,116,4,0,0,0,0, + 0,0,0,0,36,0,114,3,1,0,89,0,140,222,119,0, + 120,3,89,0,119,1,35,0,116,12,0,0,0,0,0,0, + 0,0,36,0,114,3,1,0,89,0,140,237,119,0,120,3, + 89,0,119,1,35,0,116,4,0,0,0,0,0,0,0,0, + 36,0,114,3,1,0,89,0,140,101,119,0,120,3,89,0, + 119,1,41,8,97,61,1,0,0,82,101,116,117,114,110,32, + 97,32,109,111,100,117,108,101,32,115,112,101,99,32,98,97, + 115,101,100,32,111,110,32,97,32,102,105,108,101,32,108,111, + 99,97,116,105,111,110,46,10,10,32,32,32,32,84,111,32, + 105,110,100,105,99,97,116,101,32,116,104,97,116,32,116,104, + 101,32,109,111,100,117,108,101,32,105,115,32,97,32,112,97, + 99,107,97,103,101,44,32,115,101,116,10,32,32,32,32,115, 117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,95, - 108,111,99,97,116,105,111,110,115,99,2,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,3,0,0,0,243,138, - 2,0,0,151,0,124,1,128,33,100,2,125,1,116,1,0, - 0,0,0,0,0,0,0,124,2,100,3,171,2,0,0,0, - 0,0,0,114,52,9,0,124,2,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,1,110,33,116,7,0,0,0, - 0,0,0,0,0,106,8,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,125,1,9,0,116,11,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,125,1,116,14,0, - 0,0,0,0,0,0,0,106,17,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,124,2,124, - 1,172,4,171,3,0,0,0,0,0,0,125,4,100,5,124, - 4,95,9,0,0,0,0,0,0,0,0,124,2,128,63,116, - 21,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,68,0,93,49,0,0,92,2,0,0,125,5,125,6,124, - 1,106,23,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,116,25,0,0,0,0,0,0,0,0,124, - 6,171,1,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,115,1,140,33,2,0,124,5,124,0,124,1,171,2,0, - 0,0,0,0,0,125,2,124,2,124,4,95,13,0,0,0, - 0,0,0,0,0,1,0,110,2,4,0,121,1,124,3,116, - 28,0,0,0,0,0,0,0,0,117,0,114,40,116,1,0, - 0,0,0,0,0,0,0,124,2,100,6,171,2,0,0,0, - 0,0,0,114,35,9,0,124,2,106,31,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,7,124,7,114,15,103,0,124, - 4,95,16,0,0,0,0,0,0,0,0,110,7,124,3,124, - 4,95,16,0,0,0,0,0,0,0,0,124,4,106,32,0, + 108,111,99,97,116,105,111,110,115,32,116,111,32,97,32,108, + 105,115,116,32,111,102,32,100,105,114,101,99,116,111,114,121, + 32,112,97,116,104,115,46,32,32,65,110,10,32,32,32,32, + 101,109,112,116,121,32,108,105,115,116,32,105,115,32,115,117, + 102,102,105,99,105,101,110,116,44,32,116,104,111,117,103,104, + 32,105,116,115,32,110,111,116,32,111,116,104,101,114,119,105, + 115,101,32,117,115,101,102,117,108,32,116,111,32,116,104,101, + 10,32,32,32,32,105,109,112,111,114,116,32,115,121,115,116, + 101,109,46,10,10,32,32,32,32,84,104,101,32,108,111,97, + 100,101,114,32,109,117,115,116,32,116,97,107,101,32,97,32, + 115,112,101,99,32,97,115,32,105,116,115,32,111,110,108,121, + 32,95,95,105,110,105,116,95,95,40,41,32,97,114,103,46, + 10,10,32,32,32,32,78,122,9,60,117,110,107,110,111,119, + 110,62,218,12,103,101,116,95,102,105,108,101,110,97,109,101, + 169,1,218,6,111,114,105,103,105,110,84,218,10,105,115,95, + 112,97,99,107,97,103,101,114,1,0,0,0,41,19,114,199, + 0,0,0,114,7,1,0,0,114,188,0,0,0,114,23,0, + 0,0,114,130,0,0,0,114,105,0,0,0,114,87,0,0, + 0,114,207,0,0,0,218,10,77,111,100,117,108,101,83,112, + 101,99,218,13,95,115,101,116,95,102,105,108,101,97,116,116, + 114,218,27,95,103,101,116,95,115,117,112,112,111,114,116,101, + 100,95,102,105,108,101,95,108,111,97,100,101,114,115,114,59, + 0,0,0,114,179,0,0,0,114,4,1,0,0,218,9,95, + 80,79,80,85,76,65,84,69,114,10,1,0,0,114,5,1, + 0,0,114,81,0,0,0,114,64,0,0,0,41,9,114,187, + 0,0,0,218,8,108,111,99,97,116,105,111,110,114,4,1, + 0,0,114,5,1,0,0,218,4,115,112,101,99,218,12,108, + 111,97,100,101,114,95,99,108,97,115,115,218,8,115,117,102, + 102,105,120,101,115,114,10,1,0,0,218,7,100,105,114,110, + 97,109,101,115,9,0,0,0,32,32,32,32,32,32,32,32, + 32,114,10,0,0,0,218,23,115,112,101,99,95,102,114,111, + 109,95,102,105,108,101,95,108,111,99,97,116,105,111,110,114, + 20,1,0,0,34,3,0,0,115,109,1,0,0,128,0,240, + 24,0,8,16,208,7,23,240,8,0,20,31,136,8,220,11, + 18,144,54,152,62,212,11,42,240,4,3,13,21,216,27,33, + 215,27,46,209,27,46,168,116,211,27,52,145,8,244,8,0, + 20,23,151,58,145,58,152,104,211,19,39,136,8,240,2,3, + 9,17,220,23,36,160,88,211,23,46,136,72,244,20,0,12, + 22,215,11,32,209,11,32,160,20,160,118,176,104,208,11,32, + 211,11,63,128,68,216,25,29,128,68,212,4,22,240,6,0, + 8,14,128,126,220,38,65,211,38,67,242,0,6,9,24,209, + 12,34,136,76,152,40,216,15,23,215,15,32,209,15,32,164, + 21,160,120,163,31,213,15,49,217,25,37,160,100,168,72,211, + 25,53,144,6,216,30,36,144,4,148,11,217,16,21,240,9, + 6,9,24,240,12,0,20,24,240,6,0,8,34,164,89,209, + 7,46,228,11,18,144,54,152,60,212,11,40,240,2,6,13, + 57,216,29,35,215,29,46,209,29,46,168,116,211,29,52,144, + 10,241,8,0,20,30,216,54,56,144,68,213,20,51,224,42, + 68,136,4,212,8,39,216,7,11,215,7,38,209,7,38,168, + 34,210,7,44,217,11,19,220,22,33,160,40,211,22,43,168, + 65,209,22,46,136,71,216,12,16,215,12,43,209,12,43,215, + 12,50,209,12,50,176,55,212,12,59,224,11,15,128,75,248, + 244,93,1,0,20,31,242,0,1,13,21,217,16,20,240,3, + 1,13,21,251,244,12,0,16,23,242,0,1,9,17,217,12, + 16,240,3,1,9,17,251,244,56,0,20,31,242,0,1,13, + 21,217,16,20,240,3,1,13,21,250,115,52,0,0,0,146, + 17,68,24,0,186,11,68,39,0,194,58,17,68,54,0,196, + 24,9,68,36,3,196,35,1,68,36,3,196,39,9,68,51, + 3,196,50,1,68,51,3,196,54,9,69,2,3,197,1,1, + 69,2,3,99,1,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,140,1,0,0,151,0,116, + 1,0,0,0,0,0,0,0,0,124,0,116,2,0,0,0, + 0,0,0,0,0,171,2,0,0,0,0,0,0,115,1,121, + 1,116,5,0,0,0,0,0,0,0,0,171,0,0,0,0, + 0,0,0,125,1,124,0,106,7,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,2,100,1,171, + 2,0,0,0,0,0,0,125,2,124,0,106,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, + 3,124,1,171,2,0,0,0,0,0,0,125,3,124,2,128, + 18,124,3,124,1,117,0,114,1,121,1,124,3,128,11,116, + 9,0,0,0,0,0,0,0,0,100,4,171,1,0,0,0, + 0,0,0,130,1,116,11,0,0,0,0,0,0,0,0,124, + 3,100,5,124,1,171,3,0,0,0,0,0,0,125,4,124, + 4,124,1,100,1,102,2,118,0,114,54,124,2,128,24,124, + 4,124,1,117,0,114,6,116,12,0,0,0,0,0,0,0, + 0,110,5,116,8,0,0,0,0,0,0,0,0,125,5,2, + 0,124,5,100,4,171,1,0,0,0,0,0,0,130,1,116, + 15,0,0,0,0,0,0,0,0,106,16,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,4,116, + 18,0,0,0,0,0,0,0,0,171,2,0,0,0,0,0, + 0,1,0,124,2,125,4,124,4,128,2,74,0,130,1,124, + 2,129,33,124,2,124,4,107,55,0,0,114,28,116,15,0, + 0,0,0,0,0,0,0,106,16,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,6,116,18,0, + 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,1, + 0,124,2,83,0,124,4,83,0,41,7,122,67,72,101,108, + 112,101,114,32,102,117,110,99,116,105,111,110,32,102,111,114, + 32,95,119,97,114,110,105,110,103,115,46,99,10,10,32,32, + 32,32,83,101,101,32,71,72,35,57,55,56,53,48,32,102, + 111,114,32,100,101,116,97,105,108,115,46,10,32,32,32,32, + 78,218,10,95,95,108,111,97,100,101,114,95,95,218,8,95, + 95,115,112,101,99,95,95,122,43,77,111,100,117,108,101,32, + 103,108,111,98,97,108,115,32,105,115,32,109,105,115,115,105, + 110,103,32,97,32,95,95,115,112,101,99,95,95,46,108,111, + 97,100,101,114,114,4,1,0,0,122,45,77,111,100,117,108, + 101,32,103,108,111,98,97,108,115,59,32,95,95,108,111,97, + 100,101,114,95,95,32,33,61,32,95,95,115,112,101,99,95, + 95,46,108,111,97,100,101,114,41,10,114,232,0,0,0,218, + 4,100,105,99,116,218,6,111,98,106,101,99,116,218,3,103, + 101,116,114,138,0,0,0,114,201,0,0,0,218,14,65,116, + 116,114,105,98,117,116,101,69,114,114,111,114,114,126,0,0, + 0,114,127,0,0,0,114,128,0,0,0,41,6,218,14,109, + 111,100,117,108,101,95,103,108,111,98,97,108,115,218,7,109, + 105,115,115,105,110,103,114,4,1,0,0,114,16,1,0,0, + 218,11,115,112,101,99,95,108,111,97,100,101,114,218,3,101, + 120,99,115,6,0,0,0,32,32,32,32,32,32,114,10,0, + 0,0,218,16,95,98,108,101,115,115,95,109,121,95,108,111, + 97,100,101,114,114,32,1,0,0,104,3,0,0,115,232,0, + 0,0,128,0,244,24,0,12,22,144,110,164,100,212,11,43, + 216,15,19,228,14,20,139,104,128,71,216,13,27,215,13,31, + 209,13,31,160,12,168,100,211,13,51,128,70,216,11,25,215, + 11,29,209,11,29,152,106,168,39,211,11,50,128,68,224,7, + 13,128,126,216,11,15,144,55,137,63,240,6,0,20,24,216, + 13,17,136,92,220,18,28,208,29,74,211,18,75,208,12,75, + 228,18,25,152,36,160,8,168,39,211,18,50,128,75,224,7, + 18,144,119,160,4,144,111,209,7,37,216,11,17,136,62,216, + 36,47,176,55,209,36,58,149,46,196,10,136,67,217,18,21, + 208,22,67,211,18,68,208,12,68,220,8,17,143,14,137,14, + 216,12,57,220,12,30,244,5,2,9,32,240,6,0,23,29, + 136,11,224,11,22,208,11,34,208,4,34,208,11,34,216,7, + 13,208,7,25,152,102,168,11,210,30,51,220,8,17,143,14, + 137,14,216,12,59,220,12,30,244,5,2,9,32,240,6,0, + 16,22,136,13,224,11,22,208,4,22,114,28,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 0,0,0,0,243,90,0,0,0,151,0,101,0,90,1,100, + 0,90,2,100,1,90,3,100,2,90,4,100,3,90,5,101, + 6,120,1,114,4,1,0,100,4,101,7,118,0,90,8,101, + 9,100,5,132,0,171,0,0,0,0,0,0,0,90,10,101, + 11,100,6,132,0,171,0,0,0,0,0,0,0,90,12,101, + 11,100,9,100,8,132,1,171,0,0,0,0,0,0,0,90, + 13,121,7,41,10,218,21,87,105,110,100,111,119,115,82,101, + 103,105,115,116,114,121,70,105,110,100,101,114,122,62,77,101, + 116,97,32,112,97,116,104,32,102,105,110,100,101,114,32,102, + 111,114,32,109,111,100,117,108,101,115,32,100,101,99,108,97, + 114,101,100,32,105,110,32,116,104,101,32,87,105,110,100,111, + 119,115,32,114,101,103,105,115,116,114,121,46,122,59,83,111, + 102,116,119,97,114,101,92,80,121,116,104,111,110,92,80,121, + 116,104,111,110,67,111,114,101,92,123,115,121,115,95,118,101, + 114,115,105,111,110,125,92,77,111,100,117,108,101,115,92,123, + 102,117,108,108,110,97,109,101,125,122,65,83,111,102,116,119, + 97,114,101,92,80,121,116,104,111,110,92,80,121,116,104,111, + 110,67,111,114,101,92,123,115,121,115,95,118,101,114,115,105, + 111,110,125,92,77,111,100,117,108,101,115,92,123,102,117,108, + 108,110,97,109,101,125,92,68,101,98,117,103,122,6,95,100, + 46,112,121,100,99,1,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,243,178,0,0,0,151,0, + 9,0,116,1,0,0,0,0,0,0,0,0,106,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,103,0,107,40,0,0,114,43,124,1,114,41,116,35,0, - 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,100,7,25,0,0,0,125,8,124,4,106,32,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,8,171,1,0,0,0,0,0,0,1,0,124, - 4,83,0,35,0,116,4,0,0,0,0,0,0,0,0,36, - 0,114,3,1,0,89,0,140,222,119,0,120,3,89,0,119, - 1,35,0,116,12,0,0,0,0,0,0,0,0,36,0,114, - 3,1,0,89,0,140,237,119,0,120,3,89,0,119,1,35, - 0,116,4,0,0,0,0,0,0,0,0,36,0,114,3,1, - 0,89,0,140,101,119,0,120,3,89,0,119,1,41,8,97, - 61,1,0,0,82,101,116,117,114,110,32,97,32,109,111,100, - 117,108,101,32,115,112,101,99,32,98,97,115,101,100,32,111, - 110,32,97,32,102,105,108,101,32,108,111,99,97,116,105,111, - 110,46,10,10,32,32,32,32,84,111,32,105,110,100,105,99, - 97,116,101,32,116,104,97,116,32,116,104,101,32,109,111,100, - 117,108,101,32,105,115,32,97,32,112,97,99,107,97,103,101, - 44,32,115,101,116,10,32,32,32,32,115,117,98,109,111,100, - 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116, - 105,111,110,115,32,116,111,32,97,32,108,105,115,116,32,111, - 102,32,100,105,114,101,99,116,111,114,121,32,112,97,116,104, - 115,46,32,32,65,110,10,32,32,32,32,101,109,112,116,121, - 32,108,105,115,116,32,105,115,32,115,117,102,102,105,99,105, - 101,110,116,44,32,116,104,111,117,103,104,32,105,116,115,32, - 110,111,116,32,111,116,104,101,114,119,105,115,101,32,117,115, - 101,102,117,108,32,116,111,32,116,104,101,10,32,32,32,32, - 105,109,112,111,114,116,32,115,121,115,116,101,109,46,10,10, - 32,32,32,32,84,104,101,32,108,111,97,100,101,114,32,109, - 117,115,116,32,116,97,107,101,32,97,32,115,112,101,99,32, - 97,115,32,105,116,115,32,111,110,108,121,32,95,95,105,110, - 105,116,95,95,40,41,32,97,114,103,46,10,10,32,32,32, - 32,78,122,9,60,117,110,107,110,111,119,110,62,218,12,103, - 101,116,95,102,105,108,101,110,97,109,101,169,1,218,6,111, - 114,105,103,105,110,84,218,10,105,115,95,112,97,99,107,97, - 103,101,114,1,0,0,0,41,19,114,199,0,0,0,114,7, - 1,0,0,114,188,0,0,0,114,23,0,0,0,114,130,0, - 0,0,114,105,0,0,0,114,87,0,0,0,114,207,0,0, - 0,218,10,77,111,100,117,108,101,83,112,101,99,218,13,95, - 115,101,116,95,102,105,108,101,97,116,116,114,218,27,95,103, - 101,116,95,115,117,112,112,111,114,116,101,100,95,102,105,108, - 101,95,108,111,97,100,101,114,115,114,59,0,0,0,114,179, - 0,0,0,114,4,1,0,0,218,9,95,80,79,80,85,76, - 65,84,69,114,10,1,0,0,114,5,1,0,0,114,81,0, - 0,0,114,64,0,0,0,41,9,114,187,0,0,0,218,8, - 108,111,99,97,116,105,111,110,114,4,1,0,0,114,5,1, - 0,0,218,4,115,112,101,99,218,12,108,111,97,100,101,114, - 95,99,108,97,115,115,218,8,115,117,102,102,105,120,101,115, - 114,10,1,0,0,218,7,100,105,114,110,97,109,101,115,9, - 0,0,0,32,32,32,32,32,32,32,32,32,114,10,0,0, - 0,218,23,115,112,101,99,95,102,114,111,109,95,102,105,108, - 101,95,108,111,99,97,116,105,111,110,114,20,1,0,0,34, - 3,0,0,115,109,1,0,0,128,0,240,24,0,8,16,208, - 7,23,240,8,0,20,31,136,8,220,11,18,144,54,152,62, - 212,11,42,240,4,3,13,21,216,27,33,215,27,46,209,27, - 46,168,116,211,27,52,145,8,244,8,0,20,23,151,58,145, - 58,152,104,211,19,39,136,8,240,2,3,9,17,220,23,36, - 160,88,211,23,46,136,72,244,20,0,12,22,215,11,32,209, - 11,32,160,20,160,118,176,104,208,11,32,211,11,63,128,68, - 216,25,29,128,68,212,4,22,240,6,0,8,14,128,126,220, - 38,65,211,38,67,242,0,6,9,24,209,12,34,136,76,152, - 40,216,15,23,215,15,32,209,15,32,164,21,160,120,163,31, - 213,15,49,217,25,37,160,100,168,72,211,25,53,144,6,216, - 30,36,144,4,148,11,217,16,21,240,9,6,9,24,240,12, - 0,20,24,240,6,0,8,34,164,89,209,7,46,228,11,18, - 144,54,152,60,212,11,40,240,2,6,13,57,216,29,35,215, - 29,46,209,29,46,168,116,211,29,52,144,10,241,8,0,20, - 30,216,54,56,144,68,213,20,51,224,42,68,136,4,212,8, - 39,216,7,11,215,7,38,209,7,38,168,34,210,7,44,217, - 11,19,220,22,33,160,40,211,22,43,168,65,209,22,46,136, - 71,216,12,16,215,12,43,209,12,43,215,12,50,209,12,50, - 176,55,212,12,59,224,11,15,128,75,248,244,93,1,0,20, - 31,242,0,1,13,21,217,16,20,240,3,1,13,21,251,244, - 12,0,16,23,242,0,1,9,17,217,12,16,240,3,1,9, - 17,251,244,56,0,20,31,242,0,1,13,21,217,16,20,240, - 3,1,13,21,250,115,52,0,0,0,146,17,68,24,0,186, - 11,68,39,0,194,58,17,68,54,0,196,24,9,68,36,3, - 196,35,1,68,36,3,196,39,9,68,51,3,196,50,1,68, - 51,3,196,54,9,69,2,3,197,1,1,69,2,3,99,1, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, - 0,0,0,243,140,1,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,116,2,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,115,1,121,1,116,5,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,125,1, - 124,0,106,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,2,100,1,171,2,0,0,0,0, - 0,0,125,2,124,0,106,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,3,124,1,171,2, - 0,0,0,0,0,0,125,3,124,2,128,18,124,3,124,1, - 117,0,114,1,121,1,124,3,128,11,116,9,0,0,0,0, - 0,0,0,0,100,4,171,1,0,0,0,0,0,0,130,1, - 116,11,0,0,0,0,0,0,0,0,124,3,100,5,124,1, - 171,3,0,0,0,0,0,0,125,4,124,4,124,1,100,1, - 102,2,118,0,114,54,124,2,128,24,124,4,124,1,117,0, - 114,6,116,12,0,0,0,0,0,0,0,0,110,5,116,8, - 0,0,0,0,0,0,0,0,125,5,2,0,124,5,100,4, - 171,1,0,0,0,0,0,0,130,1,116,15,0,0,0,0, - 0,0,0,0,106,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,4,116,18,0,0,0,0, - 0,0,0,0,171,2,0,0,0,0,0,0,1,0,124,2, - 125,4,124,4,128,2,74,0,130,1,124,2,129,33,124,2, - 124,4,107,55,0,0,114,28,116,15,0,0,0,0,0,0, + 116,0,0,0,0,0,0,0,0,0,106,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, + 171,2,0,0,0,0,0,0,83,0,35,0,116,6,0,0, + 0,0,0,0,0,0,36,0,114,39,1,0,116,1,0,0, + 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,116,0,0,0,0,0, + 0,0,0,0,106,8,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,0,171,2,0,0,0,0, + 0,0,99,2,89,0,83,0,119,0,120,3,89,0,119,1, + 114,77,0,0,0,41,5,218,6,119,105,110,114,101,103,218, + 7,79,112,101,110,75,101,121,218,17,72,75,69,89,95,67, + 85,82,82,69,78,84,95,85,83,69,82,114,87,0,0,0, + 218,18,72,75,69,89,95,76,79,67,65,76,95,77,65,67, + 72,73,78,69,114,25,0,0,0,115,1,0,0,0,32,114, + 10,0,0,0,218,14,95,111,112,101,110,95,114,101,103,105, + 115,116,114,121,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,166,3,0,0,115,71, + 0,0,0,128,0,240,4,3,9,66,1,220,19,25,151,62, + 145,62,164,38,215,34,58,209,34,58,184,67,211,19,64,208, + 12,64,248,220,15,22,242,0,1,9,66,1,220,19,25,151, + 62,145,62,164,38,215,34,59,209,34,59,184,83,211,19,65, + 210,12,65,240,3,1,9,66,1,250,115,15,0,0,0,130, + 35,38,0,166,45,65,22,3,193,21,1,65,22,3,99,2, + 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,3, + 0,0,0,243,56,1,0,0,151,0,124,0,106,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 114,13,124,0,106,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,125,2,110,12,124,0,106,4, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,125,2,124,2,106,7,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,1,100,1,116,8, + 0,0,0,0,0,0,0,0,106,10,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,100,0,100,2, + 26,0,122,6,0,0,172,3,171,2,0,0,0,0,0,0, + 125,3,9,0,124,0,106,13,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,3,171,1,0,0, + 0,0,0,0,53,0,125,4,116,15,0,0,0,0,0,0, 0,0,106,16,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,6,116,18,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,1,0,124,2,83,0, - 124,4,83,0,41,7,122,67,72,101,108,112,101,114,32,102, - 117,110,99,116,105,111,110,32,102,111,114,32,95,119,97,114, - 110,105,110,103,115,46,99,10,10,32,32,32,32,83,101,101, - 32,71,72,35,57,55,56,53,48,32,102,111,114,32,100,101, - 116,97,105,108,115,46,10,32,32,32,32,78,218,10,95,95, - 108,111,97,100,101,114,95,95,218,8,95,95,115,112,101,99, - 95,95,122,43,77,111,100,117,108,101,32,103,108,111,98,97, - 108,115,32,105,115,32,109,105,115,115,105,110,103,32,97,32, - 95,95,115,112,101,99,95,95,46,108,111,97,100,101,114,114, - 4,1,0,0,122,45,77,111,100,117,108,101,32,103,108,111, - 98,97,108,115,59,32,95,95,108,111,97,100,101,114,95,95, - 32,33,61,32,95,95,115,112,101,99,95,95,46,108,111,97, - 100,101,114,41,10,114,232,0,0,0,218,4,100,105,99,116, - 218,6,111,98,106,101,99,116,218,3,103,101,116,114,138,0, - 0,0,114,201,0,0,0,218,14,65,116,116,114,105,98,117, - 116,101,69,114,114,111,114,114,126,0,0,0,114,127,0,0, - 0,114,128,0,0,0,41,6,218,14,109,111,100,117,108,101, - 95,103,108,111,98,97,108,115,218,7,109,105,115,115,105,110, - 103,114,4,1,0,0,114,16,1,0,0,218,11,115,112,101, - 99,95,108,111,97,100,101,114,218,3,101,120,99,115,6,0, - 0,0,32,32,32,32,32,32,114,10,0,0,0,218,16,95, - 98,108,101,115,115,95,109,121,95,108,111,97,100,101,114,114, - 32,1,0,0,104,3,0,0,115,229,0,0,0,128,0,244, - 24,0,12,22,144,110,164,100,212,11,43,216,15,19,228,14, - 20,139,104,128,71,216,13,27,215,13,31,209,13,31,160,12, - 168,100,211,13,51,128,70,216,11,25,215,11,29,209,11,29, - 152,106,168,39,211,11,50,128,68,224,7,13,128,126,216,11, - 15,144,55,137,63,240,6,0,20,24,216,13,17,136,92,220, - 18,28,208,29,74,211,18,75,208,12,75,228,18,25,152,36, - 160,8,168,39,211,18,50,128,75,224,7,18,144,119,160,4, - 144,111,209,7,37,216,11,17,136,62,216,36,47,176,55,209, - 36,58,149,46,196,10,136,67,217,18,21,208,22,67,211,18, - 68,208,12,68,220,8,17,143,14,137,14,216,12,57,220,12, - 30,244,5,2,9,32,240,6,0,23,29,136,11,224,11,22, - 208,11,34,209,4,34,216,7,13,208,7,25,152,102,168,11, - 210,30,51,220,8,17,143,14,137,14,216,12,59,220,12,30, - 244,5,2,9,32,240,6,0,16,22,136,13,224,11,22,208, - 4,22,114,28,0,0,0,99,0,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,0,0,0,0,243,90,0,0, - 0,151,0,101,0,90,1,100,0,90,2,100,1,90,3,100, - 2,90,4,100,3,90,5,101,6,120,1,114,4,1,0,100, - 4,101,7,118,0,90,8,101,9,100,5,132,0,171,0,0, - 0,0,0,0,0,90,10,101,11,100,6,132,0,171,0,0, - 0,0,0,0,0,90,12,101,11,100,9,100,8,132,1,171, - 0,0,0,0,0,0,0,90,13,121,7,41,10,218,21,87, - 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105, - 110,100,101,114,122,62,77,101,116,97,32,112,97,116,104,32, - 102,105,110,100,101,114,32,102,111,114,32,109,111,100,117,108, - 101,115,32,100,101,99,108,97,114,101,100,32,105,110,32,116, - 104,101,32,87,105,110,100,111,119,115,32,114,101,103,105,115, - 116,114,121,46,122,59,83,111,102,116,119,97,114,101,92,80, - 121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,101, - 92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,77, - 111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,101, - 125,122,65,83,111,102,116,119,97,114,101,92,80,121,116,104, - 111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,115, - 121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,117, - 108,101,115,92,123,102,117,108,108,110,97,109,101,125,92,68, - 101,98,117,103,122,6,95,100,46,112,121,100,99,1,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,178,0,0,0,151,0,9,0,116,1,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,0,0,0,0,0,0,0, - 0,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,171,2,0,0,0,0,0,0, - 83,0,35,0,116,6,0,0,0,0,0,0,0,0,36,0, - 114,39,1,0,116,1,0,0,0,0,0,0,0,0,106,2, + 0,0,0,0,0,0,124,4,100,4,171,2,0,0,0,0, + 0,0,125,5,100,0,100,0,100,0,171,2,0,0,0,0, + 0,0,1,0,124,5,83,0,35,0,49,0,115,1,119,2, + 1,0,89,0,1,0,1,0,127,5,83,0,120,3,89,0, + 119,1,35,0,116,18,0,0,0,0,0,0,0,0,36,0, + 114,3,1,0,89,0,121,0,119,0,120,3,89,0,119,1, + 41,5,78,122,5,37,100,46,37,100,114,52,0,0,0,41, + 2,218,8,102,117,108,108,110,97,109,101,218,11,115,121,115, + 95,118,101,114,115,105,111,110,114,12,0,0,0,41,10,218, + 11,68,69,66,85,71,95,66,85,73,76,68,218,18,82,69, + 71,73,83,84,82,89,95,75,69,89,95,68,69,66,85,71, + 218,12,82,69,71,73,83,84,82,89,95,75,69,89,218,6, + 102,111,114,109,97,116,114,20,0,0,0,218,12,118,101,114, + 115,105,111,110,95,105,110,102,111,114,40,1,0,0,114,36, + 1,0,0,218,10,81,117,101,114,121,86,97,108,117,101,114, + 87,0,0,0,41,6,218,3,99,108,115,114,42,1,0,0, + 218,12,114,101,103,105,115,116,114,121,95,107,101,121,114,26, + 0,0,0,218,4,104,107,101,121,218,8,102,105,108,101,112, + 97,116,104,115,6,0,0,0,32,32,32,32,32,32,114,10, + 0,0,0,218,16,95,115,101,97,114,99,104,95,114,101,103, + 105,115,116,114,121,122,38,87,105,110,100,111,119,115,82,101, + 103,105,115,116,114,121,70,105,110,100,101,114,46,95,115,101, + 97,114,99,104,95,114,101,103,105,115,116,114,121,173,3,0, + 0,115,164,0,0,0,128,0,224,11,14,143,63,138,63,216, + 27,30,215,27,49,209,27,49,137,76,224,27,30,215,27,43, + 209,27,43,136,76,216,14,26,215,14,33,209,14,33,168,56, + 216,46,53,188,3,215,56,72,209,56,72,200,18,200,33,208, + 56,76,209,46,76,240,3,0,15,34,243,0,1,15,78,1, + 136,3,240,4,4,9,24,216,17,20,215,17,35,209,17,35, + 160,67,211,17,40,240,0,1,13,55,168,68,220,27,33,215, + 27,44,209,27,44,168,84,176,50,211,27,54,144,8,247,3, + 1,13,55,240,8,0,16,24,136,15,247,9,1,13,55,240, + 8,0,16,24,136,15,251,244,5,0,16,23,242,0,1,9, + 24,217,19,23,240,3,1,9,24,250,115,48,0,0,0,193, + 14,17,66,13,0,193,31,23,66,0,3,193,54,8,66,13, + 0,194,0,5,66,10,7,194,5,3,66,13,0,194,10,3, + 66,13,0,194,13,9,66,25,3,194,24,1,66,25,3,78, + 99,4,0,0,0,0,0,0,0,0,0,0,0,8,0,0, + 0,3,0,0,0,243,0,1,0,0,151,0,124,0,106,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,0,0,0,0,0,0,0,0,0,106,8,0,0, + 0,0,124,1,171,1,0,0,0,0,0,0,125,4,124,4, + 128,1,121,0,9,0,116,3,0,0,0,0,0,0,0,0, + 124,4,171,1,0,0,0,0,0,0,1,0,116,7,0,0, + 0,0,0,0,0,0,171,0,0,0,0,0,0,0,68,0, + 93,66,0,0,92,2,0,0,125,5,125,6,124,4,106,9, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,2,0,0,0,0,0,0,99,2,89,0,83,0, - 119,0,120,3,89,0,119,1,114,77,0,0,0,41,5,218, - 6,119,105,110,114,101,103,218,7,79,112,101,110,75,101,121, - 218,17,72,75,69,89,95,67,85,82,82,69,78,84,95,85, - 83,69,82,114,87,0,0,0,218,18,72,75,69,89,95,76, - 79,67,65,76,95,77,65,67,72,73,78,69,114,25,0,0, - 0,115,1,0,0,0,32,114,10,0,0,0,218,14,95,111, - 112,101,110,95,114,101,103,105,115,116,114,121,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,166,3,0,0,115,71,0,0,0,128,0,240,4,3, - 9,66,1,220,19,25,151,62,145,62,164,38,215,34,58,209, - 34,58,184,67,211,19,64,208,12,64,248,220,15,22,242,0, - 1,9,66,1,220,19,25,151,62,145,62,164,38,215,34,59, - 209,34,59,184,83,211,19,65,210,12,65,240,3,1,9,66, - 1,250,115,15,0,0,0,130,35,38,0,166,45,65,22,3, - 193,21,1,65,22,3,99,2,0,0,0,0,0,0,0,0, - 0,0,0,7,0,0,0,3,0,0,0,243,56,1,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,114,13,124,0,106,2,0,0, + 0,0,116,11,0,0,0,0,0,0,0,0,124,6,171,1, + 0,0,0,0,0,0,171,1,0,0,0,0,0,0,115,1, + 140,33,116,12,0,0,0,0,0,0,0,0,106,15,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,2,110,12,124,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,2,124,2,106,7, + 124,1,2,0,124,5,124,1,124,4,171,2,0,0,0,0, + 0,0,124,4,172,1,171,3,0,0,0,0,0,0,125,7, + 124,7,99,2,1,0,83,0,4,0,121,0,35,0,116,4, + 0,0,0,0,0,0,0,0,36,0,114,3,1,0,89,0, + 121,0,119,0,120,3,89,0,119,1,41,2,78,114,8,1, + 0,0,41,8,114,54,1,0,0,114,85,0,0,0,114,87, + 0,0,0,114,13,1,0,0,114,59,0,0,0,114,179,0, + 0,0,114,207,0,0,0,218,16,115,112,101,99,95,102,114, + 111,109,95,108,111,97,100,101,114,41,8,114,50,1,0,0, + 114,42,1,0,0,114,68,0,0,0,218,6,116,97,114,103, + 101,116,114,53,1,0,0,114,4,1,0,0,114,18,1,0, + 0,114,16,1,0,0,115,8,0,0,0,32,32,32,32,32, + 32,32,32,114,10,0,0,0,218,9,102,105,110,100,95,115, + 112,101,99,122,31,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, + 115,112,101,99,188,3,0,0,115,147,0,0,0,128,0,224, + 19,22,215,19,39,209,19,39,168,8,211,19,49,136,8,216, + 11,19,208,11,27,216,19,23,240,2,3,9,24,220,12,22, + 144,120,212,12,32,244,6,0,33,60,211,32,61,242,0,5, + 9,28,209,12,28,136,70,144,72,216,15,23,215,15,32,209, + 15,32,164,21,160,120,163,31,213,15,49,220,23,33,215,23, + 50,209,23,50,176,56,217,51,57,184,40,192,72,211,51,77, + 216,58,66,240,5,0,24,51,243,0,2,24,68,1,144,4, + 240,6,0,24,28,146,11,241,11,5,9,28,248,244,5,0, + 16,23,242,0,1,9,24,217,19,23,240,3,1,9,24,250, + 115,17,0,0,0,150,11,65,49,0,193,49,9,65,61,3, + 193,60,1,65,61,3,169,2,78,78,41,14,114,196,0,0, + 0,114,195,0,0,0,114,197,0,0,0,114,198,0,0,0, + 114,46,1,0,0,114,45,1,0,0,218,11,95,77,83,95, + 87,73,78,68,79,87,83,218,18,69,88,84,69,78,83,73, + 79,78,95,83,85,70,70,73,88,69,83,114,44,1,0,0, + 218,12,115,116,97,116,105,99,109,101,116,104,111,100,114,40, + 1,0,0,218,11,99,108,97,115,115,109,101,116,104,111,100, + 114,54,1,0,0,114,58,1,0,0,114,30,0,0,0,114, + 28,0,0,0,114,10,0,0,0,114,34,1,0,0,114,34, + 1,0,0,154,3,0,0,115,103,0,0,0,132,0,225,4, + 72,240,6,1,9,32,240,3,0,5,17,240,8,1,9,39, + 240,3,0,5,23,240,6,0,20,31,210,19,65,160,56,208, + 47,65,208,35,65,128,75,224,5,17,241,2,4,5,66,1, + 243,3,0,6,18,240,2,4,5,66,1,240,12,0,6,17, + 241,2,12,5,24,243,3,0,6,17,240,2,12,5,24,240, + 28,0,6,17,242,2,13,5,28,243,3,0,6,17,241,2, + 13,5,28,114,28,0,0,0,114,34,1,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, + 0,0,243,40,0,0,0,151,0,101,0,90,1,100,0,90, + 2,100,1,90,3,100,2,132,0,90,4,100,3,132,0,90, + 5,100,4,132,0,90,6,100,5,132,0,90,7,121,6,41, + 7,218,13,95,76,111,97,100,101,114,66,97,115,105,99,115, + 122,83,66,97,115,101,32,99,108,97,115,115,32,111,102,32, + 99,111,109,109,111,110,32,99,111,100,101,32,110,101,101,100, + 101,100,32,98,121,32,98,111,116,104,32,83,111,117,114,99, + 101,76,111,97,100,101,114,32,97,110,100,10,32,32,32,32, + 83,111,117,114,99,101,108,101,115,115,70,105,108,101,76,111, + 97,100,101,114,46,99,2,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,3,0,0,0,243,166,0,0,0,151, + 0,116,1,0,0,0,0,0,0,0,0,124,0,106,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,100,1,116,8,0,0,0,0,0,0,0,0, - 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,0,100,2,26,0,122,6,0,0,172,3, - 171,2,0,0,0,0,0,0,125,3,9,0,124,0,106,13, + 0,124,1,171,1,0,0,0,0,0,0,171,1,0,0,0, + 0,0,0,100,1,25,0,0,0,125,2,124,2,106,5,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,3,171,1,0,0,0,0,0,0,53,0,125,4, - 116,15,0,0,0,0,0,0,0,0,106,16,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,4, - 100,4,171,2,0,0,0,0,0,0,125,5,100,0,100,0, - 100,0,171,2,0,0,0,0,0,0,1,0,124,5,83,0, - 35,0,49,0,115,1,119,2,1,0,89,0,1,0,1,0, - 127,5,83,0,120,3,89,0,119,1,35,0,116,18,0,0, - 0,0,0,0,0,0,36,0,114,3,1,0,89,0,121,0, - 119,0,120,3,89,0,119,1,41,5,78,122,5,37,100,46, - 37,100,114,52,0,0,0,41,2,218,8,102,117,108,108,110, - 97,109,101,218,11,115,121,115,95,118,101,114,115,105,111,110, - 114,12,0,0,0,41,10,218,11,68,69,66,85,71,95,66, - 85,73,76,68,218,18,82,69,71,73,83,84,82,89,95,75, - 69,89,95,68,69,66,85,71,218,12,82,69,71,73,83,84, - 82,89,95,75,69,89,218,6,102,111,114,109,97,116,114,20, - 0,0,0,218,12,118,101,114,115,105,111,110,95,105,110,102, - 111,114,40,1,0,0,114,36,1,0,0,218,10,81,117,101, - 114,121,86,97,108,117,101,114,87,0,0,0,41,6,218,3, - 99,108,115,114,42,1,0,0,218,12,114,101,103,105,115,116, - 114,121,95,107,101,121,114,26,0,0,0,218,4,104,107,101, - 121,218,8,102,105,108,101,112,97,116,104,115,6,0,0,0, - 32,32,32,32,32,32,114,10,0,0,0,218,16,95,115,101, - 97,114,99,104,95,114,101,103,105,115,116,114,121,122,38,87, - 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105, - 110,100,101,114,46,95,115,101,97,114,99,104,95,114,101,103, - 105,115,116,114,121,173,3,0,0,115,164,0,0,0,128,0, - 224,11,14,143,63,138,63,216,27,30,215,27,49,209,27,49, - 137,76,224,27,30,215,27,43,209,27,43,136,76,216,14,26, - 215,14,33,209,14,33,168,56,216,46,53,188,3,215,56,72, - 209,56,72,200,18,200,33,208,56,76,209,46,76,240,3,0, - 15,34,243,0,1,15,78,1,136,3,240,4,4,9,24,216, - 17,20,215,17,35,209,17,35,160,67,211,17,40,240,0,1, - 13,55,168,68,220,27,33,215,27,44,209,27,44,168,84,176, - 50,211,27,54,144,8,247,3,1,13,55,240,8,0,16,24, - 136,15,247,9,1,13,55,240,8,0,16,24,136,15,251,244, - 5,0,16,23,242,0,1,9,24,217,19,23,240,3,1,9, - 24,250,115,48,0,0,0,193,14,17,66,13,0,193,31,23, - 66,0,3,193,54,8,66,13,0,194,0,5,66,10,7,194, - 5,3,66,13,0,194,10,3,66,13,0,194,13,9,66,25, - 3,194,24,1,66,25,3,78,99,4,0,0,0,0,0,0, - 0,0,0,0,0,8,0,0,0,3,0,0,0,243,0,1, - 0,0,151,0,124,0,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,125,4,124,4,128,1,121,0,9,0,116,3, - 0,0,0,0,0,0,0,0,124,4,171,1,0,0,0,0, - 0,0,1,0,116,7,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,68,0,93,66,0,0,92,2,0,0, - 125,5,125,6,124,4,106,9,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,11,0,0,0,0, - 0,0,0,0,124,6,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,115,1,140,33,116,12,0,0,0,0, - 0,0,0,0,106,15,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,2,0,124,5,124,1, - 124,4,171,2,0,0,0,0,0,0,124,4,172,1,171,3, - 0,0,0,0,0,0,125,7,124,7,99,2,1,0,83,0, - 4,0,121,0,35,0,116,4,0,0,0,0,0,0,0,0, - 36,0,114,3,1,0,89,0,121,0,119,0,120,3,89,0, - 119,1,41,2,78,114,8,1,0,0,41,8,114,54,1,0, - 0,114,85,0,0,0,114,87,0,0,0,114,13,1,0,0, - 114,59,0,0,0,114,179,0,0,0,114,207,0,0,0,218, - 16,115,112,101,99,95,102,114,111,109,95,108,111,97,100,101, - 114,41,8,114,50,1,0,0,114,42,1,0,0,114,68,0, - 0,0,218,6,116,97,114,103,101,116,114,53,1,0,0,114, - 4,1,0,0,114,18,1,0,0,114,16,1,0,0,115,8, - 0,0,0,32,32,32,32,32,32,32,32,114,10,0,0,0, - 218,9,102,105,110,100,95,115,112,101,99,122,31,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,115,112,101,99,188,3,0,0, - 115,147,0,0,0,128,0,224,19,22,215,19,39,209,19,39, - 168,8,211,19,49,136,8,216,11,19,208,11,27,216,19,23, - 240,2,3,9,24,220,12,22,144,120,212,12,32,244,6,0, - 33,60,211,32,61,242,0,5,9,28,209,12,28,136,70,144, - 72,216,15,23,215,15,32,209,15,32,164,21,160,120,163,31, - 213,15,49,220,23,33,215,23,50,209,23,50,176,56,217,51, - 57,184,40,192,72,211,51,77,216,58,66,240,5,0,24,51, - 243,0,2,24,68,1,144,4,240,6,0,24,28,146,11,241, - 11,5,9,28,248,244,5,0,16,23,242,0,1,9,24,217, - 19,23,240,3,1,9,24,250,115,17,0,0,0,150,11,65, - 49,0,193,49,9,65,61,3,193,60,1,65,61,3,169,2, - 78,78,41,14,114,196,0,0,0,114,195,0,0,0,114,197, - 0,0,0,114,198,0,0,0,114,46,1,0,0,114,45,1, - 0,0,218,11,95,77,83,95,87,73,78,68,79,87,83,218, - 18,69,88,84,69,78,83,73,79,78,95,83,85,70,70,73, - 88,69,83,114,44,1,0,0,218,12,115,116,97,116,105,99, - 109,101,116,104,111,100,114,40,1,0,0,218,11,99,108,97, - 115,115,109,101,116,104,111,100,114,54,1,0,0,114,58,1, - 0,0,114,30,0,0,0,114,28,0,0,0,114,10,0,0, - 0,114,34,1,0,0,114,34,1,0,0,154,3,0,0,115, - 103,0,0,0,132,0,225,4,72,240,6,1,9,32,240,3, - 0,5,17,240,8,1,9,39,240,3,0,5,23,240,6,0, - 20,31,210,19,65,160,56,208,47,65,208,35,65,128,75,224, - 5,17,241,2,4,5,66,1,243,3,0,6,18,240,2,4, - 5,66,1,240,12,0,6,17,241,2,12,5,24,243,3,0, - 6,17,240,2,12,5,24,240,28,0,6,17,242,2,13,5, - 28,243,3,0,6,17,241,2,13,5,28,114,28,0,0,0, - 114,34,1,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,0,0,0,0,243,40,0,0,0,151, - 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,132, - 0,90,4,100,3,132,0,90,5,100,4,132,0,90,6,100, - 5,132,0,90,7,121,6,41,7,218,13,95,76,111,97,100, - 101,114,66,97,115,105,99,115,122,83,66,97,115,101,32,99, - 108,97,115,115,32,111,102,32,99,111,109,109,111,110,32,99, - 111,100,101,32,110,101,101,100,101,100,32,98,121,32,98,111, - 116,104,32,83,111,117,114,99,101,76,111,97,100,101,114,32, - 97,110,100,10,32,32,32,32,83,111,117,114,99,101,108,101, - 115,115,70,105,108,101,76,111,97,100,101,114,46,99,2,0, - 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, - 0,0,243,166,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,106,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,100,1,25,0,0, - 0,125,2,124,2,106,5,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,2,100,1,171,2,0, - 0,0,0,0,0,100,3,25,0,0,0,125,3,124,1,106, - 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,2,171,1,0,0,0,0,0,0,100,4,25, - 0,0,0,125,4,124,3,100,5,107,40,0,0,120,1,114, - 5,1,0,124,4,100,5,107,55,0,0,83,0,41,6,122, - 141,67,111,110,99,114,101,116,101,32,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,32,111,102,32,73,110,115,112, - 101,99,116,76,111,97,100,101,114,46,105,115,95,112,97,99, - 107,97,103,101,32,98,121,32,99,104,101,99,107,105,110,103, - 32,105,102,10,32,32,32,32,32,32,32,32,116,104,101,32, - 112,97,116,104,32,114,101,116,117,114,110,101,100,32,98,121, - 32,103,101,116,95,102,105,108,101,110,97,109,101,32,104,97, - 115,32,97,32,102,105,108,101,110,97,109,101,32,111,102,32, - 39,95,95,105,110,105,116,95,95,46,112,121,39,46,114,6, - 0,0,0,114,103,0,0,0,114,1,0,0,0,114,52,0, - 0,0,218,8,95,95,105,110,105,116,95,95,41,4,114,81, - 0,0,0,114,7,1,0,0,114,157,0,0,0,114,131,0, - 0,0,41,5,114,189,0,0,0,114,42,1,0,0,114,151, - 0,0,0,218,13,102,105,108,101,110,97,109,101,95,98,97, - 115,101,218,9,116,97,105,108,95,110,97,109,101,115,5,0, - 0,0,32,32,32,32,32,114,10,0,0,0,114,10,1,0, - 0,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,210,3,0,0,115, - 93,0,0,0,128,0,244,6,0,20,31,152,116,215,31,48, - 209,31,48,176,24,211,31,58,211,19,59,184,65,209,19,62, - 136,8,216,24,32,159,15,153,15,168,3,168,81,211,24,47, - 176,1,209,24,50,136,13,216,20,28,215,20,39,209,20,39, - 168,3,211,20,44,168,81,209,20,47,136,9,216,15,28,160, - 10,209,15,42,210,15,70,168,121,184,74,209,47,70,208,8, - 70,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,243,4,0,0,0, - 151,0,121,1,169,2,122,42,85,115,101,32,100,101,102,97, - 117,108,116,32,115,101,109,97,110,116,105,99,115,32,102,111, - 114,32,109,111,100,117,108,101,32,99,114,101,97,116,105,111, - 110,46,78,114,30,0,0,0,169,2,114,189,0,0,0,114, - 16,1,0,0,115,2,0,0,0,32,32,114,10,0,0,0, - 218,13,99,114,101,97,116,101,95,109,111,100,117,108,101,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,218,3,0,0, - 243,2,0,0,0,129,0,114,28,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,186,0,0,0,151,0,124,0,106,1,0,0,0,0, + 0,100,2,100,1,171,2,0,0,0,0,0,0,100,3,25, + 0,0,0,125,3,124,1,106,7,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,2,171,1,0, + 0,0,0,0,0,100,4,25,0,0,0,125,4,124,3,100, + 5,107,40,0,0,120,1,114,5,1,0,124,4,100,5,107, + 55,0,0,83,0,41,6,122,141,67,111,110,99,114,101,116, + 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, + 32,111,102,32,73,110,115,112,101,99,116,76,111,97,100,101, + 114,46,105,115,95,112,97,99,107,97,103,101,32,98,121,32, + 99,104,101,99,107,105,110,103,32,105,102,10,32,32,32,32, + 32,32,32,32,116,104,101,32,112,97,116,104,32,114,101,116, + 117,114,110,101,100,32,98,121,32,103,101,116,95,102,105,108, + 101,110,97,109,101,32,104,97,115,32,97,32,102,105,108,101, + 110,97,109,101,32,111,102,32,39,95,95,105,110,105,116,95, + 95,46,112,121,39,46,114,6,0,0,0,114,103,0,0,0, + 114,1,0,0,0,114,52,0,0,0,218,8,95,95,105,110, + 105,116,95,95,41,4,114,81,0,0,0,114,7,1,0,0, + 114,157,0,0,0,114,131,0,0,0,41,5,114,189,0,0, + 0,114,42,1,0,0,114,151,0,0,0,218,13,102,105,108, + 101,110,97,109,101,95,98,97,115,101,218,9,116,97,105,108, + 95,110,97,109,101,115,5,0,0,0,32,32,32,32,32,114, + 10,0,0,0,114,10,1,0,0,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,210,3,0,0,115,93,0,0,0,128,0,244,6, + 0,20,31,152,116,215,31,48,209,31,48,176,24,211,31,58, + 211,19,59,184,65,209,19,62,136,8,216,24,32,159,15,153, + 15,168,3,168,81,211,24,47,176,1,209,24,50,136,13,216, + 20,28,215,20,39,209,20,39,168,3,211,20,44,168,81,209, + 20,47,136,9,216,15,28,160,10,209,15,42,210,15,70,168, + 121,184,74,209,47,70,208,8,70,114,28,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,243,4,0,0,0,151,0,121,1,169,2,122,42, + 85,115,101,32,100,101,102,97,117,108,116,32,115,101,109,97, + 110,116,105,99,115,32,102,111,114,32,109,111,100,117,108,101, + 32,99,114,101,97,116,105,111,110,46,78,114,30,0,0,0, + 169,2,114,189,0,0,0,114,16,1,0,0,115,2,0,0, + 0,32,32,114,10,0,0,0,218,13,99,114,101,97,116,101, + 95,109,111,100,117,108,101,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,218,3,0,0,243,2,0,0,0,129,0,114, + 28,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,243,186,0,0,0,151,0, + 124,0,106,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,1,106,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,171,1,0,0, + 0,0,0,0,125,2,124,2,128,25,116,5,0,0,0,0, + 0,0,0,0,100,2,124,1,106,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,155,2,100,3, + 157,3,171,1,0,0,0,0,0,0,130,1,116,6,0,0, + 0,0,0,0,0,0,106,9,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,116,10,0,0,0,0, + 0,0,0,0,124,2,124,1,106,12,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,171,3,0,0, + 0,0,0,0,1,0,121,1,41,4,122,19,69,120,101,99, + 117,116,101,32,116,104,101,32,109,111,100,117,108,101,46,78, + 122,19,99,97,110,110,111,116,32,108,111,97,100,32,109,111, + 100,117,108,101,32,122,29,32,119,104,101,110,32,103,101,116, + 95,99,111,100,101,40,41,32,114,101,116,117,114,110,115,32, + 78,111,110,101,41,7,218,8,103,101,116,95,99,111,100,101, + 114,196,0,0,0,114,188,0,0,0,114,207,0,0,0,218, + 25,95,99,97,108,108,95,119,105,116,104,95,102,114,97,109, + 101,115,95,114,101,109,111,118,101,100,218,4,101,120,101,99, + 114,202,0,0,0,41,3,114,189,0,0,0,218,6,109,111, + 100,117,108,101,114,236,0,0,0,115,3,0,0,0,32,32, + 32,114,10,0,0,0,218,11,101,120,101,99,95,109,111,100, + 117,108,101,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,221,3, + 0,0,115,83,0,0,0,128,0,224,15,19,143,125,137,125, + 152,86,159,95,153,95,211,15,45,136,4,216,11,15,136,60, + 220,18,29,208,32,51,176,70,183,79,177,79,208,51,70,240, + 0,1,71,1,56,240,0,1,31,56,243,0,1,19,57,240, + 0,1,13,57,228,8,18,215,8,44,209,8,44,172,84,176, + 52,184,22,191,31,185,31,213,8,73,114,28,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,46,0,0,0,151,0,116,0,0,0,0, + 0,0,0,0,0,106,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,0,124,1,171,2,0, + 0,0,0,0,0,83,0,41,1,122,26,84,104,105,115,32, + 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99, + 97,116,101,100,46,41,2,114,207,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,189,0,0,0,114,42,1,0,0,115,2,0,0,0, + 32,32,114,10,0,0,0,218,11,108,111,97,100,95,109,111, + 100,117,108,101,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,229, + 3,0,0,115,23,0,0,0,128,0,244,6,0,16,26,215, + 15,43,209,15,43,168,68,176,40,211,15,59,208,8,59,114, + 28,0,0,0,78,41,8,114,196,0,0,0,114,195,0,0, + 0,114,197,0,0,0,114,198,0,0,0,114,10,1,0,0, + 114,73,1,0,0,114,80,1,0,0,114,84,1,0,0,114, + 30,0,0,0,114,28,0,0,0,114,10,0,0,0,114,65, + 1,0,0,114,65,1,0,0,205,3,0,0,115,29,0,0, + 0,132,0,241,4,1,5,29,242,6,6,5,71,1,242,16, + 1,5,57,242,6,6,5,74,1,243,16,3,5,60,114,28, + 0,0,0,114,65,1,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,0,0,0,0,243,60,0, + 0,0,151,0,101,0,90,1,100,0,90,2,100,1,132,0, + 90,3,100,2,132,0,90,4,100,3,132,0,90,5,100,4, + 132,0,90,6,100,5,132,0,90,7,100,6,100,7,156,1, + 100,8,132,2,90,8,100,9,132,0,90,9,121,10,41,11, + 218,12,83,111,117,114,99,101,76,111,97,100,101,114,99,2, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,243,14,0,0,0,151,0,116,0,0,0,0,0, + 0,0,0,0,130,1,41,1,122,165,79,112,116,105,111,110, + 97,108,32,109,101,116,104,111,100,32,116,104,97,116,32,114, + 101,116,117,114,110,115,32,116,104,101,32,109,111,100,105,102, + 105,99,97,116,105,111,110,32,116,105,109,101,32,40,97,110, + 32,105,110,116,41,32,102,111,114,32,116,104,101,10,32,32, + 32,32,32,32,32,32,115,112,101,99,105,102,105,101,100,32, + 112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32, + 32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,83, + 69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,112, + 97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,97, + 110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,41, + 1,114,87,0,0,0,169,2,114,189,0,0,0,114,68,0, + 0,0,115,2,0,0,0,32,32,114,10,0,0,0,218,10, + 112,97,116,104,95,109,116,105,109,101,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,237,3,0,0,115,9,0,0,0,128,0,244,12, + 0,15,22,136,13,114,28,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 40,0,0,0,151,0,100,1,124,0,106,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,125,2,124,2, - 128,25,116,5,0,0,0,0,0,0,0,0,100,2,124,1, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,155,2,100,3,157,3,171,1,0,0,0,0, - 0,0,130,1,116,6,0,0,0,0,0,0,0,0,106,9, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,10,0,0,0,0,0,0,0,0,124,2,124,1, - 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,3,0,0,0,0,0,0,1,0,121,1, - 41,4,122,19,69,120,101,99,117,116,101,32,116,104,101,32, - 109,111,100,117,108,101,46,78,122,19,99,97,110,110,111,116, - 32,108,111,97,100,32,109,111,100,117,108,101,32,122,29,32, - 119,104,101,110,32,103,101,116,95,99,111,100,101,40,41,32, - 114,101,116,117,114,110,115,32,78,111,110,101,41,7,218,8, - 103,101,116,95,99,111,100,101,114,196,0,0,0,114,188,0, - 0,0,114,207,0,0,0,218,25,95,99,97,108,108,95,119, - 105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,118, - 101,100,218,4,101,120,101,99,114,202,0,0,0,41,3,114, - 189,0,0,0,218,6,109,111,100,117,108,101,114,236,0,0, - 0,115,3,0,0,0,32,32,32,114,10,0,0,0,218,11, - 101,120,101,99,95,109,111,100,117,108,101,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,221,3,0,0,115,83,0,0,0,128, - 0,224,15,19,143,125,137,125,152,86,159,95,153,95,211,15, - 45,136,4,216,11,15,136,60,220,18,29,208,32,51,176,70, - 183,79,177,79,208,51,70,240,0,1,71,1,56,240,0,1, - 31,56,243,0,1,19,57,240,0,1,13,57,228,8,18,215, - 8,44,209,8,44,172,84,176,52,184,22,191,31,185,31,213, - 8,73,114,28,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,46,0,0, - 0,151,0,116,0,0,0,0,0,0,0,0,0,106,3,0, + 171,1,0,0,0,0,0,0,105,1,83,0,41,2,97,158, + 1,0,0,79,112,116,105,111,110,97,108,32,109,101,116,104, + 111,100,32,114,101,116,117,114,110,105,110,103,32,97,32,109, + 101,116,97,100,97,116,97,32,100,105,99,116,32,102,111,114, + 32,116,104,101,32,115,112,101,99,105,102,105,101,100,10,32, + 32,32,32,32,32,32,32,112,97,116,104,32,40,97,32,115, + 116,114,41,46,10,10,32,32,32,32,32,32,32,32,80,111, + 115,115,105,98,108,101,32,107,101,121,115,58,10,32,32,32, + 32,32,32,32,32,45,32,39,109,116,105,109,101,39,32,40, + 109,97,110,100,97,116,111,114,121,41,32,105,115,32,116,104, + 101,32,110,117,109,101,114,105,99,32,116,105,109,101,115,116, + 97,109,112,32,111,102,32,108,97,115,116,32,115,111,117,114, + 99,101,10,32,32,32,32,32,32,32,32,32,32,99,111,100, + 101,32,109,111,100,105,102,105,99,97,116,105,111,110,59,10, + 32,32,32,32,32,32,32,32,45,32,39,115,105,122,101,39, + 32,40,111,112,116,105,111,110,97,108,41,32,105,115,32,116, + 104,101,32,115,105,122,101,32,105,110,32,98,121,116,101,115, + 32,111,102,32,116,104,101,32,115,111,117,114,99,101,32,99, + 111,100,101,46,10,10,32,32,32,32,32,32,32,32,73,109, + 112,108,101,109,101,110,116,105,110,103,32,116,104,105,115,32, + 109,101,116,104,111,100,32,97,108,108,111,119,115,32,116,104, + 101,32,108,111,97,100,101,114,32,116,111,32,114,101,97,100, + 32,98,121,116,101,99,111,100,101,32,102,105,108,101,115,46, + 10,32,32,32,32,32,32,32,32,82,97,105,115,101,115,32, + 79,83,69,114,114,111,114,32,119,104,101,110,32,116,104,101, + 32,112,97,116,104,32,99,97,110,110,111,116,32,98,101,32, + 104,97,110,100,108,101,100,46,10,32,32,32,32,32,32,32, + 32,114,242,0,0,0,41,1,114,89,1,0,0,114,88,1, + 0,0,115,2,0,0,0,32,32,114,10,0,0,0,218,10, + 112,97,116,104,95,115,116,97,116,115,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,245,3,0,0,115,24,0,0,0,128,0,240,24, + 0,17,24,152,20,159,31,153,31,168,20,211,25,46,208,15, + 47,208,8,47,114,28,0,0,0,99,4,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,38, + 0,0,0,151,0,124,0,106,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,2,124,3,171, + 2,0,0,0,0,0,0,83,0,41,1,122,228,79,112,116, + 105,111,110,97,108,32,109,101,116,104,111,100,32,119,104,105, + 99,104,32,119,114,105,116,101,115,32,100,97,116,97,32,40, + 98,121,116,101,115,41,32,116,111,32,97,32,102,105,108,101, + 32,112,97,116,104,32,40,97,32,115,116,114,41,46,10,10, + 32,32,32,32,32,32,32,32,73,109,112,108,101,109,101,110, + 116,105,110,103,32,116,104,105,115,32,109,101,116,104,111,100, + 32,97,108,108,111,119,115,32,102,111,114,32,116,104,101,32, + 119,114,105,116,105,110,103,32,111,102,32,98,121,116,101,99, + 111,100,101,32,102,105,108,101,115,46,10,10,32,32,32,32, + 32,32,32,32,84,104,101,32,115,111,117,114,99,101,32,112, + 97,116,104,32,105,115,32,110,101,101,100,101,100,32,105,110, + 32,111,114,100,101,114,32,116,111,32,99,111,114,114,101,99, + 116,108,121,32,116,114,97,110,115,102,101,114,32,112,101,114, + 109,105,115,115,105,111,110,115,10,32,32,32,32,32,32,32, + 32,41,1,218,8,115,101,116,95,100,97,116,97,41,4,114, + 189,0,0,0,114,176,0,0,0,218,10,99,97,99,104,101, + 95,112,97,116,104,114,48,0,0,0,115,4,0,0,0,32, + 32,32,32,114,10,0,0,0,218,15,95,99,97,99,104,101, + 95,98,121,116,101,99,111,100,101,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,3,4,0,0,115,21,0,0,0, + 128,0,240,16,0,16,20,143,125,137,125,152,90,168,20,211, + 15,46,208,8,46,114,28,0,0,0,99,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,243, + 4,0,0,0,151,0,121,1,41,2,122,150,79,112,116,105, + 111,110,97,108,32,109,101,116,104,111,100,32,119,104,105,99, + 104,32,119,114,105,116,101,115,32,100,97,116,97,32,40,98, + 121,116,101,115,41,32,116,111,32,97,32,102,105,108,101,32, + 112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32, + 32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,116, + 105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,32, + 97,108,108,111,119,115,32,102,111,114,32,116,104,101,32,119, + 114,105,116,105,110,103,32,111,102,32,98,121,116,101,99,111, + 100,101,32,102,105,108,101,115,46,10,32,32,32,32,32,32, + 32,32,78,114,30,0,0,0,41,3,114,189,0,0,0,114, + 68,0,0,0,114,48,0,0,0,115,3,0,0,0,32,32, + 32,114,10,0,0,0,114,93,1,0,0,122,21,83,111,117, + 114,99,101,76,111,97,100,101,114,46,115,101,116,95,100,97, + 116,97,13,4,0,0,114,74,1,0,0,114,28,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,243,156,0,0,0,151,0,124,0,106,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,124,1,171,2,0,0,0,0,0,0,83,0,41, - 1,122,26,84,104,105,115,32,109,101,116,104,111,100,32,105, - 115,32,100,101,112,114,101,99,97,116,101,100,46,41,2,114, - 207,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,189,0,0,0,114,42, - 1,0,0,115,2,0,0,0,32,32,114,10,0,0,0,218, - 11,108,111,97,100,95,109,111,100,117,108,101,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,229,3,0,0,115,23,0,0,0, - 128,0,244,6,0,16,26,215,15,43,209,15,43,168,68,176, - 40,211,15,59,208,8,59,114,28,0,0,0,78,41,8,114, - 196,0,0,0,114,195,0,0,0,114,197,0,0,0,114,198, - 0,0,0,114,10,1,0,0,114,73,1,0,0,114,80,1, - 0,0,114,84,1,0,0,114,30,0,0,0,114,28,0,0, - 0,114,10,0,0,0,114,65,1,0,0,114,65,1,0,0, - 205,3,0,0,115,29,0,0,0,132,0,241,4,1,5,29, - 242,6,6,5,71,1,242,16,1,5,57,242,6,6,5,74, - 1,243,16,3,5,60,114,28,0,0,0,114,65,1,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,0,0,0,0,243,60,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,132,0,90,3,100,2,132,0,90,4, - 100,3,132,0,90,5,100,4,132,0,90,6,100,5,132,0, - 90,7,100,6,100,7,156,1,100,8,132,2,90,8,100,9, - 132,0,90,9,121,10,41,11,218,12,83,111,117,114,99,101, - 76,111,97,100,101,114,99,2,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,243,14,0,0,0, - 151,0,116,0,0,0,0,0,0,0,0,0,130,1,41,1, - 122,165,79,112,116,105,111,110,97,108,32,109,101,116,104,111, - 100,32,116,104,97,116,32,114,101,116,117,114,110,115,32,116, - 104,101,32,109,111,100,105,102,105,99,97,116,105,111,110,32, - 116,105,109,101,32,40,97,110,32,105,110,116,41,32,102,111, - 114,32,116,104,101,10,32,32,32,32,32,32,32,32,115,112, - 101,99,105,102,105,101,100,32,112,97,116,104,32,40,97,32, - 115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,82, - 97,105,115,101,115,32,79,83,69,114,114,111,114,32,119,104, - 101,110,32,116,104,101,32,112,97,116,104,32,99,97,110,110, - 111,116,32,98,101,32,104,97,110,100,108,101,100,46,10,32, - 32,32,32,32,32,32,32,41,1,114,87,0,0,0,169,2, - 114,189,0,0,0,114,68,0,0,0,115,2,0,0,0,32, - 32,114,10,0,0,0,218,10,112,97,116,104,95,109,116,105, - 109,101,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,237,3,0,0,115, - 9,0,0,0,128,0,244,12,0,15,22,136,13,114,28,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,40,0,0,0,151,0,100,1, + 0,0,124,1,171,1,0,0,0,0,0,0,125,2,9,0, + 124,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, + 125,3,116,9,0,0,0,0,0,0,0,0,124,3,171,1, + 0,0,0,0,0,0,83,0,35,0,116,4,0,0,0,0, + 0,0,0,0,36,0,114,19,125,4,116,7,0,0,0,0, + 0,0,0,0,100,1,124,1,172,2,171,2,0,0,0,0, + 0,0,124,4,130,2,100,3,125,4,126,4,119,1,119,0, + 120,3,89,0,119,1,41,4,122,52,67,111,110,99,114,101, + 116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111, + 110,32,111,102,32,73,110,115,112,101,99,116,76,111,97,100, + 101,114,46,103,101,116,95,115,111,117,114,99,101,46,122,39, + 115,111,117,114,99,101,32,110,111,116,32,97,118,97,105,108, + 97,98,108,101,32,116,104,114,111,117,103,104,32,103,101,116, + 95,100,97,116,97,40,41,114,186,0,0,0,78,41,5,114, + 7,1,0,0,218,8,103,101,116,95,100,97,116,97,114,87, + 0,0,0,114,188,0,0,0,114,2,1,0,0,41,5,114, + 189,0,0,0,114,42,1,0,0,114,68,0,0,0,114,254, + 0,0,0,114,31,1,0,0,115,5,0,0,0,32,32,32, + 32,32,114,10,0,0,0,218,10,103,101,116,95,115,111,117, + 114,99,101,122,23,83,111,117,114,99,101,76,111,97,100,101, + 114,46,103,101,116,95,115,111,117,114,99,101,20,4,0,0, + 115,90,0,0,0,128,0,224,15,19,215,15,32,209,15,32, + 160,24,211,15,42,136,4,240,2,4,9,54,216,27,31,159, + 61,153,61,168,20,211,27,46,136,76,244,8,0,16,29,152, + 92,211,15,42,208,8,42,248,244,7,0,16,23,242,0,2, + 9,54,220,18,29,208,30,71,216,35,43,244,3,1,19,45, + 216,50,53,240,3,1,13,54,251,240,3,2,9,54,250,115, + 20,0,0,0,147,17,47,0,175,9,65,11,3,184,14,65, + 6,3,193,6,5,65,11,3,114,170,0,0,0,41,1,218, + 9,95,111,112,116,105,109,105,122,101,99,3,0,0,0,0, + 0,0,0,1,0,0,0,8,0,0,0,3,0,0,0,243, + 64,0,0,0,151,0,116,0,0,0,0,0,0,0,0,0, + 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,116,4,0,0,0,0,0,0,0,0,124,1, + 124,2,100,1,100,2,124,3,172,3,171,6,0,0,0,0, + 0,0,83,0,41,4,122,130,82,101,116,117,114,110,32,116, + 104,101,32,99,111,100,101,32,111,98,106,101,99,116,32,99, + 111,109,112,105,108,101,100,32,102,114,111,109,32,115,111,117, + 114,99,101,46,10,10,32,32,32,32,32,32,32,32,84,104, + 101,32,39,100,97,116,97,39,32,97,114,103,117,109,101,110, + 116,32,99,97,110,32,98,101,32,97,110,121,32,111,98,106, + 101,99,116,32,116,121,112,101,32,116,104,97,116,32,99,111, + 109,112,105,108,101,40,41,32,115,117,112,112,111,114,116,115, + 46,10,32,32,32,32,32,32,32,32,114,78,1,0,0,84, + 41,2,218,12,100,111,110,116,95,105,110,104,101,114,105,116, + 114,135,0,0,0,41,3,114,207,0,0,0,114,77,1,0, + 0,218,7,99,111,109,112,105,108,101,41,4,114,189,0,0, + 0,114,48,0,0,0,114,68,0,0,0,114,100,1,0,0, + 115,4,0,0,0,32,32,32,32,114,10,0,0,0,218,14, + 115,111,117,114,99,101,95,116,111,95,99,111,100,101,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,30,4,0,0,115, + 43,0,0,0,128,0,244,10,0,16,26,215,15,51,209,15, + 51,180,71,184,84,192,52,200,22,216,53,57,192,73,240,3, + 0,16,52,243,0,1,16,79,1,240,0,1,9,79,1,114, + 28,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,7,0,0,0,3,0,0,0,243,72,4,0,0,151,0, 124,0,106,1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 105,1,83,0,41,2,97,158,1,0,0,79,112,116,105,111, - 110,97,108,32,109,101,116,104,111,100,32,114,101,116,117,114, - 110,105,110,103,32,97,32,109,101,116,97,100,97,116,97,32, - 100,105,99,116,32,102,111,114,32,116,104,101,32,115,112,101, - 99,105,102,105,101,100,10,32,32,32,32,32,32,32,32,112, - 97,116,104,32,40,97,32,115,116,114,41,46,10,10,32,32, - 32,32,32,32,32,32,80,111,115,115,105,98,108,101,32,107, - 101,121,115,58,10,32,32,32,32,32,32,32,32,45,32,39, - 109,116,105,109,101,39,32,40,109,97,110,100,97,116,111,114, - 121,41,32,105,115,32,116,104,101,32,110,117,109,101,114,105, - 99,32,116,105,109,101,115,116,97,109,112,32,111,102,32,108, - 97,115,116,32,115,111,117,114,99,101,10,32,32,32,32,32, - 32,32,32,32,32,99,111,100,101,32,109,111,100,105,102,105, - 99,97,116,105,111,110,59,10,32,32,32,32,32,32,32,32, - 45,32,39,115,105,122,101,39,32,40,111,112,116,105,111,110, - 97,108,41,32,105,115,32,116,104,101,32,115,105,122,101,32, - 105,110,32,98,121,116,101,115,32,111,102,32,116,104,101,32, - 115,111,117,114,99,101,32,99,111,100,101,46,10,10,32,32, - 32,32,32,32,32,32,73,109,112,108,101,109,101,110,116,105, - 110,103,32,116,104,105,115,32,109,101,116,104,111,100,32,97, - 108,108,111,119,115,32,116,104,101,32,108,111,97,100,101,114, - 32,116,111,32,114,101,97,100,32,98,121,116,101,99,111,100, - 101,32,102,105,108,101,115,46,10,32,32,32,32,32,32,32, - 32,82,97,105,115,101,115,32,79,83,69,114,114,111,114,32, - 119,104,101,110,32,116,104,101,32,112,97,116,104,32,99,97, - 110,110,111,116,32,98,101,32,104,97,110,100,108,101,100,46, - 10,32,32,32,32,32,32,32,32,114,242,0,0,0,41,1, - 114,89,1,0,0,114,88,1,0,0,115,2,0,0,0,32, - 32,114,10,0,0,0,218,10,112,97,116,104,95,115,116,97, - 116,115,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,245,3,0,0,115, - 24,0,0,0,128,0,240,24,0,17,24,152,20,159,31,153, - 31,168,20,211,25,46,208,15,47,208,8,47,114,28,0,0, - 0,99,4,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,38,0,0,0,151,0,124,0,106, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,124,3,171,2,0,0,0,0,0,0,83, - 0,41,1,122,228,79,112,116,105,111,110,97,108,32,109,101, - 116,104,111,100,32,119,104,105,99,104,32,119,114,105,116,101, - 115,32,100,97,116,97,32,40,98,121,116,101,115,41,32,116, - 111,32,97,32,102,105,108,101,32,112,97,116,104,32,40,97, - 32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,32, - 73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,105, - 115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,32, - 102,111,114,32,116,104,101,32,119,114,105,116,105,110,103,32, - 111,102,32,98,121,116,101,99,111,100,101,32,102,105,108,101, - 115,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32, - 115,111,117,114,99,101,32,112,97,116,104,32,105,115,32,110, - 101,101,100,101,100,32,105,110,32,111,114,100,101,114,32,116, - 111,32,99,111,114,114,101,99,116,108,121,32,116,114,97,110, - 115,102,101,114,32,112,101,114,109,105,115,115,105,111,110,115, - 10,32,32,32,32,32,32,32,32,41,1,218,8,115,101,116, - 95,100,97,116,97,41,4,114,189,0,0,0,114,176,0,0, - 0,218,10,99,97,99,104,101,95,112,97,116,104,114,48,0, - 0,0,115,4,0,0,0,32,32,32,32,114,10,0,0,0, - 218,15,95,99,97,99,104,101,95,98,121,116,101,99,111,100, - 101,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,3, - 4,0,0,115,21,0,0,0,128,0,240,16,0,16,20,143, - 125,137,125,152,90,168,20,211,15,46,208,8,46,114,28,0, - 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,243,4,0,0,0,151,0,121,1, - 41,2,122,150,79,112,116,105,111,110,97,108,32,109,101,116, - 104,111,100,32,119,104,105,99,104,32,119,114,105,116,101,115, - 32,100,97,116,97,32,40,98,121,116,101,115,41,32,116,111, - 32,97,32,102,105,108,101,32,112,97,116,104,32,40,97,32, - 115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,73, - 109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,115, - 32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,102, - 111,114,32,116,104,101,32,119,114,105,116,105,110,103,32,111, - 102,32,98,121,116,101,99,111,100,101,32,102,105,108,101,115, - 46,10,32,32,32,32,32,32,32,32,78,114,30,0,0,0, - 41,3,114,189,0,0,0,114,68,0,0,0,114,48,0,0, - 0,115,3,0,0,0,32,32,32,114,10,0,0,0,114,93, - 1,0,0,122,21,83,111,117,114,99,101,76,111,97,100,101, - 114,46,115,101,116,95,100,97,116,97,13,4,0,0,114,74, - 1,0,0,114,28,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,243,156,0, - 0,0,151,0,124,0,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,125,2,9,0,124,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 171,1,0,0,0,0,0,0,125,3,116,9,0,0,0,0, - 0,0,0,0,124,3,171,1,0,0,0,0,0,0,83,0, - 35,0,116,4,0,0,0,0,0,0,0,0,36,0,114,19, - 125,4,116,7,0,0,0,0,0,0,0,0,100,1,124,1, - 172,2,171,2,0,0,0,0,0,0,124,4,130,2,100,3, - 125,4,126,4,119,1,119,0,120,3,89,0,119,1,41,4, - 122,52,67,111,110,99,114,101,116,101,32,105,109,112,108,101, - 109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,115, - 112,101,99,116,76,111,97,100,101,114,46,103,101,116,95,115, - 111,117,114,99,101,46,122,39,115,111,117,114,99,101,32,110, - 111,116,32,97,118,97,105,108,97,98,108,101,32,116,104,114, - 111,117,103,104,32,103,101,116,95,100,97,116,97,40,41,114, - 186,0,0,0,78,41,5,114,7,1,0,0,218,8,103,101, - 116,95,100,97,116,97,114,87,0,0,0,114,188,0,0,0, - 114,2,1,0,0,41,5,114,189,0,0,0,114,42,1,0, - 0,114,68,0,0,0,114,254,0,0,0,114,31,1,0,0, - 115,5,0,0,0,32,32,32,32,32,114,10,0,0,0,218, - 10,103,101,116,95,115,111,117,114,99,101,122,23,83,111,117, - 114,99,101,76,111,97,100,101,114,46,103,101,116,95,115,111, - 117,114,99,101,20,4,0,0,115,90,0,0,0,128,0,224, - 15,19,215,15,32,209,15,32,160,24,211,15,42,136,4,240, - 2,4,9,54,216,27,31,159,61,153,61,168,20,211,27,46, - 136,76,244,8,0,16,29,152,92,211,15,42,208,8,42,248, - 244,7,0,16,23,242,0,2,9,54,220,18,29,208,30,71, - 216,35,43,244,3,1,19,45,216,50,53,240,3,1,13,54, - 251,240,3,2,9,54,250,115,20,0,0,0,147,17,47,0, - 175,9,65,11,3,184,14,65,6,3,193,6,5,65,11,3, - 114,170,0,0,0,41,1,218,9,95,111,112,116,105,109,105, - 122,101,99,3,0,0,0,0,0,0,0,1,0,0,0,8, - 0,0,0,3,0,0,0,243,64,0,0,0,151,0,116,0, - 0,0,0,0,0,0,0,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,4,0,0, - 0,0,0,0,0,0,124,1,124,2,100,1,100,2,124,3, - 172,3,171,6,0,0,0,0,0,0,83,0,41,4,122,130, - 82,101,116,117,114,110,32,116,104,101,32,99,111,100,101,32, - 111,98,106,101,99,116,32,99,111,109,112,105,108,101,100,32, - 102,114,111,109,32,115,111,117,114,99,101,46,10,10,32,32, - 32,32,32,32,32,32,84,104,101,32,39,100,97,116,97,39, - 32,97,114,103,117,109,101,110,116,32,99,97,110,32,98,101, - 32,97,110,121,32,111,98,106,101,99,116,32,116,121,112,101, - 32,116,104,97,116,32,99,111,109,112,105,108,101,40,41,32, - 115,117,112,112,111,114,116,115,46,10,32,32,32,32,32,32, - 32,32,114,78,1,0,0,84,41,2,218,12,100,111,110,116, - 95,105,110,104,101,114,105,116,114,135,0,0,0,41,3,114, - 207,0,0,0,114,77,1,0,0,218,7,99,111,109,112,105, - 108,101,41,4,114,189,0,0,0,114,48,0,0,0,114,68, - 0,0,0,114,100,1,0,0,115,4,0,0,0,32,32,32, - 32,114,10,0,0,0,218,14,115,111,117,114,99,101,95,116, - 111,95,99,111,100,101,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,30,4,0,0,115,43,0,0,0,128,0,244,10, - 0,16,26,215,15,51,209,15,51,180,71,184,84,192,52,200, - 22,216,53,57,192,73,240,3,0,16,52,243,0,1,16,79, - 1,240,0,1,9,79,1,114,28,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,7,0,0,0,3,0,0, - 0,243,72,4,0,0,151,0,124,0,106,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 171,1,0,0,0,0,0,0,125,2,100,1,125,3,100,1, - 125,4,100,1,125,5,100,2,125,6,100,3,125,7,9,0, - 116,3,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,125,8,9,0,124,0,106,5,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 171,1,0,0,0,0,0,0,125,9,116,7,0,0,0,0, - 0,0,0,0,124,9,100,4,25,0,0,0,171,1,0,0, - 0,0,0,0,125,3,9,0,124,0,106,9,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,8, - 171,1,0,0,0,0,0,0,125,10,124,1,124,8,100,5, - 156,2,125,11,9,0,116,11,0,0,0,0,0,0,0,0, - 124,10,124,1,124,11,171,3,0,0,0,0,0,0,125,12, - 116,13,0,0,0,0,0,0,0,0,124,10,171,1,0,0, - 0,0,0,0,100,6,100,1,26,0,125,13,124,12,100,7, - 122,1,0,0,100,8,107,55,0,0,125,6,124,6,114,106, - 124,12,100,9,122,1,0,0,100,8,107,55,0,0,125,7, - 116,14,0,0,0,0,0,0,0,0,106,16,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,10, - 107,55,0,0,114,97,124,7,115,19,116,14,0,0,0,0, - 0,0,0,0,106,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,11,107,40,0,0,114,76, - 124,0,106,9,0,0,0,0,0,0,0,0,0,0,0,0, + 125,2,100,1,125,3,100,1,125,4,100,1,125,5,100,2, + 125,6,100,3,125,7,9,0,116,3,0,0,0,0,0,0, + 0,0,124,2,171,1,0,0,0,0,0,0,125,8,9,0, + 124,0,106,5,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 125,4,116,15,0,0,0,0,0,0,0,0,106,18,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,20,0,0,0,0,0,0,0,0,124,4,171,2,0,0, - 0,0,0,0,125,5,116,23,0,0,0,0,0,0,0,0, - 124,10,124,5,124,1,124,11,171,4,0,0,0,0,0,0, - 1,0,110,18,116,25,0,0,0,0,0,0,0,0,124,10, - 124,3,124,9,100,12,25,0,0,0,124,1,124,11,171,5, - 0,0,0,0,0,0,1,0,116,26,0,0,0,0,0,0, - 0,0,106,29,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,13,124,8,124,2,171,3,0,0, - 0,0,0,0,1,0,116,31,0,0,0,0,0,0,0,0, - 124,13,124,1,124,8,124,2,172,14,171,4,0,0,0,0, - 0,0,83,0,35,0,116,32,0,0,0,0,0,0,0,0, - 116,34,0,0,0,0,0,0,0,0,102,2,36,0,114,3, - 1,0,89,0,110,51,119,0,120,3,89,0,119,1,35,0, - 116,36,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,110,36,119,0,120,3,89,0,119,1,35,0,116,36, - 0,0,0,0,0,0,0,0,36,0,114,3,1,0,89,0, - 110,21,119,0,120,3,89,0,119,1,35,0,116,38,0,0, - 0,0,0,0,0,0,36,0,114,5,1,0,100,1,125,8, - 89,0,110,4,119,0,120,3,89,0,119,1,124,4,128,17, + 125,9,116,7,0,0,0,0,0,0,0,0,124,9,100,4, + 25,0,0,0,171,1,0,0,0,0,0,0,125,3,9,0, 124,0,106,9,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 125,4,124,0,106,41,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,4,124,2,171,2,0,0, - 0,0,0,0,125,14,116,26,0,0,0,0,0,0,0,0, - 106,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,15,124,2,171,2,0,0,0,0,0,0, - 1,0,116,42,0,0,0,0,0,0,0,0,106,44,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 115,108,124,8,129,106,124,3,129,104,124,6,114,42,124,5, - 128,26,116,15,0,0,0,0,0,0,0,0,106,18,0,0, + 0,0,0,0,0,0,124,8,171,1,0,0,0,0,0,0, + 125,10,124,1,124,8,100,5,156,2,125,11,9,0,116,11, + 0,0,0,0,0,0,0,0,124,10,124,1,124,11,171,3, + 0,0,0,0,0,0,125,12,116,13,0,0,0,0,0,0, + 0,0,124,10,171,1,0,0,0,0,0,0,100,6,100,1, + 26,0,125,13,124,12,100,7,122,1,0,0,100,8,107,55, + 0,0,125,6,124,6,114,106,124,12,100,9,122,1,0,0, + 100,8,107,55,0,0,125,7,116,14,0,0,0,0,0,0, + 0,0,106,16,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,100,10,107,55,0,0,114,97,124,7, + 115,19,116,14,0,0,0,0,0,0,0,0,106,16,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,20,0,0,0,0,0,0,0,0,124,4,171,2,0,0, - 0,0,0,0,125,5,116,47,0,0,0,0,0,0,0,0, - 124,14,124,5,124,7,171,3,0,0,0,0,0,0,125,10, - 110,22,116,49,0,0,0,0,0,0,0,0,124,14,124,3, - 116,51,0,0,0,0,0,0,0,0,124,4,171,1,0,0, - 0,0,0,0,171,3,0,0,0,0,0,0,125,10,9,0, - 124,0,106,53,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,124,8,124,10,171,3,0,0, - 0,0,0,0,1,0,124,14,83,0,35,0,116,38,0,0, - 0,0,0,0,0,0,36,0,114,4,1,0,89,0,124,14, - 83,0,119,0,120,3,89,0,119,1,124,14,83,0,41,16, - 122,190,67,111,110,99,114,101,116,101,32,105,109,112,108,101, - 109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,115, - 112,101,99,116,76,111,97,100,101,114,46,103,101,116,95,99, - 111,100,101,46,10,10,32,32,32,32,32,32,32,32,82,101, - 97,100,105,110,103,32,111,102,32,98,121,116,101,99,111,100, - 101,32,114,101,113,117,105,114,101,115,32,112,97,116,104,95, - 115,116,97,116,115,32,116,111,32,98,101,32,105,109,112,108, - 101,109,101,110,116,101,100,46,32,84,111,32,119,114,105,116, - 101,10,32,32,32,32,32,32,32,32,98,121,116,101,99,111, - 100,101,44,32,115,101,116,95,100,97,116,97,32,109,117,115, - 116,32,97,108,115,111,32,98,101,32,105,109,112,108,101,109, - 101,110,116,101,100,46,10,10,32,32,32,32,32,32,32,32, - 78,70,84,114,242,0,0,0,114,229,0,0,0,114,211,0, - 0,0,114,6,0,0,0,114,1,0,0,0,114,52,0,0, - 0,218,5,110,101,118,101,114,218,6,97,108,119,97,121,115, - 218,4,115,105,122,101,122,13,123,125,32,109,97,116,99,104, - 101,115,32,123,125,41,3,114,187,0,0,0,114,173,0,0, - 0,114,176,0,0,0,122,19,99,111,100,101,32,111,98,106, - 101,99,116,32,102,114,111,109,32,123,125,41,27,114,7,1, - 0,0,114,152,0,0,0,114,91,1,0,0,114,40,0,0, - 0,114,98,1,0,0,114,219,0,0,0,218,10,109,101,109, - 111,114,121,118,105,101,119,114,234,0,0,0,218,21,99,104, - 101,99,107,95,104,97,115,104,95,98,97,115,101,100,95,112, - 121,99,115,114,226,0,0,0,218,17,95,82,65,87,95,77, - 65,71,73,67,95,78,85,77,66,69,82,114,227,0,0,0, - 114,224,0,0,0,114,207,0,0,0,114,215,0,0,0,114, - 237,0,0,0,114,188,0,0,0,114,216,0,0,0,114,87, - 0,0,0,114,134,0,0,0,114,104,1,0,0,114,20,0, - 0,0,218,19,100,111,110,116,95,119,114,105,116,101,95,98, - 121,116,101,99,111,100,101,114,246,0,0,0,114,243,0,0, - 0,114,7,0,0,0,114,95,1,0,0,41,15,114,189,0, - 0,0,114,42,1,0,0,114,176,0,0,0,114,222,0,0, - 0,114,254,0,0,0,114,226,0,0,0,218,10,104,97,115, - 104,95,98,97,115,101,100,218,12,99,104,101,99,107,95,115, - 111,117,114,99,101,114,173,0,0,0,218,2,115,116,114,48, - 0,0,0,114,217,0,0,0,114,21,0,0,0,218,10,98, - 121,116,101,115,95,100,97,116,97,218,11,99,111,100,101,95, - 111,98,106,101,99,116,115,15,0,0,0,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,114,10,0,0,0,114, - 76,1,0,0,122,21,83,111,117,114,99,101,76,111,97,100, - 101,114,46,103,101,116,95,99,111,100,101,38,4,0,0,115, - 147,2,0,0,128,0,240,14,0,23,27,215,22,39,209,22, - 39,168,8,211,22,49,136,11,216,23,27,136,12,216,23,27, - 136,12,216,22,26,136,11,216,21,26,136,10,216,23,27,136, - 12,240,2,51,9,74,1,220,28,45,168,107,211,28,58,136, - 77,240,8,46,13,74,1,216,21,25,151,95,145,95,160,91, - 211,21,49,144,2,244,8,0,32,35,160,50,160,103,161,59, - 211,31,47,144,12,240,2,40,17,74,1,216,27,31,159,61, - 153,61,168,29,211,27,55,144,68,240,10,0,33,41,216,32, - 45,241,5,3,35,22,144,75,240,8,31,21,74,1,220,32, - 45,168,100,176,72,184,107,211,32,74,152,5,220,37,47,176, - 4,211,37,53,176,98,176,99,208,37,58,152,10,216,37,42, - 168,83,161,91,176,65,209,37,53,152,10,217,27,37,216,43, - 48,176,52,169,60,184,49,209,43,60,152,76,220,32,36,215, - 32,58,209,32,58,184,103,210,32,69,217,33,45,220,33,37, - 215,33,59,209,33,59,184,120,210,33,71,216,47,51,175,125, - 169,125,184,91,211,47,73,160,12,220,46,50,215,46,62,209, - 46,62,220,36,53,216,36,48,243,5,3,47,34,160,11,244, - 8,0,33,51,176,52,184,27,192,104,216,51,62,245,3,1, - 33,64,1,244,6,0,29,52,216,32,36,216,32,44,216,32, - 34,160,54,161,10,216,32,40,216,32,43,244,11,6,29,30, - 244,20,0,25,35,215,24,51,209,24,51,176,79,192,93,216, - 52,63,244,3,1,25,65,1,228,31,48,176,26,192,40,216, - 63,76,216,61,72,244,5,2,32,74,1,240,0,2,25,74, - 1,248,244,11,0,29,40,172,24,208,27,50,242,0,1,21, - 29,217,24,28,240,3,1,21,29,251,244,63,0,24,31,242, - 0,1,17,25,217,20,24,240,3,1,17,25,251,244,13,0, - 20,27,242,0,1,13,21,217,16,20,240,3,1,13,21,251, - 244,11,0,16,35,242,0,1,9,33,216,28,32,138,77,240, - 3,1,9,33,250,240,100,1,0,12,24,208,11,31,216,27, - 31,159,61,153,61,168,27,211,27,53,136,76,216,22,26,215, - 22,41,209,22,41,168,44,184,11,211,22,68,136,11,220,8, - 18,215,8,35,209,8,35,208,36,57,184,59,212,8,71,220, - 16,19,215,16,39,210,16,39,168,77,208,44,69,216,16,28, - 208,16,40,217,15,25,216,19,30,208,19,38,220,34,38,215, - 34,50,209,34,50,212,51,68,216,51,63,243,3,1,35,65, - 1,144,75,228,23,40,168,27,176,107,192,60,211,23,80,145, - 4,228,23,45,168,107,184,60,220,46,49,176,44,211,46,63, - 243,3,1,24,65,1,144,4,240,4,3,13,21,216,16,20, - 215,16,36,209,16,36,160,91,176,45,192,20,212,16,70,240, - 6,0,16,27,208,8,26,248,244,5,0,20,39,242,0,1, - 13,21,216,16,20,216,15,26,208,8,26,240,5,1,13,21, - 250,224,15,26,208,8,26,115,89,0,0,0,157,11,69,26, - 0,169,17,69,11,0,193,9,17,68,60,0,193,32,66,33, - 68,39,0,196,39,15,68,57,3,196,56,1,68,57,3,196, - 60,9,69,8,3,197,7,1,69,8,3,197,11,9,69,23, - 3,197,22,1,69,23,3,197,26,11,69,40,3,197,39,1, - 69,40,3,199,61,19,72,18,0,200,18,9,72,31,3,200, - 30,1,72,31,3,78,41,10,114,196,0,0,0,114,195,0, - 0,0,114,197,0,0,0,114,89,1,0,0,114,91,1,0, - 0,114,95,1,0,0,114,93,1,0,0,114,99,1,0,0, - 114,104,1,0,0,114,76,1,0,0,114,30,0,0,0,114, - 28,0,0,0,114,10,0,0,0,114,86,1,0,0,114,86, - 1,0,0,235,3,0,0,115,44,0,0,0,132,0,242,4, - 6,5,22,242,16,12,5,48,242,28,8,5,47,242,20,4, - 5,12,242,14,8,5,43,240,20,0,55,57,244,0,6,5, - 79,1,243,16,83,1,5,27,114,28,0,0,0,114,86,1, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,0,0,0,0,243,100,0,0,0,135,0,151,0, - 101,0,90,1,100,0,90,2,100,1,90,3,100,2,132,0, - 90,4,100,3,132,0,90,5,100,4,132,0,90,6,101,7, - 136,0,102,1,100,5,132,8,171,0,0,0,0,0,0,0, - 90,8,101,7,100,6,132,0,171,0,0,0,0,0,0,0, - 90,9,100,7,132,0,90,10,101,7,100,8,132,0,171,0, - 0,0,0,0,0,0,90,11,136,0,120,1,90,12,83,0, - 41,9,218,10,70,105,108,101,76,111,97,100,101,114,122,103, - 66,97,115,101,32,102,105,108,101,32,108,111,97,100,101,114, - 32,99,108,97,115,115,32,119,104,105,99,104,32,105,109,112, - 108,101,109,101,110,116,115,32,116,104,101,32,108,111,97,100, - 101,114,32,112,114,111,116,111,99,111,108,32,109,101,116,104, - 111,100,115,32,116,104,97,116,10,32,32,32,32,114,101,113, - 117,105,114,101,32,102,105,108,101,32,115,121,115,116,101,109, - 32,117,115,97,103,101,46,99,3,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,243,32,0,0, - 0,151,0,124,1,124,0,95,0,0,0,0,0,0,0,0, - 0,124,2,124,0,95,1,0,0,0,0,0,0,0,0,121, - 1,41,2,122,75,67,97,99,104,101,32,116,104,101,32,109, - 111,100,117,108,101,32,110,97,109,101,32,97,110,100,32,116, - 104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,102, - 105,108,101,32,102,111,117,110,100,32,98,121,32,116,104,101, - 10,32,32,32,32,32,32,32,32,102,105,110,100,101,114,46, - 78,114,229,0,0,0,41,3,114,189,0,0,0,114,42,1, - 0,0,114,68,0,0,0,115,3,0,0,0,32,32,32,114, - 10,0,0,0,114,67,1,0,0,122,19,70,105,108,101,76, - 111,97,100,101,114,46,95,95,105,110,105,116,95,95,129,4, - 0,0,115,18,0,0,0,128,0,240,6,0,21,29,136,4, - 140,9,216,20,24,136,4,141,9,114,28,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,106,0,0,0,151,0,124,0,106,0,0,0, + 100,11,107,40,0,0,114,76,124,0,106,9,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, + 171,1,0,0,0,0,0,0,125,4,116,15,0,0,0,0, + 0,0,0,0,106,18,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,116,20,0,0,0,0,0,0, + 0,0,124,4,171,2,0,0,0,0,0,0,125,5,116,23, + 0,0,0,0,0,0,0,0,124,10,124,5,124,1,124,11, + 171,4,0,0,0,0,0,0,1,0,110,18,116,25,0,0, + 0,0,0,0,0,0,124,10,124,3,124,9,100,12,25,0, + 0,0,124,1,124,11,171,5,0,0,0,0,0,0,1,0, + 116,26,0,0,0,0,0,0,0,0,106,29,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,13, + 124,8,124,2,171,3,0,0,0,0,0,0,1,0,116,31, + 0,0,0,0,0,0,0,0,124,13,124,1,124,8,124,2, + 172,14,171,4,0,0,0,0,0,0,83,0,35,0,116,32, + 0,0,0,0,0,0,0,0,116,34,0,0,0,0,0,0, + 0,0,102,2,36,0,114,3,1,0,89,0,110,51,119,0, + 120,3,89,0,119,1,35,0,116,36,0,0,0,0,0,0, + 0,0,36,0,114,3,1,0,89,0,110,36,119,0,120,3, + 89,0,119,1,35,0,116,36,0,0,0,0,0,0,0,0, + 36,0,114,3,1,0,89,0,110,21,119,0,120,3,89,0, + 119,1,35,0,116,38,0,0,0,0,0,0,0,0,36,0, + 114,5,1,0,100,1,125,8,89,0,110,4,119,0,120,3, + 89,0,119,1,124,4,128,17,124,0,106,9,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, + 171,1,0,0,0,0,0,0,125,4,124,0,106,41,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,107,40,0,0,120,1,114,25,1,0, - 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,107,40,0,0, - 83,0,114,77,0,0,0,169,2,218,9,95,95,99,108,97, - 115,115,95,95,114,202,0,0,0,169,2,114,189,0,0,0, - 218,5,111,116,104,101,114,115,2,0,0,0,32,32,114,10, - 0,0,0,218,6,95,95,101,113,95,95,122,17,70,105,108, - 101,76,111,97,100,101,114,46,95,95,101,113,95,95,135,4, - 0,0,243,44,0,0,0,128,0,216,16,20,151,14,145,14, - 160,37,167,47,161,47,209,16,49,242,0,1,17,48,216,16, - 20,151,13,145,13,160,21,167,30,161,30,209,16,47,240,3, - 1,9,49,114,28,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,88,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, + 124,4,124,2,171,2,0,0,0,0,0,0,125,14,116,26, + 0,0,0,0,0,0,0,0,106,29,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,100,15,124,2, + 171,2,0,0,0,0,0,0,1,0,116,42,0,0,0,0, + 0,0,0,0,106,44,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,115,108,124,8,129,106,124,3, + 129,104,124,6,114,42,124,5,128,26,116,15,0,0,0,0, + 0,0,0,0,106,18,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,116,20,0,0,0,0,0,0, + 0,0,124,4,171,2,0,0,0,0,0,0,125,5,116,47, + 0,0,0,0,0,0,0,0,124,14,124,5,124,7,171,3, + 0,0,0,0,0,0,125,10,110,22,116,49,0,0,0,0, + 0,0,0,0,124,14,124,3,116,51,0,0,0,0,0,0, + 0,0,124,4,171,1,0,0,0,0,0,0,171,3,0,0, + 0,0,0,0,125,10,9,0,124,0,106,53,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, + 124,8,124,10,171,3,0,0,0,0,0,0,1,0,124,14, + 83,0,35,0,116,38,0,0,0,0,0,0,0,0,36,0, + 114,4,1,0,89,0,124,14,83,0,119,0,120,3,89,0, + 119,1,124,14,83,0,41,16,122,190,67,111,110,99,114,101, + 116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111, + 110,32,111,102,32,73,110,115,112,101,99,116,76,111,97,100, + 101,114,46,103,101,116,95,99,111,100,101,46,10,10,32,32, + 32,32,32,32,32,32,82,101,97,100,105,110,103,32,111,102, + 32,98,121,116,101,99,111,100,101,32,114,101,113,117,105,114, + 101,115,32,112,97,116,104,95,115,116,97,116,115,32,116,111, + 32,98,101,32,105,109,112,108,101,109,101,110,116,101,100,46, + 32,84,111,32,119,114,105,116,101,10,32,32,32,32,32,32, + 32,32,98,121,116,101,99,111,100,101,44,32,115,101,116,95, + 100,97,116,97,32,109,117,115,116,32,97,108,115,111,32,98, + 101,32,105,109,112,108,101,109,101,110,116,101,100,46,10,10, + 32,32,32,32,32,32,32,32,78,70,84,114,242,0,0,0, + 114,229,0,0,0,114,211,0,0,0,114,6,0,0,0,114, + 1,0,0,0,114,52,0,0,0,218,5,110,101,118,101,114, + 218,6,97,108,119,97,121,115,218,4,115,105,122,101,122,13, + 123,125,32,109,97,116,99,104,101,115,32,123,125,41,3,114, + 187,0,0,0,114,173,0,0,0,114,176,0,0,0,122,19, + 99,111,100,101,32,111,98,106,101,99,116,32,102,114,111,109, + 32,123,125,41,27,114,7,1,0,0,114,152,0,0,0,114, + 91,1,0,0,114,40,0,0,0,114,98,1,0,0,114,219, + 0,0,0,218,10,109,101,109,111,114,121,118,105,101,119,114, + 234,0,0,0,218,21,99,104,101,99,107,95,104,97,115,104, + 95,98,97,115,101,100,95,112,121,99,115,114,226,0,0,0, + 218,17,95,82,65,87,95,77,65,71,73,67,95,78,85,77, + 66,69,82,114,227,0,0,0,114,224,0,0,0,114,207,0, + 0,0,114,215,0,0,0,114,237,0,0,0,114,188,0,0, + 0,114,216,0,0,0,114,87,0,0,0,114,134,0,0,0, + 114,104,1,0,0,114,20,0,0,0,218,19,100,111,110,116, + 95,119,114,105,116,101,95,98,121,116,101,99,111,100,101,114, + 246,0,0,0,114,243,0,0,0,114,7,0,0,0,114,95, + 1,0,0,41,15,114,189,0,0,0,114,42,1,0,0,114, + 176,0,0,0,114,222,0,0,0,114,254,0,0,0,114,226, + 0,0,0,218,10,104,97,115,104,95,98,97,115,101,100,218, + 12,99,104,101,99,107,95,115,111,117,114,99,101,114,173,0, + 0,0,218,2,115,116,114,48,0,0,0,114,217,0,0,0, + 114,21,0,0,0,218,10,98,121,116,101,115,95,100,97,116, + 97,218,11,99,111,100,101,95,111,98,106,101,99,116,115,15, + 0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,114,10,0,0,0,114,76,1,0,0,122,21,83,111, + 117,114,99,101,76,111,97,100,101,114,46,103,101,116,95,99, + 111,100,101,38,4,0,0,115,147,2,0,0,128,0,240,14, + 0,23,27,215,22,39,209,22,39,168,8,211,22,49,136,11, + 216,23,27,136,12,216,23,27,136,12,216,22,26,136,11,216, + 21,26,136,10,216,23,27,136,12,240,2,51,9,74,1,220, + 28,45,168,107,211,28,58,136,77,240,8,46,13,74,1,216, + 21,25,151,95,145,95,160,91,211,21,49,144,2,244,8,0, + 32,35,160,50,160,103,161,59,211,31,47,144,12,240,2,40, + 17,74,1,216,27,31,159,61,153,61,168,29,211,27,55,144, + 68,240,10,0,33,41,216,32,45,241,5,3,35,22,144,75, + 240,8,31,21,74,1,220,32,45,168,100,176,72,184,107,211, + 32,74,152,5,220,37,47,176,4,211,37,53,176,98,176,99, + 208,37,58,152,10,216,37,42,168,83,161,91,176,65,209,37, + 53,152,10,217,27,37,216,43,48,176,52,169,60,184,49,209, + 43,60,152,76,220,32,36,215,32,58,209,32,58,184,103,210, + 32,69,217,33,45,220,33,37,215,33,59,209,33,59,184,120, + 210,33,71,216,47,51,175,125,169,125,184,91,211,47,73,160, + 12,220,46,50,215,46,62,209,46,62,220,36,53,216,36,48, + 243,5,3,47,34,160,11,244,8,0,33,51,176,52,184,27, + 192,104,216,51,62,245,3,1,33,64,1,244,6,0,29,52, + 216,32,36,216,32,44,216,32,34,160,54,161,10,216,32,40, + 216,32,43,244,11,6,29,30,244,20,0,25,35,215,24,51, + 209,24,51,176,79,192,93,216,52,63,244,3,1,25,65,1, + 228,31,48,176,26,192,40,216,63,76,216,61,72,244,5,2, + 32,74,1,240,0,2,25,74,1,248,244,11,0,29,40,172, + 24,208,27,50,242,0,1,21,29,217,24,28,240,3,1,21, + 29,251,244,63,0,24,31,242,0,1,17,25,217,20,24,240, + 3,1,17,25,251,244,13,0,20,27,242,0,1,13,21,217, + 16,20,240,3,1,13,21,251,244,11,0,16,35,242,0,1, + 9,33,216,28,32,138,77,240,3,1,9,33,250,240,100,1, + 0,12,24,208,11,31,216,27,31,159,61,153,61,168,27,211, + 27,53,136,76,216,22,26,215,22,41,209,22,41,168,44,184, + 11,211,22,68,136,11,220,8,18,215,8,35,209,8,35,208, + 36,57,184,59,212,8,71,220,16,19,215,16,39,210,16,39, + 168,77,208,44,69,216,16,28,208,16,40,217,15,25,216,19, + 30,208,19,38,220,34,38,215,34,50,209,34,50,212,51,68, + 216,51,63,243,3,1,35,65,1,144,75,228,23,40,168,27, + 176,107,192,60,211,23,80,145,4,228,23,45,168,107,184,60, + 220,46,49,176,44,211,46,63,243,3,1,24,65,1,144,4, + 240,4,3,13,21,216,16,20,215,16,36,209,16,36,160,91, + 176,45,192,20,212,16,70,240,6,0,16,27,208,8,26,248, + 244,5,0,20,39,242,0,1,13,21,216,16,20,216,15,26, + 208,8,26,240,5,1,13,21,250,224,15,26,208,8,26,115, + 89,0,0,0,157,11,69,26,0,169,17,69,11,0,193,9, + 17,68,60,0,193,32,66,33,68,39,0,196,39,15,68,57, + 3,196,56,1,68,57,3,196,60,9,69,8,3,197,7,1, + 69,8,3,197,11,9,69,23,3,197,22,1,69,23,3,197, + 26,11,69,40,3,197,39,1,69,40,3,199,61,19,72,18, + 0,200,18,9,72,31,3,200,30,1,72,31,3,78,41,10, + 114,196,0,0,0,114,195,0,0,0,114,197,0,0,0,114, + 89,1,0,0,114,91,1,0,0,114,95,1,0,0,114,93, + 1,0,0,114,99,1,0,0,114,104,1,0,0,114,76,1, + 0,0,114,30,0,0,0,114,28,0,0,0,114,10,0,0, + 0,114,86,1,0,0,114,86,1,0,0,235,3,0,0,115, + 44,0,0,0,132,0,242,4,6,5,22,242,16,12,5,48, + 242,28,8,5,47,242,20,4,5,12,242,14,8,5,43,240, + 20,0,55,57,244,0,6,5,79,1,243,16,83,1,5,27, + 114,28,0,0,0,114,86,1,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,243, + 100,0,0,0,135,0,151,0,101,0,90,1,100,0,90,2, + 100,1,90,3,100,2,132,0,90,4,100,3,132,0,90,5, + 100,4,132,0,90,6,101,7,136,0,102,1,100,5,132,8, + 171,0,0,0,0,0,0,0,90,8,101,7,100,6,132,0, + 171,0,0,0,0,0,0,0,90,9,100,7,132,0,90,10, + 101,7,100,8,132,0,171,0,0,0,0,0,0,0,90,11, + 136,0,120,1,90,12,83,0,41,9,218,10,70,105,108,101, + 76,111,97,100,101,114,122,103,66,97,115,101,32,102,105,108, + 101,32,108,111,97,100,101,114,32,99,108,97,115,115,32,119, + 104,105,99,104,32,105,109,112,108,101,109,101,110,116,115,32, + 116,104,101,32,108,111,97,100,101,114,32,112,114,111,116,111, + 99,111,108,32,109,101,116,104,111,100,115,32,116,104,97,116, + 10,32,32,32,32,114,101,113,117,105,114,101,32,102,105,108, + 101,32,115,121,115,116,101,109,32,117,115,97,103,101,46,99, + 3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,243,32,0,0,0,151,0,124,1,124,0,95, + 0,0,0,0,0,0,0,0,0,124,2,124,0,95,1,0, + 0,0,0,0,0,0,0,121,1,41,2,122,75,67,97,99, + 104,101,32,116,104,101,32,109,111,100,117,108,101,32,110,97, + 109,101,32,97,110,100,32,116,104,101,32,112,97,116,104,32, + 116,111,32,116,104,101,32,102,105,108,101,32,102,111,117,110, + 100,32,98,121,32,116,104,101,10,32,32,32,32,32,32,32, + 32,102,105,110,100,101,114,46,78,114,229,0,0,0,41,3, + 114,189,0,0,0,114,42,1,0,0,114,68,0,0,0,115, + 3,0,0,0,32,32,32,114,10,0,0,0,114,67,1,0, + 0,122,19,70,105,108,101,76,111,97,100,101,114,46,95,95, + 105,110,105,116,95,95,129,4,0,0,115,18,0,0,0,128, + 0,240,6,0,21,29,136,4,140,9,216,20,24,136,4,141, + 9,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,3,0,0,0,243,106,0,0,0, + 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,1,106,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,107,40, + 0,0,120,1,114,25,1,0,124,0,106,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,116,1,0,0, - 0,0,0,0,0,0,124,0,106,4,0,0,0,0,0,0, + 0,0,0,0,107,40,0,0,83,0,114,77,0,0,0,169, + 2,218,9,95,95,99,108,97,115,115,95,95,114,202,0,0, + 0,169,2,114,189,0,0,0,218,5,111,116,104,101,114,115, + 2,0,0,0,32,32,114,10,0,0,0,218,6,95,95,101, + 113,95,95,122,17,70,105,108,101,76,111,97,100,101,114,46, + 95,95,101,113,95,95,135,4,0,0,243,44,0,0,0,128, + 0,216,16,20,151,14,145,14,160,37,167,47,161,47,209,16, + 49,242,0,1,17,48,216,16,20,151,13,145,13,160,21,167, + 30,161,30,209,16,47,240,3,1,9,49,114,28,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,88,0,0,0,151,0,116,1,0,0, + 0,0,0,0,0,0,124,0,106,2,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,122,12,0,0,83,0,114,77,0,0,0,169, - 3,218,4,104,97,115,104,114,187,0,0,0,114,68,0,0, - 0,169,1,114,189,0,0,0,115,1,0,0,0,32,114,10, - 0,0,0,218,8,95,95,104,97,115,104,95,95,122,19,70, - 105,108,101,76,111,97,100,101,114,46,95,95,104,97,115,104, - 95,95,139,4,0,0,243,29,0,0,0,128,0,220,15,19, - 144,68,151,73,145,73,139,127,164,20,160,100,167,105,161,105, - 163,31,209,15,48,208,8,48,114,28,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,42,0,0,0,149,1,151,0,116,0,0,0,0, - 0,0,0,0,0,116,2,0,0,0,0,0,0,0,0,124, - 0,141,11,0,0,124,1,171,1,0,0,0,0,0,0,83, - 0,41,1,122,100,76,111,97,100,32,97,32,109,111,100,117, - 108,101,32,102,114,111,109,32,97,32,102,105,108,101,46,10, - 10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,101, - 116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,116, - 101,100,46,32,32,85,115,101,32,101,120,101,99,95,109,111, - 100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,10, - 10,32,32,32,32,32,32,32,32,41,3,218,5,115,117,112, - 101,114,114,119,1,0,0,114,84,1,0,0,41,3,114,189, - 0,0,0,114,42,1,0,0,114,123,1,0,0,115,3,0, - 0,0,32,32,128,114,10,0,0,0,114,84,1,0,0,122, - 22,70,105,108,101,76,111,97,100,101,114,46,108,111,97,100, - 95,109,111,100,117,108,101,142,4,0,0,115,23,0,0,0, - 248,128,0,244,20,0,16,21,148,90,160,20,209,15,50,176, - 56,211,15,60,208,8,60,114,28,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0, - 0,243,26,0,0,0,151,0,124,0,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0, - 169,1,122,58,82,101,116,117,114,110,32,116,104,101,32,112, - 97,116,104,32,116,111,32,116,104,101,32,115,111,117,114,99, - 101,32,102,105,108,101,32,97,115,32,102,111,117,110,100,32, - 98,121,32,116,104,101,32,102,105,110,100,101,114,46,114,84, - 0,0,0,114,83,1,0,0,115,2,0,0,0,32,32,114, - 10,0,0,0,114,7,1,0,0,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,154,4,0,0,243,14,0,0,0,128,0,240,6,0, - 16,20,143,121,137,121,208,8,24,114,28,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, - 0,0,0,243,46,1,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,116,2,0,0,0,0,0,0,0,0, - 116,4,0,0,0,0,0,0,0,0,102,2,171,2,0,0, - 0,0,0,0,114,56,116,7,0,0,0,0,0,0,0,0, - 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,116,11,0,0,0,0,0,0,0,0,124,1, - 171,1,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 53,0,125,2,124,2,106,13,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,99,2,100,1,100,1,100,1,171,2,0,0,0,0, - 0,0,1,0,83,0,116,7,0,0,0,0,0,0,0,0, - 106,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,100,2,171,2,0,0,0,0,0,0, - 53,0,125,2,124,2,106,13,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,99,2,100,1,100,1,100,1,171,2,0,0,0,0, - 0,0,1,0,83,0,35,0,49,0,115,1,119,2,1,0, - 89,0,1,0,1,0,121,1,120,3,89,0,119,1,35,0, - 49,0,115,1,119,2,1,0,89,0,1,0,1,0,121,1, - 120,3,89,0,119,1,41,3,122,39,82,101,116,117,114,110, - 32,116,104,101,32,100,97,116,97,32,102,114,111,109,32,112, - 97,116,104,32,97,115,32,114,97,119,32,98,121,116,101,115, - 46,78,218,1,114,41,8,114,232,0,0,0,114,86,1,0, - 0,218,19,69,120,116,101,110,115,105,111,110,70,105,108,101, - 76,111,97,100,101,114,114,114,0,0,0,218,9,111,112,101, - 110,95,99,111,100,101,114,136,0,0,0,218,4,114,101,97, - 100,114,115,0,0,0,41,3,114,189,0,0,0,114,68,0, - 0,0,114,120,0,0,0,115,3,0,0,0,32,32,32,114, - 10,0,0,0,114,98,1,0,0,122,19,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,100,97,116,97,159,4, - 0,0,115,124,0,0,0,128,0,228,11,21,144,100,156,92, - 212,43,62,208,28,63,212,11,64,220,17,20,151,29,145,29, - 156,115,160,52,155,121,211,17,41,240,0,1,13,35,168,84, - 216,23,27,151,121,145,121,147,123,247,3,1,13,35,241,0, - 1,13,35,244,6,0,18,21,151,26,145,26,152,68,160,35, - 211,17,38,240,0,1,13,35,168,36,216,23,27,151,121,145, - 121,147,123,247,3,1,13,35,241,0,1,13,35,247,7,1, - 13,35,240,0,1,13,35,250,247,6,1,13,35,240,0,1, - 13,35,250,115,23,0,0,0,181,16,65,63,3,193,37,16, - 66,11,3,193,63,5,66,8,7,194,11,5,66,20,7,99, - 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,30,0,0,0,151,0,100,1,100,2,108, - 0,109,1,125,2,1,0,2,0,124,2,124,0,171,1,0, - 0,0,0,0,0,83,0,41,3,78,114,1,0,0,0,41, - 1,218,10,70,105,108,101,82,101,97,100,101,114,41,2,218, - 17,105,109,112,111,114,116,108,105,98,46,114,101,97,100,101, - 114,115,114,145,1,0,0,41,3,114,189,0,0,0,114,79, - 1,0,0,114,145,1,0,0,115,3,0,0,0,32,32,32, - 114,10,0,0,0,218,19,103,101,116,95,114,101,115,111,117, - 114,99,101,95,114,101,97,100,101,114,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,168,4,0,0,115,16, - 0,0,0,128,0,229,8,48,217,15,25,152,36,211,15,31, - 208,8,31,114,28,0,0,0,41,13,114,196,0,0,0,114, - 195,0,0,0,114,197,0,0,0,114,198,0,0,0,114,67, - 1,0,0,114,126,1,0,0,114,132,1,0,0,114,208,0, - 0,0,114,84,1,0,0,114,7,1,0,0,114,98,1,0, - 0,114,147,1,0,0,218,13,95,95,99,108,97,115,115,99, - 101,108,108,95,95,41,1,114,123,1,0,0,115,1,0,0, - 0,64,114,10,0,0,0,114,119,1,0,0,114,119,1,0, - 0,124,4,0,0,115,88,0,0,0,248,132,0,241,4,1, - 5,34,242,6,4,5,25,242,12,2,5,49,242,8,1,5, - 49,240,6,0,6,17,243,2,9,5,61,243,3,0,6,17, - 240,2,9,5,61,240,22,0,6,17,241,2,2,5,25,243, - 3,0,6,17,240,2,2,5,25,242,8,7,5,35,240,18, - 0,6,17,241,2,2,5,32,243,3,0,6,17,244,2,2, - 5,32,114,28,0,0,0,114,119,1,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, - 0,243,40,0,0,0,151,0,101,0,90,1,100,0,90,2, - 100,1,90,3,100,2,132,0,90,4,100,3,132,0,90,5, - 100,4,100,5,156,1,100,6,132,2,90,6,121,7,41,8, - 218,16,83,111,117,114,99,101,70,105,108,101,76,111,97,100, - 101,114,122,62,67,111,110,99,114,101,116,101,32,105,109,112, - 108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,83, - 111,117,114,99,101,76,111,97,100,101,114,32,117,115,105,110, - 103,32,116,104,101,32,102,105,108,101,32,115,121,115,116,101, - 109,46,99,2,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,74,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,125,2,124,2,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,106,4,0,0, + 0,0,0,0,116,1,0,0,0,0,0,0,0,0,124,0, + 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,171,1,0,0,0,0,0,0,122,12,0,0, + 83,0,114,77,0,0,0,169,3,218,4,104,97,115,104,114, + 187,0,0,0,114,68,0,0,0,169,1,114,189,0,0,0, + 115,1,0,0,0,32,114,10,0,0,0,218,8,95,95,104, + 97,115,104,95,95,122,19,70,105,108,101,76,111,97,100,101, + 114,46,95,95,104,97,115,104,95,95,139,4,0,0,243,29, + 0,0,0,128,0,220,15,19,144,68,151,73,145,73,139,127, + 164,20,160,100,167,105,161,105,163,31,209,15,48,208,8,48, + 114,28,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,3,0,0,0,243,42,0,0,0,149, + 1,151,0,116,0,0,0,0,0,0,0,0,0,116,2,0, + 0,0,0,0,0,0,0,124,0,141,11,0,0,124,1,171, + 1,0,0,0,0,0,0,83,0,41,1,122,100,76,111,97, + 100,32,97,32,109,111,100,117,108,101,32,102,114,111,109,32, + 97,32,102,105,108,101,46,10,10,32,32,32,32,32,32,32, + 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32, + 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101, + 32,101,120,101,99,95,109,111,100,117,108,101,40,41,32,105, + 110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,32, + 32,41,3,218,5,115,117,112,101,114,114,119,1,0,0,114, + 84,1,0,0,41,3,114,189,0,0,0,114,42,1,0,0, + 114,123,1,0,0,115,3,0,0,0,32,32,128,114,10,0, + 0,0,114,84,1,0,0,122,22,70,105,108,101,76,111,97, + 100,101,114,46,108,111,97,100,95,109,111,100,117,108,101,142, + 4,0,0,115,23,0,0,0,248,128,0,244,20,0,16,21, + 148,90,160,20,209,15,50,176,56,211,15,60,208,8,60,114, + 28,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,26,0,0,0,151,0, + 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,0,169,1,122,58,82,101,116,117, + 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,116, + 104,101,32,115,111,117,114,99,101,32,102,105,108,101,32,97, + 115,32,102,111,117,110,100,32,98,121,32,116,104,101,32,102, + 105,110,100,101,114,46,114,84,0,0,0,114,83,1,0,0, + 115,2,0,0,0,32,32,114,10,0,0,0,114,7,1,0, + 0,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,154,4,0,0,243,14, + 0,0,0,128,0,240,6,0,16,20,143,121,137,121,208,8, + 24,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,3,0,0,0,243,46,1,0,0, + 151,0,116,1,0,0,0,0,0,0,0,0,124,0,116,2, + 0,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0, + 0,0,102,2,171,2,0,0,0,0,0,0,114,56,116,7, + 0,0,0,0,0,0,0,0,106,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,116,11,0,0, + 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, + 171,1,0,0,0,0,0,0,53,0,125,2,124,2,106,13, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,1,156,2,83,0,41,2,122,33,82,101,116,117,114,110, - 32,116,104,101,32,109,101,116,97,100,97,116,97,32,102,111, - 114,32,116,104,101,32,112,97,116,104,46,41,2,114,242,0, - 0,0,114,108,1,0,0,41,3,114,85,0,0,0,218,8, - 115,116,95,109,116,105,109,101,218,7,115,116,95,115,105,122, - 101,41,3,114,189,0,0,0,114,68,0,0,0,114,115,1, - 0,0,115,3,0,0,0,32,32,32,114,10,0,0,0,114, - 91,1,0,0,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,178,4,0,0,115,31,0,0,0,128,0,228,13,23,152, - 4,211,13,29,136,2,216,25,27,159,27,153,27,168,98,175, - 106,169,106,209,15,57,208,8,57,114,28,0,0,0,99,4, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, - 0,0,0,243,64,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,125,4, - 124,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,124,3,124,4,172,1,171,3, - 0,0,0,0,0,0,83,0,41,2,78,169,1,218,5,95, - 109,111,100,101,41,2,114,183,0,0,0,114,93,1,0,0, - 41,5,114,189,0,0,0,114,176,0,0,0,114,173,0,0, - 0,114,48,0,0,0,114,89,0,0,0,115,5,0,0,0, - 32,32,32,32,32,114,10,0,0,0,114,95,1,0,0,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,183,4,0,0,115,33,0,0,0,128,0,228,15,25,152, - 43,211,15,38,136,4,216,15,19,143,125,137,125,152,93,168, - 68,184,4,136,125,211,15,61,208,8,61,114,28,0,0,0, - 114,107,0,0,0,114,155,1,0,0,99,3,0,0,0,0, - 0,0,0,1,0,0,0,7,0,0,0,3,0,0,0,243, - 14,2,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,92,2,0,0,125,4, - 125,5,103,0,125,6,124,4,114,56,116,3,0,0,0,0, - 0,0,0,0,124,4,171,1,0,0,0,0,0,0,115,45, - 116,1,0,0,0,0,0,0,0,0,124,4,171,1,0,0, - 0,0,0,0,92,2,0,0,125,4,125,7,124,6,106,5, + 0,0,171,0,0,0,0,0,0,0,99,2,100,1,100,1, + 100,1,171,2,0,0,0,0,0,0,1,0,83,0,116,7, + 0,0,0,0,0,0,0,0,106,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,1,100,2, + 171,2,0,0,0,0,0,0,53,0,125,2,124,2,106,13, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,7,171,1,0,0,0,0,0,0,1,0,124,4, - 114,12,116,3,0,0,0,0,0,0,0,0,124,4,171,1, - 0,0,0,0,0,0,115,1,140,45,116,7,0,0,0,0, - 0,0,0,0,124,6,171,1,0,0,0,0,0,0,68,0, - 93,36,0,0,125,7,116,9,0,0,0,0,0,0,0,0, - 124,4,124,7,171,2,0,0,0,0,0,0,125,4,9,0, - 116,11,0,0,0,0,0,0,0,0,106,12,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,4, - 171,1,0,0,0,0,0,0,1,0,140,38,4,0,9,0, - 116,23,0,0,0,0,0,0,0,0,124,1,124,2,124,3, - 171,3,0,0,0,0,0,0,1,0,116,18,0,0,0,0, - 0,0,0,0,106,21,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,3,124,1,171,2,0,0, - 0,0,0,0,1,0,121,2,35,0,116,14,0,0,0,0, - 0,0,0,0,36,0,114,3,1,0,89,0,140,87,116,16, - 0,0,0,0,0,0,0,0,36,0,114,34,125,8,116,18, - 0,0,0,0,0,0,0,0,106,21,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,1,124,4, - 124,8,171,3,0,0,0,0,0,0,1,0,89,0,100,2, - 125,8,126,8,1,0,121,2,100,2,125,8,126,8,119,1, - 119,0,120,3,89,0,119,1,35,0,116,16,0,0,0,0, - 0,0,0,0,36,0,114,33,125,8,116,18,0,0,0,0, - 0,0,0,0,106,21,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,1,124,1,124,8,171,3, - 0,0,0,0,0,0,1,0,89,0,100,2,125,8,126,8, - 121,2,100,2,125,8,126,8,119,1,119,0,120,3,89,0, - 119,1,41,4,122,27,87,114,105,116,101,32,98,121,116,101, - 115,32,100,97,116,97,32,116,111,32,97,32,102,105,108,101, - 46,122,27,99,111,117,108,100,32,110,111,116,32,99,114,101, - 97,116,101,32,123,33,114,125,58,32,123,33,114,125,78,122, - 12,99,114,101,97,116,101,100,32,123,33,114,125,41,12,114, - 81,0,0,0,114,96,0,0,0,114,64,0,0,0,218,8, - 114,101,118,101,114,115,101,100,114,72,0,0,0,114,23,0, - 0,0,218,5,109,107,100,105,114,218,15,70,105,108,101,69, - 120,105,115,116,115,69,114,114,111,114,114,87,0,0,0,114, - 207,0,0,0,114,215,0,0,0,114,121,0,0,0,41,9, - 114,189,0,0,0,114,68,0,0,0,114,48,0,0,0,114, - 156,1,0,0,218,6,112,97,114,101,110,116,114,151,0,0, - 0,114,66,0,0,0,114,74,0,0,0,114,31,1,0,0, - 115,9,0,0,0,32,32,32,32,32,32,32,32,32,114,10, - 0,0,0,114,93,1,0,0,122,25,83,111,117,114,99,101, - 70,105,108,101,76,111,97,100,101,114,46,115,101,116,95,100, - 97,116,97,188,4,0,0,115,0,1,0,0,128,0,228,27, - 38,160,116,211,27,44,209,8,24,136,6,144,8,216,21,23, - 136,10,225,14,20,156,91,168,22,212,29,48,220,27,38,160, - 118,211,27,46,137,76,136,70,144,68,216,12,22,215,12,29, - 209,12,29,152,100,212,12,35,241,5,0,15,21,156,91,168, - 22,213,29,48,244,8,0,21,29,152,90,211,20,40,242,0, - 12,9,23,136,68,220,21,31,160,6,168,4,211,21,45,136, - 70,240,2,10,13,23,220,16,19,151,9,145,9,152,38,213, - 16,33,240,7,12,9,23,240,26,6,9,45,220,12,25,152, - 36,160,4,160,101,212,12,44,220,12,22,215,12,39,209,12, - 39,168,14,184,4,213,12,61,248,244,23,0,20,35,242,0, - 2,13,25,225,16,24,220,19,26,242,0,5,13,23,244,6, - 0,17,27,215,16,43,209,16,43,208,44,73,216,44,50,176, - 67,244,3,1,17,57,229,16,22,251,240,11,5,13,23,251, - 244,18,0,16,23,242,0,3,9,45,228,12,22,215,12,39, - 209,12,39,208,40,69,192,116,216,40,43,247,3,1,13,45, - 241,0,1,13,45,251,240,5,3,9,45,250,115,54,0,0, - 0,193,38,21,66,34,2,193,62,35,67,26,0,194,34,9, - 67,23,5,194,45,8,67,23,5,194,53,23,67,18,5,195, - 18,5,67,23,5,195,26,9,68,4,3,195,35,23,67,63, - 3,195,63,5,68,4,3,78,41,7,114,196,0,0,0,114, - 195,0,0,0,114,197,0,0,0,114,198,0,0,0,114,91, - 1,0,0,114,95,1,0,0,114,93,1,0,0,114,30,0, - 0,0,114,28,0,0,0,114,10,0,0,0,114,150,1,0, - 0,114,150,1,0,0,174,4,0,0,115,25,0,0,0,132, - 0,225,4,72,242,4,3,5,58,242,10,3,5,62,240,10, - 0,45,50,245,0,28,5,45,114,28,0,0,0,114,150,1, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,0,0,0,0,243,28,0,0,0,151,0,101,0, - 90,1,100,0,90,2,100,1,90,3,100,2,132,0,90,4, - 100,3,132,0,90,5,121,4,41,5,218,20,83,111,117,114, - 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114, - 122,45,76,111,97,100,101,114,32,119,104,105,99,104,32,104, - 97,110,100,108,101,115,32,115,111,117,114,99,101,108,101,115, - 115,32,102,105,108,101,32,105,109,112,111,114,116,115,46,99, - 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,158,0,0,0,151,0,124,0,106,1,0, + 0,0,171,0,0,0,0,0,0,0,99,2,100,1,100,1, + 100,1,171,2,0,0,0,0,0,0,1,0,83,0,35,0, + 49,0,115,1,119,2,1,0,89,0,1,0,1,0,121,1, + 120,3,89,0,119,1,35,0,49,0,115,1,119,2,1,0, + 89,0,1,0,1,0,121,1,120,3,89,0,119,1,41,3, + 122,39,82,101,116,117,114,110,32,116,104,101,32,100,97,116, + 97,32,102,114,111,109,32,112,97,116,104,32,97,115,32,114, + 97,119,32,98,121,116,101,115,46,78,218,1,114,41,8,114, + 232,0,0,0,114,86,1,0,0,218,19,69,120,116,101,110, + 115,105,111,110,70,105,108,101,76,111,97,100,101,114,114,114, + 0,0,0,218,9,111,112,101,110,95,99,111,100,101,114,136, + 0,0,0,218,4,114,101,97,100,114,115,0,0,0,41,3, + 114,189,0,0,0,114,68,0,0,0,114,120,0,0,0,115, + 3,0,0,0,32,32,32,114,10,0,0,0,114,98,1,0, + 0,122,19,70,105,108,101,76,111,97,100,101,114,46,103,101, + 116,95,100,97,116,97,159,4,0,0,115,124,0,0,0,128, + 0,228,11,21,144,100,156,92,212,43,62,208,28,63,212,11, + 64,220,17,20,151,29,145,29,156,115,160,52,155,121,211,17, + 41,240,0,1,13,35,168,84,216,23,27,151,121,145,121,147, + 123,247,3,1,13,35,241,0,1,13,35,244,6,0,18,21, + 151,26,145,26,152,68,160,35,211,17,38,240,0,1,13,35, + 168,36,216,23,27,151,121,145,121,147,123,247,3,1,13,35, + 241,0,1,13,35,247,7,1,13,35,240,0,1,13,35,250, + 247,6,1,13,35,240,0,1,13,35,250,115,23,0,0,0, + 181,16,65,63,3,193,37,16,66,11,3,193,63,5,66,8, + 7,194,11,5,66,20,7,99,2,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,30,0,0, + 0,151,0,100,1,100,2,108,0,109,1,125,2,1,0,2, + 0,124,2,124,0,171,1,0,0,0,0,0,0,83,0,41, + 3,78,114,1,0,0,0,41,1,218,10,70,105,108,101,82, + 101,97,100,101,114,41,2,218,17,105,109,112,111,114,116,108, + 105,98,46,114,101,97,100,101,114,115,114,145,1,0,0,41, + 3,114,189,0,0,0,114,79,1,0,0,114,145,1,0,0, + 115,3,0,0,0,32,32,32,114,10,0,0,0,218,19,103, + 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, + 101,114,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,168,4,0,0,115,16,0,0,0,128,0,229,8,48, + 217,15,25,152,36,211,15,31,208,8,31,114,28,0,0,0, + 41,13,114,196,0,0,0,114,195,0,0,0,114,197,0,0, + 0,114,198,0,0,0,114,67,1,0,0,114,126,1,0,0, + 114,132,1,0,0,114,208,0,0,0,114,84,1,0,0,114, + 7,1,0,0,114,98,1,0,0,114,147,1,0,0,218,13, + 95,95,99,108,97,115,115,99,101,108,108,95,95,41,1,114, + 123,1,0,0,115,1,0,0,0,64,114,10,0,0,0,114, + 119,1,0,0,114,119,1,0,0,124,4,0,0,115,88,0, + 0,0,248,132,0,241,4,1,5,34,242,6,4,5,25,242, + 12,2,5,49,242,8,1,5,49,240,6,0,6,17,243,2, + 9,5,61,243,3,0,6,17,240,2,9,5,61,240,22,0, + 6,17,241,2,2,5,25,243,3,0,6,17,240,2,2,5, + 25,242,8,7,5,35,240,18,0,6,17,241,2,2,5,32, + 243,3,0,6,17,244,2,2,5,32,114,28,0,0,0,114, + 119,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,0,0,0,0,243,40,0,0,0,151,0, + 101,0,90,1,100,0,90,2,100,1,90,3,100,2,132,0, + 90,4,100,3,132,0,90,5,100,4,100,5,156,1,100,6, + 132,2,90,6,121,7,41,8,218,16,83,111,117,114,99,101, + 70,105,108,101,76,111,97,100,101,114,122,62,67,111,110,99, + 114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116, + 105,111,110,32,111,102,32,83,111,117,114,99,101,76,111,97, + 100,101,114,32,117,115,105,110,103,32,116,104,101,32,102,105, + 108,101,32,115,121,115,116,101,109,46,99,2,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 74,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, + 124,1,171,1,0,0,0,0,0,0,125,2,124,2,106,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,125,2,124,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,125,3,124, - 1,124,2,100,1,156,2,125,4,116,5,0,0,0,0,0, - 0,0,0,124,3,124,1,124,4,171,3,0,0,0,0,0, - 0,1,0,116,7,0,0,0,0,0,0,0,0,116,9,0, - 0,0,0,0,0,0,0,124,3,171,1,0,0,0,0,0, - 0,100,2,100,0,26,0,124,1,124,2,172,3,171,3,0, - 0,0,0,0,0,83,0,41,4,78,114,229,0,0,0,114, - 211,0,0,0,41,2,114,187,0,0,0,114,173,0,0,0, - 41,5,114,7,1,0,0,114,98,1,0,0,114,219,0,0, - 0,114,237,0,0,0,114,109,1,0,0,41,5,114,189,0, - 0,0,114,42,1,0,0,114,68,0,0,0,114,48,0,0, - 0,114,217,0,0,0,115,5,0,0,0,32,32,32,32,32, - 114,10,0,0,0,114,76,1,0,0,122,29,83,111,117,114, - 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114, - 46,103,101,116,95,99,111,100,101,223,4,0,0,115,95,0, - 0,0,128,0,216,15,19,215,15,32,209,15,32,160,24,211, - 15,42,136,4,216,15,19,143,125,137,125,152,84,211,15,34, - 136,4,240,8,0,21,29,216,20,24,241,5,3,23,10,136, - 11,244,8,0,9,22,144,100,152,72,160,107,212,8,50,220, - 15,32,220,12,22,144,116,211,12,28,152,82,152,83,208,12, - 33,216,17,25,216,26,30,244,7,4,16,10,240,0,4,9, - 10,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,243,4,0,0,0, - 151,0,121,1,41,2,122,39,82,101,116,117,114,110,32,78, - 111,110,101,32,97,115,32,116,104,101,114,101,32,105,115,32, - 110,111,32,115,111,117,114,99,101,32,99,111,100,101,46,78, - 114,30,0,0,0,114,83,1,0,0,115,2,0,0,0,32, - 32,114,10,0,0,0,114,99,1,0,0,122,31,83,111,117, - 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101, - 114,46,103,101,116,95,115,111,117,114,99,101,239,4,0,0, - 243,5,0,0,0,128,0,224,15,19,114,28,0,0,0,78, - 41,6,114,196,0,0,0,114,195,0,0,0,114,197,0,0, - 0,114,198,0,0,0,114,76,1,0,0,114,99,1,0,0, - 114,30,0,0,0,114,28,0,0,0,114,10,0,0,0,114, - 163,1,0,0,114,163,1,0,0,219,4,0,0,115,15,0, - 0,0,132,0,225,4,55,242,4,14,5,10,243,32,2,5, - 20,114,28,0,0,0,114,163,1,0,0,99,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, - 243,80,0,0,0,151,0,101,0,90,1,100,0,90,2,100, - 1,90,3,100,2,132,0,90,4,100,3,132,0,90,5,100, - 4,132,0,90,6,100,5,132,0,90,7,100,6,132,0,90, - 8,100,7,132,0,90,9,100,8,132,0,90,10,100,9,132, - 0,90,11,101,12,100,10,132,0,171,0,0,0,0,0,0, - 0,90,13,121,11,41,12,114,141,1,0,0,122,93,76,111, - 97,100,101,114,32,102,111,114,32,101,120,116,101,110,115,105, - 111,110,32,109,111,100,117,108,101,115,46,10,10,32,32,32, - 32,84,104,101,32,99,111,110,115,116,114,117,99,116,111,114, - 32,105,115,32,100,101,115,105,103,110,101,100,32,116,111,32, - 119,111,114,107,32,119,105,116,104,32,70,105,108,101,70,105, - 110,100,101,114,46,10,10,32,32,32,32,99,3,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, - 243,32,0,0,0,151,0,124,1,124,0,95,0,0,0,0, - 0,0,0,0,0,124,2,124,0,95,1,0,0,0,0,0, - 0,0,0,121,0,114,77,0,0,0,114,229,0,0,0,41, - 3,114,189,0,0,0,114,187,0,0,0,114,68,0,0,0, - 115,3,0,0,0,32,32,32,114,10,0,0,0,114,67,1, - 0,0,122,28,69,120,116,101,110,115,105,111,110,70,105,108, - 101,76,111,97,100,101,114,46,95,95,105,110,105,116,95,95, - 252,4,0,0,115,16,0,0,0,128,0,216,20,24,136,4, - 140,9,216,20,24,136,4,141,9,114,28,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,106,0,0,0,151,0,124,0,106,0,0,0, + 0,0,124,2,106,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,100,1,156,2,83,0,41,2, + 122,33,82,101,116,117,114,110,32,116,104,101,32,109,101,116, + 97,100,97,116,97,32,102,111,114,32,116,104,101,32,112,97, + 116,104,46,41,2,114,242,0,0,0,114,108,1,0,0,41, + 3,114,85,0,0,0,218,8,115,116,95,109,116,105,109,101, + 218,7,115,116,95,115,105,122,101,41,3,114,189,0,0,0, + 114,68,0,0,0,114,115,1,0,0,115,3,0,0,0,32, + 32,32,114,10,0,0,0,114,91,1,0,0,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,178,4,0,0,115,31,0, + 0,0,128,0,228,13,23,152,4,211,13,29,136,2,216,25, + 27,159,27,153,27,168,98,175,106,169,106,209,15,57,208,8, + 57,114,28,0,0,0,99,4,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,3,0,0,0,243,64,0,0,0, + 151,0,116,1,0,0,0,0,0,0,0,0,124,1,171,1, + 0,0,0,0,0,0,125,4,124,0,106,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, + 124,3,124,4,172,1,171,3,0,0,0,0,0,0,83,0, + 41,2,78,169,1,218,5,95,109,111,100,101,41,2,114,183, + 0,0,0,114,93,1,0,0,41,5,114,189,0,0,0,114, + 176,0,0,0,114,173,0,0,0,114,48,0,0,0,114,89, + 0,0,0,115,5,0,0,0,32,32,32,32,32,114,10,0, + 0,0,114,95,1,0,0,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,183,4,0,0,115,33,0, + 0,0,128,0,228,15,25,152,43,211,15,38,136,4,216,15, + 19,143,125,137,125,152,93,168,68,184,4,136,125,211,15,61, + 208,8,61,114,28,0,0,0,114,107,0,0,0,114,155,1, + 0,0,99,3,0,0,0,0,0,0,0,1,0,0,0,7, + 0,0,0,3,0,0,0,243,14,2,0,0,151,0,116,1, + 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, + 0,0,92,2,0,0,125,4,125,5,103,0,125,6,124,4, + 114,56,116,3,0,0,0,0,0,0,0,0,124,4,171,1, + 0,0,0,0,0,0,115,45,116,1,0,0,0,0,0,0, + 0,0,124,4,171,1,0,0,0,0,0,0,92,2,0,0, + 125,4,125,7,124,6,106,5,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,7,171,1,0,0, + 0,0,0,0,1,0,124,4,114,12,116,3,0,0,0,0, + 0,0,0,0,124,4,171,1,0,0,0,0,0,0,115,1, + 140,45,116,7,0,0,0,0,0,0,0,0,124,6,171,1, + 0,0,0,0,0,0,68,0,93,36,0,0,125,7,116,9, + 0,0,0,0,0,0,0,0,124,4,124,7,171,2,0,0, + 0,0,0,0,125,4,9,0,116,11,0,0,0,0,0,0, + 0,0,106,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,4,171,1,0,0,0,0,0,0, + 1,0,140,38,4,0,9,0,116,23,0,0,0,0,0,0, + 0,0,124,1,124,2,124,3,171,3,0,0,0,0,0,0, + 1,0,116,18,0,0,0,0,0,0,0,0,106,21,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,107,40,0,0,120,1,114,25,1,0, - 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,107,40,0,0, - 83,0,114,77,0,0,0,114,122,1,0,0,114,124,1,0, - 0,115,2,0,0,0,32,32,114,10,0,0,0,114,126,1, - 0,0,122,26,69,120,116,101,110,115,105,111,110,70,105,108, - 101,76,111,97,100,101,114,46,95,95,101,113,95,95,0,5, - 0,0,114,127,1,0,0,114,28,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,88,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,124,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 116,1,0,0,0,0,0,0,0,0,124,0,106,4,0,0, + 100,3,124,1,171,2,0,0,0,0,0,0,1,0,121,2, + 35,0,116,14,0,0,0,0,0,0,0,0,36,0,114,3, + 1,0,89,0,140,87,116,16,0,0,0,0,0,0,0,0, + 36,0,114,34,125,8,116,18,0,0,0,0,0,0,0,0, + 106,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,100,1,124,4,124,8,171,3,0,0,0,0, + 0,0,1,0,89,0,100,2,125,8,126,8,1,0,121,2, + 100,2,125,8,126,8,119,1,119,0,120,3,89,0,119,1, + 35,0,116,16,0,0,0,0,0,0,0,0,36,0,114,33, + 125,8,116,18,0,0,0,0,0,0,0,0,106,21,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,122,12,0,0,83,0,114,77, - 0,0,0,114,129,1,0,0,114,131,1,0,0,115,1,0, - 0,0,32,114,10,0,0,0,114,132,1,0,0,122,28,69, - 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100, - 101,114,46,95,95,104,97,115,104,95,95,4,5,0,0,114, - 133,1,0,0,114,28,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,164, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,116,4,0,0,0,0,0,0,0,0,106,6,0, + 100,1,124,1,124,8,171,3,0,0,0,0,0,0,1,0, + 89,0,100,2,125,8,126,8,121,2,100,2,125,8,126,8, + 119,1,119,0,120,3,89,0,119,1,41,4,122,27,87,114, + 105,116,101,32,98,121,116,101,115,32,100,97,116,97,32,116, + 111,32,97,32,102,105,108,101,46,122,27,99,111,117,108,100, + 32,110,111,116,32,99,114,101,97,116,101,32,123,33,114,125, + 58,32,123,33,114,125,78,122,12,99,114,101,97,116,101,100, + 32,123,33,114,125,41,12,114,81,0,0,0,114,96,0,0, + 0,114,64,0,0,0,218,8,114,101,118,101,114,115,101,100, + 114,72,0,0,0,114,23,0,0,0,218,5,109,107,100,105, + 114,218,15,70,105,108,101,69,120,105,115,116,115,69,114,114, + 111,114,114,87,0,0,0,114,207,0,0,0,114,215,0,0, + 0,114,121,0,0,0,41,9,114,189,0,0,0,114,68,0, + 0,0,114,48,0,0,0,114,156,1,0,0,218,6,112,97, + 114,101,110,116,114,151,0,0,0,114,66,0,0,0,114,74, + 0,0,0,114,31,1,0,0,115,9,0,0,0,32,32,32, + 32,32,32,32,32,32,114,10,0,0,0,114,93,1,0,0, + 122,25,83,111,117,114,99,101,70,105,108,101,76,111,97,100, + 101,114,46,115,101,116,95,100,97,116,97,188,4,0,0,115, + 0,1,0,0,128,0,228,27,38,160,116,211,27,44,209,8, + 24,136,6,144,8,216,21,23,136,10,225,14,20,156,91,168, + 22,212,29,48,220,27,38,160,118,211,27,46,137,76,136,70, + 144,68,216,12,22,215,12,29,209,12,29,152,100,212,12,35, + 241,5,0,15,21,156,91,168,22,213,29,48,244,8,0,21, + 29,152,90,211,20,40,242,0,12,9,23,136,68,220,21,31, + 160,6,168,4,211,21,45,136,70,240,2,10,13,23,220,16, + 19,151,9,145,9,152,38,213,16,33,240,7,12,9,23,240, + 26,6,9,45,220,12,25,152,36,160,4,160,101,212,12,44, + 220,12,22,215,12,39,209,12,39,168,14,184,4,213,12,61, + 248,244,23,0,20,35,242,0,2,13,25,225,16,24,220,19, + 26,242,0,5,13,23,244,6,0,17,27,215,16,43,209,16, + 43,208,44,73,216,44,50,176,67,244,3,1,17,57,229,16, + 22,251,240,11,5,13,23,251,244,18,0,16,23,242,0,3, + 9,45,228,12,22,215,12,39,209,12,39,208,40,69,192,116, + 216,40,43,247,3,1,13,45,241,0,1,13,45,251,240,5, + 3,9,45,250,115,54,0,0,0,193,38,21,66,34,2,193, + 62,35,67,26,0,194,34,9,67,23,5,194,45,8,67,23, + 5,194,53,23,67,18,5,195,18,5,67,23,5,195,26,9, + 68,4,3,195,35,23,67,63,3,195,63,5,68,4,3,78, + 41,7,114,196,0,0,0,114,195,0,0,0,114,197,0,0, + 0,114,198,0,0,0,114,91,1,0,0,114,95,1,0,0, + 114,93,1,0,0,114,30,0,0,0,114,28,0,0,0,114, + 10,0,0,0,114,150,1,0,0,114,150,1,0,0,174,4, + 0,0,115,25,0,0,0,132,0,225,4,72,242,4,3,5, + 58,242,10,3,5,62,240,10,0,45,50,245,0,28,5,45, + 114,28,0,0,0,114,150,1,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,243, + 28,0,0,0,151,0,101,0,90,1,100,0,90,2,100,1, + 90,3,100,2,132,0,90,4,100,3,132,0,90,5,121,4, + 41,5,218,20,83,111,117,114,99,101,108,101,115,115,70,105, + 108,101,76,111,97,100,101,114,122,45,76,111,97,100,101,114, + 32,119,104,105,99,104,32,104,97,110,100,108,101,115,32,115, + 111,117,114,99,101,108,101,115,115,32,102,105,108,101,32,105, + 109,112,111,114,116,115,46,99,2,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,3,0,0,0,243,158,0,0, + 0,151,0,124,0,106,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, + 0,0,0,125,2,124,0,106,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,2,171,1,0, + 0,0,0,0,0,125,3,124,1,124,2,100,1,156,2,125, + 4,116,5,0,0,0,0,0,0,0,0,124,3,124,1,124, + 4,171,3,0,0,0,0,0,0,1,0,116,7,0,0,0, + 0,0,0,0,0,116,9,0,0,0,0,0,0,0,0,124, + 3,171,1,0,0,0,0,0,0,100,2,100,0,26,0,124, + 1,124,2,172,3,171,3,0,0,0,0,0,0,83,0,41, + 4,78,114,229,0,0,0,114,211,0,0,0,41,2,114,187, + 0,0,0,114,173,0,0,0,41,5,114,7,1,0,0,114, + 98,1,0,0,114,219,0,0,0,114,237,0,0,0,114,109, + 1,0,0,41,5,114,189,0,0,0,114,42,1,0,0,114, + 68,0,0,0,114,48,0,0,0,114,217,0,0,0,115,5, + 0,0,0,32,32,32,32,32,114,10,0,0,0,114,76,1, + 0,0,122,29,83,111,117,114,99,101,108,101,115,115,70,105, + 108,101,76,111,97,100,101,114,46,103,101,116,95,99,111,100, + 101,223,4,0,0,115,95,0,0,0,128,0,216,15,19,215, + 15,32,209,15,32,160,24,211,15,42,136,4,216,15,19,143, + 125,137,125,152,84,211,15,34,136,4,240,8,0,21,29,216, + 20,24,241,5,3,23,10,136,11,244,8,0,9,22,144,100, + 152,72,160,107,212,8,50,220,15,32,220,12,22,144,116,211, + 12,28,152,82,152,83,208,12,33,216,17,25,216,26,30,244, + 7,4,16,10,240,0,4,9,10,114,28,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,243,4,0,0,0,151,0,121,1,41,2,122,39, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,116, + 104,101,114,101,32,105,115,32,110,111,32,115,111,117,114,99, + 101,32,99,111,100,101,46,78,114,30,0,0,0,114,83,1, + 0,0,115,2,0,0,0,32,32,114,10,0,0,0,114,99, + 1,0,0,122,31,83,111,117,114,99,101,108,101,115,115,70, + 105,108,101,76,111,97,100,101,114,46,103,101,116,95,115,111, + 117,114,99,101,239,4,0,0,243,5,0,0,0,128,0,224, + 15,19,114,28,0,0,0,78,41,6,114,196,0,0,0,114, + 195,0,0,0,114,197,0,0,0,114,198,0,0,0,114,76, + 1,0,0,114,99,1,0,0,114,30,0,0,0,114,28,0, + 0,0,114,10,0,0,0,114,163,1,0,0,114,163,1,0, + 0,219,4,0,0,115,15,0,0,0,132,0,225,4,55,242, + 4,14,5,10,243,32,2,5,20,114,28,0,0,0,114,163, + 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,0,0,0,0,243,80,0,0,0,151,0,101, + 0,90,1,100,0,90,2,100,1,90,3,100,2,132,0,90, + 4,100,3,132,0,90,5,100,4,132,0,90,6,100,5,132, + 0,90,7,100,6,132,0,90,8,100,7,132,0,90,9,100, + 8,132,0,90,10,100,9,132,0,90,11,101,12,100,10,132, + 0,171,0,0,0,0,0,0,0,90,13,121,11,41,12,114, + 141,1,0,0,122,93,76,111,97,100,101,114,32,102,111,114, + 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, + 101,115,46,10,10,32,32,32,32,84,104,101,32,99,111,110, + 115,116,114,117,99,116,111,114,32,105,115,32,100,101,115,105, + 103,110,101,100,32,116,111,32,119,111,114,107,32,119,105,116, + 104,32,70,105,108,101,70,105,110,100,101,114,46,10,10,32, + 32,32,32,99,3,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,243,32,0,0,0,151,0,124, + 1,124,0,95,0,0,0,0,0,0,0,0,0,124,2,124, + 0,95,1,0,0,0,0,0,0,0,0,121,0,114,77,0, + 0,0,114,229,0,0,0,41,3,114,189,0,0,0,114,187, + 0,0,0,114,68,0,0,0,115,3,0,0,0,32,32,32, + 114,10,0,0,0,114,67,1,0,0,122,28,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, + 95,95,105,110,105,116,95,95,252,4,0,0,115,16,0,0, + 0,128,0,216,20,24,136,4,140,9,216,20,24,136,4,141, + 9,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,3,0,0,0,243,106,0,0,0, + 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,1,106,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,107,40, + 0,0,120,1,114,25,1,0,124,0,106,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, + 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,107,40,0,0,83,0,114,77,0,0,0,114, + 122,1,0,0,114,124,1,0,0,115,2,0,0,0,32,32, + 114,10,0,0,0,114,126,1,0,0,122,26,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, + 95,95,101,113,95,95,0,5,0,0,114,127,1,0,0,114, + 28,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,88,0,0,0,151,0, + 116,1,0,0,0,0,0,0,0,0,124,0,106,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,171,2,0,0,0,0,0,0,125,2,116,0,0, - 0,0,0,0,0,0,0,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,1,124,1,106, - 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,106,12,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,3,0,0,0,0,0, - 0,1,0,124,2,83,0,41,2,122,40,67,114,101,97,116, - 101,32,97,110,32,117,110,105,110,105,116,105,97,108,105,122, - 101,100,32,101,120,116,101,110,115,105,111,110,32,109,111,100, - 117,108,101,122,38,101,120,116,101,110,115,105,111,110,32,109, - 111,100,117,108,101,32,123,33,114,125,32,108,111,97,100,101, - 100,32,102,114,111,109,32,123,33,114,125,41,7,114,207,0, - 0,0,114,77,1,0,0,114,234,0,0,0,218,14,99,114, - 101,97,116,101,95,100,121,110,97,109,105,99,114,215,0,0, - 0,114,187,0,0,0,114,68,0,0,0,41,3,114,189,0, - 0,0,114,16,1,0,0,114,79,1,0,0,115,3,0,0, - 0,32,32,32,114,10,0,0,0,114,73,1,0,0,122,33, - 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, - 100,101,114,46,99,114,101,97,116,101,95,109,111,100,117,108, - 101,7,5,0,0,115,64,0,0,0,128,0,228,17,27,215, - 17,53,209,17,53,220,12,16,215,12,31,209,12,31,160,20, - 243,3,1,18,39,136,6,228,8,18,215,8,35,209,8,35, - 208,36,76,216,25,29,159,25,153,25,160,68,167,73,161,73, - 244,3,1,9,47,224,15,21,136,13,114,28,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,162,0,0,0,151,0,116,0,0,0,0, - 0,0,0,0,0,106,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,116,4,0,0,0,0,0, - 0,0,0,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,171,2,0,0,0,0,0, - 0,1,0,116,0,0,0,0,0,0,0,0,0,106,9,0, + 171,1,0,0,0,0,0,0,116,1,0,0,0,0,0,0, + 0,0,124,0,106,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, + 122,12,0,0,83,0,114,77,0,0,0,114,129,1,0,0, + 114,131,1,0,0,115,1,0,0,0,32,114,10,0,0,0, + 114,132,1,0,0,122,28,69,120,116,101,110,115,105,111,110, + 70,105,108,101,76,111,97,100,101,114,46,95,95,104,97,115, + 104,95,95,4,5,0,0,114,133,1,0,0,114,28,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,3,0,0,0,243,164,0,0,0,151,0,116,0,0, + 0,0,0,0,0,0,0,106,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,116,4,0,0,0, + 0,0,0,0,0,106,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,1,171,2,0,0,0, + 0,0,0,125,2,116,0,0,0,0,0,0,0,0,0,106, + 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,100,1,124,1,106,10,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,0,106,12,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,1,124,0,106,10,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 3,0,0,0,0,0,0,1,0,121,2,41,3,122,30,73, - 110,105,116,105,97,108,105,122,101,32,97,110,32,101,120,116, - 101,110,115,105,111,110,32,109,111,100,117,108,101,122,40,101, - 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, - 123,33,114,125,32,101,120,101,99,117,116,101,100,32,102,114, - 111,109,32,123,33,114,125,78,41,7,114,207,0,0,0,114, - 77,1,0,0,114,234,0,0,0,218,12,101,120,101,99,95, - 100,121,110,97,109,105,99,114,215,0,0,0,114,187,0,0, - 0,114,68,0,0,0,169,2,114,189,0,0,0,114,79,1, - 0,0,115,2,0,0,0,32,32,114,10,0,0,0,114,80, - 1,0,0,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,15,5,0,0,115,54,0,0,0,128,0,228, - 8,18,215,8,44,209,8,44,172,84,215,45,62,209,45,62, - 192,6,212,8,71,220,8,18,215,8,35,209,8,35,208,36, - 78,216,25,29,159,25,153,25,160,68,167,73,161,73,245,3, - 1,9,47,114,28,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,100,0, - 0,0,135,2,151,0,116,1,0,0,0,0,0,0,0,0, - 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,100,1, - 25,0,0,0,138,2,116,5,0,0,0,0,0,0,0,0, - 136,2,102,1,100,2,132,8,116,6,0,0,0,0,0,0, - 0,0,68,0,171,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,83,0,41,3,122,49,82,101,116,117,114,110, - 32,84,114,117,101,32,105,102,32,116,104,101,32,101,120,116, - 101,110,115,105,111,110,32,109,111,100,117,108,101,32,105,115, - 32,97,32,112,97,99,107,97,103,101,46,114,6,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,51,0,0,0,243,46,0,0,0,149,1,75,0,1,0, - 151,0,124,0,93,12,0,0,125,1,137,2,100,0,124,1, - 122,0,0,0,107,40,0,0,150,1,151,1,1,0,140,14, - 4,0,121,1,173,3,119,1,41,2,114,67,1,0,0,78, - 114,30,0,0,0,41,3,114,8,0,0,0,218,6,115,117, - 102,102,105,120,218,9,102,105,108,101,95,110,97,109,101,115, - 3,0,0,0,32,32,128,114,10,0,0,0,114,11,0,0, - 0,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,24,5,0,0,115,35,0,0,0,248,232,0, - 248,128,0,242,0,1,19,53,216,23,29,240,3,0,20,29, - 160,10,168,86,209,32,51,213,19,51,241,0,1,19,53,249, - 115,4,0,0,0,131,18,21,1,41,4,114,81,0,0,0, - 114,68,0,0,0,218,3,97,110,121,114,61,1,0,0,41, - 3,114,189,0,0,0,114,42,1,0,0,114,179,1,0,0, - 115,3,0,0,0,32,32,64,114,10,0,0,0,114,10,1, - 0,0,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,21,5,0,0,115,48,0,0,0,248,128,0,228,20, - 31,160,4,167,9,161,9,211,20,42,168,49,209,20,45,136, - 9,220,15,18,243,0,1,19,53,220,33,51,244,3,1,19, - 53,243,0,1,16,53,240,0,1,9,53,114,28,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,243,4,0,0,0,151,0,121,1,41,2, - 122,63,82,101,116,117,114,110,32,78,111,110,101,32,97,115, - 32,97,110,32,101,120,116,101,110,115,105,111,110,32,109,111, - 100,117,108,101,32,99,97,110,110,111,116,32,99,114,101,97, - 116,101,32,97,32,99,111,100,101,32,111,98,106,101,99,116, - 46,78,114,30,0,0,0,114,83,1,0,0,115,2,0,0, - 0,32,32,114,10,0,0,0,114,76,1,0,0,122,28,69, - 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100, - 101,114,46,103,101,116,95,99,111,100,101,27,5,0,0,114, - 166,1,0,0,114,28,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,243,4, - 0,0,0,151,0,121,1,41,2,122,53,82,101,116,117,114, - 110,32,78,111,110,101,32,97,115,32,101,120,116,101,110,115, - 105,111,110,32,109,111,100,117,108,101,115,32,104,97,118,101, - 32,110,111,32,115,111,117,114,99,101,32,99,111,100,101,46, - 78,114,30,0,0,0,114,83,1,0,0,115,2,0,0,0, - 32,32,114,10,0,0,0,114,99,1,0,0,122,30,69,120, - 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101, - 114,46,103,101,116,95,115,111,117,114,99,101,31,5,0,0, - 114,166,1,0,0,114,28,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, - 26,0,0,0,151,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,83,0,114,137, - 1,0,0,114,84,0,0,0,114,83,1,0,0,115,2,0, - 0,0,32,32,114,10,0,0,0,114,7,1,0,0,122,32, - 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, - 100,101,114,46,103,101,116,95,102,105,108,101,110,97,109,101, - 35,5,0,0,114,138,1,0,0,114,28,0,0,0,78,41, - 14,114,196,0,0,0,114,195,0,0,0,114,197,0,0,0, - 114,198,0,0,0,114,67,1,0,0,114,126,1,0,0,114, - 132,1,0,0,114,73,1,0,0,114,80,1,0,0,114,10, - 1,0,0,114,76,1,0,0,114,99,1,0,0,114,208,0, - 0,0,114,7,1,0,0,114,30,0,0,0,114,28,0,0, - 0,114,10,0,0,0,114,141,1,0,0,114,141,1,0,0, - 244,4,0,0,115,67,0,0,0,132,0,241,4,4,5,8, - 242,12,2,5,25,242,8,2,5,49,242,8,1,5,49,242, - 6,6,5,22,242,16,4,5,47,242,12,4,5,53,242,12, - 2,5,20,242,8,2,5,20,240,8,0,6,17,241,2,2, - 5,25,243,3,0,6,17,241,2,2,5,25,114,28,0,0, - 0,114,141,1,0,0,99,0,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,0,0,0,0,243,86,0,0,0, - 151,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2, - 90,4,100,3,132,0,90,5,100,4,132,0,90,6,100,5, - 132,0,90,7,100,6,132,0,90,8,100,7,132,0,90,9, - 100,8,132,0,90,10,100,9,132,0,90,11,100,10,132,0, - 90,12,100,11,132,0,90,13,100,12,132,0,90,14,100,13, - 132,0,90,15,121,14,41,15,218,14,95,78,97,109,101,115, - 112,97,99,101,80,97,116,104,97,38,1,0,0,82,101,112, - 114,101,115,101,110,116,115,32,97,32,110,97,109,101,115,112, - 97,99,101,32,112,97,99,107,97,103,101,39,115,32,112,97, - 116,104,46,32,32,73,116,32,117,115,101,115,32,116,104,101, - 32,109,111,100,117,108,101,32,110,97,109,101,10,32,32,32, - 32,116,111,32,102,105,110,100,32,105,116,115,32,112,97,114, - 101,110,116,32,109,111,100,117,108,101,44,32,97,110,100,32, - 102,114,111,109,32,116,104,101,114,101,32,105,116,32,108,111, - 111,107,115,32,117,112,32,116,104,101,32,112,97,114,101,110, - 116,39,115,10,32,32,32,32,95,95,112,97,116,104,95,95, - 46,32,32,87,104,101,110,32,116,104,105,115,32,99,104,97, - 110,103,101,115,44,32,116,104,101,32,109,111,100,117,108,101, - 39,115,32,111,119,110,32,112,97,116,104,32,105,115,32,114, - 101,99,111,109,112,117,116,101,100,44,10,32,32,32,32,117, - 115,105,110,103,32,112,97,116,104,95,102,105,110,100,101,114, - 46,32,32,70,111,114,32,116,111,112,45,108,101,118,101,108, - 32,109,111,100,117,108,101,115,44,32,116,104,101,32,112,97, - 114,101,110,116,32,109,111,100,117,108,101,39,115,32,112,97, - 116,104,10,32,32,32,32,105,115,32,115,121,115,46,112,97, - 116,104,46,114,1,0,0,0,99,4,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,140,0, - 0,0,151,0,124,1,124,0,95,0,0,0,0,0,0,0, - 0,0,124,2,124,0,95,1,0,0,0,0,0,0,0,0, - 116,5,0,0,0,0,0,0,0,0,124,0,106,7,0,0, + 0,171,3,0,0,0,0,0,0,1,0,124,2,83,0,41, + 2,122,40,67,114,101,97,116,101,32,97,110,32,117,110,105, + 110,105,116,105,97,108,105,122,101,100,32,101,120,116,101,110, + 115,105,111,110,32,109,111,100,117,108,101,122,38,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,32,123,33, + 114,125,32,108,111,97,100,101,100,32,102,114,111,109,32,123, + 33,114,125,41,7,114,207,0,0,0,114,77,1,0,0,114, + 234,0,0,0,218,14,99,114,101,97,116,101,95,100,121,110, + 97,109,105,99,114,215,0,0,0,114,187,0,0,0,114,68, + 0,0,0,41,3,114,189,0,0,0,114,16,1,0,0,114, + 79,1,0,0,115,3,0,0,0,32,32,32,114,10,0,0, + 0,114,73,1,0,0,122,33,69,120,116,101,110,115,105,111, + 110,70,105,108,101,76,111,97,100,101,114,46,99,114,101,97, + 116,101,95,109,111,100,117,108,101,7,5,0,0,115,64,0, + 0,0,128,0,228,17,27,215,17,53,209,17,53,220,12,16, + 215,12,31,209,12,31,160,20,243,3,1,18,39,136,6,228, + 8,18,215,8,35,209,8,35,208,36,76,216,25,29,159,25, + 153,25,160,68,167,73,161,73,244,3,1,9,47,224,15,21, + 136,13,114,28,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,3,0,0,0,243,162,0,0, + 0,151,0,116,0,0,0,0,0,0,0,0,0,106,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 124,0,95,4,0,0,0,0,0,0,0,0,124,0,106,10, + 0,116,4,0,0,0,0,0,0,0,0,106,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 1,171,2,0,0,0,0,0,0,1,0,116,0,0,0,0, + 0,0,0,0,0,106,9,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,100,1,124,0,106,10,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,95,6,0,0,0,0,0,0,0,0,124,3, - 124,0,95,7,0,0,0,0,0,0,0,0,121,0,114,77, - 0,0,0,41,8,218,5,95,110,97,109,101,218,5,95,112, - 97,116,104,114,179,0,0,0,218,16,95,103,101,116,95,112, - 97,114,101,110,116,95,112,97,116,104,218,17,95,108,97,115, - 116,95,112,97,114,101,110,116,95,112,97,116,104,218,6,95, - 101,112,111,99,104,218,11,95,108,97,115,116,95,101,112,111, - 99,104,218,12,95,112,97,116,104,95,102,105,110,100,101,114, - 169,4,114,189,0,0,0,114,187,0,0,0,114,68,0,0, - 0,218,11,112,97,116,104,95,102,105,110,100,101,114,115,4, - 0,0,0,32,32,32,32,114,10,0,0,0,114,67,1,0, - 0,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,52,5,0,0,115,58, - 0,0,0,128,0,216,21,25,136,4,140,10,216,21,25,136, - 4,140,10,220,33,38,160,116,215,39,60,209,39,60,211,39, - 62,211,33,63,136,4,212,8,30,216,27,31,159,59,153,59, - 136,4,212,8,24,216,28,39,136,4,213,8,25,114,28,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,84,0,0,0,151,0,124,0, + 0,124,0,106,12,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,171,3,0,0,0,0,0,0,1, + 0,121,2,41,3,122,30,73,110,105,116,105,97,108,105,122, + 101,32,97,110,32,101,120,116,101,110,115,105,111,110,32,109, + 111,100,117,108,101,122,40,101,120,116,101,110,115,105,111,110, + 32,109,111,100,117,108,101,32,123,33,114,125,32,101,120,101, + 99,117,116,101,100,32,102,114,111,109,32,123,33,114,125,78, + 41,7,114,207,0,0,0,114,77,1,0,0,114,234,0,0, + 0,218,12,101,120,101,99,95,100,121,110,97,109,105,99,114, + 215,0,0,0,114,187,0,0,0,114,68,0,0,0,169,2, + 114,189,0,0,0,114,79,1,0,0,115,2,0,0,0,32, + 32,114,10,0,0,0,114,80,1,0,0,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,15,5,0,0, + 115,54,0,0,0,128,0,228,8,18,215,8,44,209,8,44, + 172,84,215,45,62,209,45,62,192,6,212,8,71,220,8,18, + 215,8,35,209,8,35,208,36,78,216,25,29,159,25,153,25, + 160,68,167,73,161,73,245,3,1,9,47,114,28,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,100,0,0,0,135,2,151,0,116,1, + 0,0,0,0,0,0,0,0,124,0,106,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,100,1,25,0,0,0,138,2,116,5, + 0,0,0,0,0,0,0,0,136,2,102,1,100,2,132,8, + 116,6,0,0,0,0,0,0,0,0,68,0,171,0,0,0, + 0,0,0,0,171,1,0,0,0,0,0,0,83,0,41,3, + 122,49,82,101,116,117,114,110,32,84,114,117,101,32,105,102, + 32,116,104,101,32,101,120,116,101,110,115,105,111,110,32,109, + 111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97, + 103,101,46,114,6,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,51,0,0,0,243,46,0, + 0,0,149,1,75,0,1,0,151,0,124,0,93,12,0,0, + 125,1,137,2,100,0,124,1,122,0,0,0,107,40,0,0, + 150,1,151,1,1,0,140,14,4,0,121,1,173,3,119,1, + 41,2,114,67,1,0,0,78,114,30,0,0,0,41,3,114, + 8,0,0,0,218,6,115,117,102,102,105,120,218,9,102,105, + 108,101,95,110,97,109,101,115,3,0,0,0,32,32,128,114, + 10,0,0,0,114,11,0,0,0,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,24,5,0,0, + 115,35,0,0,0,248,232,0,248,128,0,242,0,1,19,53, + 216,23,29,240,3,0,20,29,160,10,168,86,209,32,51,213, + 19,51,241,0,1,19,53,249,115,4,0,0,0,131,18,21, + 1,41,4,114,81,0,0,0,114,68,0,0,0,218,3,97, + 110,121,114,61,1,0,0,41,3,114,189,0,0,0,114,42, + 1,0,0,114,179,1,0,0,115,3,0,0,0,32,32,64, + 114,10,0,0,0,114,10,1,0,0,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,21,5,0,0,115,48, + 0,0,0,248,128,0,228,20,31,160,4,167,9,161,9,211, + 20,42,168,49,209,20,45,136,9,220,15,18,243,0,1,19, + 53,220,33,51,244,3,1,19,53,243,0,1,16,53,240,0, + 1,9,53,114,28,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,243,4,0, + 0,0,151,0,121,1,41,2,122,63,82,101,116,117,114,110, + 32,78,111,110,101,32,97,115,32,97,110,32,101,120,116,101, + 110,115,105,111,110,32,109,111,100,117,108,101,32,99,97,110, + 110,111,116,32,99,114,101,97,116,101,32,97,32,99,111,100, + 101,32,111,98,106,101,99,116,46,78,114,30,0,0,0,114, + 83,1,0,0,115,2,0,0,0,32,32,114,10,0,0,0, + 114,76,1,0,0,122,28,69,120,116,101,110,115,105,111,110, + 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,99, + 111,100,101,27,5,0,0,114,166,1,0,0,114,28,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,243,4,0,0,0,151,0,121,1,41, + 2,122,53,82,101,116,117,114,110,32,78,111,110,101,32,97, + 115,32,101,120,116,101,110,115,105,111,110,32,109,111,100,117, + 108,101,115,32,104,97,118,101,32,110,111,32,115,111,117,114, + 99,101,32,99,111,100,101,46,78,114,30,0,0,0,114,83, + 1,0,0,115,2,0,0,0,32,32,114,10,0,0,0,114, + 99,1,0,0,122,30,69,120,116,101,110,115,105,111,110,70, + 105,108,101,76,111,97,100,101,114,46,103,101,116,95,115,111, + 117,114,99,101,31,5,0,0,114,166,1,0,0,114,28,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,3,0,0,0,243,26,0,0,0,151,0,124,0, 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,1,171,1,0,0,0,0, - 0,0,92,3,0,0,125,1,125,2,125,3,124,2,100,2, - 107,40,0,0,114,1,121,3,124,1,100,4,102,2,83,0, - 41,5,122,62,82,101,116,117,114,110,115,32,97,32,116,117, - 112,108,101,32,111,102,32,40,112,97,114,101,110,116,45,109, - 111,100,117,108,101,45,110,97,109,101,44,32,112,97,114,101, - 110,116,45,112,97,116,104,45,97,116,116,114,45,110,97,109, - 101,41,114,103,0,0,0,114,12,0,0,0,41,2,114,20, - 0,0,0,114,68,0,0,0,218,8,95,95,112,97,116,104, - 95,95,41,2,114,187,1,0,0,114,131,0,0,0,41,4, - 114,189,0,0,0,114,161,1,0,0,218,3,100,111,116,218, - 2,109,101,115,4,0,0,0,32,32,32,32,114,10,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,122,38,95,78,97,109, - 101,115,112,97,99,101,80,97,116,104,46,95,102,105,110,100, - 95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,109, - 101,115,59,5,0,0,115,51,0,0,0,128,0,224,26,30, - 159,42,153,42,215,26,47,209,26,47,176,3,211,26,52,137, - 15,136,6,144,3,144,82,216,11,14,144,34,138,57,224,19, - 32,240,6,0,16,22,144,122,208,15,33,208,8,33,114,28, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,98,0,0,0,151,0,124, - 0,106,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,92,2,0, - 0,125,1,125,2,116,3,0,0,0,0,0,0,0,0,116, - 4,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,25, - 0,0,0,124,2,171,2,0,0,0,0,0,0,83,0,114, - 77,0,0,0,41,4,114,200,1,0,0,114,201,0,0,0, - 114,20,0,0,0,218,7,109,111,100,117,108,101,115,41,3, - 114,189,0,0,0,218,18,112,97,114,101,110,116,95,109,111, - 100,117,108,101,95,110,97,109,101,218,14,112,97,116,104,95, - 97,116,116,114,95,110,97,109,101,115,3,0,0,0,32,32, - 32,114,10,0,0,0,114,189,1,0,0,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,69,5,0,0, - 115,45,0,0,0,128,0,216,45,49,215,45,73,209,45,73, - 211,45,75,209,8,42,208,8,26,152,78,220,15,22,148,115, - 151,123,145,123,208,35,53,209,23,54,184,14,211,15,71,208, - 8,71,114,28,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,90,1,0, - 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,125,1,124,1,124,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,107,55,0, - 0,115,25,124,0,106,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,106,8,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107, - 55,0,0,114,95,124,0,106,11,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,106,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,171,2,0,0,0,0,0,0,125,2,124,2,129, - 41,124,2,106,14,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,128,29,124,2,106,16,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114, - 17,124,2,106,16,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,95,9,0,0,0,0,0, - 0,0,0,124,1,124,0,95,2,0,0,0,0,0,0,0, - 0,124,0,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,95,4,0,0,0,0,0, - 0,0,0,124,0,106,18,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,83,0,114,77,0,0,0, - 41,10,114,179,0,0,0,114,189,1,0,0,114,190,1,0, - 0,114,191,1,0,0,114,192,1,0,0,114,193,1,0,0, - 114,187,1,0,0,114,4,1,0,0,114,5,1,0,0,114, - 188,1,0,0,41,3,114,189,0,0,0,218,11,112,97,114, - 101,110,116,95,112,97,116,104,114,16,1,0,0,115,3,0, - 0,0,32,32,32,114,10,0,0,0,218,12,95,114,101,99, - 97,108,99,117,108,97,116,101,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,73,5,0,0,115,143,0,0,0,128,0, - 228,22,27,152,68,215,28,49,209,28,49,211,28,51,211,22, - 52,136,11,216,11,22,152,36,215,26,48,209,26,48,210,11, - 48,176,68,183,75,177,75,192,52,215,67,83,209,67,83,210, - 52,83,216,19,23,215,19,36,209,19,36,160,84,167,90,161, - 90,176,27,211,19,61,136,68,240,6,0,16,20,208,15,31, - 160,68,167,75,161,75,208,36,55,216,19,23,215,19,50,210, - 19,50,216,33,37,215,33,64,209,33,64,144,68,148,74,216, - 37,48,136,68,212,12,34,216,31,35,159,123,153,123,136,68, - 212,12,28,216,15,19,143,122,137,122,208,8,25,114,28,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,52,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,83,0, - 114,77,0,0,0,41,2,218,4,105,116,101,114,114,207,1, - 0,0,114,131,1,0,0,115,1,0,0,0,32,114,10,0, - 0,0,218,8,95,95,105,116,101,114,95,95,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,87,5,0,0,115,22,0,0,0,128,0, - 220,15,19,144,68,215,20,37,209,20,37,211,20,39,211,15, - 40,208,8,40,114,28,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,243,40, - 0,0,0,151,0,124,0,106,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,124,1,25,0,0,0,83,0,114,77,0,0,0, - 169,1,114,207,1,0,0,41,2,114,189,0,0,0,218,5, - 105,110,100,101,120,115,2,0,0,0,32,32,114,10,0,0, - 0,218,11,95,95,103,101,116,105,116,101,109,95,95,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,90,5,0,0,115,22, - 0,0,0,128,0,216,15,19,215,15,32,209,15,32,211,15, - 34,160,53,209,15,41,208,8,41,114,28,0,0,0,99,3, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, - 0,0,0,243,34,0,0,0,151,0,124,2,124,0,106,0, + 0,0,0,0,83,0,114,137,1,0,0,114,84,0,0,0, + 114,83,1,0,0,115,2,0,0,0,32,32,114,10,0,0, + 0,114,7,1,0,0,122,32,69,120,116,101,110,115,105,111, + 110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,95, + 102,105,108,101,110,97,109,101,35,5,0,0,114,138,1,0, + 0,114,28,0,0,0,78,41,14,114,196,0,0,0,114,195, + 0,0,0,114,197,0,0,0,114,198,0,0,0,114,67,1, + 0,0,114,126,1,0,0,114,132,1,0,0,114,73,1,0, + 0,114,80,1,0,0,114,10,1,0,0,114,76,1,0,0, + 114,99,1,0,0,114,208,0,0,0,114,7,1,0,0,114, + 30,0,0,0,114,28,0,0,0,114,10,0,0,0,114,141, + 1,0,0,114,141,1,0,0,244,4,0,0,115,67,0,0, + 0,132,0,241,4,4,5,8,242,12,2,5,25,242,8,2, + 5,49,242,8,1,5,49,242,6,6,5,22,242,16,4,5, + 47,242,12,4,5,53,242,12,2,5,20,242,8,2,5,20, + 240,8,0,6,17,241,2,2,5,25,243,3,0,6,17,241, + 2,2,5,25,114,28,0,0,0,114,141,1,0,0,99,0, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, + 0,0,0,243,86,0,0,0,151,0,101,0,90,1,100,0, + 90,2,100,1,90,3,100,2,90,4,100,3,132,0,90,5, + 100,4,132,0,90,6,100,5,132,0,90,7,100,6,132,0, + 90,8,100,7,132,0,90,9,100,8,132,0,90,10,100,9, + 132,0,90,11,100,10,132,0,90,12,100,11,132,0,90,13, + 100,12,132,0,90,14,100,13,132,0,90,15,121,14,41,15, + 218,14,95,78,97,109,101,115,112,97,99,101,80,97,116,104, + 97,38,1,0,0,82,101,112,114,101,115,101,110,116,115,32, + 97,32,110,97,109,101,115,112,97,99,101,32,112,97,99,107, + 97,103,101,39,115,32,112,97,116,104,46,32,32,73,116,32, + 117,115,101,115,32,116,104,101,32,109,111,100,117,108,101,32, + 110,97,109,101,10,32,32,32,32,116,111,32,102,105,110,100, + 32,105,116,115,32,112,97,114,101,110,116,32,109,111,100,117, + 108,101,44,32,97,110,100,32,102,114,111,109,32,116,104,101, + 114,101,32,105,116,32,108,111,111,107,115,32,117,112,32,116, + 104,101,32,112,97,114,101,110,116,39,115,10,32,32,32,32, + 95,95,112,97,116,104,95,95,46,32,32,87,104,101,110,32, + 116,104,105,115,32,99,104,97,110,103,101,115,44,32,116,104, + 101,32,109,111,100,117,108,101,39,115,32,111,119,110,32,112, + 97,116,104,32,105,115,32,114,101,99,111,109,112,117,116,101, + 100,44,10,32,32,32,32,117,115,105,110,103,32,112,97,116, + 104,95,102,105,110,100,101,114,46,32,32,70,111,114,32,116, + 111,112,45,108,101,118,101,108,32,109,111,100,117,108,101,115, + 44,32,116,104,101,32,112,97,114,101,110,116,32,109,111,100, + 117,108,101,39,115,32,112,97,116,104,10,32,32,32,32,105, + 115,32,115,121,115,46,112,97,116,104,46,114,1,0,0,0, + 99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,140,0,0,0,151,0,124,1,124,0, + 95,0,0,0,0,0,0,0,0,0,124,2,124,0,95,1, + 0,0,0,0,0,0,0,0,116,5,0,0,0,0,0,0, + 0,0,124,0,106,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, + 171,1,0,0,0,0,0,0,124,0,95,4,0,0,0,0, + 0,0,0,0,124,0,106,10,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,0,95,6,0,0, + 0,0,0,0,0,0,124,3,124,0,95,7,0,0,0,0, + 0,0,0,0,121,0,114,77,0,0,0,41,8,218,5,95, + 110,97,109,101,218,5,95,112,97,116,104,114,179,0,0,0, + 218,16,95,103,101,116,95,112,97,114,101,110,116,95,112,97, + 116,104,218,17,95,108,97,115,116,95,112,97,114,101,110,116, + 95,112,97,116,104,218,6,95,101,112,111,99,104,218,11,95, + 108,97,115,116,95,101,112,111,99,104,218,12,95,112,97,116, + 104,95,102,105,110,100,101,114,169,4,114,189,0,0,0,114, + 187,0,0,0,114,68,0,0,0,218,11,112,97,116,104,95, + 102,105,110,100,101,114,115,4,0,0,0,32,32,32,32,114, + 10,0,0,0,114,67,1,0,0,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,52,5,0,0,115,58,0,0,0,128,0,216,21,25, + 136,4,140,10,216,21,25,136,4,140,10,220,33,38,160,116, + 215,39,60,209,39,60,211,39,62,211,33,63,136,4,212,8, + 30,216,27,31,159,59,153,59,136,4,212,8,24,216,28,39, + 136,4,213,8,25,114,28,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 84,0,0,0,151,0,124,0,106,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,106,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,60,0,0,0,121,0,114,77,0,0,0,169, - 1,114,188,1,0,0,41,3,114,189,0,0,0,114,213,1, - 0,0,114,68,0,0,0,115,3,0,0,0,32,32,32,114, - 10,0,0,0,218,11,95,95,115,101,116,105,116,101,109,95, - 95,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,93,5,0, - 0,115,16,0,0,0,128,0,216,28,32,136,4,143,10,137, - 10,144,53,210,8,25,114,28,0,0,0,99,1,0,0,0, + 100,1,171,1,0,0,0,0,0,0,92,3,0,0,125,1, + 125,2,125,3,124,2,100,2,107,40,0,0,114,1,121,3, + 124,1,100,4,102,2,83,0,41,5,122,62,82,101,116,117, + 114,110,115,32,97,32,116,117,112,108,101,32,111,102,32,40, + 112,97,114,101,110,116,45,109,111,100,117,108,101,45,110,97, + 109,101,44,32,112,97,114,101,110,116,45,112,97,116,104,45, + 97,116,116,114,45,110,97,109,101,41,114,103,0,0,0,114, + 12,0,0,0,41,2,114,20,0,0,0,114,68,0,0,0, + 218,8,95,95,112,97,116,104,95,95,41,2,114,187,1,0, + 0,114,131,0,0,0,41,4,114,189,0,0,0,114,161,1, + 0,0,218,3,100,111,116,218,2,109,101,115,4,0,0,0, + 32,32,32,32,114,10,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,122,38,95,78,97,109,101,115,112,97,99,101,80,97, + 116,104,46,95,102,105,110,100,95,112,97,114,101,110,116,95, + 112,97,116,104,95,110,97,109,101,115,59,5,0,0,115,51, + 0,0,0,128,0,224,26,30,159,42,153,42,215,26,47,209, + 26,47,176,3,211,26,52,137,15,136,6,144,3,144,82,216, + 11,14,144,34,138,57,224,19,32,240,6,0,16,22,144,122, + 208,15,33,208,8,33,114,28,0,0,0,99,1,0,0,0, 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,52,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,106,3,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,83,0,114,77,0,0,0,41,2, - 114,7,0,0,0,114,207,1,0,0,114,131,1,0,0,115, - 1,0,0,0,32,114,10,0,0,0,218,7,95,95,108,101, - 110,95,95,122,22,95,78,97,109,101,115,112,97,99,101,80, - 97,116,104,46,95,95,108,101,110,95,95,96,5,0,0,115, - 22,0,0,0,128,0,220,15,18,144,52,215,19,36,209,19, - 36,211,19,38,211,15,39,208,8,39,114,28,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,34,0,0,0,151,0,100,1,124,0,106, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,155,2,100,2,157,3,83,0,41,3,78,122,15, - 95,78,97,109,101,115,112,97,99,101,80,97,116,104,40,250, - 1,41,114,216,1,0,0,114,131,1,0,0,115,1,0,0, - 0,32,114,10,0,0,0,218,8,95,95,114,101,112,114,95, - 95,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,5,0,0,115,21, - 0,0,0,128,0,216,17,32,160,20,167,26,161,26,160,14, - 168,97,208,15,48,208,8,48,114,28,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,38,0,0,0,151,0,124,1,124,0,106,1,0, + 243,98,0,0,0,151,0,124,0,106,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, + 0,0,0,0,0,92,2,0,0,125,1,125,2,116,3,0, + 0,0,0,0,0,0,0,116,4,0,0,0,0,0,0,0, + 0,106,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,1,25,0,0,0,124,2,171,2,0, + 0,0,0,0,0,83,0,114,77,0,0,0,41,4,114,200, + 1,0,0,114,201,0,0,0,114,20,0,0,0,218,7,109, + 111,100,117,108,101,115,41,3,114,189,0,0,0,218,18,112, + 97,114,101,110,116,95,109,111,100,117,108,101,95,110,97,109, + 101,218,14,112,97,116,104,95,97,116,116,114,95,110,97,109, + 101,115,3,0,0,0,32,32,32,114,10,0,0,0,114,189, + 1,0,0,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,69,5,0,0,115,45,0,0,0,128,0,216, + 45,49,215,45,73,209,45,73,211,45,75,209,8,42,208,8, + 26,152,78,220,15,22,148,115,151,123,145,123,208,35,53,209, + 23,54,184,14,211,15,71,208,8,71,114,28,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,90,1,0,0,151,0,116,1,0,0,0, + 0,0,0,0,0,124,0,106,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, + 0,0,0,171,1,0,0,0,0,0,0,125,1,124,1,124, + 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,107,55,0,0,115,25,124,0,106,6,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,118,0,83,0,114,77,0, - 0,0,114,212,1,0,0,169,2,114,189,0,0,0,218,4, - 105,116,101,109,115,2,0,0,0,32,32,114,10,0,0,0, - 218,12,95,95,99,111,110,116,97,105,110,115,95,95,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,102,5,0,0,115, - 22,0,0,0,128,0,216,15,19,144,116,215,23,40,209,23, - 40,211,23,42,208,15,42,208,8,42,114,28,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,58,0,0,0,151,0,124,0,106,0,0, + 0,124,0,106,8,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,107,55,0,0,114,95,124,0,106, + 11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,0,106,12,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,1,171,2,0,0,0, + 0,0,0,125,2,124,2,129,41,124,2,106,14,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128, + 29,124,2,106,16,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,114,17,124,2,106,16,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 0,95,9,0,0,0,0,0,0,0,0,124,1,124,0,95, + 2,0,0,0,0,0,0,0,0,124,0,106,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 0,95,4,0,0,0,0,0,0,0,0,124,0,106,18,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,171,1,0,0,0,0,0,0,1, - 0,121,0,114,77,0,0,0,41,2,114,188,1,0,0,114, - 64,0,0,0,114,224,1,0,0,115,2,0,0,0,32,32, - 114,10,0,0,0,114,64,0,0,0,122,21,95,78,97,109, - 101,115,112,97,99,101,80,97,116,104,46,97,112,112,101,110, - 100,105,5,0,0,115,20,0,0,0,128,0,216,8,12,143, - 10,137,10,215,8,25,209,8,25,152,36,213,8,31,114,28, - 0,0,0,78,41,16,114,196,0,0,0,114,195,0,0,0, - 114,197,0,0,0,114,198,0,0,0,114,191,1,0,0,114, - 67,1,0,0,114,200,1,0,0,114,189,1,0,0,114,207, - 1,0,0,114,210,1,0,0,114,214,1,0,0,114,217,1, - 0,0,114,219,1,0,0,114,222,1,0,0,114,226,1,0, - 0,114,64,0,0,0,114,30,0,0,0,114,28,0,0,0, - 114,10,0,0,0,114,185,1,0,0,114,185,1,0,0,41, - 5,0,0,115,70,0,0,0,132,0,241,2,4,5,20,240, - 16,0,14,15,128,70,242,4,5,5,40,242,14,8,5,34, - 242,20,2,5,72,1,242,8,12,5,26,242,28,1,5,41, - 242,6,1,5,42,242,6,1,5,33,242,6,1,5,40,242, - 6,1,5,49,242,6,1,5,43,243,6,1,5,32,114,28, - 0,0,0,114,185,1,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,243,60,0, - 0,0,151,0,101,0,90,1,100,0,90,2,100,1,132,0, - 90,3,100,2,132,0,90,4,100,3,132,0,90,5,100,4, - 132,0,90,6,100,5,132,0,90,7,100,6,132,0,90,8, - 100,7,132,0,90,9,100,8,132,0,90,10,121,9,41,10, - 218,15,78,97,109,101,115,112,97,99,101,76,111,97,100,101, - 114,99,4,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,243,40,0,0,0,151,0,116,1,0, - 0,0,0,0,0,0,0,124,1,124,2,124,3,171,3,0, - 0,0,0,0,0,124,0,95,1,0,0,0,0,0,0,0, - 0,121,0,114,77,0,0,0,41,2,114,185,1,0,0,114, - 188,1,0,0,114,194,1,0,0,115,4,0,0,0,32,32, - 32,32,114,10,0,0,0,114,67,1,0,0,122,24,78,97, - 109,101,115,112,97,99,101,76,111,97,100,101,114,46,95,95, - 105,110,105,116,95,95,113,5,0,0,115,18,0,0,0,128, - 0,220,21,35,160,68,168,36,176,11,211,21,60,136,4,141, - 10,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,243,4,0,0,0, - 151,0,121,1,41,2,78,84,114,30,0,0,0,114,83,1, - 0,0,115,2,0,0,0,32,32,114,10,0,0,0,114,10, - 1,0,0,122,26,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,116, - 5,0,0,115,5,0,0,0,128,0,216,15,19,114,28,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,243,4,0,0,0,151,0,121,1, - 41,2,78,114,12,0,0,0,114,30,0,0,0,114,83,1, - 0,0,115,2,0,0,0,32,32,114,10,0,0,0,114,99, - 1,0,0,122,26,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,119, - 5,0,0,115,5,0,0,0,128,0,216,15,17,114,28,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,3,0,0,0,243,32,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,100,1,100,2,100,3,100,4, - 172,5,171,4,0,0,0,0,0,0,83,0,41,6,78,114, - 12,0,0,0,122,8,60,115,116,114,105,110,103,62,114,78, - 1,0,0,84,41,1,114,102,1,0,0,41,1,114,103,1, - 0,0,114,83,1,0,0,115,2,0,0,0,32,32,114,10, - 0,0,0,114,76,1,0,0,122,24,78,97,109,101,115,112, - 97,99,101,76,111,97,100,101,114,46,103,101,116,95,99,111, - 100,101,122,5,0,0,115,19,0,0,0,128,0,220,15,22, - 144,114,152,58,160,118,184,68,212,15,65,208,8,65,114,28, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,243,4,0,0,0,151,0,121, - 1,114,71,1,0,0,114,30,0,0,0,114,72,1,0,0, - 115,2,0,0,0,32,32,114,10,0,0,0,114,73,1,0, - 0,122,29,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, - 125,5,0,0,114,74,1,0,0,114,28,0,0,0,99,2, + 0,83,0,114,77,0,0,0,41,10,114,179,0,0,0,114, + 189,1,0,0,114,190,1,0,0,114,191,1,0,0,114,192, + 1,0,0,114,193,1,0,0,114,187,1,0,0,114,4,1, + 0,0,114,5,1,0,0,114,188,1,0,0,41,3,114,189, + 0,0,0,218,11,112,97,114,101,110,116,95,112,97,116,104, + 114,16,1,0,0,115,3,0,0,0,32,32,32,114,10,0, + 0,0,218,12,95,114,101,99,97,108,99,117,108,97,116,101, + 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,73,5,0, + 0,115,143,0,0,0,128,0,228,22,27,152,68,215,28,49, + 209,28,49,211,28,51,211,22,52,136,11,216,11,22,152,36, + 215,26,48,209,26,48,210,11,48,176,68,183,75,177,75,192, + 52,215,67,83,209,67,83,210,52,83,216,19,23,215,19,36, + 209,19,36,160,84,167,90,161,90,176,27,211,19,61,136,68, + 240,6,0,16,20,208,15,31,160,68,167,75,161,75,208,36, + 55,216,19,23,215,19,50,210,19,50,216,33,37,215,33,64, + 209,33,64,144,68,148,74,216,37,48,136,68,212,12,34,216, + 31,35,159,123,153,123,136,68,212,12,28,216,15,19,143,122, + 137,122,208,8,25,114,28,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 52,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, + 124,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,171,0,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,83,0,114,77,0,0,0,41,2,218, + 4,105,116,101,114,114,207,1,0,0,114,131,1,0,0,115, + 1,0,0,0,32,114,10,0,0,0,218,8,95,95,105,116, + 101,114,95,95,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,87,5,0, + 0,115,22,0,0,0,128,0,220,15,19,144,68,215,20,37, + 209,20,37,211,20,39,211,15,40,208,8,40,114,28,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,243,40,0,0,0,151,0,124,0,106, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,124,1,25,0,0, + 0,83,0,114,77,0,0,0,169,1,114,207,1,0,0,41, + 2,114,189,0,0,0,218,5,105,110,100,101,120,115,2,0, + 0,0,32,32,114,10,0,0,0,218,11,95,95,103,101,116, + 105,116,101,109,95,95,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,90,5,0,0,115,22,0,0,0,128,0,216,15,19, + 215,15,32,209,15,32,211,15,34,160,53,209,15,41,208,8, + 41,114,28,0,0,0,99,3,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,3,0,0,0,243,34,0,0,0, + 151,0,124,2,124,0,106,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,1,60,0,0,0, + 121,0,114,77,0,0,0,169,1,114,188,1,0,0,41,3, + 114,189,0,0,0,114,213,1,0,0,114,68,0,0,0,115, + 3,0,0,0,32,32,32,114,10,0,0,0,218,11,95,95, + 115,101,116,105,116,101,109,95,95,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,93,5,0,0,115,16,0,0,0,128,0, + 216,28,32,136,4,143,10,137,10,144,53,210,8,25,114,28, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,243,52,0,0,0,151,0,116, + 1,0,0,0,0,0,0,0,0,124,0,106,3,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, + 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,83, + 0,114,77,0,0,0,41,2,114,7,0,0,0,114,207,1, + 0,0,114,131,1,0,0,115,1,0,0,0,32,114,10,0, + 0,0,218,7,95,95,108,101,110,95,95,122,22,95,78,97, + 109,101,115,112,97,99,101,80,97,116,104,46,95,95,108,101, + 110,95,95,96,5,0,0,115,22,0,0,0,128,0,220,15, + 18,144,52,215,19,36,209,19,36,211,19,38,211,15,39,208, + 8,39,114,28,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,34,0,0, + 0,151,0,100,1,124,0,106,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,155,2,100,2,157, + 3,83,0,41,3,78,122,15,95,78,97,109,101,115,112,97, + 99,101,80,97,116,104,40,250,1,41,114,216,1,0,0,114, + 131,1,0,0,115,1,0,0,0,32,114,10,0,0,0,218, + 8,95,95,114,101,112,114,95,95,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,5,0,0,115,21,0,0,0,128,0,216,17,32, + 160,20,167,26,161,26,160,14,168,97,208,15,48,208,8,48, + 114,28,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,3,0,0,0,243,38,0,0,0,151, + 0,124,1,124,0,106,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,118,0,83,0,114,77,0,0,0,114,212,1,0,0,169, + 2,114,189,0,0,0,218,4,105,116,101,109,115,2,0,0, + 0,32,32,114,10,0,0,0,218,12,95,95,99,111,110,116, + 97,105,110,115,95,95,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,102,5,0,0,115,22,0,0,0,128,0,216,15, + 19,144,116,215,23,40,209,23,40,211,23,42,208,15,42,208, + 8,42,114,28,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,58,0,0, + 0,151,0,124,0,106,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, + 1,0,0,0,0,0,0,1,0,121,0,114,77,0,0,0, + 41,2,114,188,1,0,0,114,64,0,0,0,114,224,1,0, + 0,115,2,0,0,0,32,32,114,10,0,0,0,114,64,0, + 0,0,122,21,95,78,97,109,101,115,112,97,99,101,80,97, + 116,104,46,97,112,112,101,110,100,105,5,0,0,115,20,0, + 0,0,128,0,216,8,12,143,10,137,10,215,8,25,209,8, + 25,152,36,213,8,31,114,28,0,0,0,78,41,16,114,196, + 0,0,0,114,195,0,0,0,114,197,0,0,0,114,198,0, + 0,0,114,191,1,0,0,114,67,1,0,0,114,200,1,0, + 0,114,189,1,0,0,114,207,1,0,0,114,210,1,0,0, + 114,214,1,0,0,114,217,1,0,0,114,219,1,0,0,114, + 222,1,0,0,114,226,1,0,0,114,64,0,0,0,114,30, + 0,0,0,114,28,0,0,0,114,10,0,0,0,114,185,1, + 0,0,114,185,1,0,0,41,5,0,0,115,70,0,0,0, + 132,0,241,2,4,5,20,240,16,0,14,15,128,70,242,4, + 5,5,40,242,14,8,5,34,242,20,2,5,72,1,242,8, + 12,5,26,242,28,1,5,41,242,6,1,5,42,242,6,1, + 5,33,242,6,1,5,40,242,6,1,5,49,242,6,1,5, + 43,243,6,1,5,32,114,28,0,0,0,114,185,1,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,0,0,0,0,243,60,0,0,0,151,0,101,0,90,1, + 100,0,90,2,100,1,132,0,90,3,100,2,132,0,90,4, + 100,3,132,0,90,5,100,4,132,0,90,6,100,5,132,0, + 90,7,100,6,132,0,90,8,100,7,132,0,90,9,100,8, + 132,0,90,10,121,9,41,10,218,15,78,97,109,101,115,112, + 97,99,101,76,111,97,100,101,114,99,4,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,40, + 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, + 1,124,2,124,3,171,3,0,0,0,0,0,0,124,0,95, + 1,0,0,0,0,0,0,0,0,121,0,114,77,0,0,0, + 41,2,114,185,1,0,0,114,188,1,0,0,114,194,1,0, + 0,115,4,0,0,0,32,32,32,32,114,10,0,0,0,114, + 67,1,0,0,122,24,78,97,109,101,115,112,97,99,101,76, + 111,97,100,101,114,46,95,95,105,110,105,116,95,95,113,5, + 0,0,115,18,0,0,0,128,0,220,21,35,160,68,168,36, + 176,11,211,21,60,136,4,141,10,114,28,0,0,0,99,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,243,4,0,0,0,151,0,121,0,114,77,0,0, - 0,114,30,0,0,0,114,175,1,0,0,115,2,0,0,0, - 32,32,114,10,0,0,0,114,80,1,0,0,122,27,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,128,5,0,0,115,5,0, - 0,0,128,0,216,8,12,114,28,0,0,0,99,2,0,0, + 0,0,0,243,4,0,0,0,151,0,121,1,41,2,78,84, + 114,30,0,0,0,114,83,1,0,0,115,2,0,0,0,32, + 32,114,10,0,0,0,114,10,1,0,0,122,26,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,116,5,0,0,115,5,0,0,0, + 128,0,216,15,19,114,28,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,243, + 4,0,0,0,151,0,121,1,41,2,78,114,12,0,0,0, + 114,30,0,0,0,114,83,1,0,0,115,2,0,0,0,32, + 32,114,10,0,0,0,114,99,1,0,0,122,26,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,119,5,0,0,115,5,0,0,0, + 128,0,216,15,17,114,28,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,243, + 32,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, + 100,1,100,2,100,3,100,4,172,5,171,4,0,0,0,0, + 0,0,83,0,41,6,78,114,12,0,0,0,122,8,60,115, + 116,114,105,110,103,62,114,78,1,0,0,84,41,1,114,102, + 1,0,0,41,1,114,103,1,0,0,114,83,1,0,0,115, + 2,0,0,0,32,32,114,10,0,0,0,114,76,1,0,0, + 122,24,78,97,109,101,115,112,97,99,101,76,111,97,100,101, + 114,46,103,101,116,95,99,111,100,101,122,5,0,0,115,19, + 0,0,0,128,0,220,15,22,144,114,152,58,160,118,184,68, + 212,15,65,208,8,65,114,28,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 243,4,0,0,0,151,0,121,1,114,71,1,0,0,114,30, + 0,0,0,114,72,1,0,0,115,2,0,0,0,32,32,114, + 10,0,0,0,114,73,1,0,0,122,29,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,125,5,0,0,114,74,1,0, + 0,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,243,4,0,0,0, + 151,0,121,0,114,77,0,0,0,114,30,0,0,0,114,175, + 1,0,0,115,2,0,0,0,32,32,114,10,0,0,0,114, + 80,1,0,0,122,27,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,128,5,0,0,115,5,0,0,0,128,0,216,8,12,114, + 28,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,110,0,0,0,151,0, + 116,0,0,0,0,0,0,0,0,0,106,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, + 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,171,2,0,0,0,0,0,0,1,0, + 116,0,0,0,0,0,0,0,0,0,106,7,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, + 124,1,171,2,0,0,0,0,0,0,83,0,41,2,122,98, + 76,111,97,100,32,97,32,110,97,109,101,115,112,97,99,101, + 32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32, + 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115, + 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115, + 101,32,101,120,101,99,95,109,111,100,117,108,101,40,41,32, + 105,110,115,116,101,97,100,46,10,10,32,32,32,32,32,32, + 32,32,122,38,110,97,109,101,115,112,97,99,101,32,109,111, + 100,117,108,101,32,108,111,97,100,101,100,32,119,105,116,104, + 32,112,97,116,104,32,123,33,114,125,41,4,114,207,0,0, + 0,114,215,0,0,0,114,188,1,0,0,114,82,1,0,0, + 114,83,1,0,0,115,2,0,0,0,32,32,114,10,0,0, + 0,114,84,1,0,0,122,27,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,131,5,0,0,115,49,0,0,0,128,0,244,14, + 0,9,19,215,8,35,209,8,35,208,36,76,216,36,40,167, + 74,161,74,244,3,1,9,48,244,6,0,16,26,215,15,43, + 209,15,43,168,68,176,40,211,15,59,208,8,59,114,28,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,50,0,0,0,151,0,100,1, + 100,2,108,0,109,1,125,2,1,0,2,0,124,2,124,0, + 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,171,1,0,0,0,0,0,0,83,0,41,3, + 78,114,1,0,0,0,41,1,218,15,78,97,109,101,115,112, + 97,99,101,82,101,97,100,101,114,41,3,114,146,1,0,0, + 114,238,1,0,0,114,188,1,0,0,41,3,114,189,0,0, + 0,114,79,1,0,0,114,238,1,0,0,115,3,0,0,0, + 32,32,32,114,10,0,0,0,114,147,1,0,0,122,35,78, + 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,103, + 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, + 101,114,143,5,0,0,115,20,0,0,0,128,0,221,8,53, + 217,15,30,152,116,159,122,153,122,211,15,42,208,8,42,114, + 28,0,0,0,78,41,11,114,196,0,0,0,114,195,0,0, + 0,114,197,0,0,0,114,67,1,0,0,114,10,1,0,0, + 114,99,1,0,0,114,76,1,0,0,114,73,1,0,0,114, + 80,1,0,0,114,84,1,0,0,114,147,1,0,0,114,30, + 0,0,0,114,28,0,0,0,114,10,0,0,0,114,229,1, + 0,0,114,229,1,0,0,112,5,0,0,115,43,0,0,0, + 132,0,242,2,1,5,61,242,6,1,5,20,242,6,1,5, + 18,242,6,1,5,66,1,242,6,1,5,57,242,6,1,5, + 13,242,6,10,5,60,243,24,2,5,43,114,28,0,0,0, + 114,229,1,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,0,0,0,0,243,116,0,0,0,151, + 0,101,0,90,1,100,0,90,2,100,1,90,3,101,4,100, + 2,132,0,171,0,0,0,0,0,0,0,90,5,101,4,100, + 3,132,0,171,0,0,0,0,0,0,0,90,6,101,7,100, + 4,132,0,171,0,0,0,0,0,0,0,90,8,101,7,100, + 9,100,6,132,1,171,0,0,0,0,0,0,0,90,9,101, + 7,100,10,100,7,132,1,171,0,0,0,0,0,0,0,90, + 10,101,4,100,8,132,0,171,0,0,0,0,0,0,0,90, + 11,121,5,41,11,218,10,80,97,116,104,70,105,110,100,101, + 114,122,62,77,101,116,97,32,112,97,116,104,32,102,105,110, + 100,101,114,32,102,111,114,32,115,121,115,46,112,97,116,104, + 32,97,110,100,32,112,97,99,107,97,103,101,32,95,95,112, + 97,116,104,95,95,32,97,116,116,114,105,98,117,116,101,115, + 46,99,0,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,3,0,0,0,243,56,1,0,0,151,0,116,1,0, + 0,0,0,0,0,0,0,116,2,0,0,0,0,0,0,0, + 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,106,7,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,171,1,0,0,0,0,0,0,68,0,93,65,0,0,92, + 2,0,0,125,0,125,1,124,1,129,11,116,9,0,0,0, + 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,115, + 18,116,2,0,0,0,0,0,0,0,0,106,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 0,61,0,140,37,116,11,0,0,0,0,0,0,0,0,124, + 1,100,2,171,2,0,0,0,0,0,0,115,1,140,50,124, + 1,106,13,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,171,0,0,0,0,0,0,0,1,0,140, + 67,4,0,116,14,0,0,0,0,0,0,0,0,120,1,106, + 16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,100,3,122,13,0,0,99,2,95,8,0,0,0, + 0,0,0,0,0,100,4,100,5,108,9,109,10,125,2,1, + 0,124,2,106,13,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, + 0,121,1,41,6,122,125,67,97,108,108,32,116,104,101,32, + 105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,101, + 115,40,41,32,109,101,116,104,111,100,32,111,110,32,97,108, + 108,32,112,97,116,104,32,101,110,116,114,121,32,102,105,110, + 100,101,114,115,10,32,32,32,32,32,32,32,32,115,116,111, + 114,101,100,32,105,110,32,115,121,115,46,112,97,116,104,95, + 105,109,112,111,114,116,101,114,95,99,97,99,104,101,115,32, + 40,119,104,101,114,101,32,105,109,112,108,101,109,101,110,116, + 101,100,41,46,78,218,17,105,110,118,97,108,105,100,97,116, + 101,95,99,97,99,104,101,115,114,6,0,0,0,114,1,0, + 0,0,169,1,218,18,77,101,116,97,100,97,116,97,80,97, + 116,104,70,105,110,100,101,114,41,11,218,4,108,105,115,116, + 114,20,0,0,0,218,19,112,97,116,104,95,105,109,112,111, + 114,116,101,114,95,99,97,99,104,101,218,5,105,116,101,109, + 115,114,100,0,0,0,114,199,0,0,0,114,242,1,0,0, + 114,185,1,0,0,114,191,1,0,0,218,18,105,109,112,111, + 114,116,108,105,98,46,109,101,116,97,100,97,116,97,114,244, + 1,0,0,41,3,114,187,0,0,0,218,6,102,105,110,100, + 101,114,114,244,1,0,0,115,3,0,0,0,32,32,32,114, + 10,0,0,0,114,242,1,0,0,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,158,5,0,0,115,128,0,0,0, + 128,0,244,8,0,29,33,164,19,215,33,56,209,33,56,215, + 33,62,209,33,62,211,33,64,211,28,65,242,0,6,9,43, + 137,76,136,68,144,38,240,6,0,16,22,136,126,164,91,176, + 20,212,37,54,220,20,23,215,20,43,209,20,43,168,68,209, + 20,49,220,17,24,152,22,208,33,52,213,17,53,216,16,22, + 215,16,40,209,16,40,213,16,42,240,13,6,9,43,244,18, + 0,9,23,215,8,29,210,8,29,160,17,209,8,34,213,8, + 29,229,8,57,216,8,26,215,8,44,209,8,44,213,8,46, + 114,28,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,3,0,0,0,243,212,0,0,0,151, + 0,116,0,0,0,0,0,0,0,0,0,106,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129, + 42,116,0,0,0,0,0,0,0,0,0,106,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115, + 26,116,5,0,0,0,0,0,0,0,0,106,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, + 2,116,8,0,0,0,0,0,0,0,0,171,2,0,0,0, + 0,0,0,1,0,116,0,0,0,0,0,0,0,0,0,106, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,68,0,93,12,0,0,125,1,9,0,2,0,124, + 1,124,0,171,1,0,0,0,0,0,0,99,2,1,0,83, + 0,4,0,121,1,35,0,116,10,0,0,0,0,0,0,0, + 0,36,0,114,3,1,0,89,0,140,27,119,0,120,3,89, + 0,119,1,41,3,122,46,83,101,97,114,99,104,32,115,121, + 115,46,112,97,116,104,95,104,111,111,107,115,32,102,111,114, + 32,97,32,102,105,110,100,101,114,32,102,111,114,32,39,112, + 97,116,104,39,46,78,122,23,115,121,115,46,112,97,116,104, + 95,104,111,111,107,115,32,105,115,32,101,109,112,116,121,41, + 6,114,20,0,0,0,218,10,112,97,116,104,95,104,111,111, + 107,115,114,126,0,0,0,114,127,0,0,0,218,13,73,109, + 112,111,114,116,87,97,114,110,105,110,103,114,188,0,0,0, + 41,2,114,68,0,0,0,218,4,104,111,111,107,115,2,0, + 0,0,32,32,114,10,0,0,0,218,11,95,112,97,116,104, + 95,104,111,111,107,115,122,22,80,97,116,104,70,105,110,100, + 101,114,46,95,112,97,116,104,95,104,111,111,107,115,176,5, + 0,0,115,94,0,0,0,128,0,244,6,0,12,15,143,62, + 137,62,208,11,37,172,99,175,110,170,110,220,12,21,143,78, + 137,78,208,27,52,180,109,212,12,68,220,20,23,151,78,145, + 78,242,0,6,9,24,136,68,240,2,3,13,25,217,23,27, + 152,68,147,122,210,16,33,240,5,6,9,24,240,12,0,20, + 24,248,244,7,0,20,31,242,0,1,13,25,217,16,24,240, + 3,1,13,25,250,115,18,0,0,0,193,15,7,65,27,2, + 193,27,9,65,39,5,193,38,1,65,39,5,99,2,0,0, 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,110,0,0,0,151,0,116,0,0,0,0,0,0,0, - 0,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,1,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,1,0,116,0,0,0,0,0,0,0, - 0,0,106,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,124,1,171,2,0,0,0,0, - 0,0,83,0,41,2,122,98,76,111,97,100,32,97,32,110, - 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,46, - 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109, - 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,46,32,32,85,115,101,32,101,120,101,99,95,109, - 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46, - 10,10,32,32,32,32,32,32,32,32,122,38,110,97,109,101, - 115,112,97,99,101,32,109,111,100,117,108,101,32,108,111,97, - 100,101,100,32,119,105,116,104,32,112,97,116,104,32,123,33, - 114,125,41,4,114,207,0,0,0,114,215,0,0,0,114,188, - 1,0,0,114,82,1,0,0,114,83,1,0,0,115,2,0, - 0,0,32,32,114,10,0,0,0,114,84,1,0,0,122,27, - 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,131,5,0,0,115, - 49,0,0,0,128,0,244,14,0,9,19,215,8,35,209,8, - 35,208,36,76,216,36,40,167,74,161,74,244,3,1,9,48, - 244,6,0,16,26,215,15,43,209,15,43,168,68,176,40,211, - 15,59,208,8,59,114,28,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, - 50,0,0,0,151,0,100,1,100,2,108,0,109,1,125,2, - 1,0,2,0,124,2,124,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,83,0,41,3,78,114,1,0,0,0,41,1, - 218,15,78,97,109,101,115,112,97,99,101,82,101,97,100,101, - 114,41,3,114,146,1,0,0,114,238,1,0,0,114,188,1, - 0,0,41,3,114,189,0,0,0,114,79,1,0,0,114,238, - 1,0,0,115,3,0,0,0,32,32,32,114,10,0,0,0, - 114,147,1,0,0,122,35,78,97,109,101,115,112,97,99,101, - 76,111,97,100,101,114,46,103,101,116,95,114,101,115,111,117, - 114,99,101,95,114,101,97,100,101,114,143,5,0,0,115,20, - 0,0,0,128,0,221,8,53,217,15,30,152,116,159,122,153, - 122,211,15,42,208,8,42,114,28,0,0,0,78,41,11,114, - 196,0,0,0,114,195,0,0,0,114,197,0,0,0,114,67, - 1,0,0,114,10,1,0,0,114,99,1,0,0,114,76,1, - 0,0,114,73,1,0,0,114,80,1,0,0,114,84,1,0, - 0,114,147,1,0,0,114,30,0,0,0,114,28,0,0,0, - 114,10,0,0,0,114,229,1,0,0,114,229,1,0,0,112, - 5,0,0,115,43,0,0,0,132,0,242,2,1,5,61,242, - 6,1,5,20,242,6,1,5,18,242,6,1,5,66,1,242, - 6,1,5,57,242,6,1,5,13,242,6,10,5,60,243,24, - 2,5,43,114,28,0,0,0,114,229,1,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0, - 0,0,243,116,0,0,0,151,0,101,0,90,1,100,0,90, - 2,100,1,90,3,101,4,100,2,132,0,171,0,0,0,0, - 0,0,0,90,5,101,4,100,3,132,0,171,0,0,0,0, - 0,0,0,90,6,101,7,100,4,132,0,171,0,0,0,0, - 0,0,0,90,8,101,7,100,9,100,6,132,1,171,0,0, - 0,0,0,0,0,90,9,101,7,100,10,100,7,132,1,171, - 0,0,0,0,0,0,0,90,10,101,4,100,8,132,0,171, - 0,0,0,0,0,0,0,90,11,121,5,41,11,218,10,80, - 97,116,104,70,105,110,100,101,114,122,62,77,101,116,97,32, - 112,97,116,104,32,102,105,110,100,101,114,32,102,111,114,32, - 115,121,115,46,112,97,116,104,32,97,110,100,32,112,97,99, - 107,97,103,101,32,95,95,112,97,116,104,95,95,32,97,116, - 116,114,105,98,117,116,101,115,46,99,0,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,12, - 1,0,0,151,0,116,1,0,0,0,0,0,0,0,0,116, - 2,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,7,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,68,0,93,65,0,0,92,2,0,0,125,0,125,1,124, - 1,129,11,116,9,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,115,18,116,2,0,0,0,0,0, - 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,61,0,140,37,116,11,0, - 0,0,0,0,0,0,0,124,1,100,2,171,2,0,0,0, - 0,0,0,115,1,140,50,124,1,106,13,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,1,0,140,67,4,0,116,14,0,0,0, - 0,0,0,0,0,120,1,106,16,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,3,122,13,0, - 0,99,2,95,8,0,0,0,0,0,0,0,0,121,1,41, - 4,122,125,67,97,108,108,32,116,104,101,32,105,110,118,97, - 108,105,100,97,116,101,95,99,97,99,104,101,115,40,41,32, - 109,101,116,104,111,100,32,111,110,32,97,108,108,32,112,97, - 116,104,32,101,110,116,114,121,32,102,105,110,100,101,114,115, - 10,32,32,32,32,32,32,32,32,115,116,111,114,101,100,32, - 105,110,32,115,121,115,46,112,97,116,104,95,105,109,112,111, - 114,116,101,114,95,99,97,99,104,101,115,32,40,119,104,101, - 114,101,32,105,109,112,108,101,109,101,110,116,101,100,41,46, - 78,218,17,105,110,118,97,108,105,100,97,116,101,95,99,97, - 99,104,101,115,114,6,0,0,0,41,9,218,4,108,105,115, - 116,114,20,0,0,0,218,19,112,97,116,104,95,105,109,112, - 111,114,116,101,114,95,99,97,99,104,101,218,5,105,116,101, - 109,115,114,100,0,0,0,114,199,0,0,0,114,242,1,0, - 0,114,185,1,0,0,114,191,1,0,0,41,2,114,187,0, - 0,0,218,6,102,105,110,100,101,114,115,2,0,0,0,32, - 32,114,10,0,0,0,114,242,1,0,0,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,158,5,0,0,115,113,0, - 0,0,128,0,244,8,0,29,33,164,19,215,33,56,209,33, - 56,215,33,62,209,33,62,211,33,64,211,28,65,242,0,6, - 9,43,137,76,136,68,144,38,240,6,0,16,22,136,126,164, - 91,176,20,212,37,54,220,20,23,215,20,43,209,20,43,168, - 68,209,20,49,220,17,24,152,22,208,33,52,213,17,53,216, - 16,22,215,16,40,209,16,40,213,16,42,240,13,6,9,43, - 244,18,0,9,23,215,8,29,210,8,29,160,17,209,8,34, - 214,8,29,114,28,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,243,212,0, - 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,129,42,116,0,0,0,0,0,0,0,0,0,106,2, + 0,243,232,0,0,0,151,0,124,1,100,1,107,40,0,0, + 114,21,9,0,116,1,0,0,0,0,0,0,0,0,106,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,115,26,116,5,0,0,0,0,0,0,0,0,106,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,2,116,8,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,1,0,116,0,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,68,0,93,12,0,0,125,1,9,0, - 2,0,124,1,124,0,171,1,0,0,0,0,0,0,99,2, - 1,0,83,0,4,0,121,1,35,0,116,10,0,0,0,0, - 0,0,0,0,36,0,114,3,1,0,89,0,140,27,119,0, - 120,3,89,0,119,1,41,3,122,46,83,101,97,114,99,104, - 32,115,121,115,46,112,97,116,104,95,104,111,111,107,115,32, - 102,111,114,32,97,32,102,105,110,100,101,114,32,102,111,114, - 32,39,112,97,116,104,39,46,78,122,23,115,121,115,46,112, - 97,116,104,95,104,111,111,107,115,32,105,115,32,101,109,112, - 116,121,41,6,114,20,0,0,0,218,10,112,97,116,104,95, - 104,111,111,107,115,114,126,0,0,0,114,127,0,0,0,218, - 13,73,109,112,111,114,116,87,97,114,110,105,110,103,114,188, - 0,0,0,41,2,114,68,0,0,0,218,4,104,111,111,107, - 115,2,0,0,0,32,32,114,10,0,0,0,218,11,95,112, - 97,116,104,95,104,111,111,107,115,122,22,80,97,116,104,70, - 105,110,100,101,114,46,95,112,97,116,104,95,104,111,111,107, - 115,173,5,0,0,115,94,0,0,0,128,0,244,6,0,12, - 15,143,62,137,62,208,11,37,172,99,175,110,170,110,220,12, - 21,143,78,137,78,208,27,52,180,109,212,12,68,220,20,23, - 151,78,145,78,242,0,6,9,24,136,68,240,2,3,13,25, - 217,23,27,152,68,147,122,210,16,33,240,5,6,9,24,240, - 12,0,20,24,248,244,7,0,20,31,242,0,1,13,25,217, - 16,24,240,3,1,13,25,250,115,18,0,0,0,193,15,7, - 65,27,2,193,27,9,65,39,5,193,38,1,65,39,5,99, - 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,232,0,0,0,151,0,124,1,100,1,107, - 40,0,0,114,21,9,0,116,1,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,125,1,9, - 0,116,6,0,0,0,0,0,0,0,0,106,8,0,0,0, + 0,0,171,0,0,0,0,0,0,0,125,1,9,0,116,6, + 0,0,0,0,0,0,0,0,106,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,1,25,0, + 0,0,125,2,124,2,83,0,35,0,116,4,0,0,0,0, + 0,0,0,0,36,0,114,3,1,0,89,0,121,2,119,0, + 120,3,89,0,119,1,35,0,116,10,0,0,0,0,0,0, + 0,0,36,0,114,40,1,0,124,0,106,13,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, + 171,1,0,0,0,0,0,0,125,2,124,2,116,6,0,0, + 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,1,60,0,0,0, + 89,0,124,2,83,0,119,0,120,3,89,0,119,1,41,3, + 122,210,71,101,116,32,116,104,101,32,102,105,110,100,101,114, + 32,102,111,114,32,116,104,101,32,112,97,116,104,32,101,110, + 116,114,121,32,102,114,111,109,32,115,121,115,46,112,97,116, + 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101, + 46,10,10,32,32,32,32,32,32,32,32,73,102,32,116,104, + 101,32,112,97,116,104,32,101,110,116,114,121,32,105,115,32, + 110,111,116,32,105,110,32,116,104,101,32,99,97,99,104,101, + 44,32,102,105,110,100,32,116,104,101,32,97,112,112,114,111, + 112,114,105,97,116,101,32,102,105,110,100,101,114,10,32,32, + 32,32,32,32,32,32,97,110,100,32,99,97,99,104,101,32, + 105,116,46,32,73,102,32,110,111,32,102,105,110,100,101,114, + 32,105,115,32,97,118,97,105,108,97,98,108,101,44,32,115, + 116,111,114,101,32,78,111,110,101,46,10,10,32,32,32,32, + 32,32,32,32,114,12,0,0,0,78,41,7,114,23,0,0, + 0,114,95,0,0,0,218,17,70,105,108,101,78,111,116,70, + 111,117,110,100,69,114,114,111,114,114,20,0,0,0,114,246, + 1,0,0,218,8,75,101,121,69,114,114,111,114,114,254,1, + 0,0,41,3,114,50,1,0,0,114,68,0,0,0,114,249, + 1,0,0,115,3,0,0,0,32,32,32,114,10,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,122,31,80,97,116,104,70,105,110,100, + 101,114,46,95,112,97,116,104,95,105,109,112,111,114,116,101, + 114,95,99,97,99,104,101,189,5,0,0,115,128,0,0,0, + 128,0,240,16,0,12,16,144,50,138,58,240,2,5,13,28, + 220,23,26,151,122,145,122,147,124,144,4,240,10,4,9,51, + 220,21,24,215,21,44,209,21,44,168,84,209,21,50,136,70, + 240,8,0,16,22,136,13,248,244,19,0,20,37,242,0,3, + 13,28,241,6,0,24,28,240,7,3,13,28,251,244,12,0, + 16,24,242,0,2,9,51,216,21,24,151,95,145,95,160,84, + 211,21,42,136,70,216,44,50,140,67,215,12,35,209,12,35, + 160,68,210,12,41,216,15,21,136,13,240,7,2,9,51,250, + 115,29,0,0,0,135,20,49,0,156,19,65,0,0,177,9, + 61,3,188,1,61,3,193,0,45,65,49,3,193,48,1,65, + 49,3,78,99,4,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,58,1,0,0,151,0,103, + 0,125,4,124,2,68,0,93,118,0,0,125,5,116,1,0, + 0,0,0,0,0,0,0,124,5,116,2,0,0,0,0,0, + 0,0,0,171,2,0,0,0,0,0,0,115,1,140,20,124, + 0,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,5,171,1,0,0,0,0,0,0,125, + 6,124,6,128,1,140,40,124,6,106,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,124, + 3,171,2,0,0,0,0,0,0,125,7,124,7,128,1,140, + 61,124,7,106,8,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,129,4,124,7,99,2,1,0,83, + 0,124,7,106,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,125,8,124,8,128,11,116,13,0, + 0,0,0,0,0,0,0,100,2,171,1,0,0,0,0,0, + 0,130,1,124,4,106,15,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,8,171,1,0,0,0, + 0,0,0,1,0,140,120,4,0,116,16,0,0,0,0,0, + 0,0,0,106,19,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,1,100,1,171,2,0,0,0, + 0,0,0,125,7,124,4,124,7,95,5,0,0,0,0,0, + 0,0,0,124,7,83,0,41,3,122,63,70,105,110,100,32, + 116,104,101,32,108,111,97,100,101,114,32,111,114,32,110,97, + 109,101,115,112,97,99,101,95,112,97,116,104,32,102,111,114, + 32,116,104,105,115,32,109,111,100,117,108,101,47,112,97,99, + 107,97,103,101,32,110,97,109,101,46,78,122,19,115,112,101, + 99,32,109,105,115,115,105,110,103,32,108,111,97,100,101,114, + 41,10,114,232,0,0,0,114,136,0,0,0,114,2,2,0, + 0,114,58,1,0,0,114,4,1,0,0,114,5,1,0,0, + 114,188,0,0,0,114,240,0,0,0,114,207,0,0,0,114, + 11,1,0,0,41,9,114,50,1,0,0,114,42,1,0,0, + 114,68,0,0,0,114,57,1,0,0,218,14,110,97,109,101, + 115,112,97,99,101,95,112,97,116,104,218,5,101,110,116,114, + 121,114,249,1,0,0,114,16,1,0,0,218,8,112,111,114, + 116,105,111,110,115,115,9,0,0,0,32,32,32,32,32,32, + 32,32,32,114,10,0,0,0,218,9,95,103,101,116,95,115, + 112,101,99,122,20,80,97,116,104,70,105,110,100,101,114,46, + 95,103,101,116,95,115,112,101,99,211,5,0,0,115,178,0, + 0,0,128,0,240,10,0,26,28,136,14,216,21,25,242,0, + 21,9,24,136,69,220,19,29,152,101,164,83,212,19,41,216, + 16,24,216,21,24,215,21,45,209,21,45,168,101,211,21,52, + 136,70,216,15,21,209,15,33,216,23,29,215,23,39,209,23, + 39,168,8,176,38,211,23,57,144,4,216,19,23,144,60,216, + 20,28,216,19,23,151,59,145,59,208,19,42,216,27,31,146, + 75,216,27,31,215,27,58,209,27,58,144,8,216,19,27,208, + 19,35,220,26,37,208,38,59,211,26,60,208,20,60,240,10, + 0,17,31,215,16,37,209,16,37,160,104,213,16,47,240,35, + 21,9,24,244,38,0,20,30,215,19,40,209,19,40,168,24, + 176,52,211,19,56,136,68,216,46,60,136,68,212,12,43,216, + 19,23,136,75,114,28,0,0,0,99,4,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,214, + 0,0,0,151,0,124,2,128,16,116,0,0,0,0,0,0, + 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,125,2,124,0,106,5,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,25,0,0,0,125,2,124,2,83,0,35,0,116,4,0, - 0,0,0,0,0,0,0,36,0,114,3,1,0,89,0,121, - 2,119,0,120,3,89,0,119,1,35,0,116,10,0,0,0, - 0,0,0,0,0,36,0,114,40,1,0,124,0,106,13,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,125,2,124,2,116, - 6,0,0,0,0,0,0,0,0,106,8,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,60, - 0,0,0,89,0,124,2,83,0,119,0,120,3,89,0,119, - 1,41,3,122,210,71,101,116,32,116,104,101,32,102,105,110, - 100,101,114,32,102,111,114,32,116,104,101,32,112,97,116,104, - 32,101,110,116,114,121,32,102,114,111,109,32,115,121,115,46, - 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97, - 99,104,101,46,10,10,32,32,32,32,32,32,32,32,73,102, - 32,116,104,101,32,112,97,116,104,32,101,110,116,114,121,32, - 105,115,32,110,111,116,32,105,110,32,116,104,101,32,99,97, - 99,104,101,44,32,102,105,110,100,32,116,104,101,32,97,112, - 112,114,111,112,114,105,97,116,101,32,102,105,110,100,101,114, - 10,32,32,32,32,32,32,32,32,97,110,100,32,99,97,99, - 104,101,32,105,116,46,32,73,102,32,110,111,32,102,105,110, - 100,101,114,32,105,115,32,97,118,97,105,108,97,98,108,101, - 44,32,115,116,111,114,101,32,78,111,110,101,46,10,10,32, - 32,32,32,32,32,32,32,114,12,0,0,0,78,41,7,114, - 23,0,0,0,114,95,0,0,0,218,17,70,105,108,101,78, - 111,116,70,111,117,110,100,69,114,114,111,114,114,20,0,0, - 0,114,244,1,0,0,218,8,75,101,121,69,114,114,111,114, - 114,251,1,0,0,41,3,114,50,1,0,0,114,68,0,0, - 0,114,246,1,0,0,115,3,0,0,0,32,32,32,114,10, - 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,122,31,80,97,116,104,70, - 105,110,100,101,114,46,95,112,97,116,104,95,105,109,112,111, - 114,116,101,114,95,99,97,99,104,101,186,5,0,0,115,128, - 0,0,0,128,0,240,16,0,12,16,144,50,138,58,240,2, - 5,13,28,220,23,26,151,122,145,122,147,124,144,4,240,10, - 4,9,51,220,21,24,215,21,44,209,21,44,168,84,209,21, - 50,136,70,240,8,0,16,22,136,13,248,244,19,0,20,37, - 242,0,3,13,28,241,6,0,24,28,240,7,3,13,28,251, - 244,12,0,16,24,242,0,2,9,51,216,21,24,151,95,145, - 95,160,84,211,21,42,136,70,216,44,50,140,67,215,12,35, - 209,12,35,160,68,210,12,41,216,15,21,136,13,240,7,2, - 9,51,250,115,29,0,0,0,135,20,49,0,156,19,65,0, - 0,177,9,61,3,188,1,61,3,193,0,45,65,49,3,193, - 48,1,65,49,3,78,99,4,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,58,1,0,0, - 151,0,103,0,125,4,124,2,68,0,93,118,0,0,125,5, - 116,1,0,0,0,0,0,0,0,0,124,5,116,2,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,1, - 140,20,124,0,106,5,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,5,171,1,0,0,0,0, - 0,0,125,6,124,6,128,1,140,40,124,6,106,7,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,124,3,171,2,0,0,0,0,0,0,125,7,124,7, - 128,1,140,61,124,7,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,129,4,124,7,99,2, - 1,0,83,0,124,7,106,10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,8,124,8,128,11, - 116,13,0,0,0,0,0,0,0,0,100,2,171,1,0,0, - 0,0,0,0,130,1,124,4,106,15,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,8,171,1, - 0,0,0,0,0,0,1,0,140,120,4,0,116,16,0,0, - 0,0,0,0,0,0,106,19,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,100,1,171,2, - 0,0,0,0,0,0,125,7,124,4,124,7,95,5,0,0, - 0,0,0,0,0,0,124,7,83,0,41,3,122,63,70,105, - 110,100,32,116,104,101,32,108,111,97,100,101,114,32,111,114, - 32,110,97,109,101,115,112,97,99,101,95,112,97,116,104,32, - 102,111,114,32,116,104,105,115,32,109,111,100,117,108,101,47, - 112,97,99,107,97,103,101,32,110,97,109,101,46,78,122,19, - 115,112,101,99,32,109,105,115,115,105,110,103,32,108,111,97, - 100,101,114,41,10,114,232,0,0,0,114,136,0,0,0,114, - 255,1,0,0,114,58,1,0,0,114,4,1,0,0,114,5, - 1,0,0,114,188,0,0,0,114,240,0,0,0,114,207,0, - 0,0,114,11,1,0,0,41,9,114,50,1,0,0,114,42, - 1,0,0,114,68,0,0,0,114,57,1,0,0,218,14,110, - 97,109,101,115,112,97,99,101,95,112,97,116,104,218,5,101, - 110,116,114,121,114,246,1,0,0,114,16,1,0,0,218,8, - 112,111,114,116,105,111,110,115,115,9,0,0,0,32,32,32, - 32,32,32,32,32,32,114,10,0,0,0,218,9,95,103,101, - 116,95,115,112,101,99,122,20,80,97,116,104,70,105,110,100, - 101,114,46,95,103,101,116,95,115,112,101,99,208,5,0,0, - 115,178,0,0,0,128,0,240,10,0,26,28,136,14,216,21, - 25,242,0,21,9,24,136,69,220,19,29,152,101,164,83,212, - 19,41,216,16,24,216,21,24,215,21,45,209,21,45,168,101, - 211,21,52,136,70,216,15,21,209,15,33,216,23,29,215,23, - 39,209,23,39,168,8,176,38,211,23,57,144,4,216,19,23, - 144,60,216,20,28,216,19,23,151,59,145,59,208,19,42,216, - 27,31,146,75,216,27,31,215,27,58,209,27,58,144,8,216, - 19,27,208,19,35,220,26,37,208,38,59,211,26,60,208,20, - 60,240,10,0,17,31,215,16,37,209,16,37,160,104,213,16, - 47,240,35,21,9,24,244,38,0,20,30,215,19,40,209,19, - 40,168,24,176,52,211,19,56,136,68,216,46,60,136,68,212, - 12,43,216,19,23,136,75,114,28,0,0,0,99,4,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,214,0,0,0,151,0,124,2,128,16,116,0,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,2,124,0,106,5, + 1,124,2,124,3,171,3,0,0,0,0,0,0,125,4,124, + 4,128,1,121,1,124,4,106,6,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,128,52,124,4,106, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,125,5,124,5,114,37,100,1,124,4,95,5,0, + 0,0,0,0,0,0,0,116,13,0,0,0,0,0,0,0, + 0,124,1,124,5,124,0,106,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,171,3,0,0,0, + 0,0,0,124,4,95,4,0,0,0,0,0,0,0,0,124, + 4,83,0,121,1,124,4,83,0,41,2,122,141,84,114,121, + 32,116,111,32,102,105,110,100,32,97,32,115,112,101,99,32, + 102,111,114,32,39,102,117,108,108,110,97,109,101,39,32,111, + 110,32,115,121,115,46,112,97,116,104,32,111,114,32,39,112, + 97,116,104,39,46,10,10,32,32,32,32,32,32,32,32,84, + 104,101,32,115,101,97,114,99,104,32,105,115,32,98,97,115, + 101,100,32,111,110,32,115,121,115,46,112,97,116,104,95,104, + 111,111,107,115,32,97,110,100,32,115,121,115,46,112,97,116, + 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101, + 46,10,32,32,32,32,32,32,32,32,78,41,7,114,20,0, + 0,0,114,68,0,0,0,114,7,2,0,0,114,4,1,0, + 0,114,5,1,0,0,114,9,1,0,0,114,185,1,0,0, + 41,6,114,50,1,0,0,114,42,1,0,0,114,68,0,0, + 0,114,57,1,0,0,114,16,1,0,0,114,4,2,0,0, + 115,6,0,0,0,32,32,32,32,32,32,114,10,0,0,0, + 114,58,1,0,0,122,20,80,97,116,104,70,105,110,100,101, + 114,46,102,105,110,100,95,115,112,101,99,240,5,0,0,115, + 114,0,0,0,128,0,240,12,0,12,16,136,60,220,19,22, + 151,56,145,56,136,68,216,15,18,143,125,137,125,152,88,160, + 116,168,86,211,15,52,136,4,216,11,15,136,60,216,19,23, + 216,13,17,143,91,137,91,208,13,32,216,29,33,215,29,60, + 209,29,60,136,78,217,15,29,240,6,0,31,35,144,4,148, + 11,220,50,64,192,24,200,62,208,91,94,215,91,104,209,91, + 104,211,50,105,144,4,212,16,47,216,23,27,144,11,224,23, + 27,224,19,23,136,75,114,28,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,15,0,0,0, + 243,50,0,0,0,151,0,100,1,100,2,108,0,109,1,125, + 2,1,0,2,0,124,2,106,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,0,105,0,124, + 1,164,1,142,1,83,0,41,3,97,32,1,0,0,10,32, + 32,32,32,32,32,32,32,70,105,110,100,32,100,105,115,116, + 114,105,98,117,116,105,111,110,115,46,10,10,32,32,32,32, + 32,32,32,32,82,101,116,117,114,110,32,97,110,32,105,116, + 101,114,97,98,108,101,32,111,102,32,97,108,108,32,68,105, + 115,116,114,105,98,117,116,105,111,110,32,105,110,115,116,97, + 110,99,101,115,32,99,97,112,97,98,108,101,32,111,102,10, + 32,32,32,32,32,32,32,32,108,111,97,100,105,110,103,32, + 116,104,101,32,109,101,116,97,100,97,116,97,32,102,111,114, + 32,112,97,99,107,97,103,101,115,32,109,97,116,99,104,105, + 110,103,32,96,96,99,111,110,116,101,120,116,46,110,97,109, + 101,96,96,10,32,32,32,32,32,32,32,32,40,111,114,32, + 97,108,108,32,110,97,109,101,115,32,105,102,32,96,96,78, + 111,110,101,96,96,32,105,110,100,105,99,97,116,101,100,41, + 32,97,108,111,110,103,32,116,104,101,32,112,97,116,104,115, + 32,105,110,32,116,104,101,32,108,105,115,116,10,32,32,32, + 32,32,32,32,32,111,102,32,100,105,114,101,99,116,111,114, + 105,101,115,32,96,96,99,111,110,116,101,120,116,46,112,97, + 116,104,96,96,46,10,32,32,32,32,32,32,32,32,114,1, + 0,0,0,114,243,1,0,0,41,3,114,248,1,0,0,114, + 244,1,0,0,218,18,102,105,110,100,95,100,105,115,116,114, + 105,98,117,116,105,111,110,115,41,3,114,190,0,0,0,114, + 191,0,0,0,114,244,1,0,0,115,3,0,0,0,32,32, + 32,114,10,0,0,0,114,10,2,0,0,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,8,6,0,0,115,32, + 0,0,0,128,0,245,20,0,9,58,216,15,52,208,15,33, + 215,15,52,209,15,52,176,100,208,15,69,184,102,209,15,69, + 208,8,69,114,28,0,0,0,114,77,0,0,0,114,59,1, + 0,0,41,12,114,196,0,0,0,114,195,0,0,0,114,197, + 0,0,0,114,198,0,0,0,114,62,1,0,0,114,242,1, + 0,0,114,254,1,0,0,114,63,1,0,0,114,2,2,0, + 0,114,7,2,0,0,114,58,1,0,0,114,10,2,0,0, + 114,30,0,0,0,114,28,0,0,0,114,10,0,0,0,114, + 240,1,0,0,114,240,1,0,0,154,5,0,0,115,125,0, + 0,0,132,0,225,4,72,224,5,17,241,2,15,5,47,243, + 3,0,6,18,240,2,15,5,47,240,34,0,6,18,241,2, + 10,5,24,243,3,0,6,18,240,2,10,5,24,240,24,0, + 6,17,241,2,19,5,22,243,3,0,6,17,240,2,19,5, + 22,240,42,0,6,17,242,2,26,5,24,243,3,0,6,17, + 240,2,26,5,24,240,56,0,6,17,242,2,21,5,24,243, + 3,0,6,17,240,2,21,5,24,240,46,0,6,18,241,2, + 10,5,70,1,243,3,0,6,18,241,2,10,5,70,1,114, + 28,0,0,0,114,240,1,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,2,0,0,0,0,0,0,0,243,70, + 0,0,0,151,0,101,0,90,1,100,0,90,2,100,1,90, + 3,100,2,132,0,90,4,100,3,132,0,90,5,100,4,132, + 0,90,6,100,10,100,6,132,1,90,7,100,7,132,0,90, + 8,101,9,100,8,132,0,171,0,0,0,0,0,0,0,90, + 10,100,9,132,0,90,11,121,5,41,11,218,10,70,105,108, + 101,70,105,110,100,101,114,122,172,70,105,108,101,45,98,97, + 115,101,100,32,102,105,110,100,101,114,46,10,10,32,32,32, + 32,73,110,116,101,114,97,99,116,105,111,110,115,32,119,105, + 116,104,32,116,104,101,32,102,105,108,101,32,115,121,115,116, + 101,109,32,97,114,101,32,99,97,99,104,101,100,32,102,111, + 114,32,112,101,114,102,111,114,109,97,110,99,101,44,32,98, + 101,105,110,103,10,32,32,32,32,114,101,102,114,101,115,104, + 101,100,32,119,104,101,110,32,116,104,101,32,100,105,114,101, + 99,116,111,114,121,32,116,104,101,32,102,105,110,100,101,114, + 32,105,115,32,104,97,110,100,108,105,110,103,32,104,97,115, + 32,98,101,101,110,32,109,111,100,105,102,105,101,100,46,10, + 10,32,32,32,32,99,2,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,7,0,0,0,243,12,1,0,0,135, + 5,151,0,103,0,125,3,124,2,68,0,93,31,0,0,92, + 2,0,0,138,5,125,4,124,3,106,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,136,5,102, + 1,100,1,132,8,124,4,68,0,171,0,0,0,0,0,0, + 0,171,1,0,0,0,0,0,0,1,0,140,33,4,0,124, + 3,124,0,95,1,0,0,0,0,0,0,0,0,124,1,114, + 5,124,1,100,2,107,40,0,0,114,26,116,5,0,0,0, + 0,0,0,0,0,106,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,124,0,95,4,0,0,0,0,0,0,0,0,110,16,116, + 11,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, + 0,0,0,124,0,95,4,0,0,0,0,0,0,0,0,100, + 3,124,0,95,6,0,0,0,0,0,0,0,0,116,15,0, + 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,124, + 0,95,8,0,0,0,0,0,0,0,0,116,15,0,0,0, + 0,0,0,0,0,171,0,0,0,0,0,0,0,124,0,95, + 9,0,0,0,0,0,0,0,0,121,4,41,5,122,154,73, + 110,105,116,105,97,108,105,122,101,32,119,105,116,104,32,116, + 104,101,32,112,97,116,104,32,116,111,32,115,101,97,114,99, + 104,32,111,110,32,97,110,100,32,97,32,118,97,114,105,97, + 98,108,101,32,110,117,109,98,101,114,32,111,102,10,32,32, + 32,32,32,32,32,32,50,45,116,117,112,108,101,115,32,99, + 111,110,116,97,105,110,105,110,103,32,116,104,101,32,108,111, + 97,100,101,114,32,97,110,100,32,116,104,101,32,102,105,108, + 101,32,115,117,102,102,105,120,101,115,32,116,104,101,32,108, + 111,97,100,101,114,10,32,32,32,32,32,32,32,32,114,101, + 99,111,103,110,105,122,101,115,46,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,51,0,0,0,243,38, + 0,0,0,149,1,75,0,1,0,151,0,124,0,93,8,0, + 0,125,1,124,1,137,2,102,2,150,1,151,1,1,0,140, + 10,4,0,121,0,173,3,119,1,114,77,0,0,0,114,30, + 0,0,0,41,3,114,8,0,0,0,114,178,1,0,0,114, + 4,1,0,0,115,3,0,0,0,32,32,128,114,10,0,0, + 0,114,11,0,0,0,122,38,70,105,108,101,70,105,110,100, + 101,114,46,95,95,105,110,105,116,95,95,46,60,108,111,99, + 97,108,115,62,46,60,103,101,110,101,120,112,114,62,37,6, + 0,0,115,22,0,0,0,248,232,0,248,128,0,210,26,67, + 176,6,152,70,160,70,212,27,43,209,26,67,249,115,4,0, + 0,0,131,14,17,1,114,103,0,0,0,114,170,0,0,0, + 78,41,10,114,240,0,0,0,218,8,95,108,111,97,100,101, + 114,115,114,23,0,0,0,114,95,0,0,0,114,68,0,0, + 0,114,105,0,0,0,218,11,95,112,97,116,104,95,109,116, + 105,109,101,218,3,115,101,116,218,11,95,112,97,116,104,95, + 99,97,99,104,101,218,19,95,114,101,108,97,120,101,100,95, + 112,97,116,104,95,99,97,99,104,101,41,6,114,189,0,0, + 0,114,68,0,0,0,218,14,108,111,97,100,101,114,95,100, + 101,116,97,105,108,115,218,7,108,111,97,100,101,114,115,114, + 18,1,0,0,114,4,1,0,0,115,6,0,0,0,32,32, + 32,32,32,64,114,10,0,0,0,114,67,1,0,0,122,19, + 70,105,108,101,70,105,110,100,101,114,46,95,95,105,110,105, + 116,95,95,31,6,0,0,115,119,0,0,0,248,128,0,240, + 8,0,19,21,136,7,216,32,46,242,0,1,9,68,1,209, + 12,28,136,70,144,72,216,12,19,143,78,137,78,211,26,67, + 184,40,212,26,67,213,12,67,240,3,1,9,68,1,224,24, + 31,136,4,140,13,225,15,19,144,116,152,115,146,123,220,24, + 27,159,10,153,10,155,12,136,68,141,73,228,24,37,160,100, + 211,24,43,136,68,140,73,216,27,29,136,4,212,8,24,220, + 27,30,155,53,136,4,212,8,24,220,35,38,163,53,136,4, + 213,8,32,114,28,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,3,0,0,0,243,18,0, + 0,0,151,0,100,1,124,0,95,0,0,0,0,0,0,0, + 0,0,121,2,41,3,122,31,73,110,118,97,108,105,100,97, + 116,101,32,116,104,101,32,100,105,114,101,99,116,111,114,121, + 32,109,116,105,109,101,46,114,170,0,0,0,78,41,1,114, + 16,2,0,0,114,131,1,0,0,115,1,0,0,0,32,114, + 10,0,0,0,114,242,1,0,0,122,28,70,105,108,101,70, + 105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,101, + 95,99,97,99,104,101,115,48,6,0,0,115,10,0,0,0, + 128,0,224,27,29,136,4,213,8,24,114,28,0,0,0,99, + 6,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 3,0,0,0,243,50,0,0,0,151,0,2,0,124,1,124, + 2,124,3,171,2,0,0,0,0,0,0,125,6,116,1,0, + 0,0,0,0,0,0,0,124,2,124,3,124,6,124,4,172, + 1,171,4,0,0,0,0,0,0,83,0,41,2,78,114,3, + 1,0,0,41,1,114,20,1,0,0,41,7,114,189,0,0, + 0,114,17,1,0,0,114,42,1,0,0,114,68,0,0,0, + 218,4,115,109,115,108,114,57,1,0,0,114,4,1,0,0, + 115,7,0,0,0,32,32,32,32,32,32,32,114,10,0,0, + 0,114,7,2,0,0,122,20,70,105,108,101,70,105,110,100, + 101,114,46,95,103,101,116,95,115,112,101,99,52,6,0,0, + 115,38,0,0,0,128,0,217,17,29,152,104,168,4,211,17, + 45,136,6,220,15,38,160,120,176,20,184,102,216,66,70,244, + 3,1,16,72,1,240,0,1,9,72,1,114,28,0,0,0, + 78,99,3,0,0,0,0,0,0,0,0,0,0,0,8,0, + 0,0,3,0,0,0,243,192,3,0,0,151,0,100,1,125, + 3,124,1,106,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,100,2,171,1,0,0,0,0,0, + 0,100,3,25,0,0,0,125,4,9,0,116,3,0,0,0, + 0,0,0,0,0,124,0,106,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,120,1,115,20,1, + 0,116,7,0,0,0,0,0,0,0,0,106,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, + 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,106, + 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,125,5,124,5,124,0,106,14,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,107,55,0, + 0,114,23,124,0,106,17,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,1,0,124,5,124,0,95,7,0,0,0,0,0,0,0, + 0,116,19,0,0,0,0,0,0,0,0,171,0,0,0,0, + 0,0,0,114,29,124,0,106,20,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,125,6,124,4,106, + 23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,125,7,110,14,124, + 0,106,24,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,125,6,124,4,125,7,124,7,124,6,118, + 0,114,105,116,27,0,0,0,0,0,0,0,0,124,0,106, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,4,171,2,0,0,0,0,0,0,125,8,124, + 0,106,28,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,68,0,93,57,0,0,92,2,0,0,125, + 9,125,10,100,5,124,9,122,0,0,0,125,11,116,27,0, + 0,0,0,0,0,0,0,124,8,124,11,171,2,0,0,0, + 0,0,0,125,12,116,31,0,0,0,0,0,0,0,0,124, + 12,171,1,0,0,0,0,0,0,115,1,140,35,124,0,106, + 33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,10,124,1,124,12,124,8,103,1,124,2,171, + 5,0,0,0,0,0,0,99,2,1,0,83,0,4,0,116, + 35,0,0,0,0,0,0,0,0,124,8,171,1,0,0,0, + 0,0,0,125,3,124,0,106,28,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,68,0,93,97,0, + 0,92,2,0,0,125,9,125,10,9,0,116,27,0,0,0, + 0,0,0,0,0,124,0,106,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,4,124,9,122, + 0,0,0,171,2,0,0,0,0,0,0,125,12,116,38,0, + 0,0,0,0,0,0,0,106,41,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,7,124,12,100, + 3,172,8,171,3,0,0,0,0,0,0,1,0,124,7,124, + 9,122,0,0,0,124,6,118,0,115,1,140,64,116,31,0, + 0,0,0,0,0,0,0,124,12,171,1,0,0,0,0,0, + 0,115,1,140,76,124,0,106,33,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,10,124,1,124, + 12,100,6,124,2,171,5,0,0,0,0,0,0,99,2,1, + 0,83,0,4,0,124,3,114,54,116,38,0,0,0,0,0, + 0,0,0,106,41,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,100,9,127,8,171,2,0,0,0, + 0,0,0,1,0,116,38,0,0,0,0,0,0,0,0,106, + 43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,1,100,6,171,2,0,0,0,0,0,0,125, + 13,124,8,103,1,124,13,95,22,0,0,0,0,0,0,0, + 0,124,13,83,0,121,6,35,0,116,12,0,0,0,0,0, + 0,0,0,36,0,114,6,1,0,100,4,125,5,89,0,144, + 1,140,127,119,0,120,3,89,0,119,1,35,0,116,36,0, + 0,0,0,0,0,0,0,36,0,114,4,1,0,89,0,1, + 0,121,6,119,0,120,3,89,0,119,1,41,10,122,111,84, + 114,121,32,116,111,32,102,105,110,100,32,97,32,115,112,101, + 99,32,102,111,114,32,116,104,101,32,115,112,101,99,105,102, + 105,101,100,32,109,111,100,117,108,101,46,10,10,32,32,32, + 32,32,32,32,32,82,101,116,117,114,110,115,32,116,104,101, + 32,109,97,116,99,104,105,110,103,32,115,112,101,99,44,32, + 111,114,32,78,111,110,101,32,105,102,32,110,111,116,32,102, + 111,117,110,100,46,10,32,32,32,32,32,32,32,32,70,114, + 103,0,0,0,114,52,0,0,0,114,170,0,0,0,114,67, + 1,0,0,78,122,9,116,114,121,105,110,103,32,123,125,41, + 1,218,9,118,101,114,98,111,115,105,116,121,122,25,112,111, + 115,115,105,98,108,101,32,110,97,109,101,115,112,97,99,101, + 32,102,111,114,32,123,125,41,23,114,131,0,0,0,114,85, + 0,0,0,114,68,0,0,0,114,23,0,0,0,114,95,0, + 0,0,114,152,1,0,0,114,87,0,0,0,114,16,2,0, + 0,218,11,95,102,105,108,108,95,99,97,99,104,101,114,27, + 0,0,0,114,19,2,0,0,114,172,0,0,0,114,18,2, + 0,0,114,72,0,0,0,114,15,2,0,0,114,93,0,0, + 0,114,7,2,0,0,114,96,0,0,0,114,138,0,0,0, + 114,207,0,0,0,114,215,0,0,0,114,11,1,0,0,114, + 5,1,0,0,41,14,114,189,0,0,0,114,42,1,0,0, + 114,57,1,0,0,218,12,105,115,95,110,97,109,101,115,112, + 97,99,101,218,11,116,97,105,108,95,109,111,100,117,108,101, + 114,242,0,0,0,218,5,99,97,99,104,101,218,12,99,97, + 99,104,101,95,109,111,100,117,108,101,218,9,98,97,115,101, + 95,112,97,116,104,114,178,1,0,0,114,17,1,0,0,218, + 13,105,110,105,116,95,102,105,108,101,110,97,109,101,218,9, + 102,117,108,108,95,112,97,116,104,114,16,1,0,0,115,14, + 0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,114,10,0,0,0,114,58,1,0,0,122,20,70,105,108, + 101,70,105,110,100,101,114,46,102,105,110,100,95,115,112,101, + 99,57,6,0,0,115,230,1,0,0,128,0,240,10,0,24, + 29,136,12,216,22,30,215,22,41,209,22,41,168,35,211,22, + 46,168,113,209,22,49,136,11,240,2,3,9,23,220,20,30, + 152,116,159,121,153,121,210,31,56,172,67,175,74,169,74,171, + 76,211,20,57,215,20,66,209,20,66,136,69,240,6,0,12, + 17,144,68,215,20,36,209,20,36,210,11,36,216,12,16,215, + 12,28,209,12,28,212,12,30,216,31,36,136,68,212,12,28, + 228,11,22,140,61,216,20,24,215,20,44,209,20,44,136,69, + 216,27,38,215,27,44,209,27,44,211,27,46,137,76,224,20, + 24,215,20,36,209,20,36,136,69,216,27,38,136,76,224,11, + 23,152,53,209,11,32,220,24,34,160,52,167,57,161,57,168, + 107,211,24,58,136,73,216,40,44,175,13,169,13,242,0,8, + 13,54,209,16,36,144,6,152,12,216,32,42,168,86,209,32, + 51,144,13,220,28,38,160,121,176,45,211,28,64,144,9,220, + 19,31,160,9,213,19,42,216,27,31,159,62,153,62,168,44, + 184,8,192,41,200,105,200,91,208,90,96,211,27,97,210,20, + 97,240,9,8,13,54,244,16,0,32,43,168,57,211,31,53, + 144,12,224,36,40,167,77,161,77,242,0,9,9,56,209,12, + 32,136,70,144,76,240,2,3,13,28,220,28,38,160,116,167, + 121,161,121,176,43,192,6,209,50,70,211,28,71,144,9,244, + 6,0,13,23,215,12,39,209,12,39,168,11,176,89,200,33, + 208,12,39,212,12,76,216,15,27,152,102,209,15,36,168,5, + 210,15,45,220,19,31,160,9,213,19,42,216,27,31,159,62, + 153,62,168,44,184,8,192,41,216,42,46,176,6,243,3,1, + 28,56,242,0,1,21,56,240,17,9,9,56,241,20,0,12, + 24,220,12,22,215,12,39,209,12,39,208,40,67,192,89,212, + 12,79,220,19,29,215,19,40,209,19,40,168,24,176,52,211, + 19,56,136,68,216,47,56,168,107,136,68,212,12,43,216,19, + 23,136,75,216,15,19,248,244,81,1,0,16,23,242,0,1, + 9,23,216,20,22,139,69,240,3,1,9,23,251,244,56,0, + 20,30,242,0,1,13,28,218,23,27,240,3,1,13,28,250, + 115,35,0,0,0,152,53,70,62,0,196,40,25,71,16,2, + 198,62,11,71,13,3,199,12,1,71,13,3,199,16,9,71, + 29,5,199,28,1,71,29,5,99,1,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,84,2, + 0,0,151,0,124,0,106,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,125,1,9,0,116,3, + 0,0,0,0,0,0,0,0,106,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,1,120,1, + 115,20,1,0,116,3,0,0,0,0,0,0,0,0,106,6, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,124,2,124,3,171,3,0,0,0,0,0,0, - 125,4,124,4,128,1,121,1,124,4,106,6,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,52, - 124,4,106,8,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,5,124,5,114,37,100,1,124,4, - 95,5,0,0,0,0,0,0,0,0,116,13,0,0,0,0, - 0,0,0,0,124,1,124,5,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,3, - 0,0,0,0,0,0,124,4,95,4,0,0,0,0,0,0, - 0,0,124,4,83,0,121,1,124,4,83,0,41,2,122,141, - 84,114,121,32,116,111,32,102,105,110,100,32,97,32,115,112, - 101,99,32,102,111,114,32,39,102,117,108,108,110,97,109,101, - 39,32,111,110,32,115,121,115,46,112,97,116,104,32,111,114, - 32,39,112,97,116,104,39,46,10,10,32,32,32,32,32,32, - 32,32,84,104,101,32,115,101,97,114,99,104,32,105,115,32, - 98,97,115,101,100,32,111,110,32,115,121,115,46,112,97,116, - 104,95,104,111,111,107,115,32,97,110,100,32,115,121,115,46, - 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97, - 99,104,101,46,10,32,32,32,32,32,32,32,32,78,41,7, - 114,20,0,0,0,114,68,0,0,0,114,4,2,0,0,114, - 4,1,0,0,114,5,1,0,0,114,9,1,0,0,114,185, - 1,0,0,41,6,114,50,1,0,0,114,42,1,0,0,114, - 68,0,0,0,114,57,1,0,0,114,16,1,0,0,114,1, - 2,0,0,115,6,0,0,0,32,32,32,32,32,32,114,10, - 0,0,0,114,58,1,0,0,122,20,80,97,116,104,70,105, - 110,100,101,114,46,102,105,110,100,95,115,112,101,99,237,5, - 0,0,115,114,0,0,0,128,0,240,12,0,12,16,136,60, - 220,19,22,151,56,145,56,136,68,216,15,18,143,125,137,125, - 152,88,160,116,168,86,211,15,52,136,4,216,11,15,136,60, - 216,19,23,216,13,17,143,91,137,91,208,13,32,216,29,33, - 215,29,60,209,29,60,136,78,217,15,29,240,6,0,31,35, - 144,4,148,11,220,50,64,192,24,200,62,208,91,94,215,91, - 104,209,91,104,211,50,105,144,4,212,16,47,216,23,27,144, - 11,224,23,27,224,19,23,136,75,114,28,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,15, - 0,0,0,243,50,0,0,0,151,0,100,1,100,2,108,0, - 109,1,125,2,1,0,2,0,124,2,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 105,0,124,1,164,1,142,1,83,0,41,3,97,32,1,0, - 0,10,32,32,32,32,32,32,32,32,70,105,110,100,32,100, - 105,115,116,114,105,98,117,116,105,111,110,115,46,10,10,32, - 32,32,32,32,32,32,32,82,101,116,117,114,110,32,97,110, - 32,105,116,101,114,97,98,108,101,32,111,102,32,97,108,108, - 32,68,105,115,116,114,105,98,117,116,105,111,110,32,105,110, - 115,116,97,110,99,101,115,32,99,97,112,97,98,108,101,32, - 111,102,10,32,32,32,32,32,32,32,32,108,111,97,100,105, - 110,103,32,116,104,101,32,109,101,116,97,100,97,116,97,32, - 102,111,114,32,112,97,99,107,97,103,101,115,32,109,97,116, - 99,104,105,110,103,32,96,96,99,111,110,116,101,120,116,46, - 110,97,109,101,96,96,10,32,32,32,32,32,32,32,32,40, - 111,114,32,97,108,108,32,110,97,109,101,115,32,105,102,32, - 96,96,78,111,110,101,96,96,32,105,110,100,105,99,97,116, - 101,100,41,32,97,108,111,110,103,32,116,104,101,32,112,97, - 116,104,115,32,105,110,32,116,104,101,32,108,105,115,116,10, - 32,32,32,32,32,32,32,32,111,102,32,100,105,114,101,99, - 116,111,114,105,101,115,32,96,96,99,111,110,116,101,120,116, - 46,112,97,116,104,96,96,46,10,32,32,32,32,32,32,32, - 32,114,1,0,0,0,41,1,218,18,77,101,116,97,100,97, - 116,97,80,97,116,104,70,105,110,100,101,114,41,3,218,18, - 105,109,112,111,114,116,108,105,98,46,109,101,116,97,100,97, - 116,97,114,7,2,0,0,218,18,102,105,110,100,95,100,105, - 115,116,114,105,98,117,116,105,111,110,115,41,3,114,190,0, - 0,0,114,191,0,0,0,114,7,2,0,0,115,3,0,0, - 0,32,32,32,114,10,0,0,0,114,9,2,0,0,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,5,6,0, - 0,115,32,0,0,0,128,0,245,20,0,9,58,216,15,52, - 208,15,33,215,15,52,209,15,52,176,100,208,15,69,184,102, - 209,15,69,208,8,69,114,28,0,0,0,114,77,0,0,0, - 114,59,1,0,0,41,12,114,196,0,0,0,114,195,0,0, - 0,114,197,0,0,0,114,198,0,0,0,114,62,1,0,0, - 114,242,1,0,0,114,251,1,0,0,114,63,1,0,0,114, - 255,1,0,0,114,4,2,0,0,114,58,1,0,0,114,9, - 2,0,0,114,30,0,0,0,114,28,0,0,0,114,10,0, - 0,0,114,240,1,0,0,114,240,1,0,0,154,5,0,0, - 115,125,0,0,0,132,0,225,4,72,224,5,17,241,2,12, - 5,35,243,3,0,6,18,240,2,12,5,35,240,28,0,6, - 18,241,2,10,5,24,243,3,0,6,18,240,2,10,5,24, - 240,24,0,6,17,241,2,19,5,22,243,3,0,6,17,240, - 2,19,5,22,240,42,0,6,17,242,2,26,5,24,243,3, - 0,6,17,240,2,26,5,24,240,56,0,6,17,242,2,21, - 5,24,243,3,0,6,17,240,2,21,5,24,240,46,0,6, - 18,241,2,10,5,70,1,243,3,0,6,18,241,2,10,5, - 70,1,114,28,0,0,0,114,240,1,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, - 0,243,70,0,0,0,151,0,101,0,90,1,100,0,90,2, - 100,1,90,3,100,2,132,0,90,4,100,3,132,0,90,5, - 100,4,132,0,90,6,100,10,100,6,132,1,90,7,100,7, - 132,0,90,8,101,9,100,8,132,0,171,0,0,0,0,0, - 0,0,90,10,100,9,132,0,90,11,121,5,41,11,218,10, - 70,105,108,101,70,105,110,100,101,114,122,172,70,105,108,101, - 45,98,97,115,101,100,32,102,105,110,100,101,114,46,10,10, - 32,32,32,32,73,110,116,101,114,97,99,116,105,111,110,115, - 32,119,105,116,104,32,116,104,101,32,102,105,108,101,32,115, - 121,115,116,101,109,32,97,114,101,32,99,97,99,104,101,100, - 32,102,111,114,32,112,101,114,102,111,114,109,97,110,99,101, - 44,32,98,101,105,110,103,10,32,32,32,32,114,101,102,114, - 101,115,104,101,100,32,119,104,101,110,32,116,104,101,32,100, - 105,114,101,99,116,111,114,121,32,116,104,101,32,102,105,110, - 100,101,114,32,105,115,32,104,97,110,100,108,105,110,103,32, - 104,97,115,32,98,101,101,110,32,109,111,100,105,102,105,101, - 100,46,10,10,32,32,32,32,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,7,0,0,0,243,12,1, - 0,0,135,5,151,0,103,0,125,3,124,2,68,0,93,31, - 0,0,92,2,0,0,138,5,125,4,124,3,106,1,0,0, + 0,0,171,0,0,0,0,0,0,0,171,1,0,0,0,0, + 0,0,125,2,116,14,0,0,0,0,0,0,0,0,106,16, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 136,5,102,1,100,1,132,8,124,4,68,0,171,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,1,0,140,33, - 4,0,124,3,124,0,95,1,0,0,0,0,0,0,0,0, - 124,1,114,5,124,1,100,2,107,40,0,0,114,26,116,5, - 0,0,0,0,0,0,0,0,106,6,0,0,0,0,0,0, + 0,0,106,19,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,100,1,171,1,0,0,0,0,0,0, + 115,17,116,21,0,0,0,0,0,0,0,0,124,2,171,1, + 0,0,0,0,0,0,124,0,95,11,0,0,0,0,0,0, + 0,0,110,88,116,21,0,0,0,0,0,0,0,0,171,0, + 0,0,0,0,0,0,125,3,124,2,68,0,93,66,0,0, + 125,4,124,4,106,25,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,100,2,171,1,0,0,0,0, + 0,0,92,3,0,0,125,5,125,6,125,7,124,6,114,22, + 124,5,155,0,100,2,124,7,106,27,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,124,0,95,4,0,0,0,0,0,0,0,0, - 110,16,116,11,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,124,0,95,4,0,0,0,0,0,0, - 0,0,100,3,124,0,95,6,0,0,0,0,0,0,0,0, - 116,15,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,124,0,95,8,0,0,0,0,0,0,0,0,116,15, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 124,0,95,9,0,0,0,0,0,0,0,0,121,4,41,5, - 122,154,73,110,105,116,105,97,108,105,122,101,32,119,105,116, - 104,32,116,104,101,32,112,97,116,104,32,116,111,32,115,101, - 97,114,99,104,32,111,110,32,97,110,100,32,97,32,118,97, - 114,105,97,98,108,101,32,110,117,109,98,101,114,32,111,102, - 10,32,32,32,32,32,32,32,32,50,45,116,117,112,108,101, - 115,32,99,111,110,116,97,105,110,105,110,103,32,116,104,101, - 32,108,111,97,100,101,114,32,97,110,100,32,116,104,101,32, - 102,105,108,101,32,115,117,102,102,105,120,101,115,32,116,104, - 101,32,108,111,97,100,101,114,10,32,32,32,32,32,32,32, - 32,114,101,99,111,103,110,105,122,101,115,46,99,1,0,0, - 0,0,0,0,0,0,0,0,0,3,0,0,0,51,0,0, - 0,243,38,0,0,0,149,1,75,0,1,0,151,0,124,0, - 93,8,0,0,125,1,124,1,137,2,102,2,150,1,151,1, - 1,0,140,10,4,0,121,0,173,3,119,1,114,77,0,0, - 0,114,30,0,0,0,41,3,114,8,0,0,0,114,178,1, - 0,0,114,4,1,0,0,115,3,0,0,0,32,32,128,114, - 10,0,0,0,114,11,0,0,0,122,38,70,105,108,101,70, - 105,110,100,101,114,46,95,95,105,110,105,116,95,95,46,60, - 108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114, - 62,34,6,0,0,115,22,0,0,0,248,232,0,248,128,0, - 210,26,67,176,6,152,70,160,70,212,27,43,209,26,67,249, - 115,4,0,0,0,131,14,17,1,114,103,0,0,0,114,170, - 0,0,0,78,41,10,114,240,0,0,0,218,8,95,108,111, - 97,100,101,114,115,114,23,0,0,0,114,95,0,0,0,114, - 68,0,0,0,114,105,0,0,0,218,11,95,112,97,116,104, - 95,109,116,105,109,101,218,3,115,101,116,218,11,95,112,97, - 116,104,95,99,97,99,104,101,218,19,95,114,101,108,97,120, - 101,100,95,112,97,116,104,95,99,97,99,104,101,41,6,114, - 189,0,0,0,114,68,0,0,0,218,14,108,111,97,100,101, - 114,95,100,101,116,97,105,108,115,218,7,108,111,97,100,101, - 114,115,114,18,1,0,0,114,4,1,0,0,115,6,0,0, - 0,32,32,32,32,32,64,114,10,0,0,0,114,67,1,0, - 0,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95, - 105,110,105,116,95,95,28,6,0,0,115,119,0,0,0,248, - 128,0,240,8,0,19,21,136,7,216,32,46,242,0,1,9, - 68,1,209,12,28,136,70,144,72,216,12,19,143,78,137,78, - 211,26,67,184,40,212,26,67,213,12,67,240,3,1,9,68, - 1,224,24,31,136,4,140,13,225,15,19,144,116,152,115,146, - 123,220,24,27,159,10,153,10,155,12,136,68,141,73,228,24, - 37,160,100,211,24,43,136,68,140,73,216,27,29,136,4,212, - 8,24,220,27,30,155,53,136,4,212,8,24,220,35,38,163, - 53,136,4,213,8,32,114,28,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, - 243,18,0,0,0,151,0,100,1,124,0,95,0,0,0,0, - 0,0,0,0,0,121,2,41,3,122,31,73,110,118,97,108, - 105,100,97,116,101,32,116,104,101,32,100,105,114,101,99,116, - 111,114,121,32,109,116,105,109,101,46,114,170,0,0,0,78, - 41,1,114,15,2,0,0,114,131,1,0,0,115,1,0,0, - 0,32,114,10,0,0,0,114,242,1,0,0,122,28,70,105, - 108,101,70,105,110,100,101,114,46,105,110,118,97,108,105,100, - 97,116,101,95,99,97,99,104,101,115,45,6,0,0,115,10, - 0,0,0,128,0,224,27,29,136,4,213,8,24,114,28,0, - 0,0,99,6,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,3,0,0,0,243,50,0,0,0,151,0,2,0, - 124,1,124,2,124,3,171,2,0,0,0,0,0,0,125,6, - 116,1,0,0,0,0,0,0,0,0,124,2,124,3,124,6, - 124,4,172,1,171,4,0,0,0,0,0,0,83,0,41,2, - 78,114,3,1,0,0,41,1,114,20,1,0,0,41,7,114, - 189,0,0,0,114,17,1,0,0,114,42,1,0,0,114,68, - 0,0,0,218,4,115,109,115,108,114,57,1,0,0,114,4, - 1,0,0,115,7,0,0,0,32,32,32,32,32,32,32,114, - 10,0,0,0,114,4,2,0,0,122,20,70,105,108,101,70, - 105,110,100,101,114,46,95,103,101,116,95,115,112,101,99,49, - 6,0,0,115,38,0,0,0,128,0,217,17,29,152,104,168, - 4,211,17,45,136,6,220,15,38,160,120,176,20,184,102,216, - 66,70,244,3,1,16,72,1,240,0,1,9,72,1,114,28, - 0,0,0,78,99,3,0,0,0,0,0,0,0,0,0,0, - 0,8,0,0,0,3,0,0,0,243,192,3,0,0,151,0, - 100,1,125,3,124,1,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,2,171,1,0,0, - 0,0,0,0,100,3,25,0,0,0,125,4,9,0,116,3, - 0,0,0,0,0,0,0,0,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,1, - 115,20,1,0,116,7,0,0,0,0,0,0,0,0,106,8, + 0,0,0,0,155,0,157,3,125,8,110,2,124,5,125,8, + 124,3,106,29,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,8,171,1,0,0,0,0,0,0, + 1,0,140,68,4,0,124,3,124,0,95,11,0,0,0,0, + 0,0,0,0,116,14,0,0,0,0,0,0,0,0,106,16, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,5,124,5,124,0,106,14,0,0, + 0,0,106,19,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,116,30,0,0,0,0,0,0,0,0, + 171,1,0,0,0,0,0,0,114,36,124,2,68,0,143,9, + 99,2,104,0,99,2,93,18,0,0,125,9,124,9,106,27, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 107,55,0,0,114,23,124,0,106,17,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,1,0,124,5,124,0,95,7,0,0,0,0, - 0,0,0,0,116,19,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,114,29,124,0,106,20,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,6, - 124,4,106,23,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,125,7, - 110,14,124,0,106,24,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,125,6,124,4,125,7,124,7, - 124,6,118,0,114,105,116,27,0,0,0,0,0,0,0,0, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,4,171,2,0,0,0,0,0,0, - 125,8,124,0,106,28,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,68,0,93,57,0,0,92,2, - 0,0,125,9,125,10,100,5,124,9,122,0,0,0,125,11, - 116,27,0,0,0,0,0,0,0,0,124,8,124,11,171,2, - 0,0,0,0,0,0,125,12,116,31,0,0,0,0,0,0, - 0,0,124,12,171,1,0,0,0,0,0,0,115,1,140,35, - 124,0,106,33,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,10,124,1,124,12,124,8,103,1, - 124,2,171,5,0,0,0,0,0,0,99,2,1,0,83,0, - 4,0,116,35,0,0,0,0,0,0,0,0,124,8,171,1, - 0,0,0,0,0,0,125,3,124,0,106,28,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,0, - 93,97,0,0,92,2,0,0,125,9,125,10,9,0,116,27, - 0,0,0,0,0,0,0,0,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,4, - 124,9,122,0,0,0,171,2,0,0,0,0,0,0,125,12, - 116,38,0,0,0,0,0,0,0,0,106,41,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,7, - 124,12,100,3,172,8,171,3,0,0,0,0,0,0,1,0, - 124,7,124,9,122,0,0,0,124,6,118,0,115,1,140,64, - 116,31,0,0,0,0,0,0,0,0,124,12,171,1,0,0, - 0,0,0,0,115,1,140,76,124,0,106,33,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,10, - 124,1,124,12,100,6,124,2,171,5,0,0,0,0,0,0, - 99,2,1,0,83,0,4,0,124,3,114,54,116,38,0,0, - 0,0,0,0,0,0,106,41,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,9,127,8,171,2, - 0,0,0,0,0,0,1,0,116,38,0,0,0,0,0,0, - 0,0,106,43,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,100,6,171,2,0,0,0,0, - 0,0,125,13,124,8,103,1,124,13,95,22,0,0,0,0, - 0,0,0,0,124,13,83,0,121,6,35,0,116,12,0,0, - 0,0,0,0,0,0,36,0,114,6,1,0,100,4,125,5, - 89,0,144,1,140,127,119,0,120,3,89,0,119,1,35,0, - 116,36,0,0,0,0,0,0,0,0,36,0,114,4,1,0, - 89,0,1,0,121,6,119,0,120,3,89,0,119,1,41,10, - 122,111,84,114,121,32,116,111,32,102,105,110,100,32,97,32, - 115,112,101,99,32,102,111,114,32,116,104,101,32,115,112,101, - 99,105,102,105,101,100,32,109,111,100,117,108,101,46,10,10, - 32,32,32,32,32,32,32,32,82,101,116,117,114,110,115,32, - 116,104,101,32,109,97,116,99,104,105,110,103,32,115,112,101, - 99,44,32,111,114,32,78,111,110,101,32,105,102,32,110,111, - 116,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32, - 32,70,114,103,0,0,0,114,52,0,0,0,114,170,0,0, - 0,114,67,1,0,0,78,122,9,116,114,121,105,110,103,32, - 123,125,41,1,218,9,118,101,114,98,111,115,105,116,121,122, - 25,112,111,115,115,105,98,108,101,32,110,97,109,101,115,112, - 97,99,101,32,102,111,114,32,123,125,41,23,114,131,0,0, - 0,114,85,0,0,0,114,68,0,0,0,114,23,0,0,0, - 114,95,0,0,0,114,152,1,0,0,114,87,0,0,0,114, - 15,2,0,0,218,11,95,102,105,108,108,95,99,97,99,104, - 101,114,27,0,0,0,114,18,2,0,0,114,172,0,0,0, - 114,17,2,0,0,114,72,0,0,0,114,14,2,0,0,114, - 93,0,0,0,114,4,2,0,0,114,96,0,0,0,114,138, - 0,0,0,114,207,0,0,0,114,215,0,0,0,114,11,1, - 0,0,114,5,1,0,0,41,14,114,189,0,0,0,114,42, - 1,0,0,114,57,1,0,0,218,12,105,115,95,110,97,109, - 101,115,112,97,99,101,218,11,116,97,105,108,95,109,111,100, - 117,108,101,114,242,0,0,0,218,5,99,97,99,104,101,218, - 12,99,97,99,104,101,95,109,111,100,117,108,101,218,9,98, - 97,115,101,95,112,97,116,104,114,178,1,0,0,114,17,1, - 0,0,218,13,105,110,105,116,95,102,105,108,101,110,97,109, - 101,218,9,102,117,108,108,95,112,97,116,104,114,16,1,0, - 0,115,14,0,0,0,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,114,10,0,0,0,114,58,1,0,0,122,20, - 70,105,108,101,70,105,110,100,101,114,46,102,105,110,100,95, - 115,112,101,99,54,6,0,0,115,230,1,0,0,128,0,240, - 10,0,24,29,136,12,216,22,30,215,22,41,209,22,41,168, - 35,211,22,46,168,113,209,22,49,136,11,240,2,3,9,23, - 220,20,30,152,116,159,121,153,121,210,31,56,172,67,175,74, - 169,74,171,76,211,20,57,215,20,66,209,20,66,136,69,240, - 6,0,12,17,144,68,215,20,36,209,20,36,210,11,36,216, - 12,16,215,12,28,209,12,28,212,12,30,216,31,36,136,68, - 212,12,28,228,11,22,140,61,216,20,24,215,20,44,209,20, - 44,136,69,216,27,38,215,27,44,209,27,44,211,27,46,137, - 76,224,20,24,215,20,36,209,20,36,136,69,216,27,38,136, - 76,224,11,23,152,53,209,11,32,220,24,34,160,52,167,57, - 161,57,168,107,211,24,58,136,73,216,40,44,175,13,169,13, - 242,0,8,13,54,209,16,36,144,6,152,12,216,32,42,168, - 86,209,32,51,144,13,220,28,38,160,121,176,45,211,28,64, - 144,9,220,19,31,160,9,213,19,42,216,27,31,159,62,153, - 62,168,44,184,8,192,41,200,105,200,91,208,90,96,211,27, - 97,210,20,97,240,9,8,13,54,244,16,0,32,43,168,57, - 211,31,53,144,12,224,36,40,167,77,161,77,242,0,9,9, - 56,209,12,32,136,70,144,76,240,2,3,13,28,220,28,38, - 160,116,167,121,161,121,176,43,192,6,209,50,70,211,28,71, - 144,9,244,6,0,13,23,215,12,39,209,12,39,168,11,176, - 89,200,33,208,12,39,212,12,76,216,15,27,152,102,209,15, - 36,168,5,210,15,45,220,19,31,160,9,213,19,42,216,27, - 31,159,62,153,62,168,44,184,8,192,41,216,42,46,176,6, - 243,3,1,28,56,242,0,1,21,56,240,17,9,9,56,241, - 20,0,12,24,220,12,22,215,12,39,209,12,39,208,40,67, - 192,89,212,12,79,220,19,29,215,19,40,209,19,40,168,24, - 176,52,211,19,56,136,68,216,47,56,168,107,136,68,212,12, - 43,216,19,23,136,75,216,15,19,248,244,81,1,0,16,23, - 242,0,1,9,23,216,20,22,139,69,240,3,1,9,23,251, - 244,56,0,20,30,242,0,1,13,28,218,23,27,240,3,1, - 13,28,250,115,35,0,0,0,152,53,70,62,0,196,40,25, - 71,16,2,198,62,11,71,13,3,199,12,1,71,13,3,199, - 16,9,71,29,5,199,28,1,71,29,5,99,1,0,0,0, - 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, - 243,84,2,0,0,151,0,124,0,106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,1,9, - 0,116,3,0,0,0,0,0,0,0,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,120,1,115,20,1,0,116,3,0,0,0,0,0,0,0, - 0,106,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,125,2,116,14,0,0,0,0,0,0,0, - 0,106,16,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,19,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,1,171,1,0,0,0, - 0,0,0,115,17,116,21,0,0,0,0,0,0,0,0,124, - 2,171,1,0,0,0,0,0,0,124,0,95,11,0,0,0, - 0,0,0,0,0,110,88,116,21,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,125,3,124,2,68,0,93, - 66,0,0,125,4,124,4,106,25,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,2,171,1,0, - 0,0,0,0,0,92,3,0,0,125,5,125,6,125,7,124, - 6,114,22,124,5,155,0,100,2,124,7,106,27,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,155,0,157,3,125,8,110,2,124, - 5,125,8,124,3,106,29,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,8,171,1,0,0,0, - 0,0,0,1,0,140,68,4,0,124,3,124,0,95,11,0, - 0,0,0,0,0,0,0,116,14,0,0,0,0,0,0,0, - 0,106,16,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,19,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,116,30,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,114,36,124,2,68, - 0,143,9,99,2,104,0,99,2,93,18,0,0,125,9,124, - 9,106,27,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,146,2,140, - 20,4,0,99,2,125,9,124,0,95,16,0,0,0,0,0, - 0,0,0,121,3,121,3,35,0,116,8,0,0,0,0,0, - 0,0,0,116,10,0,0,0,0,0,0,0,0,116,12,0, - 0,0,0,0,0,0,0,102,3,36,0,114,5,1,0,103, - 0,125,2,89,0,140,232,119,0,120,3,89,0,119,1,99, - 2,1,0,99,2,125,9,119,0,41,4,122,68,70,105,108, - 108,32,116,104,101,32,99,97,99,104,101,32,111,102,32,112, - 111,116,101,110,116,105,97,108,32,109,111,100,117,108,101,115, - 32,97,110,100,32,112,97,99,107,97,103,101,115,32,102,111, - 114,32,116,104,105,115,32,100,105,114,101,99,116,111,114,121, - 46,114,14,0,0,0,114,103,0,0,0,78,41,17,114,68, - 0,0,0,114,23,0,0,0,218,7,108,105,115,116,100,105, - 114,114,95,0,0,0,114,253,1,0,0,218,15,80,101,114, - 109,105,115,115,105,111,110,69,114,114,111,114,218,18,78,111, - 116,65,68,105,114,101,99,116,111,114,121,69,114,114,111,114, - 114,20,0,0,0,114,31,0,0,0,114,32,0,0,0,114, - 16,2,0,0,114,17,2,0,0,114,158,0,0,0,114,172, - 0,0,0,218,3,97,100,100,114,33,0,0,0,114,18,2, - 0,0,41,10,114,189,0,0,0,114,68,0,0,0,218,8, - 99,111,110,116,101,110,116,115,218,21,108,111,119,101,114,95, - 115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,114, - 225,1,0,0,114,187,0,0,0,114,198,1,0,0,114,178, - 1,0,0,218,8,110,101,119,95,110,97,109,101,218,2,102, - 110,115,10,0,0,0,32,32,32,32,32,32,32,32,32,32, - 114,10,0,0,0,114,26,2,0,0,122,22,70,105,108,101, - 70,105,110,100,101,114,46,95,102,105,108,108,95,99,97,99, - 104,101,105,6,0,0,115,5,1,0,0,128,0,224,15,19, - 143,121,137,121,136,4,240,2,5,9,26,220,23,26,151,123, - 145,123,160,52,210,35,55,172,51,175,58,169,58,171,60,211, - 23,56,136,72,244,14,0,16,19,143,124,137,124,215,15,38, - 209,15,38,160,117,212,15,45,220,31,34,160,56,155,125,136, - 68,213,12,28,244,14,0,37,40,163,69,208,12,33,216,24, - 32,242,0,6,13,52,144,4,216,36,40,167,78,161,78,176, - 51,211,36,55,209,16,33,144,4,144,99,152,54,217,19,22, - 216,34,38,160,22,160,113,168,22,175,28,169,28,171,30,208, - 40,56,208,31,57,145,72,224,31,35,144,72,216,16,37,215, - 16,41,209,16,41,168,40,213,16,51,240,13,6,13,52,240, - 14,0,32,53,136,68,212,12,28,220,11,14,143,60,137,60, - 215,11,34,209,11,34,212,35,62,212,11,63,216,61,69,214, - 39,70,176,114,168,2,175,8,169,8,173,10,210,39,70,136, - 68,213,12,36,240,3,0,12,64,1,248,244,47,0,17,34, - 164,63,212,52,70,208,15,71,242,0,3,9,26,240,6,0, - 24,26,138,72,240,7,3,9,26,252,242,48,0,40,71,1, - 115,23,0,0,0,142,43,68,9,0,195,40,23,68,37,4, - 196,9,22,68,34,3,196,33,1,68,34,3,99,1,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,7,0,0, - 0,243,22,0,0,0,135,0,135,1,151,0,136,0,136,1, - 102,2,100,1,132,8,125,2,124,2,83,0,41,2,97,20, - 1,0,0,65,32,99,108,97,115,115,32,109,101,116,104,111, - 100,32,119,104,105,99,104,32,114,101,116,117,114,110,115,32, - 97,32,99,108,111,115,117,114,101,32,116,111,32,117,115,101, - 32,111,110,32,115,121,115,46,112,97,116,104,95,104,111,111, - 107,10,32,32,32,32,32,32,32,32,119,104,105,99,104,32, - 119,105,108,108,32,114,101,116,117,114,110,32,97,110,32,105, - 110,115,116,97,110,99,101,32,117,115,105,110,103,32,116,104, - 101,32,115,112,101,99,105,102,105,101,100,32,108,111,97,100, - 101,114,115,32,97,110,100,32,116,104,101,32,112,97,116,104, - 10,32,32,32,32,32,32,32,32,99,97,108,108,101,100,32, - 111,110,32,116,104,101,32,99,108,111,115,117,114,101,46,10, - 10,32,32,32,32,32,32,32,32,73,102,32,116,104,101,32, - 112,97,116,104,32,99,97,108,108,101,100,32,111,110,32,116, - 104,101,32,99,108,111,115,117,114,101,32,105,115,32,110,111, - 116,32,97,32,100,105,114,101,99,116,111,114,121,44,32,73, - 109,112,111,114,116,69,114,114,111,114,32,105,115,10,32,32, - 32,32,32,32,32,32,114,97,105,115,101,100,46,10,10,32, - 32,32,32,32,32,32,32,99,1,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,19,0,0,0,243,70,0,0, - 0,149,2,151,0,116,1,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,115,13,116,3,0,0,0, - 0,0,0,0,0,100,1,124,0,172,2,171,2,0,0,0, - 0,0,0,130,1,2,0,137,1,124,0,103,1,137,2,162, - 1,173,6,142,0,83,0,41,3,122,45,80,97,116,104,32, - 104,111,111,107,32,102,111,114,32,105,109,112,111,114,116,108, - 105,98,46,109,97,99,104,105,110,101,114,121,46,70,105,108, - 101,70,105,110,100,101,114,46,122,30,111,110,108,121,32,100, - 105,114,101,99,116,111,114,105,101,115,32,97,114,101,32,115, - 117,112,112,111,114,116,101,100,114,84,0,0,0,41,2,114, - 96,0,0,0,114,188,0,0,0,41,3,114,68,0,0,0, - 114,50,1,0,0,114,19,2,0,0,115,3,0,0,0,32, - 128,128,114,10,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,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,146,6,0,0,115,41,0, - 0,0,248,128,0,228,19,30,152,116,212,19,36,220,22,33, - 208,34,66,200,20,212,22,78,208,16,78,217,19,22,144,116, - 208,19,45,152,110,210,19,45,208,12,45,114,28,0,0,0, - 114,30,0,0,0,41,3,114,50,1,0,0,114,19,2,0, - 0,114,45,2,0,0,115,3,0,0,0,96,96,32,114,10, - 0,0,0,218,9,112,97,116,104,95,104,111,111,107,122,20, + 0,0,171,0,0,0,0,0,0,0,146,2,140,20,4,0, + 99,2,125,9,124,0,95,16,0,0,0,0,0,0,0,0, + 121,3,121,3,35,0,116,8,0,0,0,0,0,0,0,0, + 116,10,0,0,0,0,0,0,0,0,116,12,0,0,0,0, + 0,0,0,0,102,3,36,0,114,5,1,0,103,0,125,2, + 89,0,140,232,119,0,120,3,89,0,119,1,99,2,1,0, + 99,2,125,9,119,0,41,4,122,68,70,105,108,108,32,116, + 104,101,32,99,97,99,104,101,32,111,102,32,112,111,116,101, + 110,116,105,97,108,32,109,111,100,117,108,101,115,32,97,110, + 100,32,112,97,99,107,97,103,101,115,32,102,111,114,32,116, + 104,105,115,32,100,105,114,101,99,116,111,114,121,46,114,14, + 0,0,0,114,103,0,0,0,78,41,17,114,68,0,0,0, + 114,23,0,0,0,218,7,108,105,115,116,100,105,114,114,95, + 0,0,0,114,0,2,0,0,218,15,80,101,114,109,105,115, + 115,105,111,110,69,114,114,111,114,218,18,78,111,116,65,68, + 105,114,101,99,116,111,114,121,69,114,114,111,114,114,20,0, + 0,0,114,31,0,0,0,114,32,0,0,0,114,17,2,0, + 0,114,18,2,0,0,114,158,0,0,0,114,172,0,0,0, + 218,3,97,100,100,114,33,0,0,0,114,19,2,0,0,41, + 10,114,189,0,0,0,114,68,0,0,0,218,8,99,111,110, + 116,101,110,116,115,218,21,108,111,119,101,114,95,115,117,102, + 102,105,120,95,99,111,110,116,101,110,116,115,114,225,1,0, + 0,114,187,0,0,0,114,198,1,0,0,114,178,1,0,0, + 218,8,110,101,119,95,110,97,109,101,218,2,102,110,115,10, + 0,0,0,32,32,32,32,32,32,32,32,32,32,114,10,0, + 0,0,114,27,2,0,0,122,22,70,105,108,101,70,105,110, + 100,101,114,46,95,102,105,108,108,95,99,97,99,104,101,108, + 6,0,0,115,5,1,0,0,128,0,224,15,19,143,121,137, + 121,136,4,240,2,5,9,26,220,23,26,151,123,145,123,160, + 52,210,35,55,172,51,175,58,169,58,171,60,211,23,56,136, + 72,244,14,0,16,19,143,124,137,124,215,15,38,209,15,38, + 160,117,212,15,45,220,31,34,160,56,155,125,136,68,213,12, + 28,244,14,0,37,40,163,69,208,12,33,216,24,32,242,0, + 6,13,52,144,4,216,36,40,167,78,161,78,176,51,211,36, + 55,209,16,33,144,4,144,99,152,54,217,19,22,216,34,38, + 160,22,160,113,168,22,175,28,169,28,171,30,208,40,56,208, + 31,57,145,72,224,31,35,144,72,216,16,37,215,16,41,209, + 16,41,168,40,213,16,51,240,13,6,13,52,240,14,0,32, + 53,136,68,212,12,28,220,11,14,143,60,137,60,215,11,34, + 209,11,34,212,35,62,212,11,63,216,61,69,214,39,70,176, + 114,168,2,175,8,169,8,173,10,210,39,70,136,68,213,12, + 36,240,3,0,12,64,1,248,244,47,0,17,34,164,63,212, + 52,70,208,15,71,242,0,3,9,26,240,6,0,24,26,138, + 72,240,7,3,9,26,252,242,48,0,40,71,1,115,23,0, + 0,0,142,43,68,9,0,195,40,23,68,37,4,196,9,22, + 68,34,3,196,33,1,68,34,3,99,1,0,0,0,0,0, + 0,0,0,0,0,0,2,0,0,0,7,0,0,0,243,22, + 0,0,0,135,0,135,1,151,0,136,0,136,1,102,2,100, + 1,132,8,125,2,124,2,83,0,41,2,97,20,1,0,0, + 65,32,99,108,97,115,115,32,109,101,116,104,111,100,32,119, + 104,105,99,104,32,114,101,116,117,114,110,115,32,97,32,99, + 108,111,115,117,114,101,32,116,111,32,117,115,101,32,111,110, + 32,115,121,115,46,112,97,116,104,95,104,111,111,107,10,32, + 32,32,32,32,32,32,32,119,104,105,99,104,32,119,105,108, + 108,32,114,101,116,117,114,110,32,97,110,32,105,110,115,116, + 97,110,99,101,32,117,115,105,110,103,32,116,104,101,32,115, + 112,101,99,105,102,105,101,100,32,108,111,97,100,101,114,115, + 32,97,110,100,32,116,104,101,32,112,97,116,104,10,32,32, + 32,32,32,32,32,32,99,97,108,108,101,100,32,111,110,32, + 116,104,101,32,99,108,111,115,117,114,101,46,10,10,32,32, + 32,32,32,32,32,32,73,102,32,116,104,101,32,112,97,116, + 104,32,99,97,108,108,101,100,32,111,110,32,116,104,101,32, + 99,108,111,115,117,114,101,32,105,115,32,110,111,116,32,97, + 32,100,105,114,101,99,116,111,114,121,44,32,73,109,112,111, + 114,116,69,114,114,111,114,32,105,115,10,32,32,32,32,32, + 32,32,32,114,97,105,115,101,100,46,10,10,32,32,32,32, + 32,32,32,32,99,1,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,19,0,0,0,243,70,0,0,0,149,2, + 151,0,116,1,0,0,0,0,0,0,0,0,124,0,171,1, + 0,0,0,0,0,0,115,13,116,3,0,0,0,0,0,0, + 0,0,100,1,124,0,172,2,171,2,0,0,0,0,0,0, + 130,1,2,0,137,1,124,0,103,1,137,2,162,1,173,6, + 142,0,83,0,41,3,122,45,80,97,116,104,32,104,111,111, + 107,32,102,111,114,32,105,109,112,111,114,116,108,105,98,46, + 109,97,99,104,105,110,101,114,121,46,70,105,108,101,70,105, + 110,100,101,114,46,122,30,111,110,108,121,32,100,105,114,101, + 99,116,111,114,105,101,115,32,97,114,101,32,115,117,112,112, + 111,114,116,101,100,114,84,0,0,0,41,2,114,96,0,0, + 0,114,188,0,0,0,41,3,114,68,0,0,0,114,50,1, + 0,0,114,20,2,0,0,115,3,0,0,0,32,128,128,114, + 10,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,122,54, 70,105,108,101,70,105,110,100,101,114,46,112,97,116,104,95, - 104,111,111,107,136,6,0,0,115,16,0,0,0,249,128,0, - 245,20,4,9,46,240,12,0,16,40,208,8,39,114,28,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,34,0,0,0,151,0,100,1, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,155,2,100,2,157,3,83,0,41,3, - 78,122,11,70,105,108,101,70,105,110,100,101,114,40,114,221, - 1,0,0,114,84,0,0,0,114,131,1,0,0,115,1,0, - 0,0,32,114,10,0,0,0,114,222,1,0,0,122,19,70, - 105,108,101,70,105,110,100,101,114,46,95,95,114,101,112,114, - 95,95,154,6,0,0,115,21,0,0,0,128,0,216,17,28, - 152,84,159,89,153,89,152,77,168,17,208,15,43,208,8,43, - 114,28,0,0,0,114,77,0,0,0,41,12,114,196,0,0, - 0,114,195,0,0,0,114,197,0,0,0,114,198,0,0,0, - 114,67,1,0,0,114,242,1,0,0,114,4,2,0,0,114, - 58,1,0,0,114,26,2,0,0,114,63,1,0,0,114,46, - 2,0,0,114,222,1,0,0,114,30,0,0,0,114,28,0, - 0,0,114,10,0,0,0,114,11,2,0,0,114,11,2,0, - 0,19,6,0,0,115,60,0,0,0,132,0,241,4,5,5, - 8,242,14,15,5,41,242,34,2,5,30,242,8,3,5,72, - 1,243,10,49,5,20,242,102,1,29,5,71,1,240,62,0, - 6,17,241,2,15,5,40,243,3,0,6,17,240,2,15,5, - 40,243,34,1,5,44,114,28,0,0,0,114,11,2,0,0, - 99,4,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,50,1,0,0,151,0,124,0,106,1, + 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,149,6,0,0,115,41,0,0,0,248, + 128,0,228,19,30,152,116,212,19,36,220,22,33,208,34,66, + 200,20,212,22,78,208,16,78,217,19,22,144,116,208,19,45, + 152,110,210,19,45,208,12,45,114,28,0,0,0,114,30,0, + 0,0,41,3,114,50,1,0,0,114,20,2,0,0,114,46, + 2,0,0,115,3,0,0,0,96,96,32,114,10,0,0,0, + 218,9,112,97,116,104,95,104,111,111,107,122,20,70,105,108, + 101,70,105,110,100,101,114,46,112,97,116,104,95,104,111,111, + 107,139,6,0,0,115,16,0,0,0,249,128,0,245,20,4, + 9,46,240,12,0,16,40,208,8,39,114,28,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,34,0,0,0,151,0,100,1,124,0,106, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,1,171,1,0,0,0,0,0,0,125,4,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,2,171,1,0,0,0,0,0,0,125,5, - 124,4,115,45,124,5,114,13,124,5,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,4, - 110,30,124,2,124,3,107,40,0,0,114,13,116,5,0,0, - 0,0,0,0,0,0,124,1,124,2,171,2,0,0,0,0, - 0,0,125,4,110,12,116,7,0,0,0,0,0,0,0,0, - 124,1,124,2,171,2,0,0,0,0,0,0,125,4,124,5, - 115,32,116,9,0,0,0,0,0,0,0,0,124,1,124,2, - 124,4,172,3,171,3,0,0,0,0,0,0,125,5,124,3, - 114,16,116,11,0,0,0,0,0,0,0,0,124,3,171,1, - 0,0,0,0,0,0,124,5,95,6,0,0,0,0,0,0, - 0,0,9,0,124,5,124,0,100,2,60,0,0,0,124,4, - 124,0,100,1,60,0,0,0,124,2,124,0,100,4,60,0, - 0,0,124,3,124,0,100,5,60,0,0,0,121,0,35,0, - 116,14,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,121,0,119,0,120,3,89,0,119,1,41,6,78,114, - 22,1,0,0,114,23,1,0,0,41,1,114,4,1,0,0, - 218,8,95,95,102,105,108,101,95,95,218,10,95,95,99,97, - 99,104,101,100,95,95,41,8,114,26,1,0,0,114,4,1, - 0,0,114,163,1,0,0,114,150,1,0,0,114,20,1,0, - 0,114,105,0,0,0,218,6,99,97,99,104,101,100,218,9, - 69,120,99,101,112,116,105,111,110,41,6,218,2,110,115,114, - 187,0,0,0,218,8,112,97,116,104,110,97,109,101,218,9, - 99,112,97,116,104,110,97,109,101,114,4,1,0,0,114,16, - 1,0,0,115,6,0,0,0,32,32,32,32,32,32,114,10, - 0,0,0,218,14,95,102,105,120,95,117,112,95,109,111,100, - 117,108,101,114,56,2,0,0,160,6,0,0,115,170,0,0, - 0,128,0,224,13,15,143,86,137,86,144,76,211,13,33,128, - 70,216,11,13,143,54,137,54,144,42,211,11,29,128,68,217, - 11,17,217,11,15,216,21,25,151,91,145,91,137,70,216,13, - 21,152,25,210,13,34,220,21,41,168,36,176,8,211,21,57, - 137,70,228,21,37,160,100,168,72,211,21,53,136,70,217,11, - 15,220,15,38,160,116,168,88,184,102,212,15,69,136,4,217, - 11,20,220,26,39,168,9,211,26,50,136,68,140,75,240,2, - 7,5,13,216,25,29,136,2,136,58,137,14,216,27,33,136, - 2,136,60,209,8,24,216,25,33,136,2,136,58,137,14,216, - 27,36,136,2,136,60,210,8,24,248,220,11,20,242,0,2, - 5,13,225,8,12,240,5,2,5,13,250,115,18,0,0,0, - 193,53,20,66,10,0,194,10,9,66,22,3,194,21,1,66, - 22,3,99,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,112,0,0,0,151,0,116,0, - 0,0,0,0,0,0,0,0,116,3,0,0,0,0,0,0, - 0,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,102,2, - 125,0,116,6,0,0,0,0,0,0,0,0,116,8,0,0, - 0,0,0,0,0,0,102,2,125,1,116,10,0,0,0,0, - 0,0,0,0,116,12,0,0,0,0,0,0,0,0,102,2, - 125,2,124,0,124,1,124,2,103,3,83,0,41,1,122,95, - 82,101,116,117,114,110,115,32,97,32,108,105,115,116,32,111, - 102,32,102,105,108,101,45,98,97,115,101,100,32,109,111,100, - 117,108,101,32,108,111,97,100,101,114,115,46,10,10,32,32, - 32,32,69,97,99,104,32,105,116,101,109,32,105,115,32,97, - 32,116,117,112,108,101,32,40,108,111,97,100,101,114,44,32, - 115,117,102,102,105,120,101,115,41,46,10,32,32,32,32,41, - 7,114,141,1,0,0,114,234,0,0,0,218,18,101,120,116, - 101,110,115,105,111,110,95,115,117,102,102,105,120,101,115,114, - 150,1,0,0,114,159,0,0,0,114,163,1,0,0,114,140, - 0,0,0,41,3,218,10,101,120,116,101,110,115,105,111,110, - 115,218,6,115,111,117,114,99,101,218,8,98,121,116,101,99, - 111,100,101,115,3,0,0,0,32,32,32,114,10,0,0,0, - 114,13,1,0,0,114,13,1,0,0,185,6,0,0,115,57, - 0,0,0,128,0,244,10,0,18,37,164,100,215,38,61,209, - 38,61,211,38,63,208,17,63,128,74,220,13,29,156,127,208, - 13,46,128,70,220,15,35,212,37,54,208,15,54,128,72,216, - 12,22,152,6,160,8,208,11,41,208,4,41,114,28,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,3,0,0,0,243,8,0,0,0,151,0,124,0,97, - 0,121,0,114,77,0,0,0,41,1,114,207,0,0,0,41, - 1,218,17,95,98,111,111,116,115,116,114,97,112,95,109,111, - 100,117,108,101,115,1,0,0,0,32,114,10,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,114,64,2,0,0,196,6,0,0,115, - 7,0,0,0,128,0,224,17,34,129,74,114,28,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,212,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 1,0,116,3,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,125,1,116,4,0,0,0,0,0,0,0,0, - 106,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,9,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,11,0,0,0,0,0,0, - 0,0,106,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,142,0,103,1,171,1,0,0, - 0,0,0,0,1,0,116,4,0,0,0,0,0,0,0,0, - 106,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,17,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,18,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,1,0,121,1,41,2, - 122,41,73,110,115,116,97,108,108,32,116,104,101,32,112,97, - 116,104,45,98,97,115,101,100,32,105,109,112,111,114,116,32, - 99,111,109,112,111,110,101,110,116,115,46,78,41,10,114,64, - 2,0,0,114,13,1,0,0,114,20,0,0,0,114,248,1, - 0,0,114,240,0,0,0,114,11,2,0,0,114,46,2,0, - 0,218,9,109,101,116,97,95,112,97,116,104,114,64,0,0, - 0,114,240,1,0,0,41,2,114,63,2,0,0,218,17,115, - 117,112,112,111,114,116,101,100,95,108,111,97,100,101,114,115, - 115,2,0,0,0,32,32,114,10,0,0,0,218,8,95,105, - 110,115,116,97,108,108,114,68,2,0,0,201,6,0,0,115, - 71,0,0,0,128,0,228,4,25,208,26,43,212,4,44,220, - 24,51,211,24,53,208,4,21,220,4,7,135,78,129,78,215, - 4,25,209,4,25,156,58,215,27,47,209,27,47,208,49,66, - 208,27,67,208,26,68,212,4,69,220,4,7,135,77,129,77, - 215,4,24,209,4,24,156,26,213,4,36,114,28,0,0,0, - 41,1,114,107,0,0,0,114,77,0,0,0,41,3,78,78, - 78,41,2,114,1,0,0,0,114,1,0,0,0,41,1,84, - 41,87,114,198,0,0,0,114,207,0,0,0,114,234,0,0, - 0,114,114,0,0,0,114,20,0,0,0,114,126,0,0,0, - 114,230,0,0,0,114,31,0,0,0,114,60,1,0,0,218, - 2,110,116,114,23,0,0,0,114,36,1,0,0,218,5,112, - 111,115,105,120,114,61,0,0,0,218,3,97,108,108,114,62, - 0,0,0,114,179,0,0,0,114,58,0,0,0,114,65,0, - 0,0,218,20,95,112,97,116,104,115,101,112,115,95,119,105, - 116,104,95,99,111,108,111,110,114,34,0,0,0,218,37,95, - 67,65,83,69,95,73,78,83,69,78,83,73,84,73,86,69, - 95,80,76,65,84,70,79,82,77,83,95,66,89,84,69,83, - 95,75,69,89,114,33,0,0,0,114,35,0,0,0,114,27, - 0,0,0,114,43,0,0,0,114,49,0,0,0,114,53,0, - 0,0,114,72,0,0,0,114,81,0,0,0,114,85,0,0, - 0,114,91,0,0,0,114,93,0,0,0,114,96,0,0,0, - 114,100,0,0,0,114,105,0,0,0,114,121,0,0,0,218, - 4,116,121,112,101,218,8,95,95,99,111,100,101,95,95,114, - 233,0,0,0,114,41,0,0,0,114,214,0,0,0,114,40, - 0,0,0,114,46,0,0,0,114,111,1,0,0,114,143,0, - 0,0,114,139,0,0,0,114,159,0,0,0,114,64,0,0, - 0,114,58,2,0,0,114,61,1,0,0,114,140,0,0,0, - 218,23,68,69,66,85,71,95,66,89,84,69,67,79,68,69, - 95,83,85,70,70,73,88,69,83,218,27,79,80,84,73,77, - 73,90,69,68,95,66,89,84,69,67,79,68,69,95,83,85, - 70,70,73,88,69,83,114,152,0,0,0,114,167,0,0,0, - 114,177,0,0,0,114,180,0,0,0,114,183,0,0,0,114, - 208,0,0,0,114,219,0,0,0,114,224,0,0,0,114,227, - 0,0,0,114,237,0,0,0,114,243,0,0,0,114,246,0, - 0,0,114,2,1,0,0,114,25,1,0,0,114,14,1,0, - 0,114,20,1,0,0,114,32,1,0,0,114,34,1,0,0, - 114,65,1,0,0,114,86,1,0,0,114,119,1,0,0,114, - 150,1,0,0,114,163,1,0,0,114,141,1,0,0,114,185, - 1,0,0,114,229,1,0,0,218,16,95,78,97,109,101,115, - 112,97,99,101,76,111,97,100,101,114,114,240,1,0,0,114, - 11,2,0,0,114,56,2,0,0,114,13,1,0,0,114,64, - 2,0,0,114,68,2,0,0,41,1,218,1,115,115,1,0, - 0,0,48,114,10,0,0,0,250,8,60,109,111,100,117,108, - 101,62,114,80,2,0,0,1,0,0,0,115,191,2,0,0, - 240,3,1,1,1,241,2,7,1,4,240,44,0,14,18,128, - 10,243,6,0,1,12,219,0,10,219,0,10,219,0,16,219, - 0,14,240,6,0,16,19,143,124,137,124,152,119,209,15,38, - 128,11,217,3,14,219,4,20,220,4,17,227,4,23,241,6, - 0,4,15,216,23,27,152,83,144,107,129,79,224,23,26,144, - 101,128,79,225,7,10,209,10,52,160,79,212,10,52,212,7, - 52,209,0,52,216,11,26,152,49,209,11,29,128,8,217,17, + 0,0,0,155,2,100,2,157,3,83,0,41,3,78,122,11, + 70,105,108,101,70,105,110,100,101,114,40,114,221,1,0,0, + 114,84,0,0,0,114,131,1,0,0,115,1,0,0,0,32, + 114,10,0,0,0,114,222,1,0,0,122,19,70,105,108,101, + 70,105,110,100,101,114,46,95,95,114,101,112,114,95,95,157, + 6,0,0,115,21,0,0,0,128,0,216,17,28,152,84,159, + 89,153,89,152,77,168,17,208,15,43,208,8,43,114,28,0, + 0,0,114,77,0,0,0,41,12,114,196,0,0,0,114,195, + 0,0,0,114,197,0,0,0,114,198,0,0,0,114,67,1, + 0,0,114,242,1,0,0,114,7,2,0,0,114,58,1,0, + 0,114,27,2,0,0,114,63,1,0,0,114,47,2,0,0, + 114,222,1,0,0,114,30,0,0,0,114,28,0,0,0,114, + 10,0,0,0,114,12,2,0,0,114,12,2,0,0,22,6, + 0,0,115,60,0,0,0,132,0,241,4,5,5,8,242,14, + 15,5,41,242,34,2,5,30,242,8,3,5,72,1,243,10, + 49,5,20,242,102,1,29,5,71,1,240,62,0,6,17,241, + 2,15,5,40,243,3,0,6,17,240,2,15,5,40,243,34, + 1,5,44,114,28,0,0,0,114,12,2,0,0,99,4,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,243,50,1,0,0,151,0,124,0,106,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, + 1,171,1,0,0,0,0,0,0,125,4,124,0,106,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,100,2,171,1,0,0,0,0,0,0,125,5,124,4,115, + 45,124,5,114,13,124,5,106,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,125,4,110,30,124, + 2,124,3,107,40,0,0,114,13,116,5,0,0,0,0,0, + 0,0,0,124,1,124,2,171,2,0,0,0,0,0,0,125, + 4,110,12,116,7,0,0,0,0,0,0,0,0,124,1,124, + 2,171,2,0,0,0,0,0,0,125,4,124,5,115,32,116, + 9,0,0,0,0,0,0,0,0,124,1,124,2,124,4,172, + 3,171,3,0,0,0,0,0,0,125,5,124,3,114,16,116, + 11,0,0,0,0,0,0,0,0,124,3,171,1,0,0,0, + 0,0,0,124,5,95,6,0,0,0,0,0,0,0,0,9, + 0,124,5,124,0,100,2,60,0,0,0,124,4,124,0,100, + 1,60,0,0,0,124,2,124,0,100,4,60,0,0,0,124, + 3,124,0,100,5,60,0,0,0,121,0,35,0,116,14,0, + 0,0,0,0,0,0,0,36,0,114,3,1,0,89,0,121, + 0,119,0,120,3,89,0,119,1,41,6,78,114,22,1,0, + 0,114,23,1,0,0,41,1,114,4,1,0,0,218,8,95, + 95,102,105,108,101,95,95,218,10,95,95,99,97,99,104,101, + 100,95,95,41,8,114,26,1,0,0,114,4,1,0,0,114, + 163,1,0,0,114,150,1,0,0,114,20,1,0,0,114,105, + 0,0,0,218,6,99,97,99,104,101,100,218,9,69,120,99, + 101,112,116,105,111,110,41,6,218,2,110,115,114,187,0,0, + 0,218,8,112,97,116,104,110,97,109,101,218,9,99,112,97, + 116,104,110,97,109,101,114,4,1,0,0,114,16,1,0,0, + 115,6,0,0,0,32,32,32,32,32,32,114,10,0,0,0, + 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, + 114,57,2,0,0,163,6,0,0,115,170,0,0,0,128,0, + 224,13,15,143,86,137,86,144,76,211,13,33,128,70,216,11, + 13,143,54,137,54,144,42,211,11,29,128,68,217,11,17,217, + 11,15,216,21,25,151,91,145,91,137,70,216,13,21,152,25, + 210,13,34,220,21,41,168,36,176,8,211,21,57,137,70,228, + 21,37,160,100,168,72,211,21,53,136,70,217,11,15,220,15, + 38,160,116,168,88,184,102,212,15,69,136,4,217,11,20,220, + 26,39,168,9,211,26,50,136,68,140,75,240,2,7,5,13, + 216,25,29,136,2,136,58,137,14,216,27,33,136,2,136,60, + 209,8,24,216,25,33,136,2,136,58,137,14,216,27,36,136, + 2,136,60,210,8,24,248,220,11,20,242,0,2,5,13,225, + 8,12,240,5,2,5,13,250,115,18,0,0,0,193,53,20, + 66,10,0,194,10,9,66,22,3,194,21,1,66,22,3,99, + 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,112,0,0,0,151,0,116,0,0,0,0, + 0,0,0,0,0,116,3,0,0,0,0,0,0,0,0,106, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,171,0,0,0,0,0,0,0,102,2,125,0,116, + 6,0,0,0,0,0,0,0,0,116,8,0,0,0,0,0, + 0,0,0,102,2,125,1,116,10,0,0,0,0,0,0,0, + 0,116,12,0,0,0,0,0,0,0,0,102,2,125,2,124, + 0,124,1,124,2,103,3,83,0,41,1,122,95,82,101,116, + 117,114,110,115,32,97,32,108,105,115,116,32,111,102,32,102, + 105,108,101,45,98,97,115,101,100,32,109,111,100,117,108,101, + 32,108,111,97,100,101,114,115,46,10,10,32,32,32,32,69, + 97,99,104,32,105,116,101,109,32,105,115,32,97,32,116,117, + 112,108,101,32,40,108,111,97,100,101,114,44,32,115,117,102, + 102,105,120,101,115,41,46,10,32,32,32,32,41,7,114,141, + 1,0,0,114,234,0,0,0,218,18,101,120,116,101,110,115, + 105,111,110,95,115,117,102,102,105,120,101,115,114,150,1,0, + 0,114,159,0,0,0,114,163,1,0,0,114,140,0,0,0, + 41,3,218,10,101,120,116,101,110,115,105,111,110,115,218,6, + 115,111,117,114,99,101,218,8,98,121,116,101,99,111,100,101, + 115,3,0,0,0,32,32,32,114,10,0,0,0,114,13,1, + 0,0,114,13,1,0,0,188,6,0,0,115,57,0,0,0, + 128,0,244,10,0,18,37,164,100,215,38,61,209,38,61,211, + 38,63,208,17,63,128,74,220,13,29,156,127,208,13,46,128, + 70,220,15,35,212,37,54,208,15,54,128,72,216,12,22,152, + 6,160,8,208,11,41,208,4,41,114,28,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,243,8,0,0,0,151,0,124,0,97,0,121,0, + 114,77,0,0,0,41,1,114,207,0,0,0,41,1,218,17, + 95,98,111,111,116,115,116,114,97,112,95,109,111,100,117,108, + 101,115,1,0,0,0,32,114,10,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,114,65,2,0,0,199,6,0,0,115,7,0,0, + 0,128,0,224,17,34,129,74,114,28,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,243,212,0,0,0,151,0,116,1,0,0,0,0,0, + 0,0,0,124,0,171,1,0,0,0,0,0,0,1,0,116, + 3,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,125,1,116,4,0,0,0,0,0,0,0,0,106,6,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,106,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,116,11,0,0,0,0,0,0,0,0,106, + 12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,1,142,0,103,1,171,1,0,0,0,0,0, + 0,1,0,116,4,0,0,0,0,0,0,0,0,106,14,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,106,17,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,116,18,0,0,0,0,0,0,0,0,171, + 1,0,0,0,0,0,0,1,0,121,1,41,2,122,41,73, + 110,115,116,97,108,108,32,116,104,101,32,112,97,116,104,45, + 98,97,115,101,100,32,105,109,112,111,114,116,32,99,111,109, + 112,111,110,101,110,116,115,46,78,41,10,114,65,2,0,0, + 114,13,1,0,0,114,20,0,0,0,114,251,1,0,0,114, + 240,0,0,0,114,12,2,0,0,114,47,2,0,0,218,9, + 109,101,116,97,95,112,97,116,104,114,64,0,0,0,114,240, + 1,0,0,41,2,114,64,2,0,0,218,17,115,117,112,112, + 111,114,116,101,100,95,108,111,97,100,101,114,115,115,2,0, + 0,0,32,32,114,10,0,0,0,218,8,95,105,110,115,116, + 97,108,108,114,69,2,0,0,204,6,0,0,115,71,0,0, + 0,128,0,228,4,25,208,26,43,212,4,44,220,24,51,211, + 24,53,208,4,21,220,4,7,135,78,129,78,215,4,25,209, + 4,25,156,58,215,27,47,209,27,47,208,49,66,208,27,67, + 208,26,68,212,4,69,220,4,7,135,77,129,77,215,4,24, + 209,4,24,156,26,213,4,36,114,28,0,0,0,41,1,114, + 107,0,0,0,114,77,0,0,0,41,3,78,78,78,41,2, + 114,1,0,0,0,114,1,0,0,0,41,1,84,41,87,114, + 198,0,0,0,114,207,0,0,0,114,234,0,0,0,114,114, + 0,0,0,114,20,0,0,0,114,126,0,0,0,114,230,0, + 0,0,114,31,0,0,0,114,60,1,0,0,218,2,110,116, + 114,23,0,0,0,114,36,1,0,0,218,5,112,111,115,105, + 120,114,61,0,0,0,218,3,97,108,108,114,62,0,0,0, + 114,179,0,0,0,114,58,0,0,0,114,65,0,0,0,218, + 20,95,112,97,116,104,115,101,112,115,95,119,105,116,104,95, + 99,111,108,111,110,114,34,0,0,0,218,37,95,67,65,83, + 69,95,73,78,83,69,78,83,73,84,73,86,69,95,80,76, + 65,84,70,79,82,77,83,95,66,89,84,69,83,95,75,69, + 89,114,33,0,0,0,114,35,0,0,0,114,27,0,0,0, + 114,43,0,0,0,114,49,0,0,0,114,53,0,0,0,114, + 72,0,0,0,114,81,0,0,0,114,85,0,0,0,114,91, + 0,0,0,114,93,0,0,0,114,96,0,0,0,114,100,0, + 0,0,114,105,0,0,0,114,121,0,0,0,218,4,116,121, + 112,101,218,8,95,95,99,111,100,101,95,95,114,233,0,0, + 0,114,41,0,0,0,114,214,0,0,0,114,40,0,0,0, + 114,46,0,0,0,114,111,1,0,0,114,143,0,0,0,114, + 139,0,0,0,114,159,0,0,0,114,64,0,0,0,114,59, + 2,0,0,114,61,1,0,0,114,140,0,0,0,218,23,68, + 69,66,85,71,95,66,89,84,69,67,79,68,69,95,83,85, + 70,70,73,88,69,83,218,27,79,80,84,73,77,73,90,69, + 68,95,66,89,84,69,67,79,68,69,95,83,85,70,70,73, + 88,69,83,114,152,0,0,0,114,167,0,0,0,114,177,0, + 0,0,114,180,0,0,0,114,183,0,0,0,114,208,0,0, + 0,114,219,0,0,0,114,224,0,0,0,114,227,0,0,0, + 114,237,0,0,0,114,243,0,0,0,114,246,0,0,0,114, + 2,1,0,0,114,25,1,0,0,114,14,1,0,0,114,20, + 1,0,0,114,32,1,0,0,114,34,1,0,0,114,65,1, + 0,0,114,86,1,0,0,114,119,1,0,0,114,150,1,0, + 0,114,163,1,0,0,114,141,1,0,0,114,185,1,0,0, + 114,229,1,0,0,218,16,95,78,97,109,101,115,112,97,99, + 101,76,111,97,100,101,114,114,240,1,0,0,114,12,2,0, + 0,114,57,2,0,0,114,13,1,0,0,114,65,2,0,0, + 114,69,2,0,0,41,1,218,1,115,115,1,0,0,0,48, + 114,10,0,0,0,250,8,60,109,111,100,117,108,101,62,114, + 81,2,0,0,1,0,0,0,115,194,2,0,0,240,3,1, + 1,1,241,2,7,1,4,240,44,0,14,18,128,10,243,6, + 0,1,12,219,0,10,219,0,10,219,0,16,219,0,14,240, + 6,0,16,19,143,124,137,124,152,119,209,15,38,128,11,217, + 3,14,219,4,20,220,4,17,227,4,23,241,6,0,4,15, + 216,23,27,152,83,144,107,129,79,224,23,26,144,101,128,79, + 225,7,10,209,10,52,160,79,212,10,52,212,7,52,208,0, + 52,208,7,52,216,11,26,152,49,209,11,29,128,8,217,17, 22,144,127,211,17,39,128,14,216,18,20,151,39,145,39,152, 47,211,18,42,128,15,216,41,56,214,23,57,160,65,152,33, 152,65,152,51,154,7,210,23,57,208,0,20,240,8,0,39, @@ -3837,9 +3843,9 @@ const unsigned char _Py_M__importlib__bootstrap_external[] = { 152,58,160,125,244,0,22,1,20,244,50,50,1,25,152,42, 160,109,244,0,50,1,25,247,106,1,65,1,1,32,241,0, 65,1,1,32,247,78,2,33,1,43,241,0,33,1,43,240, - 74,1,0,20,35,208,0,16,247,10,118,1,1,70,1,241, - 0,118,1,1,70,1,247,114,3,72,2,1,44,241,0,72, + 74,1,0,20,35,208,0,16,247,10,121,1,1,70,1,241, + 0,121,1,1,70,1,247,120,3,72,2,1,44,241,0,72, 2,1,44,243,90,4,22,1,13,242,50,8,1,42,242,22, - 2,1,35,243,10,5,1,37,249,242,111,52,0,24,58,115, + 2,1,35,243,10,5,1,37,249,242,117,52,0,24,58,115, 6,0,0,0,193,52,12,71,55,4, }; diff --git a/contrib/tools/python3/Python/frozen_modules/importlib.util.h b/contrib/tools/python3/Python/frozen_modules/importlib.util.h index 22663178b9..e519c432bb 100644 --- a/contrib/tools/python3/Python/frozen_modules/importlib.util.h +++ b/contrib/tools/python3/Python/frozen_modules/importlib.util.h @@ -1,7 +1,7 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__importlib_util[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,20,1,0,0,151,0,100,0,90,0, + 0,0,0,0,0,243,28,1,0,0,151,0,100,0,90,0, 100,1,100,2,108,1,109,2,90,2,1,0,100,1,100,3, 108,3,109,4,90,4,1,0,100,1,100,4,108,3,109,5, 90,5,1,0,100,1,100,5,108,3,109,6,90,6,1,0, @@ -11,695 +11,727 @@ const unsigned char _Py_M__importlib_util[] = { 100,1,100,10,108,8,109,12,90,12,1,0,100,1,100,11, 108,8,109,13,90,13,1,0,100,1,100,12,108,8,109,14, 90,14,1,0,100,13,100,14,108,15,90,15,100,13,100,14, - 108,16,90,16,100,13,100,14,108,17,90,17,100,15,132,0, - 90,18,100,16,132,0,90,19,100,25,100,17,132,1,90,20, - 100,25,100,18,132,1,90,21,2,0,71,0,100,19,132,0, - 100,20,171,2,0,0,0,0,0,0,90,22,2,0,71,0, - 100,21,132,0,100,22,101,17,106,46,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,3,0,0, - 0,0,0,0,90,24,2,0,71,0,100,23,132,0,100,24, - 101,2,171,3,0,0,0,0,0,0,90,25,121,14,41,26, - 122,45,85,116,105,108,105,116,121,32,99,111,100,101,32,102, - 111,114,32,99,111,110,115,116,114,117,99,116,105,110,103,32, - 105,109,112,111,114,116,101,114,115,44,32,101,116,99,46,233, - 1,0,0,0,41,1,218,6,76,111,97,100,101,114,41,1, - 218,16,109,111,100,117,108,101,95,102,114,111,109,95,115,112, - 101,99,41,1,218,13,95,114,101,115,111,108,118,101,95,110, - 97,109,101,41,1,218,16,115,112,101,99,95,102,114,111,109, - 95,108,111,97,100,101,114,41,1,218,10,95,102,105,110,100, - 95,115,112,101,99,41,1,218,12,77,65,71,73,67,95,78, - 85,77,66,69,82,41,1,218,17,95,82,65,87,95,77,65, - 71,73,67,95,78,85,77,66,69,82,41,1,218,17,99,97, - 99,104,101,95,102,114,111,109,95,115,111,117,114,99,101,41, - 1,218,13,100,101,99,111,100,101,95,115,111,117,114,99,101, - 41,1,218,17,115,111,117,114,99,101,95,102,114,111,109,95, - 99,97,99,104,101,41,1,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, - 233,0,0,0,0,78,99,1,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,54,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,106,2,0,0, + 108,16,90,16,100,13,100,14,108,17,90,17,100,13,100,14, + 108,18,90,18,100,15,132,0,90,19,100,16,132,0,90,20, + 100,25,100,17,132,1,90,21,100,25,100,18,132,1,90,22, + 2,0,71,0,100,19,132,0,100,20,171,2,0,0,0,0, + 0,0,90,23,2,0,71,0,100,21,132,0,100,22,101,18, + 106,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,171,3,0,0,0,0,0,0,90,25,2,0, + 71,0,100,23,132,0,100,24,101,2,171,3,0,0,0,0, + 0,0,90,26,121,14,41,26,122,45,85,116,105,108,105,116, + 121,32,99,111,100,101,32,102,111,114,32,99,111,110,115,116, + 114,117,99,116,105,110,103,32,105,109,112,111,114,116,101,114, + 115,44,32,101,116,99,46,233,1,0,0,0,41,1,218,6, + 76,111,97,100,101,114,41,1,218,16,109,111,100,117,108,101, + 95,102,114,111,109,95,115,112,101,99,41,1,218,13,95,114, + 101,115,111,108,118,101,95,110,97,109,101,41,1,218,16,115, + 112,101,99,95,102,114,111,109,95,108,111,97,100,101,114,41, + 1,218,10,95,102,105,110,100,95,115,112,101,99,41,1,218, + 12,77,65,71,73,67,95,78,85,77,66,69,82,41,1,218, + 17,95,82,65,87,95,77,65,71,73,67,95,78,85,77,66, + 69,82,41,1,218,17,99,97,99,104,101,95,102,114,111,109, + 95,115,111,117,114,99,101,41,1,218,13,100,101,99,111,100, + 101,95,115,111,117,114,99,101,41,1,218,17,115,111,117,114, + 99,101,95,102,114,111,109,95,99,97,99,104,101,41,1,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,233,0,0,0,0,78,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,54,0,0,0,151,0,116,1,0,0,0,0, + 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0, + 0,0,124,0,171,2,0,0,0,0,0,0,83,0,41,1, + 122,66,82,101,116,117,114,110,32,116,104,101,32,104,97,115, + 104,32,111,102,32,42,115,111,117,114,99,101,95,98,121,116, + 101,115,42,32,97,115,32,117,115,101,100,32,105,110,32,104, + 97,115,104,45,98,97,115,101,100,32,112,121,99,32,102,105, + 108,101,115,46,41,3,218,4,95,105,109,112,218,11,115,111, + 117,114,99,101,95,104,97,115,104,114,9,0,0,0,41,1, + 218,12,115,111,117,114,99,101,95,98,121,116,101,115,115,1, + 0,0,0,32,250,23,60,102,114,111,122,101,110,32,105,109, + 112,111,114,116,108,105,98,46,117,116,105,108,62,114,17,0, + 0,0,114,17,0,0,0,20,0,0,0,115,22,0,0,0, + 128,0,228,11,15,215,11,27,209,11,27,212,28,45,168,124, + 211,11,60,208,4,60,243,0,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0, + 243,166,0,0,0,151,0,124,0,106,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,171, + 1,0,0,0,0,0,0,115,2,124,0,83,0,124,1,115, + 24,116,3,0,0,0,0,0,0,0,0,100,2,116,5,0, + 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, + 0,155,0,100,3,157,3,171,1,0,0,0,0,0,0,130, + 1,100,4,125,2,124,0,68,0,93,14,0,0,125,3,124, + 3,100,1,107,55,0,0,114,2,1,0,110,7,124,2,100, + 5,122,13,0,0,125,2,140,16,4,0,116,7,0,0,0, + 0,0,0,0,0,124,0,124,2,100,6,26,0,124,1,124, + 2,171,3,0,0,0,0,0,0,83,0,41,7,122,50,82, + 101,115,111,108,118,101,32,97,32,114,101,108,97,116,105,118, + 101,32,109,111,100,117,108,101,32,110,97,109,101,32,116,111, + 32,97,110,32,97,98,115,111,108,117,116,101,32,111,110,101, + 46,250,1,46,122,25,110,111,32,112,97,99,107,97,103,101, + 32,115,112,101,99,105,102,105,101,100,32,102,111,114,32,122, + 37,32,40,114,101,113,117,105,114,101,100,32,102,111,114,32, + 114,101,108,97,116,105,118,101,32,109,111,100,117,108,101,32, + 110,97,109,101,115,41,114,14,0,0,0,114,2,0,0,0, + 78,41,4,218,10,115,116,97,114,116,115,119,105,116,104,218, + 11,73,109,112,111,114,116,69,114,114,111,114,218,4,114,101, + 112,114,114,5,0,0,0,41,4,218,4,110,97,109,101,218, + 7,112,97,99,107,97,103,101,218,5,108,101,118,101,108,218, + 9,99,104,97,114,97,99,116,101,114,115,4,0,0,0,32, + 32,32,32,114,19,0,0,0,218,12,114,101,115,111,108,118, + 101,95,110,97,109,101,114,30,0,0,0,25,0,0,0,115, + 124,0,0,0,128,0,224,11,15,143,63,137,63,152,51,212, + 11,31,216,15,19,136,11,217,13,20,220,14,25,208,28,53, + 180,100,184,52,179,106,176,92,240,0,1,66,1,65,1,240, + 0,1,27,65,1,243,0,1,15,66,1,240,0,1,9,66, + 1,224,12,13,128,69,216,21,25,242,0,3,5,19,136,9, + 216,11,20,152,3,210,11,27,217,12,17,216,8,13,144,17, + 137,10,137,5,240,7,3,5,19,244,8,0,12,25,152,20, + 152,101,152,102,152,28,160,119,176,5,211,11,54,208,4,54, + 114,20,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,3,0,0,0,243,224,0,0,0,151, + 0,124,0,116,0,0,0,0,0,0,0,0,0,106,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,4,0,0,0,0,0,0,0,0,124,0,171,2,0,0, - 0,0,0,0,83,0,41,1,122,66,82,101,116,117,114,110, - 32,116,104,101,32,104,97,115,104,32,111,102,32,42,115,111, - 117,114,99,101,95,98,121,116,101,115,42,32,97,115,32,117, - 115,101,100,32,105,110,32,104,97,115,104,45,98,97,115,101, - 100,32,112,121,99,32,102,105,108,101,115,46,41,3,218,4, - 95,105,109,112,218,11,115,111,117,114,99,101,95,104,97,115, - 104,114,9,0,0,0,41,1,218,12,115,111,117,114,99,101, - 95,98,121,116,101,115,115,1,0,0,0,32,250,23,60,102, - 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46, - 117,116,105,108,62,114,17,0,0,0,114,17,0,0,0,19, - 0,0,0,115,22,0,0,0,128,0,228,11,15,215,11,27, - 209,11,27,212,28,45,168,124,211,11,60,208,4,60,243,0, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 6,0,0,0,3,0,0,0,243,166,0,0,0,151,0,124, - 0,106,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,171,1,0,0,0,0,0,0,115, - 2,124,0,83,0,124,1,115,24,116,3,0,0,0,0,0, - 0,0,0,100,2,116,5,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,155,0,100,3,157,3,171, - 1,0,0,0,0,0,0,130,1,100,4,125,2,124,0,68, - 0,93,14,0,0,125,3,124,3,100,1,107,55,0,0,114, - 2,1,0,110,7,124,2,100,5,122,13,0,0,125,2,140, - 16,4,0,116,7,0,0,0,0,0,0,0,0,124,0,124, - 2,100,6,26,0,124,1,124,2,171,3,0,0,0,0,0, - 0,83,0,41,7,122,50,82,101,115,111,108,118,101,32,97, - 32,114,101,108,97,116,105,118,101,32,109,111,100,117,108,101, - 32,110,97,109,101,32,116,111,32,97,110,32,97,98,115,111, - 108,117,116,101,32,111,110,101,46,250,1,46,122,25,110,111, - 32,112,97,99,107,97,103,101,32,115,112,101,99,105,102,105, - 101,100,32,102,111,114,32,122,37,32,40,114,101,113,117,105, - 114,101,100,32,102,111,114,32,114,101,108,97,116,105,118,101, - 32,109,111,100,117,108,101,32,110,97,109,101,115,41,114,14, - 0,0,0,114,2,0,0,0,78,41,4,218,10,115,116,97, - 114,116,115,119,105,116,104,218,11,73,109,112,111,114,116,69, - 114,114,111,114,218,4,114,101,112,114,114,5,0,0,0,41, - 4,218,4,110,97,109,101,218,7,112,97,99,107,97,103,101, - 218,5,108,101,118,101,108,218,9,99,104,97,114,97,99,116, - 101,114,115,4,0,0,0,32,32,32,32,114,19,0,0,0, - 218,12,114,101,115,111,108,118,101,95,110,97,109,101,114,30, - 0,0,0,24,0,0,0,115,124,0,0,0,128,0,224,11, - 15,143,63,137,63,152,51,212,11,31,216,15,19,136,11,217, - 13,20,220,14,25,208,28,53,180,100,184,52,179,106,176,92, - 240,0,1,66,1,65,1,240,0,1,27,65,1,243,0,1, - 15,66,1,240,0,1,9,66,1,224,12,13,128,69,216,21, - 25,242,0,3,5,19,136,9,216,11,20,152,3,210,11,27, - 217,12,17,216,8,13,144,17,137,10,137,5,240,7,3,5, - 19,244,8,0,12,25,152,20,152,101,152,102,152,28,160,119, - 176,5,211,11,54,208,4,54,114,20,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, - 0,0,243,224,0,0,0,151,0,124,0,116,0,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,118,1,114,12,116,5,0, - 0,0,0,0,0,0,0,124,0,124,1,171,2,0,0,0, - 0,0,0,83,0,116,0,0,0,0,0,0,0,0,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,25,0,0,0,125,2,124,2,128,1,121, - 1,9,0,124,2,106,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,125,3,124,3,128,14,116, - 9,0,0,0,0,0,0,0,0,124,0,155,0,100,2,157, - 2,171,1,0,0,0,0,0,0,130,1,124,3,83,0,35, - 0,116,10,0,0,0,0,0,0,0,0,36,0,114,16,1, - 0,116,9,0,0,0,0,0,0,0,0,124,0,155,0,100, - 3,157,2,171,1,0,0,0,0,0,0,100,1,130,2,119, - 0,120,3,89,0,119,1,41,4,97,135,2,0,0,82,101, - 116,117,114,110,32,116,104,101,32,115,112,101,99,32,102,111, - 114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32, - 109,111,100,117,108,101,46,10,10,32,32,32,32,70,105,114, - 115,116,44,32,115,121,115,46,109,111,100,117,108,101,115,32, - 105,115,32,99,104,101,99,107,101,100,32,116,111,32,115,101, - 101,32,105,102,32,116,104,101,32,109,111,100,117,108,101,32, - 119,97,115,32,97,108,114,101,97,100,121,32,105,109,112,111, - 114,116,101,100,46,32,73,102,10,32,32,32,32,115,111,44, - 32,116,104,101,110,32,115,121,115,46,109,111,100,117,108,101, - 115,91,110,97,109,101,93,46,95,95,115,112,101,99,95,95, - 32,105,115,32,114,101,116,117,114,110,101,100,46,32,73,102, - 32,116,104,97,116,32,104,97,112,112,101,110,115,32,116,111, - 32,98,101,10,32,32,32,32,115,101,116,32,116,111,32,78, - 111,110,101,44,32,116,104,101,110,32,86,97,108,117,101,69, - 114,114,111,114,32,105,115,32,114,97,105,115,101,100,46,32, - 73,102,32,116,104,101,32,109,111,100,117,108,101,32,105,115, - 32,110,111,116,32,105,110,10,32,32,32,32,115,121,115,46, - 109,111,100,117,108,101,115,44,32,116,104,101,110,32,115,121, - 115,46,109,101,116,97,95,112,97,116,104,32,105,115,32,115, - 101,97,114,99,104,101,100,32,102,111,114,32,97,32,115,117, - 105,116,97,98,108,101,32,115,112,101,99,32,119,105,116,104, - 32,116,104,101,10,32,32,32,32,118,97,108,117,101,32,111, - 102,32,39,112,97,116,104,39,32,103,105,118,101,110,32,116, - 111,32,116,104,101,32,102,105,110,100,101,114,115,46,32,78, - 111,110,101,32,105,115,32,114,101,116,117,114,110,101,100,32, - 105,102,32,110,111,32,115,112,101,99,32,99,111,117,108,100, - 10,32,32,32,32,98,101,32,102,111,117,110,100,46,10,10, - 32,32,32,32,68,111,116,116,101,100,32,110,97,109,101,115, - 32,100,111,32,110,111,116,32,104,97,118,101,32,116,104,101, - 105,114,32,112,97,114,101,110,116,32,112,97,99,107,97,103, - 101,115,32,105,109,112,108,105,99,105,116,108,121,32,105,109, - 112,111,114,116,101,100,46,32,89,111,117,32,119,105,108,108, - 10,32,32,32,32,109,111,115,116,32,108,105,107,101,108,121, - 32,110,101,101,100,32,116,111,32,101,120,112,108,105,99,105, - 116,108,121,32,105,109,112,111,114,116,32,97,108,108,32,112, - 97,114,101,110,116,32,112,97,99,107,97,103,101,115,32,105, - 110,32,116,104,101,32,112,114,111,112,101,114,10,32,32,32, - 32,111,114,100,101,114,32,102,111,114,32,97,32,115,117,98, - 109,111,100,117,108,101,32,116,111,32,103,101,116,32,116,104, - 101,32,99,111,114,114,101,99,116,32,115,112,101,99,46,10, - 10,32,32,32,32,78,250,17,46,95,95,115,112,101,99,95, - 95,32,105,115,32,78,111,110,101,250,20,46,95,95,115,112, - 101,99,95,95,32,105,115,32,110,111,116,32,115,101,116,41, - 6,218,3,115,121,115,218,7,109,111,100,117,108,101,115,114, - 7,0,0,0,218,8,95,95,115,112,101,99,95,95,218,10, - 86,97,108,117,101,69,114,114,111,114,218,14,65,116,116,114, - 105,98,117,116,101,69,114,114,111,114,41,4,114,26,0,0, - 0,218,4,112,97,116,104,218,6,109,111,100,117,108,101,218, - 4,115,112,101,99,115,4,0,0,0,32,32,32,32,114,19, - 0,0,0,218,20,95,102,105,110,100,95,115,112,101,99,95, - 102,114,111,109,95,112,97,116,104,114,42,0,0,0,39,0, - 0,0,115,136,0,0,0,128,0,240,30,0,8,12,148,51, - 151,59,145,59,209,7,30,220,15,25,152,36,160,4,211,15, - 37,208,8,37,228,17,20,151,27,145,27,152,84,209,17,34, - 136,6,216,11,17,136,62,216,19,23,240,2,7,9,24,216, - 19,25,151,63,145,63,136,68,240,8,0,16,20,136,124,220, - 22,32,160,68,160,54,208,41,58,208,33,59,211,22,60,208, - 16,60,216,19,23,136,75,248,244,11,0,16,30,242,0,1, - 9,70,1,220,18,28,160,4,152,118,208,37,57,208,29,58, - 211,18,59,192,20,208,12,69,240,3,1,9,70,1,250,115, - 11,0,0,0,182,12,65,20,0,193,20,25,65,45,3,99, - 2,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, - 3,0,0,0,243,208,1,0,0,151,0,124,0,106,1,0, + 0,118,1,114,12,116,5,0,0,0,0,0,0,0,0,124, + 0,124,1,171,2,0,0,0,0,0,0,83,0,116,0,0, + 0,0,0,0,0,0,0,106,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,0,25,0,0, + 0,125,2,124,2,128,1,121,1,9,0,124,2,106,6,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,1,171,1,0,0,0,0,0,0,114,12,116,3,0, - 0,0,0,0,0,0,0,124,0,124,1,171,2,0,0,0, - 0,0,0,110,1,124,0,125,2,124,2,116,4,0,0,0, - 0,0,0,0,0,106,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,118,1,114,64,124,2,106, - 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,1,171,1,0,0,0,0,0,0,100,2,25, - 0,0,0,125,3,124,3,114,28,116,11,0,0,0,0,0, - 0,0,0,124,3,100,3,103,1,172,4,171,2,0,0,0, - 0,0,0,125,4,9,0,124,4,106,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,5,110, - 2,100,8,125,5,116,19,0,0,0,0,0,0,0,0,124, - 2,124,5,171,2,0,0,0,0,0,0,83,0,116,4,0, - 0,0,0,0,0,0,0,106,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,2,25,0,0, - 0,125,7,124,7,128,1,121,8,9,0,124,7,106,20,0, + 0,125,3,124,3,128,14,116,9,0,0,0,0,0,0,0, + 0,124,0,155,0,100,2,157,2,171,1,0,0,0,0,0, + 0,130,1,124,3,83,0,35,0,116,10,0,0,0,0,0, + 0,0,0,36,0,114,16,1,0,116,9,0,0,0,0,0, + 0,0,0,124,0,155,0,100,3,157,2,171,1,0,0,0, + 0,0,0,100,1,130,2,119,0,120,3,89,0,119,1,41, + 4,97,135,2,0,0,82,101,116,117,114,110,32,116,104,101, + 32,115,112,101,99,32,102,111,114,32,116,104,101,32,115,112, + 101,99,105,102,105,101,100,32,109,111,100,117,108,101,46,10, + 10,32,32,32,32,70,105,114,115,116,44,32,115,121,115,46, + 109,111,100,117,108,101,115,32,105,115,32,99,104,101,99,107, + 101,100,32,116,111,32,115,101,101,32,105,102,32,116,104,101, + 32,109,111,100,117,108,101,32,119,97,115,32,97,108,114,101, + 97,100,121,32,105,109,112,111,114,116,101,100,46,32,73,102, + 10,32,32,32,32,115,111,44,32,116,104,101,110,32,115,121, + 115,46,109,111,100,117,108,101,115,91,110,97,109,101,93,46, + 95,95,115,112,101,99,95,95,32,105,115,32,114,101,116,117, + 114,110,101,100,46,32,73,102,32,116,104,97,116,32,104,97, + 112,112,101,110,115,32,116,111,32,98,101,10,32,32,32,32, + 115,101,116,32,116,111,32,78,111,110,101,44,32,116,104,101, + 110,32,86,97,108,117,101,69,114,114,111,114,32,105,115,32, + 114,97,105,115,101,100,46,32,73,102,32,116,104,101,32,109, + 111,100,117,108,101,32,105,115,32,110,111,116,32,105,110,10, + 32,32,32,32,115,121,115,46,109,111,100,117,108,101,115,44, + 32,116,104,101,110,32,115,121,115,46,109,101,116,97,95,112, + 97,116,104,32,105,115,32,115,101,97,114,99,104,101,100,32, + 102,111,114,32,97,32,115,117,105,116,97,98,108,101,32,115, + 112,101,99,32,119,105,116,104,32,116,104,101,10,32,32,32, + 32,118,97,108,117,101,32,111,102,32,39,112,97,116,104,39, + 32,103,105,118,101,110,32,116,111,32,116,104,101,32,102,105, + 110,100,101,114,115,46,32,78,111,110,101,32,105,115,32,114, + 101,116,117,114,110,101,100,32,105,102,32,110,111,32,115,112, + 101,99,32,99,111,117,108,100,10,32,32,32,32,98,101,32, + 102,111,117,110,100,46,10,10,32,32,32,32,68,111,116,116, + 101,100,32,110,97,109,101,115,32,100,111,32,110,111,116,32, + 104,97,118,101,32,116,104,101,105,114,32,112,97,114,101,110, + 116,32,112,97,99,107,97,103,101,115,32,105,109,112,108,105, + 99,105,116,108,121,32,105,109,112,111,114,116,101,100,46,32, + 89,111,117,32,119,105,108,108,10,32,32,32,32,109,111,115, + 116,32,108,105,107,101,108,121,32,110,101,101,100,32,116,111, + 32,101,120,112,108,105,99,105,116,108,121,32,105,109,112,111, + 114,116,32,97,108,108,32,112,97,114,101,110,116,32,112,97, + 99,107,97,103,101,115,32,105,110,32,116,104,101,32,112,114, + 111,112,101,114,10,32,32,32,32,111,114,100,101,114,32,102, + 111,114,32,97,32,115,117,98,109,111,100,117,108,101,32,116, + 111,32,103,101,116,32,116,104,101,32,99,111,114,114,101,99, + 116,32,115,112,101,99,46,10,10,32,32,32,32,78,250,17, + 46,95,95,115,112,101,99,95,95,32,105,115,32,78,111,110, + 101,250,20,46,95,95,115,112,101,99,95,95,32,105,115,32, + 110,111,116,32,115,101,116,41,6,218,3,115,121,115,218,7, + 109,111,100,117,108,101,115,114,7,0,0,0,218,8,95,95, + 115,112,101,99,95,95,218,10,86,97,108,117,101,69,114,114, + 111,114,218,14,65,116,116,114,105,98,117,116,101,69,114,114, + 111,114,41,4,114,26,0,0,0,218,4,112,97,116,104,218, + 6,109,111,100,117,108,101,218,4,115,112,101,99,115,4,0, + 0,0,32,32,32,32,114,19,0,0,0,218,20,95,102,105, + 110,100,95,115,112,101,99,95,102,114,111,109,95,112,97,116, + 104,114,42,0,0,0,40,0,0,0,115,136,0,0,0,128, + 0,240,30,0,8,12,148,51,151,59,145,59,209,7,30,220, + 15,25,152,36,160,4,211,15,37,208,8,37,228,17,20,151, + 27,145,27,152,84,209,17,34,136,6,216,11,17,136,62,216, + 19,23,240,2,7,9,24,216,19,25,151,63,145,63,136,68, + 240,8,0,16,20,136,124,220,22,32,160,68,160,54,208,41, + 58,208,33,59,211,22,60,208,16,60,216,19,23,136,75,248, + 244,11,0,16,30,242,0,1,9,70,1,220,18,28,160,4, + 152,118,208,37,57,208,29,58,211,18,59,192,20,208,12,69, + 240,3,1,9,70,1,250,115,11,0,0,0,182,12,65,20, + 0,193,20,25,65,45,3,99,2,0,0,0,0,0,0,0, + 0,0,0,0,7,0,0,0,3,0,0,0,243,208,1,0, + 0,151,0,124,0,106,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,100,1,171,1,0,0,0, + 0,0,0,114,12,116,3,0,0,0,0,0,0,0,0,124, + 0,124,1,171,2,0,0,0,0,0,0,110,1,124,0,125, + 2,124,2,116,4,0,0,0,0,0,0,0,0,106,6,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,8,124,8,128,14,116,23,0,0,0,0,0,0,0, - 0,124,0,155,0,100,9,157,2,171,1,0,0,0,0,0, - 0,130,1,124,8,83,0,35,0,116,14,0,0,0,0,0, - 0,0,0,36,0,114,25,125,6,116,17,0,0,0,0,0, - 0,0,0,100,5,124,3,155,2,100,6,124,2,155,2,157, - 4,124,2,172,7,171,2,0,0,0,0,0,0,124,6,130, - 2,100,8,125,6,126,6,119,1,119,0,120,3,89,0,119, - 1,35,0,116,14,0,0,0,0,0,0,0,0,36,0,114, - 16,1,0,116,23,0,0,0,0,0,0,0,0,124,0,155, - 0,100,10,157,2,171,1,0,0,0,0,0,0,100,8,130, - 2,119,0,120,3,89,0,119,1,41,11,97,175,2,0,0, - 82,101,116,117,114,110,32,116,104,101,32,115,112,101,99,32, - 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101, - 100,32,109,111,100,117,108,101,46,10,10,32,32,32,32,70, - 105,114,115,116,44,32,115,121,115,46,109,111,100,117,108,101, - 115,32,105,115,32,99,104,101,99,107,101,100,32,116,111,32, - 115,101,101,32,105,102,32,116,104,101,32,109,111,100,117,108, - 101,32,119,97,115,32,97,108,114,101,97,100,121,32,105,109, - 112,111,114,116,101,100,46,32,73,102,10,32,32,32,32,115, - 111,44,32,116,104,101,110,32,115,121,115,46,109,111,100,117, - 108,101,115,91,110,97,109,101,93,46,95,95,115,112,101,99, - 95,95,32,105,115,32,114,101,116,117,114,110,101,100,46,32, - 73,102,32,116,104,97,116,32,104,97,112,112,101,110,115,32, - 116,111,32,98,101,10,32,32,32,32,115,101,116,32,116,111, - 32,78,111,110,101,44,32,116,104,101,110,32,86,97,108,117, - 101,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, - 46,32,73,102,32,116,104,101,32,109,111,100,117,108,101,32, - 105,115,32,110,111,116,32,105,110,10,32,32,32,32,115,121, - 115,46,109,111,100,117,108,101,115,44,32,116,104,101,110,32, - 115,121,115,46,109,101,116,97,95,112,97,116,104,32,105,115, - 32,115,101,97,114,99,104,101,100,32,102,111,114,32,97,32, - 115,117,105,116,97,98,108,101,32,115,112,101,99,32,119,105, - 116,104,32,116,104,101,10,32,32,32,32,118,97,108,117,101, - 32,111,102,32,39,112,97,116,104,39,32,103,105,118,101,110, - 32,116,111,32,116,104,101,32,102,105,110,100,101,114,115,46, - 32,78,111,110,101,32,105,115,32,114,101,116,117,114,110,101, - 100,32,105,102,32,110,111,32,115,112,101,99,32,99,111,117, - 108,100,10,32,32,32,32,98,101,32,102,111,117,110,100,46, - 10,10,32,32,32,32,73,102,32,116,104,101,32,110,97,109, - 101,32,105,115,32,102,111,114,32,115,117,98,109,111,100,117, - 108,101,32,40,99,111,110,116,97,105,110,115,32,97,32,100, - 111,116,41,44,32,116,104,101,32,112,97,114,101,110,116,32, - 109,111,100,117,108,101,32,105,115,10,32,32,32,32,97,117, - 116,111,109,97,116,105,99,97,108,108,121,32,105,109,112,111, - 114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,110, - 97,109,101,32,97,110,100,32,112,97,99,107,97,103,101,32, - 97,114,103,117,109,101,110,116,115,32,119,111,114,107,32,116, - 104,101,32,115,97,109,101,32,97,115,32,105,109,112,111,114, - 116,108,105,98,46,105,109,112,111,114,116,95,109,111,100,117, - 108,101,40,41,46,10,32,32,32,32,73,110,32,111,116,104, - 101,114,32,119,111,114,100,115,44,32,114,101,108,97,116,105, - 118,101,32,109,111,100,117,108,101,32,110,97,109,101,115,32, - 40,119,105,116,104,32,108,101,97,100,105,110,103,32,100,111, - 116,115,41,32,119,111,114,107,46,10,10,32,32,32,32,114, - 22,0,0,0,114,14,0,0,0,218,8,95,95,112,97,116, - 104,95,95,41,1,218,8,102,114,111,109,108,105,115,116,122, - 32,95,95,112,97,116,104,95,95,32,97,116,116,114,105,98, - 117,116,101,32,110,111,116,32,102,111,117,110,100,32,111,110, - 32,122,22,32,119,104,105,108,101,32,116,114,121,105,110,103, - 32,116,111,32,102,105,110,100,32,41,1,114,26,0,0,0, - 78,114,32,0,0,0,114,33,0,0,0,41,12,114,23,0, - 0,0,114,30,0,0,0,114,34,0,0,0,114,35,0,0, - 0,218,10,114,112,97,114,116,105,116,105,111,110,218,10,95, - 95,105,109,112,111,114,116,95,95,114,44,0,0,0,114,38, - 0,0,0,218,19,77,111,100,117,108,101,78,111,116,70,111, - 117,110,100,69,114,114,111,114,114,7,0,0,0,114,36,0, - 0,0,114,37,0,0,0,41,9,114,26,0,0,0,114,27, - 0,0,0,218,8,102,117,108,108,110,97,109,101,218,11,112, - 97,114,101,110,116,95,110,97,109,101,218,6,112,97,114,101, - 110,116,218,11,112,97,114,101,110,116,95,112,97,116,104,218, - 1,101,114,40,0,0,0,114,41,0,0,0,115,9,0,0, - 0,32,32,32,32,32,32,32,32,32,114,19,0,0,0,218, - 9,102,105,110,100,95,115,112,101,99,114,54,0,0,0,70, - 0,0,0,115,28,1,0,0,128,0,240,34,0,47,51,175, - 111,169,111,184,99,212,46,66,140,124,152,68,160,39,212,15, - 42,200,4,128,72,216,7,15,148,115,151,123,145,123,209,7, - 34,216,22,30,215,22,41,209,22,41,168,35,211,22,46,168, - 113,209,22,49,136,11,217,11,22,220,21,31,160,11,176,122, - 176,108,212,21,67,136,70,240,2,5,13,80,1,216,30,36, - 159,111,153,111,145,11,240,12,0,27,31,136,75,220,15,25, - 152,40,160,75,211,15,48,208,8,48,228,17,20,151,27,145, - 27,152,88,209,17,38,136,6,216,11,17,136,62,216,19,23, - 240,2,7,9,24,216,19,25,151,63,145,63,136,68,240,8, - 0,16,20,136,124,220,22,32,160,68,160,54,208,41,58,208, - 33,59,211,22,60,208,16,60,216,19,23,136,75,248,244,37, - 0,20,34,242,0,3,13,80,1,220,22,41,216,22,54,176, - 123,176,111,240,0,1,70,1,44,216,44,52,168,60,240,3, - 1,21,57,216,63,71,244,5,2,23,73,1,224,78,79,240, - 5,2,17,80,1,251,240,3,3,13,80,1,251,244,26,0, - 16,30,242,0,1,9,70,1,220,18,28,160,4,152,118,208, - 37,57,208,29,58,211,18,59,192,20,208,12,69,240,3,1, - 9,70,1,250,115,36,0,0,0,193,23,12,66,39,0,194, - 9,12,67,12,0,194,39,9,67,9,3,194,48,20,67,4, - 3,195,4,5,67,9,3,195,12,25,67,37,3,99,0,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, - 0,0,243,50,0,0,0,151,0,101,0,90,1,100,0,90, - 2,100,1,90,3,100,2,132,0,90,4,100,3,132,0,90, - 5,100,4,132,0,90,6,101,7,100,5,132,0,171,0,0, - 0,0,0,0,0,90,8,121,6,41,7,218,43,95,105,110, - 99,111,109,112,97,116,105,98,108,101,95,101,120,116,101,110, - 115,105,111,110,95,109,111,100,117,108,101,95,114,101,115,116, - 114,105,99,116,105,111,110,115,97,103,5,0,0,65,32,99, - 111,110,116,101,120,116,32,109,97,110,97,103,101,114,32,116, - 104,97,116,32,99,97,110,32,116,101,109,112,111,114,97,114, - 105,108,121,32,115,107,105,112,32,116,104,101,32,99,111,109, - 112,97,116,105,98,105,108,105,116,121,32,99,104,101,99,107, - 46,10,10,32,32,32,32,78,79,84,69,58,32,84,104,105, - 115,32,102,117,110,99,116,105,111,110,32,105,115,32,109,101, - 97,110,116,32,116,111,32,97,99,99,111,109,109,111,100,97, - 116,101,32,97,110,32,117,110,117,115,117,97,108,32,99,97, - 115,101,59,32,111,110,101,10,32,32,32,32,119,104,105,99, - 104,32,105,115,32,108,105,107,101,108,121,32,116,111,32,101, - 118,101,110,116,117,97,108,108,121,32,103,111,32,97,119,97, - 121,46,32,32,84,104,101,114,101,39,115,32,105,115,32,97, - 32,112,114,101,116,116,121,32,103,111,111,100,10,32,32,32, - 32,99,104,97,110,99,101,32,116,104,105,115,32,105,115,32, - 110,111,116,32,119,104,97,116,32,121,111,117,32,119,101,114, - 101,32,108,111,111,107,105,110,103,32,102,111,114,46,10,10, - 32,32,32,32,87,65,82,78,73,78,71,58,32,85,115,105, - 110,103,32,116,104,105,115,32,102,117,110,99,116,105,111,110, - 32,116,111,32,100,105,115,97,98,108,101,32,116,104,101,32, - 99,104,101,99,107,32,99,97,110,32,108,101,97,100,32,116, - 111,10,32,32,32,32,117,110,101,120,112,101,99,116,101,100, - 32,98,101,104,97,118,105,111,114,32,97,110,100,32,101,118, - 101,110,32,99,114,97,115,104,101,115,46,32,32,73,116,32, - 115,104,111,117,108,100,32,111,110,108,121,32,98,101,32,117, - 115,101,100,32,100,117,114,105,110,103,10,32,32,32,32,101, - 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, - 100,101,118,101,108,111,112,109,101,110,116,46,10,10,32,32, - 32,32,73,102,32,34,100,105,115,97,98,108,101,95,99,104, - 101,99,107,34,32,105,115,32,84,114,117,101,32,116,104,101, - 110,32,116,104,101,32,99,111,109,112,97,116,105,98,105,108, - 105,116,121,32,99,104,101,99,107,32,119,105,108,108,32,110, - 111,116,10,32,32,32,32,104,97,112,112,101,110,32,119,104, - 105,108,101,32,116,104,101,32,99,111,110,116,101,120,116,32, - 109,97,110,97,103,101,114,32,105,115,32,97,99,116,105,118, - 101,46,32,32,79,116,104,101,114,119,105,115,101,32,116,104, - 101,32,99,104,101,99,107,10,32,32,32,32,42,119,105,108, - 108,42,32,104,97,112,112,101,110,46,10,10,32,32,32,32, - 78,111,114,109,97,108,108,121,44,32,101,120,116,101,110,115, - 105,111,110,115,32,116,104,97,116,32,100,111,32,110,111,116, - 32,115,117,112,112,111,114,116,32,109,117,108,116,105,112,108, - 101,32,105,110,116,101,114,112,114,101,116,101,114,115,10,32, - 32,32,32,109,97,121,32,110,111,116,32,98,101,32,105,109, - 112,111,114,116,101,100,32,105,110,32,97,32,115,117,98,105, - 110,116,101,114,112,114,101,116,101,114,46,32,32,84,104,97, - 116,32,105,109,112,108,105,101,115,32,109,111,100,117,108,101, - 115,10,32,32,32,32,116,104,97,116,32,100,111,32,110,111, - 116,32,105,109,112,108,101,109,101,110,116,32,109,117,108,116, - 105,45,112,104,97,115,101,32,105,110,105,116,32,111,114,32, - 116,104,97,116,32,101,120,112,108,105,99,105,116,108,121,32, - 111,102,32,111,117,116,46,10,10,32,32,32,32,76,105,107, - 101,119,105,115,101,32,102,111,114,32,109,111,100,117,108,101, - 115,32,105,109,112,111,114,116,32,105,110,32,97,32,115,117, - 98,105,110,116,101,114,112,101,116,101,114,32,119,105,116,104, - 32,105,116,115,32,111,119,110,32,71,73,76,10,32,32,32, - 32,119,104,101,110,32,116,104,101,32,101,120,116,101,110,115, - 105,111,110,32,100,111,101,115,32,110,111,116,32,115,117,112, - 112,111,114,116,32,97,32,112,101,114,45,105,110,116,101,114, - 112,114,101,116,101,114,32,71,73,76,46,32,32,84,104,105, - 115,10,32,32,32,32,105,109,112,108,105,101,115,32,116,104, - 101,32,109,111,100,117,108,101,32,100,111,101,115,32,110,111, - 116,32,104,97,118,101,32,97,32,80,121,95,109,111,100,95, - 109,117,108,116,105,112,108,101,95,105,110,116,101,114,112,114, - 101,116,101,114,115,32,115,108,111,116,10,32,32,32,32,115, - 101,116,32,116,111,32,80,121,95,77,79,68,95,80,69,82, - 95,73,78,84,69,82,80,82,69,84,69,82,95,71,73,76, - 95,83,85,80,80,79,82,84,69,68,46,10,10,32,32,32, - 32,73,110,32,98,111,116,104,32,99,97,115,101,115,44,32, - 116,104,105,115,32,99,111,110,116,101,120,116,32,109,97,110, - 97,103,101,114,32,109,97,121,32,98,101,32,117,115,101,100, - 32,116,111,32,116,101,109,112,111,114,97,114,105,108,121,10, - 32,32,32,32,100,105,115,97,98,108,101,32,116,104,101,32, - 99,104,101,99,107,32,102,111,114,32,99,111,109,112,97,116, - 105,98,108,101,32,101,120,116,101,110,115,105,111,110,32,109, - 111,100,117,108,101,115,46,10,10,32,32,32,32,89,111,117, - 32,99,97,110,32,103,101,116,32,116,104,101,32,115,97,109, - 101,32,101,102,102,101,99,116,32,97,115,32,116,104,105,115, - 32,102,117,110,99,116,105,111,110,32,98,121,32,105,109,112, - 108,101,109,101,110,116,105,110,103,32,116,104,101,10,32,32, - 32,32,98,97,115,105,99,32,105,110,116,101,114,102,97,99, - 101,32,111,102,32,109,117,108,116,105,45,112,104,97,115,101, - 32,105,110,105,116,32,40,80,69,80,32,52,56,57,41,32, - 97,110,100,32,108,121,105,110,103,32,97,98,111,117,116,10, - 32,32,32,32,115,117,112,112,111,114,116,32,102,111,114,32, - 109,117,108,105,116,112,108,101,32,105,110,116,101,114,112,114, - 101,116,101,114,115,32,40,111,114,32,112,101,114,45,105,110, - 116,101,114,112,114,101,116,101,114,32,71,73,76,41,46,10, - 32,32,32,32,99,1,0,0,0,0,0,0,0,1,0,0, - 0,3,0,0,0,3,0,0,0,243,36,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,124,0,95,1,0,0,0,0,0,0,0,0, - 121,0,169,1,78,41,2,218,4,98,111,111,108,218,13,100, - 105,115,97,98,108,101,95,99,104,101,99,107,41,2,218,4, - 115,101,108,102,114,60,0,0,0,115,2,0,0,0,32,32, - 114,19,0,0,0,218,8,95,95,105,110,105,116,95,95,122, + 0,118,1,114,64,124,2,106,9,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,100,1,171,1,0, + 0,0,0,0,0,100,2,25,0,0,0,125,3,124,3,114, + 28,116,11,0,0,0,0,0,0,0,0,124,3,100,3,103, + 1,172,4,171,2,0,0,0,0,0,0,125,4,9,0,124, + 4,106,12,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,125,5,110,2,100,8,125,5,116,19,0, + 0,0,0,0,0,0,0,124,2,124,5,171,2,0,0,0, + 0,0,0,83,0,116,4,0,0,0,0,0,0,0,0,106, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,2,25,0,0,0,125,7,124,7,128,1,121, + 8,9,0,124,7,106,20,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,125,8,124,8,128,14,116, + 23,0,0,0,0,0,0,0,0,124,0,155,0,100,9,157, + 2,171,1,0,0,0,0,0,0,130,1,124,8,83,0,35, + 0,116,14,0,0,0,0,0,0,0,0,36,0,114,25,125, + 6,116,17,0,0,0,0,0,0,0,0,100,5,124,3,155, + 2,100,6,124,2,155,2,157,4,124,2,172,7,171,2,0, + 0,0,0,0,0,124,6,130,2,100,8,125,6,126,6,119, + 1,119,0,120,3,89,0,119,1,35,0,116,14,0,0,0, + 0,0,0,0,0,36,0,114,16,1,0,116,23,0,0,0, + 0,0,0,0,0,124,0,155,0,100,10,157,2,171,1,0, + 0,0,0,0,0,100,8,130,2,119,0,120,3,89,0,119, + 1,41,11,97,175,2,0,0,82,101,116,117,114,110,32,116, + 104,101,32,115,112,101,99,32,102,111,114,32,116,104,101,32, + 115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,101, + 46,10,10,32,32,32,32,70,105,114,115,116,44,32,115,121, + 115,46,109,111,100,117,108,101,115,32,105,115,32,99,104,101, + 99,107,101,100,32,116,111,32,115,101,101,32,105,102,32,116, + 104,101,32,109,111,100,117,108,101,32,119,97,115,32,97,108, + 114,101,97,100,121,32,105,109,112,111,114,116,101,100,46,32, + 73,102,10,32,32,32,32,115,111,44,32,116,104,101,110,32, + 115,121,115,46,109,111,100,117,108,101,115,91,110,97,109,101, + 93,46,95,95,115,112,101,99,95,95,32,105,115,32,114,101, + 116,117,114,110,101,100,46,32,73,102,32,116,104,97,116,32, + 104,97,112,112,101,110,115,32,116,111,32,98,101,10,32,32, + 32,32,115,101,116,32,116,111,32,78,111,110,101,44,32,116, + 104,101,110,32,86,97,108,117,101,69,114,114,111,114,32,105, + 115,32,114,97,105,115,101,100,46,32,73,102,32,116,104,101, + 32,109,111,100,117,108,101,32,105,115,32,110,111,116,32,105, + 110,10,32,32,32,32,115,121,115,46,109,111,100,117,108,101, + 115,44,32,116,104,101,110,32,115,121,115,46,109,101,116,97, + 95,112,97,116,104,32,105,115,32,115,101,97,114,99,104,101, + 100,32,102,111,114,32,97,32,115,117,105,116,97,98,108,101, + 32,115,112,101,99,32,119,105,116,104,32,116,104,101,10,32, + 32,32,32,118,97,108,117,101,32,111,102,32,39,112,97,116, + 104,39,32,103,105,118,101,110,32,116,111,32,116,104,101,32, + 102,105,110,100,101,114,115,46,32,78,111,110,101,32,105,115, + 32,114,101,116,117,114,110,101,100,32,105,102,32,110,111,32, + 115,112,101,99,32,99,111,117,108,100,10,32,32,32,32,98, + 101,32,102,111,117,110,100,46,10,10,32,32,32,32,73,102, + 32,116,104,101,32,110,97,109,101,32,105,115,32,102,111,114, + 32,115,117,98,109,111,100,117,108,101,32,40,99,111,110,116, + 97,105,110,115,32,97,32,100,111,116,41,44,32,116,104,101, + 32,112,97,114,101,110,116,32,109,111,100,117,108,101,32,105, + 115,10,32,32,32,32,97,117,116,111,109,97,116,105,99,97, + 108,108,121,32,105,109,112,111,114,116,101,100,46,10,10,32, + 32,32,32,84,104,101,32,110,97,109,101,32,97,110,100,32, + 112,97,99,107,97,103,101,32,97,114,103,117,109,101,110,116, + 115,32,119,111,114,107,32,116,104,101,32,115,97,109,101,32, + 97,115,32,105,109,112,111,114,116,108,105,98,46,105,109,112, + 111,114,116,95,109,111,100,117,108,101,40,41,46,10,32,32, + 32,32,73,110,32,111,116,104,101,114,32,119,111,114,100,115, + 44,32,114,101,108,97,116,105,118,101,32,109,111,100,117,108, + 101,32,110,97,109,101,115,32,40,119,105,116,104,32,108,101, + 97,100,105,110,103,32,100,111,116,115,41,32,119,111,114,107, + 46,10,10,32,32,32,32,114,22,0,0,0,114,14,0,0, + 0,218,8,95,95,112,97,116,104,95,95,41,1,218,8,102, + 114,111,109,108,105,115,116,122,32,95,95,112,97,116,104,95, + 95,32,97,116,116,114,105,98,117,116,101,32,110,111,116,32, + 102,111,117,110,100,32,111,110,32,122,22,32,119,104,105,108, + 101,32,116,114,121,105,110,103,32,116,111,32,102,105,110,100, + 32,41,1,114,26,0,0,0,78,114,32,0,0,0,114,33, + 0,0,0,41,12,114,23,0,0,0,114,30,0,0,0,114, + 34,0,0,0,114,35,0,0,0,218,10,114,112,97,114,116, + 105,116,105,111,110,218,10,95,95,105,109,112,111,114,116,95, + 95,114,44,0,0,0,114,38,0,0,0,218,19,77,111,100, + 117,108,101,78,111,116,70,111,117,110,100,69,114,114,111,114, + 114,7,0,0,0,114,36,0,0,0,114,37,0,0,0,41, + 9,114,26,0,0,0,114,27,0,0,0,218,8,102,117,108, + 108,110,97,109,101,218,11,112,97,114,101,110,116,95,110,97, + 109,101,218,6,112,97,114,101,110,116,218,11,112,97,114,101, + 110,116,95,112,97,116,104,218,1,101,114,40,0,0,0,114, + 41,0,0,0,115,9,0,0,0,32,32,32,32,32,32,32, + 32,32,114,19,0,0,0,218,9,102,105,110,100,95,115,112, + 101,99,114,54,0,0,0,71,0,0,0,115,28,1,0,0, + 128,0,240,34,0,47,51,175,111,169,111,184,99,212,46,66, + 140,124,152,68,160,39,212,15,42,200,4,128,72,216,7,15, + 148,115,151,123,145,123,209,7,34,216,22,30,215,22,41,209, + 22,41,168,35,211,22,46,168,113,209,22,49,136,11,217,11, + 22,220,21,31,160,11,176,122,176,108,212,21,67,136,70,240, + 2,5,13,80,1,216,30,36,159,111,153,111,145,11,240,12, + 0,27,31,136,75,220,15,25,152,40,160,75,211,15,48,208, + 8,48,228,17,20,151,27,145,27,152,88,209,17,38,136,6, + 216,11,17,136,62,216,19,23,240,2,7,9,24,216,19,25, + 151,63,145,63,136,68,240,8,0,16,20,136,124,220,22,32, + 160,68,160,54,208,41,58,208,33,59,211,22,60,208,16,60, + 216,19,23,136,75,248,244,37,0,20,34,242,0,3,13,80, + 1,220,22,41,216,22,54,176,123,176,111,240,0,1,70,1, + 44,216,44,52,168,60,240,3,1,21,57,216,63,71,244,5, + 2,23,73,1,224,78,79,240,5,2,17,80,1,251,240,3, + 3,13,80,1,251,244,26,0,16,30,242,0,1,9,70,1, + 220,18,28,160,4,152,118,208,37,57,208,29,58,211,18,59, + 192,20,208,12,69,240,3,1,9,70,1,250,115,36,0,0, + 0,193,23,12,66,39,0,194,9,12,67,12,0,194,39,9, + 67,9,3,194,48,20,67,4,3,195,4,5,67,9,3,195, + 12,25,67,37,3,99,0,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,0,0,0,0,243,50,0,0,0,151, + 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,132, + 0,90,4,100,3,132,0,90,5,100,4,132,0,90,6,101, + 7,100,5,132,0,171,0,0,0,0,0,0,0,90,8,121, + 6,41,7,218,43,95,105,110,99,111,109,112,97,116,105,98, + 108,101,95,101,120,116,101,110,115,105,111,110,95,109,111,100, + 117,108,101,95,114,101,115,116,114,105,99,116,105,111,110,115, + 97,103,5,0,0,65,32,99,111,110,116,101,120,116,32,109, + 97,110,97,103,101,114,32,116,104,97,116,32,99,97,110,32, + 116,101,109,112,111,114,97,114,105,108,121,32,115,107,105,112, + 32,116,104,101,32,99,111,109,112,97,116,105,98,105,108,105, + 116,121,32,99,104,101,99,107,46,10,10,32,32,32,32,78, + 79,84,69,58,32,84,104,105,115,32,102,117,110,99,116,105, + 111,110,32,105,115,32,109,101,97,110,116,32,116,111,32,97, + 99,99,111,109,109,111,100,97,116,101,32,97,110,32,117,110, + 117,115,117,97,108,32,99,97,115,101,59,32,111,110,101,10, + 32,32,32,32,119,104,105,99,104,32,105,115,32,108,105,107, + 101,108,121,32,116,111,32,101,118,101,110,116,117,97,108,108, + 121,32,103,111,32,97,119,97,121,46,32,32,84,104,101,114, + 101,39,115,32,105,115,32,97,32,112,114,101,116,116,121,32, + 103,111,111,100,10,32,32,32,32,99,104,97,110,99,101,32, + 116,104,105,115,32,105,115,32,110,111,116,32,119,104,97,116, + 32,121,111,117,32,119,101,114,101,32,108,111,111,107,105,110, + 103,32,102,111,114,46,10,10,32,32,32,32,87,65,82,78, + 73,78,71,58,32,85,115,105,110,103,32,116,104,105,115,32, + 102,117,110,99,116,105,111,110,32,116,111,32,100,105,115,97, + 98,108,101,32,116,104,101,32,99,104,101,99,107,32,99,97, + 110,32,108,101,97,100,32,116,111,10,32,32,32,32,117,110, + 101,120,112,101,99,116,101,100,32,98,101,104,97,118,105,111, + 114,32,97,110,100,32,101,118,101,110,32,99,114,97,115,104, + 101,115,46,32,32,73,116,32,115,104,111,117,108,100,32,111, + 110,108,121,32,98,101,32,117,115,101,100,32,100,117,114,105, + 110,103,10,32,32,32,32,101,120,116,101,110,115,105,111,110, + 32,109,111,100,117,108,101,32,100,101,118,101,108,111,112,109, + 101,110,116,46,10,10,32,32,32,32,73,102,32,34,100,105, + 115,97,98,108,101,95,99,104,101,99,107,34,32,105,115,32, + 84,114,117,101,32,116,104,101,110,32,116,104,101,32,99,111, + 109,112,97,116,105,98,105,108,105,116,121,32,99,104,101,99, + 107,32,119,105,108,108,32,110,111,116,10,32,32,32,32,104, + 97,112,112,101,110,32,119,104,105,108,101,32,116,104,101,32, + 99,111,110,116,101,120,116,32,109,97,110,97,103,101,114,32, + 105,115,32,97,99,116,105,118,101,46,32,32,79,116,104,101, + 114,119,105,115,101,32,116,104,101,32,99,104,101,99,107,10, + 32,32,32,32,42,119,105,108,108,42,32,104,97,112,112,101, + 110,46,10,10,32,32,32,32,78,111,114,109,97,108,108,121, + 44,32,101,120,116,101,110,115,105,111,110,115,32,116,104,97, + 116,32,100,111,32,110,111,116,32,115,117,112,112,111,114,116, + 32,109,117,108,116,105,112,108,101,32,105,110,116,101,114,112, + 114,101,116,101,114,115,10,32,32,32,32,109,97,121,32,110, + 111,116,32,98,101,32,105,109,112,111,114,116,101,100,32,105, + 110,32,97,32,115,117,98,105,110,116,101,114,112,114,101,116, + 101,114,46,32,32,84,104,97,116,32,105,109,112,108,105,101, + 115,32,109,111,100,117,108,101,115,10,32,32,32,32,116,104, + 97,116,32,100,111,32,110,111,116,32,105,109,112,108,101,109, + 101,110,116,32,109,117,108,116,105,45,112,104,97,115,101,32, + 105,110,105,116,32,111,114,32,116,104,97,116,32,101,120,112, + 108,105,99,105,116,108,121,32,111,102,32,111,117,116,46,10, + 10,32,32,32,32,76,105,107,101,119,105,115,101,32,102,111, + 114,32,109,111,100,117,108,101,115,32,105,109,112,111,114,116, + 32,105,110,32,97,32,115,117,98,105,110,116,101,114,112,101, + 116,101,114,32,119,105,116,104,32,105,116,115,32,111,119,110, + 32,71,73,76,10,32,32,32,32,119,104,101,110,32,116,104, + 101,32,101,120,116,101,110,115,105,111,110,32,100,111,101,115, + 32,110,111,116,32,115,117,112,112,111,114,116,32,97,32,112, + 101,114,45,105,110,116,101,114,112,114,101,116,101,114,32,71, + 73,76,46,32,32,84,104,105,115,10,32,32,32,32,105,109, + 112,108,105,101,115,32,116,104,101,32,109,111,100,117,108,101, + 32,100,111,101,115,32,110,111,116,32,104,97,118,101,32,97, + 32,80,121,95,109,111,100,95,109,117,108,116,105,112,108,101, + 95,105,110,116,101,114,112,114,101,116,101,114,115,32,115,108, + 111,116,10,32,32,32,32,115,101,116,32,116,111,32,80,121, + 95,77,79,68,95,80,69,82,95,73,78,84,69,82,80,82, + 69,84,69,82,95,71,73,76,95,83,85,80,80,79,82,84, + 69,68,46,10,10,32,32,32,32,73,110,32,98,111,116,104, + 32,99,97,115,101,115,44,32,116,104,105,115,32,99,111,110, + 116,101,120,116,32,109,97,110,97,103,101,114,32,109,97,121, + 32,98,101,32,117,115,101,100,32,116,111,32,116,101,109,112, + 111,114,97,114,105,108,121,10,32,32,32,32,100,105,115,97, + 98,108,101,32,116,104,101,32,99,104,101,99,107,32,102,111, + 114,32,99,111,109,112,97,116,105,98,108,101,32,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,115,46,10, + 10,32,32,32,32,89,111,117,32,99,97,110,32,103,101,116, + 32,116,104,101,32,115,97,109,101,32,101,102,102,101,99,116, + 32,97,115,32,116,104,105,115,32,102,117,110,99,116,105,111, + 110,32,98,121,32,105,109,112,108,101,109,101,110,116,105,110, + 103,32,116,104,101,10,32,32,32,32,98,97,115,105,99,32, + 105,110,116,101,114,102,97,99,101,32,111,102,32,109,117,108, + 116,105,45,112,104,97,115,101,32,105,110,105,116,32,40,80, + 69,80,32,52,56,57,41,32,97,110,100,32,108,121,105,110, + 103,32,97,98,111,117,116,10,32,32,32,32,115,117,112,112, + 111,114,116,32,102,111,114,32,109,117,108,116,105,112,108,101, + 32,105,110,116,101,114,112,114,101,116,101,114,115,32,40,111, + 114,32,112,101,114,45,105,110,116,101,114,112,114,101,116,101, + 114,32,71,73,76,41,46,10,32,32,32,32,99,1,0,0, + 0,0,0,0,0,1,0,0,0,3,0,0,0,3,0,0, + 0,243,36,0,0,0,151,0,116,1,0,0,0,0,0,0, + 0,0,124,1,171,1,0,0,0,0,0,0,124,0,95,1, + 0,0,0,0,0,0,0,0,121,0,169,1,78,41,2,218, + 4,98,111,111,108,218,13,100,105,115,97,98,108,101,95,99, + 104,101,99,107,41,2,218,4,115,101,108,102,114,60,0,0, + 0,115,2,0,0,0,32,32,114,19,0,0,0,218,8,95, + 95,105,110,105,116,95,95,122,52,95,105,110,99,111,109,112, + 97,116,105,98,108,101,95,101,120,116,101,110,115,105,111,110, + 95,109,111,100,117,108,101,95,114,101,115,116,114,105,99,116, + 105,111,110,115,46,95,95,105,110,105,116,95,95,152,0,0, + 0,115,15,0,0,0,128,0,220,29,33,160,45,211,29,48, + 136,4,213,8,26,114,20,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 78,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, + 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,0,106,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,171,1,0,0,0,0, + 0,0,124,0,95,3,0,0,0,0,0,0,0,0,124,0, + 83,0,114,58,0,0,0,41,4,114,16,0,0,0,218,39, + 95,111,118,101,114,114,105,100,101,95,109,117,108,116,105,95, + 105,110,116,101,114,112,95,101,120,116,101,110,115,105,111,110, + 115,95,99,104,101,99,107,218,8,111,118,101,114,114,105,100, + 101,218,3,111,108,100,169,1,114,61,0,0,0,115,1,0, + 0,0,32,114,19,0,0,0,218,9,95,95,101,110,116,101, + 114,95,95,122,53,95,105,110,99,111,109,112,97,116,105,98, + 108,101,95,101,120,116,101,110,115,105,111,110,95,109,111,100, + 117,108,101,95,114,101,115,116,114,105,99,116,105,111,110,115, + 46,95,95,101,110,116,101,114,95,95,155,0,0,0,115,29, + 0,0,0,128,0,220,19,23,215,19,63,209,19,63,192,4, + 199,13,193,13,211,19,78,136,4,140,8,216,15,19,136,11, + 114,20,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,7,0,0,0,243,74,0,0,0,151, + 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,125,2,124,0,96,0,116,3,0, + 0,0,0,0,0,0,0,106,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,2,171,1,0, + 0,0,0,0,0,1,0,121,0,114,58,0,0,0,41,3, + 114,66,0,0,0,114,16,0,0,0,114,64,0,0,0,41, + 3,114,61,0,0,0,218,4,97,114,103,115,114,66,0,0, + 0,115,3,0,0,0,32,32,32,114,19,0,0,0,218,8, + 95,95,101,120,105,116,95,95,122,52,95,105,110,99,111,109, + 112,97,116,105,98,108,101,95,101,120,116,101,110,115,105,111, + 110,95,109,111,100,117,108,101,95,114,101,115,116,114,105,99, + 116,105,111,110,115,46,95,95,101,120,105,116,95,95,159,0, + 0,0,115,30,0,0,0,128,0,216,14,18,143,104,137,104, + 136,3,216,12,16,136,72,220,8,12,215,8,52,209,8,52, + 176,83,213,8,57,114,20,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, + 34,0,0,0,151,0,124,0,106,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,114,2,100,1, + 83,0,100,2,83,0,41,3,78,233,255,255,255,255,114,2, + 0,0,0,41,1,114,60,0,0,0,114,67,0,0,0,115, + 1,0,0,0,32,114,19,0,0,0,114,65,0,0,0,122, 52,95,105,110,99,111,109,112,97,116,105,98,108,101,95,101, 120,116,101,110,115,105,111,110,95,109,111,100,117,108,101,95, - 114,101,115,116,114,105,99,116,105,111,110,115,46,95,95,105, - 110,105,116,95,95,151,0,0,0,115,15,0,0,0,128,0, - 220,29,33,160,45,211,29,48,136,4,213,8,26,114,20,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,78,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,106,4, + 114,101,115,116,114,105,99,116,105,111,110,115,46,111,118,101, + 114,114,105,100,101,164,0,0,0,115,21,0,0,0,128,0, + 224,21,25,215,21,39,210,21,39,136,114,208,8,46,168,81, + 208,8,46,114,20,0,0,0,78,41,9,218,8,95,95,110, + 97,109,101,95,95,218,10,95,95,109,111,100,117,108,101,95, + 95,218,12,95,95,113,117,97,108,110,97,109,101,95,95,218, + 7,95,95,100,111,99,95,95,114,62,0,0,0,114,68,0, + 0,0,114,71,0,0,0,218,8,112,114,111,112,101,114,116, + 121,114,65,0,0,0,169,0,114,20,0,0,0,114,19,0, + 0,0,114,56,0,0,0,114,56,0,0,0,120,0,0,0, + 115,42,0,0,0,132,0,241,2,29,5,8,242,62,1,5, + 49,242,6,2,5,20,242,8,3,5,58,240,10,0,6,14, + 241,2,1,5,47,243,3,0,6,14,241,2,1,5,47,114, + 20,0,0,0,114,56,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,0,0,0,0,243,28, + 0,0,0,151,0,101,0,90,1,100,0,90,2,100,1,90, + 3,100,2,132,0,90,4,100,3,132,0,90,5,121,4,41, + 5,218,11,95,76,97,122,121,77,111,100,117,108,101,122,75, + 65,32,115,117,98,99,108,97,115,115,32,111,102,32,116,104, + 101,32,109,111,100,117,108,101,32,116,121,112,101,32,119,104, + 105,99,104,32,116,114,105,103,103,101,114,115,32,108,111,97, + 100,105,110,103,32,117,112,111,110,32,97,116,116,114,105,98, + 117,116,101,32,97,99,99,101,115,115,46,99,2,0,0,0, + 0,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0, + 243,18,3,0,0,151,0,116,0,0,0,0,0,0,0,0, + 0,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,0,100,1,171,2,0,0,0,0,0, + 0,125,2,124,2,106,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,125,3,124,3,100,2,25, + 0,0,0,53,0,1,0,116,0,0,0,0,0,0,0,0, + 0,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,0,100,3,171,2,0,0,0,0,0, + 0,116,6,0,0,0,0,0,0,0,0,117,0,144,1,114, + 35,124,3,100,4,25,0,0,0,114,31,116,0,0,0,0, + 0,0,0,0,0,106,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,0,124,1,171,2,0, + 0,0,0,0,0,99,2,100,5,100,5,100,5,171,2,0, + 0,0,0,0,0,1,0,83,0,100,6,124,3,100,4,60, + 0,0,0,116,0,0,0,0,0,0,0,0,0,106,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,124,0,95,3,0,0, - 0,0,0,0,0,0,124,0,83,0,114,58,0,0,0,41, - 4,114,16,0,0,0,218,39,95,111,118,101,114,114,105,100, - 101,95,109,117,108,116,105,95,105,110,116,101,114,112,95,101, - 120,116,101,110,115,105,111,110,115,95,99,104,101,99,107,218, - 8,111,118,101,114,114,105,100,101,218,3,111,108,100,169,1, - 114,61,0,0,0,115,1,0,0,0,32,114,19,0,0,0, - 218,9,95,95,101,110,116,101,114,95,95,122,53,95,105,110, - 99,111,109,112,97,116,105,98,108,101,95,101,120,116,101,110, - 115,105,111,110,95,109,111,100,117,108,101,95,114,101,115,116, - 114,105,99,116,105,111,110,115,46,95,95,101,110,116,101,114, - 95,95,154,0,0,0,115,29,0,0,0,128,0,220,19,23, - 215,19,63,209,19,63,192,4,199,13,193,13,211,19,78,136, - 4,140,8,216,15,19,136,11,114,20,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,7,0, - 0,0,243,74,0,0,0,151,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125, - 2,124,0,96,0,116,3,0,0,0,0,0,0,0,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,1,0,121, - 0,114,58,0,0,0,41,3,114,66,0,0,0,114,16,0, - 0,0,114,64,0,0,0,41,3,114,61,0,0,0,218,4, - 97,114,103,115,114,66,0,0,0,115,3,0,0,0,32,32, - 32,114,19,0,0,0,218,8,95,95,101,120,105,116,95,95, - 122,52,95,105,110,99,111,109,112,97,116,105,98,108,101,95, - 101,120,116,101,110,115,105,111,110,95,109,111,100,117,108,101, - 95,114,101,115,116,114,105,99,116,105,111,110,115,46,95,95, - 101,120,105,116,95,95,158,0,0,0,115,30,0,0,0,128, - 0,216,14,18,143,104,137,104,136,3,216,12,16,136,72,220, - 8,12,215,8,52,209,8,52,176,83,213,8,57,114,20,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,3,0,0,0,243,34,0,0,0,151,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,114,2,100,1,83,0,100,2,83,0,41,3, - 78,233,255,255,255,255,114,2,0,0,0,41,1,114,60,0, - 0,0,114,67,0,0,0,115,1,0,0,0,32,114,19,0, - 0,0,114,65,0,0,0,122,52,95,105,110,99,111,109,112, - 97,116,105,98,108,101,95,101,120,116,101,110,115,105,111,110, - 95,109,111,100,117,108,101,95,114,101,115,116,114,105,99,116, - 105,111,110,115,46,111,118,101,114,114,105,100,101,163,0,0, - 0,115,21,0,0,0,128,0,224,21,25,215,21,39,210,21, - 39,136,114,208,8,46,168,81,208,8,46,114,20,0,0,0, - 78,41,9,218,8,95,95,110,97,109,101,95,95,218,10,95, - 95,109,111,100,117,108,101,95,95,218,12,95,95,113,117,97, - 108,110,97,109,101,95,95,218,7,95,95,100,111,99,95,95, - 114,62,0,0,0,114,68,0,0,0,114,71,0,0,0,218, - 8,112,114,111,112,101,114,116,121,114,65,0,0,0,169,0, - 114,20,0,0,0,114,19,0,0,0,114,56,0,0,0,114, - 56,0,0,0,119,0,0,0,115,42,0,0,0,132,0,241, - 2,29,5,8,242,62,1,5,49,242,6,2,5,20,242,8, - 3,5,58,240,10,0,6,14,241,2,1,5,47,243,3,0, - 6,14,241,2,1,5,47,114,20,0,0,0,114,56,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,0,0,0,0,243,28,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,90,3,100,2,132,0,90,4,100, - 3,132,0,90,5,121,4,41,5,218,11,95,76,97,122,121, - 77,111,100,117,108,101,122,75,65,32,115,117,98,99,108,97, - 115,115,32,111,102,32,116,104,101,32,109,111,100,117,108,101, - 32,116,121,112,101,32,119,104,105,99,104,32,116,114,105,103, - 103,101,114,115,32,108,111,97,100,105,110,103,32,117,112,111, - 110,32,97,116,116,114,105,98,117,116,101,32,97,99,99,101, - 115,115,46,99,2,0,0,0,0,0,0,0,0,0,0,0, - 6,0,0,0,3,0,0,0,243,90,2,0,0,151,0,116, - 0,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,95, - 2,0,0,0,0,0,0,0,0,124,0,106,6,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,2,124,0,106,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,10,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 1,25,0,0,0,125,3,124,0,106,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,4,105, - 0,125,5,124,4,106,15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,68,0,93,50,0,0,92,2,0,0,125,6,125,7,124, - 6,124,3,118,1,114,6,124,7,124,5,124,6,60,0,0, - 0,140,16,116,17,0,0,0,0,0,0,0,0,124,4,124, - 6,25,0,0,0,171,1,0,0,0,0,0,0,116,17,0, - 0,0,0,0,0,0,0,124,3,124,6,25,0,0,0,171, - 1,0,0,0,0,0,0,107,55,0,0,115,1,140,46,124, - 7,124,5,124,6,60,0,0,0,140,52,4,0,124,0,106, - 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,18,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,21,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,1,0,124,2,116,22,0,0,0,0,0, - 0,0,0,106,24,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,118,0,114,55,116,17,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,116, - 17,0,0,0,0,0,0,0,0,116,22,0,0,0,0,0, - 0,0,0,106,24,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,2,25,0,0,0,171,1,0, - 0,0,0,0,0,107,55,0,0,114,15,116,27,0,0,0, - 0,0,0,0,0,100,2,124,2,155,2,100,3,157,3,171, - 1,0,0,0,0,0,0,130,1,124,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,5,171,1,0,0,0,0,0,0,1,0,116, - 31,0,0,0,0,0,0,0,0,124,0,124,1,171,2,0, - 0,0,0,0,0,83,0,41,4,122,56,84,114,105,103,103, + 0,124,0,100,7,171,2,0,0,0,0,0,0,125,4,124, + 2,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,125,5,124,3,100,7,25,0,0,0,125, + 6,124,4,125,7,105,0,125,8,124,7,106,11,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, + 0,0,0,0,0,0,0,68,0,93,50,0,0,92,2,0, + 0,125,9,125,10,124,9,124,6,118,1,114,6,124,10,124, + 8,124,9,60,0,0,0,140,16,116,13,0,0,0,0,0, + 0,0,0,124,7,124,9,25,0,0,0,171,1,0,0,0, + 0,0,0,116,13,0,0,0,0,0,0,0,0,124,6,124, + 9,25,0,0,0,171,1,0,0,0,0,0,0,107,55,0, + 0,115,1,140,46,124,10,124,8,124,9,60,0,0,0,140, + 52,4,0,124,2,106,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,106,17,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, + 1,0,0,0,0,0,0,1,0,124,5,116,18,0,0,0, + 0,0,0,0,0,106,20,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,118,0,114,55,116,13,0, + 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, + 0,116,13,0,0,0,0,0,0,0,0,116,18,0,0,0, + 0,0,0,0,0,106,20,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,5,25,0,0,0,171, + 1,0,0,0,0,0,0,107,55,0,0,114,15,116,23,0, + 0,0,0,0,0,0,0,100,8,124,5,155,2,100,9,157, + 3,171,1,0,0,0,0,0,0,130,1,124,4,106,25,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,8,171,1,0,0,0,0,0,0,1,0,116,26,0, + 0,0,0,0,0,0,0,106,28,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,0,95,15,0, + 0,0,0,0,0,0,0,100,5,100,5,100,5,171,2,0, + 0,0,0,0,0,1,0,116,33,0,0,0,0,0,0,0, + 0,124,0,124,1,171,2,0,0,0,0,0,0,83,0,35, + 0,49,0,115,1,119,2,1,0,89,0,1,0,1,0,140, + 21,120,3,89,0,119,1,41,10,122,56,84,114,105,103,103, 101,114,32,116,104,101,32,108,111,97,100,32,111,102,32,116, 104,101,32,109,111,100,117,108,101,32,97,110,100,32,114,101, 116,117,114,110,32,116,104,101,32,97,116,116,114,105,98,117, - 116,101,46,218,8,95,95,100,105,99,116,95,95,122,18,109, - 111,100,117,108,101,32,111,98,106,101,99,116,32,102,111,114, - 32,122,46,32,115,117,98,115,116,105,116,117,116,101,100,32, - 105,110,32,115,121,115,46,109,111,100,117,108,101,115,32,100, - 117,114,105,110,103,32,97,32,108,97,122,121,32,108,111,97, - 100,41,16,218,5,116,121,112,101,115,218,10,77,111,100,117, - 108,101,84,121,112,101,218,9,95,95,99,108,97,115,115,95, - 95,114,36,0,0,0,114,26,0,0,0,218,12,108,111,97, - 100,101,114,95,115,116,97,116,101,114,83,0,0,0,218,5, - 105,116,101,109,115,218,2,105,100,218,6,108,111,97,100,101, - 114,218,11,101,120,101,99,95,109,111,100,117,108,101,114,34, - 0,0,0,114,35,0,0,0,114,37,0,0,0,218,6,117, - 112,100,97,116,101,218,7,103,101,116,97,116,116,114,41,8, - 114,61,0,0,0,218,4,97,116,116,114,218,13,111,114,105, - 103,105,110,97,108,95,110,97,109,101,218,10,97,116,116,114, - 115,95,116,104,101,110,218,9,97,116,116,114,115,95,110,111, - 119,218,13,97,116,116,114,115,95,117,112,100,97,116,101,100, - 218,3,107,101,121,218,5,118,97,108,117,101,115,8,0,0, - 0,32,32,32,32,32,32,32,32,114,19,0,0,0,218,16, - 95,95,103,101,116,97,116,116,114,105,98,117,116,101,95,95, - 122,28,95,76,97,122,121,77,111,100,117,108,101,46,95,95, - 103,101,116,97,116,116,114,105,98,117,116,101,95,95,172,0, - 0,0,115,27,1,0,0,128,0,244,10,0,26,31,215,25, - 41,209,25,41,136,4,140,14,240,6,0,25,29,159,13,153, - 13,215,24,42,209,24,42,136,13,240,6,0,22,26,151,93, - 145,93,215,21,47,209,21,47,176,10,209,21,59,136,10,216, - 20,24,151,77,145,77,136,9,216,24,26,136,13,216,26,35, - 159,47,153,47,211,26,43,242,0,6,9,43,137,74,136,67, - 144,21,240,6,0,16,19,152,42,209,15,36,216,37,42,144, - 13,152,99,210,16,34,220,17,19,144,73,152,99,145,78,211, - 17,35,164,114,168,42,176,83,169,47,211,39,58,211,17,58, - 216,37,42,144,13,152,99,210,16,34,240,13,6,9,43,240, - 14,0,9,13,143,13,137,13,215,8,28,209,8,28,215,8, - 40,209,8,40,168,20,212,8,46,240,6,0,12,25,156,67, - 159,75,153,75,209,11,39,220,15,17,144,36,139,120,156,50, - 156,99,159,107,153,107,168,45,209,30,56,211,27,57,210,15, - 57,220,22,32,208,35,53,176,109,208,53,70,240,0,2,71, - 1,41,240,0,2,34,41,243,0,2,23,42,240,0,2,17, - 42,240,10,0,9,13,143,13,137,13,215,8,28,209,8,28, - 152,93,212,8,43,220,15,22,144,116,152,84,211,15,34,208, - 8,34,114,20,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,62,0,0, - 0,151,0,124,0,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,1,0,116,3,0,0,0,0,0,0,0,0,124, - 0,124,1,171,2,0,0,0,0,0,0,1,0,121,1,41, - 2,122,47,84,114,105,103,103,101,114,32,116,104,101,32,108, - 111,97,100,32,97,110,100,32,116,104,101,110,32,112,101,114, - 102,111,114,109,32,116,104,101,32,100,101,108,101,116,105,111, - 110,46,78,41,2,114,101,0,0,0,218,7,100,101,108,97, - 116,116,114,41,2,114,61,0,0,0,114,94,0,0,0,115, - 2,0,0,0,32,32,114,19,0,0,0,218,11,95,95,100, - 101,108,97,116,116,114,95,95,122,23,95,76,97,122,121,77, - 111,100,117,108,101,46,95,95,100,101,108,97,116,116,114,95, - 95,206,0,0,0,115,28,0,0,0,128,0,240,8,0,9, - 13,215,8,29,209,8,29,152,100,212,8,35,220,8,15,144, - 4,144,100,213,8,27,114,20,0,0,0,78,41,6,114,74, - 0,0,0,114,75,0,0,0,114,76,0,0,0,114,77,0, - 0,0,114,101,0,0,0,114,104,0,0,0,114,79,0,0, - 0,114,20,0,0,0,114,19,0,0,0,114,81,0,0,0, - 114,81,0,0,0,168,0,0,0,115,16,0,0,0,132,0, - 225,4,85,242,4,32,5,35,243,68,1,5,5,28,114,20, - 0,0,0,114,81,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,0,0,0,0,243,66,0, - 0,0,151,0,101,0,90,1,100,0,90,2,100,1,90,3, - 101,4,100,2,132,0,171,0,0,0,0,0,0,0,90,5, - 101,6,100,3,132,0,171,0,0,0,0,0,0,0,90,7, - 100,4,132,0,90,8,100,5,132,0,90,9,100,6,132,0, - 90,10,121,7,41,8,218,10,76,97,122,121,76,111,97,100, - 101,114,122,75,65,32,108,111,97,100,101,114,32,116,104,97, - 116,32,99,114,101,97,116,101,115,32,97,32,109,111,100,117, - 108,101,32,119,104,105,99,104,32,100,101,102,101,114,115,32, - 108,111,97,100,105,110,103,32,117,110,116,105,108,32,97,116, - 116,114,105,98,117,116,101,32,97,99,99,101,115,115,46,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,50,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,100,1,171,2,0,0,0,0,0, - 0,115,11,116,3,0,0,0,0,0,0,0,0,100,2,171, - 1,0,0,0,0,0,0,130,1,121,0,41,3,78,114,91, - 0,0,0,122,32,108,111,97,100,101,114,32,109,117,115,116, - 32,100,101,102,105,110,101,32,101,120,101,99,95,109,111,100, - 117,108,101,40,41,41,2,218,7,104,97,115,97,116,116,114, - 218,9,84,121,112,101,69,114,114,111,114,41,1,114,90,0, - 0,0,115,1,0,0,0,32,114,19,0,0,0,218,20,95, - 95,99,104,101,99,107,95,101,97,103,101,114,95,108,111,97, - 100,101,114,122,31,76,97,122,121,76,111,97,100,101,114,46, - 95,95,99,104,101,99,107,95,101,97,103,101,114,95,108,111, - 97,100,101,114,218,0,0,0,115,29,0,0,0,128,0,228, - 15,22,144,118,152,125,212,15,45,220,18,27,208,28,62,211, - 18,63,208,12,63,240,3,0,16,46,114,20,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,52,0,0,0,135,0,135,1,151,0,137, - 0,106,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,137,1,171,1,0,0,0,0,0,0,1, - 0,136,0,136,1,102,2,100,1,132,8,83,0,41,2,122, - 62,67,111,110,115,116,114,117,99,116,32,97,32,99,97,108, - 108,97,98,108,101,32,119,104,105,99,104,32,114,101,116,117, - 114,110,115,32,116,104,101,32,101,97,103,101,114,32,108,111, - 97,100,101,114,32,109,97,100,101,32,108,97,122,121,46,99, - 0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, - 31,0,0,0,243,32,0,0,0,149,2,151,0,2,0,137, - 2,2,0,137,3,124,0,105,0,124,1,164,1,142,1,171, - 1,0,0,0,0,0,0,83,0,114,58,0,0,0,114,79, - 0,0,0,41,4,114,70,0,0,0,218,6,107,119,97,114, - 103,115,218,3,99,108,115,114,90,0,0,0,115,4,0,0, - 0,32,32,128,128,114,19,0,0,0,250,8,60,108,97,109, - 98,100,97,62,122,36,76,97,122,121,76,111,97,100,101,114, - 46,102,97,99,116,111,114,121,46,60,108,111,99,97,108,115, - 62,46,60,108,97,109,98,100,97,62,227,0,0,0,115,22, - 0,0,0,248,128,0,161,115,169,54,176,52,208,43,66,184, - 54,209,43,66,211,39,67,128,0,114,20,0,0,0,41,1, - 218,31,95,76,97,122,121,76,111,97,100,101,114,95,95,99, - 104,101,99,107,95,101,97,103,101,114,95,108,111,97,100,101, - 114,41,2,114,114,0,0,0,114,90,0,0,0,115,2,0, - 0,0,96,96,114,19,0,0,0,218,7,102,97,99,116,111, - 114,121,122,18,76,97,122,121,76,111,97,100,101,114,46,102, - 97,99,116,111,114,121,223,0,0,0,115,25,0,0,0,249, - 128,0,240,6,0,9,12,215,8,32,209,8,32,160,22,212, - 8,40,220,15,67,208,8,67,114,20,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,52,0,0,0,151,0,124,0,106,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,171,1,0,0,0,0,0,0,1,0,124,1,124,0,95, - 1,0,0,0,0,0,0,0,0,121,0,114,58,0,0,0, - 41,2,114,116,0,0,0,114,90,0,0,0,41,2,114,61, - 0,0,0,114,90,0,0,0,115,2,0,0,0,32,32,114, - 19,0,0,0,114,62,0,0,0,122,19,76,97,122,121,76, - 111,97,100,101,114,46,95,95,105,110,105,116,95,95,229,0, - 0,0,115,23,0,0,0,128,0,216,8,12,215,8,33,209, - 8,33,160,38,212,8,41,216,22,28,136,4,141,11,114,20, + 116,101,46,114,36,0,0,0,218,4,108,111,99,107,218,9, + 95,95,99,108,97,115,115,95,95,218,10,105,115,95,108,111, + 97,100,105,110,103,78,84,218,8,95,95,100,105,99,116,95, + 95,122,18,109,111,100,117,108,101,32,111,98,106,101,99,116, + 32,102,111,114,32,122,46,32,115,117,98,115,116,105,116,117, + 116,101,100,32,105,110,32,115,121,115,46,109,111,100,117,108, + 101,115,32,100,117,114,105,110,103,32,97,32,108,97,122,121, + 32,108,111,97,100,41,17,218,6,111,98,106,101,99,116,218, + 16,95,95,103,101,116,97,116,116,114,105,98,117,116,101,95, + 95,218,12,108,111,97,100,101,114,95,115,116,97,116,101,114, + 81,0,0,0,114,26,0,0,0,218,5,105,116,101,109,115, + 218,2,105,100,218,6,108,111,97,100,101,114,218,11,101,120, + 101,99,95,109,111,100,117,108,101,114,34,0,0,0,114,35, + 0,0,0,114,37,0,0,0,218,6,117,112,100,97,116,101, + 218,5,116,121,112,101,115,218,10,77,111,100,117,108,101,84, + 121,112,101,114,84,0,0,0,218,7,103,101,116,97,116,116, + 114,41,11,114,61,0,0,0,218,4,97,116,116,114,114,36, + 0,0,0,114,89,0,0,0,114,86,0,0,0,218,13,111, + 114,105,103,105,110,97,108,95,110,97,109,101,218,10,97,116, + 116,114,115,95,116,104,101,110,218,9,97,116,116,114,115,95, + 110,111,119,218,13,97,116,116,114,115,95,117,112,100,97,116, + 101,100,218,3,107,101,121,218,5,118,97,108,117,101,115,11, + 0,0,0,32,32,32,32,32,32,32,32,32,32,32,114,19, + 0,0,0,114,88,0,0,0,122,28,95,76,97,122,121,77, + 111,100,117,108,101,46,95,95,103,101,116,97,116,116,114,105, + 98,117,116,101,95,95,173,0,0,0,115,145,1,0,0,128, + 0,228,19,25,215,19,42,209,19,42,168,52,176,26,211,19, + 60,136,8,216,23,31,215,23,44,209,23,44,136,12,216,13, + 25,152,38,209,13,33,241,0,43,9,50,244,6,0,16,22, + 215,15,38,209,15,38,160,116,168,91,211,15,57,188,91,210, + 15,72,240,10,0,20,32,160,12,210,19,45,220,27,33,215, + 27,50,209,27,50,176,52,184,20,211,27,62,247,19,43,9, + 50,241,0,43,9,50,240,20,0,46,50,144,12,152,92,209, + 16,42,228,27,33,215,27,50,209,27,50,176,52,184,26,211, + 27,68,144,8,240,12,0,33,41,167,13,161,13,144,13,240, + 6,0,30,42,168,42,209,29,53,144,10,216,28,36,144,9, + 216,32,34,144,13,216,34,43,167,47,161,47,211,34,51,242, + 0,6,17,51,145,74,144,67,152,21,240,6,0,24,27,160, + 42,209,23,44,216,45,50,152,13,160,99,210,24,42,220,25, + 27,152,73,160,99,153,78,211,25,43,172,114,176,42,184,83, + 177,47,211,47,66,211,25,66,216,45,50,152,13,160,99,210, + 24,42,240,13,6,17,51,240,14,0,17,25,151,15,145,15, + 215,16,43,209,16,43,168,68,212,16,49,240,6,0,20,33, + 164,67,167,75,161,75,209,19,47,220,23,25,152,36,147,120, + 164,50,164,99,167,107,161,107,176,45,209,38,64,211,35,65, + 210,23,65,220,30,40,208,43,61,184,109,208,61,78,240,0, + 2,79,1,49,240,0,2,42,49,243,0,2,31,50,240,0, + 2,25,50,240,10,0,17,25,151,15,145,15,160,13,212,16, + 46,228,33,38,215,33,49,209,33,49,144,4,148,14,247,87, + 1,43,9,50,244,90,1,0,16,23,144,116,152,84,211,15, + 34,208,8,34,247,91,1,43,9,50,240,0,43,9,50,250, + 115,25,0,0,0,168,56,69,61,3,193,42,65,45,69,61, + 3,195,24,66,17,69,61,3,197,61,5,70,6,7,99,2, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,62,0,0,0,151,0,124,0,106,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 124,1,171,1,0,0,0,0,0,0,1,0,116,3,0,0, + 0,0,0,0,0,0,124,0,124,1,171,2,0,0,0,0, + 0,0,1,0,121,1,41,2,122,47,84,114,105,103,103,101, + 114,32,116,104,101,32,108,111,97,100,32,97,110,100,32,116, + 104,101,110,32,112,101,114,102,111,114,109,32,116,104,101,32, + 100,101,108,101,116,105,111,110,46,78,41,2,114,88,0,0, + 0,218,7,100,101,108,97,116,116,114,41,2,114,61,0,0, + 0,114,98,0,0,0,115,2,0,0,0,32,32,114,19,0, + 0,0,218,11,95,95,100,101,108,97,116,116,114,95,95,122, + 23,95,76,97,122,121,77,111,100,117,108,101,46,95,95,100, + 101,108,97,116,116,114,95,95,224,0,0,0,115,28,0,0, + 0,128,0,240,8,0,9,13,215,8,29,209,8,29,152,100, + 212,8,35,220,8,15,144,4,144,100,213,8,27,114,20,0, + 0,0,78,41,6,114,74,0,0,0,114,75,0,0,0,114, + 76,0,0,0,114,77,0,0,0,114,88,0,0,0,114,107, + 0,0,0,114,79,0,0,0,114,20,0,0,0,114,19,0, + 0,0,114,81,0,0,0,114,81,0,0,0,169,0,0,0, + 115,16,0,0,0,132,0,225,4,85,242,4,49,5,35,243, + 102,1,5,5,28,114,20,0,0,0,114,81,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 0,0,0,0,243,66,0,0,0,151,0,101,0,90,1,100, + 0,90,2,100,1,90,3,101,4,100,2,132,0,171,0,0, + 0,0,0,0,0,90,5,101,6,100,3,132,0,171,0,0, + 0,0,0,0,0,90,7,100,4,132,0,90,8,100,5,132, + 0,90,9,100,6,132,0,90,10,121,7,41,8,218,10,76, + 97,122,121,76,111,97,100,101,114,122,75,65,32,108,111,97, + 100,101,114,32,116,104,97,116,32,99,114,101,97,116,101,115, + 32,97,32,109,111,100,117,108,101,32,119,104,105,99,104,32, + 100,101,102,101,114,115,32,108,111,97,100,105,110,103,32,117, + 110,116,105,108,32,97,116,116,114,105,98,117,116,101,32,97, + 99,99,101,115,115,46,99,1,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,50,0,0,0, + 151,0,116,1,0,0,0,0,0,0,0,0,124,0,100,1, + 171,2,0,0,0,0,0,0,115,11,116,3,0,0,0,0, + 0,0,0,0,100,2,171,1,0,0,0,0,0,0,130,1, + 121,0,41,3,78,114,93,0,0,0,122,32,108,111,97,100, + 101,114,32,109,117,115,116,32,100,101,102,105,110,101,32,101, + 120,101,99,95,109,111,100,117,108,101,40,41,41,2,218,7, + 104,97,115,97,116,116,114,218,9,84,121,112,101,69,114,114, + 111,114,41,1,114,92,0,0,0,115,1,0,0,0,32,114, + 19,0,0,0,218,20,95,95,99,104,101,99,107,95,101,97, + 103,101,114,95,108,111,97,100,101,114,122,31,76,97,122,121, + 76,111,97,100,101,114,46,95,95,99,104,101,99,107,95,101, + 97,103,101,114,95,108,111,97,100,101,114,236,0,0,0,115, + 29,0,0,0,128,0,228,15,22,144,118,152,125,212,15,45, + 220,18,27,208,28,62,211,18,63,208,12,63,240,3,0,16, + 46,114,20,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,3,0,0,0,243,52,0,0,0, + 135,0,135,1,151,0,137,0,106,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,137,1,171,1, + 0,0,0,0,0,0,1,0,136,0,136,1,102,2,100,1, + 132,8,83,0,41,2,122,62,67,111,110,115,116,114,117,99, + 116,32,97,32,99,97,108,108,97,98,108,101,32,119,104,105, + 99,104,32,114,101,116,117,114,110,115,32,116,104,101,32,101, + 97,103,101,114,32,108,111,97,100,101,114,32,109,97,100,101, + 32,108,97,122,121,46,99,0,0,0,0,0,0,0,0,0, + 0,0,0,7,0,0,0,31,0,0,0,243,32,0,0,0, + 149,2,151,0,2,0,137,2,2,0,137,3,124,0,105,0, + 124,1,164,1,142,1,171,1,0,0,0,0,0,0,83,0, + 114,58,0,0,0,114,79,0,0,0,41,4,114,70,0,0, + 0,218,6,107,119,97,114,103,115,218,3,99,108,115,114,92, + 0,0,0,115,4,0,0,0,32,32,128,128,114,19,0,0, + 0,250,8,60,108,97,109,98,100,97,62,122,36,76,97,122, + 121,76,111,97,100,101,114,46,102,97,99,116,111,114,121,46, + 60,108,111,99,97,108,115,62,46,60,108,97,109,98,100,97, + 62,245,0,0,0,115,22,0,0,0,248,128,0,161,115,169, + 54,176,52,208,43,66,184,54,209,43,66,211,39,67,128,0, + 114,20,0,0,0,41,1,218,31,95,76,97,122,121,76,111, + 97,100,101,114,95,95,99,104,101,99,107,95,101,97,103,101, + 114,95,108,111,97,100,101,114,41,2,114,117,0,0,0,114, + 92,0,0,0,115,2,0,0,0,96,96,114,19,0,0,0, + 218,7,102,97,99,116,111,114,121,122,18,76,97,122,121,76, + 111,97,100,101,114,46,102,97,99,116,111,114,121,241,0,0, + 0,115,25,0,0,0,249,128,0,240,6,0,9,12,215,8, + 32,209,8,32,160,22,212,8,40,220,15,67,208,8,67,114, + 20,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,52,0,0,0,151,0, + 124,0,106,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, + 1,0,124,1,124,0,95,1,0,0,0,0,0,0,0,0, + 121,0,114,58,0,0,0,41,2,114,119,0,0,0,114,92, + 0,0,0,41,2,114,61,0,0,0,114,92,0,0,0,115, + 2,0,0,0,32,32,114,19,0,0,0,114,62,0,0,0, + 122,19,76,97,122,121,76,111,97,100,101,114,46,95,95,105, + 110,105,116,95,95,247,0,0,0,115,23,0,0,0,128,0, + 216,8,12,215,8,33,209,8,33,160,38,212,8,41,216,22, + 28,136,4,141,11,114,20,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 56,0,0,0,151,0,124,0,106,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,106,3,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 124,1,171,1,0,0,0,0,0,0,83,0,114,58,0,0, + 0,41,2,114,92,0,0,0,218,13,99,114,101,97,116,101, + 95,109,111,100,117,108,101,41,2,114,61,0,0,0,114,41, + 0,0,0,115,2,0,0,0,32,32,114,19,0,0,0,114, + 123,0,0,0,122,24,76,97,122,121,76,111,97,100,101,114, + 46,99,114,101,97,116,101,95,109,111,100,117,108,101,251,0, + 0,0,115,23,0,0,0,128,0,216,15,19,143,123,137,123, + 215,15,40,209,15,40,168,20,211,15,46,208,8,46,114,20, 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,56,0,0,0,151,0,124, + 3,0,0,0,3,0,0,0,243,40,1,0,0,151,0,124, 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,83,0,114,58,0,0,0,41,2,114,90,0,0, - 0,218,13,99,114,101,97,116,101,95,109,111,100,117,108,101, - 41,2,114,61,0,0,0,114,41,0,0,0,115,2,0,0, - 0,32,32,114,19,0,0,0,114,120,0,0,0,122,24,76, - 97,122,121,76,111,97,100,101,114,46,99,114,101,97,116,101, - 95,109,111,100,117,108,101,233,0,0,0,115,23,0,0,0, - 128,0,216,15,19,143,123,137,123,215,15,40,209,15,40,168, - 20,211,15,46,208,8,46,114,20,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, - 0,243,240,0,0,0,151,0,124,0,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,95,0,0,0,0,0,0,0,0,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,95,2,0,0,0,0,0,0,0,0, - 105,0,125,2,124,1,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,9,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,124,2,100,1,60,0,0,0,124,1, - 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,2,100,2,60,0,0,0,124,2,124,1, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,95,6,0,0,0,0,0,0,0,0,116,14, - 0,0,0,0,0,0,0,0,124,1,95,5,0,0,0,0, - 0,0,0,0,121,3,41,4,122,28,77,97,107,101,32,116, - 104,101,32,109,111,100,117,108,101,32,108,111,97,100,32,108, - 97,122,105,108,121,46,114,83,0,0,0,114,86,0,0,0, - 78,41,8,114,90,0,0,0,114,36,0,0,0,218,10,95, - 95,108,111,97,100,101,114,95,95,114,83,0,0,0,218,4, - 99,111,112,121,114,86,0,0,0,114,87,0,0,0,114,81, - 0,0,0,41,3,114,61,0,0,0,114,40,0,0,0,114, - 87,0,0,0,115,3,0,0,0,32,32,32,114,19,0,0, - 0,114,91,0,0,0,122,22,76,97,122,121,76,111,97,100, - 101,114,46,101,120,101,99,95,109,111,100,117,108,101,236,0, - 0,0,115,96,0,0,0,128,0,224,33,37,167,27,161,27, - 136,6,143,15,137,15,212,8,30,216,28,32,159,75,153,75, - 136,6,212,8,25,240,10,0,24,26,136,12,216,35,41,167, - 63,161,63,215,35,55,209,35,55,211,35,57,136,12,144,90, - 209,8,32,216,36,42,215,36,52,209,36,52,136,12,144,91, - 209,8,33,216,39,51,136,6,143,15,137,15,212,8,36,220, - 27,38,136,6,213,8,24,114,20,0,0,0,78,41,11,114, - 74,0,0,0,114,75,0,0,0,114,76,0,0,0,114,77, - 0,0,0,218,12,115,116,97,116,105,99,109,101,116,104,111, - 100,114,116,0,0,0,218,11,99,108,97,115,115,109,101,116, - 104,111,100,114,117,0,0,0,114,62,0,0,0,114,120,0, - 0,0,114,91,0,0,0,114,79,0,0,0,114,20,0,0, - 0,114,19,0,0,0,114,106,0,0,0,114,106,0,0,0, - 214,0,0,0,115,62,0,0,0,132,0,225,4,85,224,5, - 17,241,2,2,5,64,1,243,3,0,6,18,240,2,2,5, - 64,1,240,8,0,6,17,241,2,3,5,68,1,243,3,0, - 6,17,240,2,3,5,68,1,242,10,2,5,29,242,8,1, - 5,47,243,6,12,5,39,114,20,0,0,0,114,106,0,0, - 0,114,58,0,0,0,41,26,114,77,0,0,0,218,4,95, - 97,98,99,114,3,0,0,0,218,10,95,98,111,111,116,115, - 116,114,97,112,114,4,0,0,0,114,5,0,0,0,114,6, - 0,0,0,114,7,0,0,0,218,19,95,98,111,111,116,115, - 116,114,97,112,95,101,120,116,101,114,110,97,108,114,8,0, - 0,0,114,9,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,12,0,0,0,114,13,0,0,0,114,16,0,0,0, - 114,34,0,0,0,114,84,0,0,0,114,17,0,0,0,114, - 30,0,0,0,114,42,0,0,0,114,54,0,0,0,114,56, - 0,0,0,114,85,0,0,0,114,81,0,0,0,114,106,0, - 0,0,114,79,0,0,0,114,20,0,0,0,114,19,0,0, - 0,250,8,60,109,111,100,117,108,101,62,114,129,0,0,0, - 1,0,0,0,115,113,0,0,0,240,3,1,1,1,217,0, - 51,221,0,24,221,0,40,221,0,37,221,0,40,221,0,34, - 221,0,45,221,0,50,221,0,50,221,0,46,221,0,50,221, - 0,56,227,0,11,219,0,10,219,0,12,242,6,2,1,61, - 242,10,12,1,55,243,30,28,1,24,243,62,42,1,24,247, - 98,1,46,1,47,241,0,46,1,47,244,98,1,43,1,28, - 144,37,215,18,34,209,18,34,244,0,43,1,28,244,92,1, - 34,1,39,144,22,245,0,34,1,39,114,20,0,0,0, + 0,0,0,0,0,124,1,106,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,95,0,0,0,0, + 0,0,0,0,0,124,0,106,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,1,95,2,0, + 0,0,0,0,0,0,0,105,0,125,2,124,1,106,6,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,106,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,171,0,0,0,0,0,0,0,124,2,100, + 1,60,0,0,0,124,1,106,10,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,2,100,2,60, + 0,0,0,116,13,0,0,0,0,0,0,0,0,106,14,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,171,0,0,0,0,0,0,0,124,2,100,3,60,0,0, + 0,100,4,124,2,100,5,60,0,0,0,124,2,124,1,106, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,95,8,0,0,0,0,0,0,0,0,116,18,0, + 0,0,0,0,0,0,0,124,1,95,5,0,0,0,0,0, + 0,0,0,121,6,41,7,122,28,77,97,107,101,32,116,104, + 101,32,109,111,100,117,108,101,32,108,111,97,100,32,108,97, + 122,105,108,121,46,114,86,0,0,0,114,84,0,0,0,114, + 83,0,0,0,70,114,85,0,0,0,78,41,10,114,92,0, + 0,0,114,36,0,0,0,218,10,95,95,108,111,97,100,101, + 114,95,95,114,86,0,0,0,218,4,99,111,112,121,114,84, + 0,0,0,218,9,116,104,114,101,97,100,105,110,103,218,5, + 82,76,111,99,107,114,89,0,0,0,114,81,0,0,0,41, + 3,114,61,0,0,0,114,40,0,0,0,114,89,0,0,0, + 115,3,0,0,0,32,32,32,114,19,0,0,0,114,93,0, + 0,0,122,22,76,97,122,121,76,111,97,100,101,114,46,101, + 120,101,99,95,109,111,100,117,108,101,254,0,0,0,115,123, + 0,0,0,128,0,224,33,37,167,27,161,27,136,6,143,15, + 137,15,212,8,30,216,28,32,159,75,153,75,136,6,212,8, + 25,240,10,0,24,26,136,12,216,35,41,167,63,161,63,215, + 35,55,209,35,55,211,35,57,136,12,144,90,209,8,32,216, + 36,42,215,36,52,209,36,52,136,12,144,91,209,8,33,220, + 31,40,159,127,153,127,211,31,48,136,12,144,86,209,8,28, + 216,37,42,136,12,144,92,209,8,34,216,39,51,136,6,143, + 15,137,15,212,8,36,220,27,38,136,6,213,8,24,114,20, + 0,0,0,78,41,11,114,74,0,0,0,114,75,0,0,0, + 114,76,0,0,0,114,77,0,0,0,218,12,115,116,97,116, + 105,99,109,101,116,104,111,100,114,119,0,0,0,218,11,99, + 108,97,115,115,109,101,116,104,111,100,114,120,0,0,0,114, + 62,0,0,0,114,123,0,0,0,114,93,0,0,0,114,79, + 0,0,0,114,20,0,0,0,114,19,0,0,0,114,109,0, + 0,0,114,109,0,0,0,232,0,0,0,115,62,0,0,0, + 132,0,225,4,85,224,5,17,241,2,2,5,64,1,243,3, + 0,6,18,240,2,2,5,64,1,240,8,0,6,17,241,2, + 3,5,68,1,243,3,0,6,17,240,2,3,5,68,1,242, + 10,2,5,29,242,8,1,5,47,243,6,14,5,39,114,20, + 0,0,0,114,109,0,0,0,114,58,0,0,0,41,27,114, + 77,0,0,0,218,4,95,97,98,99,114,3,0,0,0,218, + 10,95,98,111,111,116,115,116,114,97,112,114,4,0,0,0, + 114,5,0,0,0,114,6,0,0,0,114,7,0,0,0,218, + 19,95,98,111,111,116,115,116,114,97,112,95,101,120,116,101, + 114,110,97,108,114,8,0,0,0,114,9,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,12,0,0,0,114,13,0, + 0,0,114,16,0,0,0,114,34,0,0,0,114,127,0,0, + 0,114,95,0,0,0,114,17,0,0,0,114,30,0,0,0, + 114,42,0,0,0,114,54,0,0,0,114,56,0,0,0,114, + 96,0,0,0,114,81,0,0,0,114,109,0,0,0,114,79, + 0,0,0,114,20,0,0,0,114,19,0,0,0,250,8,60, + 109,111,100,117,108,101,62,114,134,0,0,0,1,0,0,0, + 115,116,0,0,0,240,3,1,1,1,217,0,51,221,0,24, + 221,0,40,221,0,37,221,0,40,221,0,34,221,0,45,221, + 0,50,221,0,50,221,0,46,221,0,50,221,0,56,227,0, + 11,219,0,10,219,0,16,219,0,12,242,6,2,1,61,242, + 10,12,1,55,243,30,28,1,24,243,62,42,1,24,247,98, + 1,46,1,47,241,0,46,1,47,244,98,1,60,1,28,144, + 37,215,18,34,209,18,34,244,0,60,1,28,244,126,1,36, + 1,39,144,22,245,0,36,1,39,114,20,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/os.h b/contrib/tools/python3/Python/frozen_modules/os.h index 455e9a3574..6051fdba34 100644 --- a/contrib/tools/python3/Python/frozen_modules/os.h +++ b/contrib/tools/python3/Python/frozen_modules/os.h @@ -871,7 +871,7 @@ const unsigned char _Py_M__os[] = { 1,199,19,65,11,72,34,1,114,158,0,0,0,169,2,218, 15,102,111,108,108,111,119,95,115,121,109,108,105,110,107,115, 218,6,100,105,114,95,102,100,99,3,0,0,0,0,0,0, - 0,2,0,0,0,8,0,0,0,35,0,0,0,243,162,1, + 0,2,0,0,0,8,0,0,0,35,0,0,0,243,176,1, 0,0,75,0,1,0,151,0,116,1,0,0,0,0,0,0, 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,100,1,124,0,124,1,124,2,124,3, @@ -880,345 +880,308 @@ const unsigned char _Py_M__os[] = { 125,0,124,3,115,14,116,7,0,0,0,0,0,0,0,0, 124,0,100,2,124,4,172,3,171,3,0,0,0,0,0,0, 125,5,116,9,0,0,0,0,0,0,0,0,124,0,116,10, - 0,0,0,0,0,0,0,0,124,4,172,4,171,3,0,0, - 0,0,0,0,125,6,9,0,124,3,115,62,116,13,0,0, - 0,0,0,0,0,0,106,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,127,5,106,16,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,114,69,116,19,0,0,0,0, - 0,0,0,0,106,20,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,5,116,7,0,0,0,0, - 0,0,0,0,124,6,171,1,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,114,38,116,23,0,0,0,0,0,0, - 0,0,124,6,124,0,116,25,0,0,0,0,0,0,0,0, - 124,0,116,26,0,0,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,124,1,124,2,124,3,171,6,0,0,0,0, - 0,0,69,0,100,5,123,3,0,0,150,3,151,2,134,5, - 5,0,1,0,116,29,0,0,0,0,0,0,0,0,124,6, - 171,1,0,0,0,0,0,0,1,0,121,5,55,0,140,16, - 35,0,116,29,0,0,0,0,0,0,0,0,124,6,171,1, - 0,0,0,0,0,0,1,0,119,0,120,3,89,0,119,1, - 173,3,119,1,41,6,97,2,5,0,0,68,105,114,101,99, - 116,111,114,121,32,116,114,101,101,32,103,101,110,101,114,97, - 116,111,114,46,10,10,32,32,32,32,32,32,32,32,84,104, - 105,115,32,98,101,104,97,118,101,115,32,101,120,97,99,116, - 108,121,32,108,105,107,101,32,119,97,108,107,40,41,44,32, - 101,120,99,101,112,116,32,116,104,97,116,32,105,116,32,121, - 105,101,108,100,115,32,97,32,52,45,116,117,112,108,101,10, - 10,32,32,32,32,32,32,32,32,32,32,32,32,100,105,114, - 112,97,116,104,44,32,100,105,114,110,97,109,101,115,44,32, - 102,105,108,101,110,97,109,101,115,44,32,100,105,114,102,100, - 10,10,32,32,32,32,32,32,32,32,96,100,105,114,112,97, - 116,104,96,44,32,96,100,105,114,110,97,109,101,115,96,32, - 97,110,100,32,96,102,105,108,101,110,97,109,101,115,96,32, - 97,114,101,32,105,100,101,110,116,105,99,97,108,32,116,111, - 32,119,97,108,107,40,41,32,111,117,116,112,117,116,44,10, - 32,32,32,32,32,32,32,32,97,110,100,32,96,100,105,114, - 102,100,96,32,105,115,32,97,32,102,105,108,101,32,100,101, - 115,99,114,105,112,116,111,114,32,114,101,102,101,114,114,105, - 110,103,32,116,111,32,116,104,101,32,100,105,114,101,99,116, - 111,114,121,32,96,100,105,114,112,97,116,104,96,46,10,10, - 32,32,32,32,32,32,32,32,84,104,101,32,97,100,118,97, - 110,116,97,103,101,32,111,102,32,102,119,97,108,107,40,41, - 32,111,118,101,114,32,119,97,108,107,40,41,32,105,115,32, - 116,104,97,116,32,105,116,39,115,32,115,97,102,101,32,97, - 103,97,105,110,115,116,32,115,121,109,108,105,110,107,10,32, - 32,32,32,32,32,32,32,114,97,99,101,115,32,40,119,104, - 101,110,32,102,111,108,108,111,119,95,115,121,109,108,105,110, - 107,115,32,105,115,32,70,97,108,115,101,41,46,10,10,32, - 32,32,32,32,32,32,32,73,102,32,100,105,114,95,102,100, - 32,105,115,32,110,111,116,32,78,111,110,101,44,32,105,116, - 32,115,104,111,117,108,100,32,98,101,32,97,32,102,105,108, - 101,32,100,101,115,99,114,105,112,116,111,114,32,111,112,101, - 110,32,116,111,32,97,32,100,105,114,101,99,116,111,114,121, - 44,10,32,32,32,32,32,32,32,32,32,32,97,110,100,32, - 116,111,112,32,115,104,111,117,108,100,32,98,101,32,114,101, - 108,97,116,105,118,101,59,32,116,111,112,32,119,105,108,108, - 32,116,104,101,110,32,98,101,32,114,101,108,97,116,105,118, - 101,32,116,111,32,116,104,97,116,32,100,105,114,101,99,116, - 111,114,121,46,10,32,32,32,32,32,32,32,32,32,32,40, - 100,105,114,95,102,100,32,105,115,32,97,108,119,97,121,115, - 32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,102, - 119,97,108,107,46,41,10,10,32,32,32,32,32,32,32,32, - 67,97,117,116,105,111,110,58,10,32,32,32,32,32,32,32, - 32,83,105,110,99,101,32,102,119,97,108,107,40,41,32,121, - 105,101,108,100,115,32,102,105,108,101,32,100,101,115,99,114, - 105,112,116,111,114,115,44,32,116,104,111,115,101,32,97,114, - 101,32,111,110,108,121,32,118,97,108,105,100,32,117,110,116, - 105,108,32,116,104,101,10,32,32,32,32,32,32,32,32,110, - 101,120,116,32,105,116,101,114,97,116,105,111,110,32,115,116, - 101,112,44,32,115,111,32,121,111,117,32,115,104,111,117,108, - 100,32,100,117,112,40,41,32,116,104,101,109,32,105,102,32, - 121,111,117,32,119,97,110,116,32,116,111,32,107,101,101,112, - 32,116,104,101,109,10,32,32,32,32,32,32,32,32,102,111, - 114,32,97,32,108,111,110,103,101,114,32,112,101,114,105,111, - 100,46,10,10,32,32,32,32,32,32,32,32,69,120,97,109, - 112,108,101,58,10,10,32,32,32,32,32,32,32,32,105,109, - 112,111,114,116,32,111,115,10,32,32,32,32,32,32,32,32, - 102,111,114,32,114,111,111,116,44,32,100,105,114,115,44,32, - 102,105,108,101,115,44,32,114,111,111,116,102,100,32,105,110, - 32,111,115,46,102,119,97,108,107,40,39,112,121,116,104,111, - 110,47,76,105,98,47,101,109,97,105,108,39,41,58,10,32, - 32,32,32,32,32,32,32,32,32,32,32,112,114,105,110,116, - 40,114,111,111,116,44,32,34,99,111,110,115,117,109,101,115, - 34,44,32,101,110,100,61,34,34,41,10,32,32,32,32,32, - 32,32,32,32,32,32,32,112,114,105,110,116,40,115,117,109, - 40,111,115,46,115,116,97,116,40,110,97,109,101,44,32,100, - 105,114,95,102,100,61,114,111,111,116,102,100,41,46,115,116, - 95,115,105,122,101,32,102,111,114,32,110,97,109,101,32,105, - 110,32,102,105,108,101,115,41,44,10,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,61, - 34,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32, - 112,114,105,110,116,40,34,98,121,116,101,115,32,105,110,34, - 44,32,108,101,110,40,102,105,108,101,115,41,44,32,34,110, - 111,110,45,100,105,114,101,99,116,111,114,121,32,102,105,108, - 101,115,34,41,10,32,32,32,32,32,32,32,32,32,32,32, - 32,105,102,32,39,67,86,83,39,32,105,110,32,100,105,114, - 115,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,100,105,114,115,46,114,101,109,111,118,101,40,39, - 67,86,83,39,41,32,32,35,32,100,111,110,39,116,32,118, - 105,115,105,116,32,67,86,83,32,100,105,114,101,99,116,111, - 114,105,101,115,10,32,32,32,32,32,32,32,32,122,8,111, - 115,46,102,119,97,108,107,70,114,159,0,0,0,169,1,114, - 161,0,0,0,78,41,15,114,130,0,0,0,114,131,0,0, - 0,114,132,0,0,0,114,57,0,0,0,114,69,0,0,0, - 218,8,79,95,82,68,79,78,76,89,218,2,115,116,218,7, - 83,95,73,83,68,73,82,218,7,115,116,95,109,111,100,101, - 114,12,0,0,0,218,8,115,97,109,101,115,116,97,116,218, - 6,95,102,119,97,108,107,114,115,0,0,0,114,116,0,0, - 0,218,5,99,108,111,115,101,41,7,114,143,0,0,0,114, - 144,0,0,0,114,145,0,0,0,114,160,0,0,0,114,161, - 0,0,0,218,7,111,114,105,103,95,115,116,218,5,116,111, - 112,102,100,115,7,0,0,0,32,32,32,32,32,32,32,114, - 25,0,0,0,218,5,102,119,97,108,107,114,173,0,0,0, - 181,1,0,0,115,180,0,0,0,232,0,248,128,0,244,66, - 1,0,9,12,143,9,137,9,144,42,152,99,160,55,168,71, - 176,95,192,102,212,8,77,220,14,20,144,83,139,107,136,3, - 241,6,0,16,31,220,22,26,152,51,176,5,184,102,212,22, - 69,136,71,220,16,20,144,83,156,40,168,54,212,16,50,136, - 5,240,2,6,9,25,217,16,31,164,66,167,74,161,74,168, - 119,175,127,169,127,212,36,63,220,36,40,167,77,161,77,176, - 39,188,52,192,5,187,59,212,36,71,220,27,33,160,37,168, - 19,172,106,184,19,188,101,211,46,68,216,34,41,168,55,176, - 79,243,3,1,28,69,1,247,0,1,17,69,1,240,0,1, - 17,69,1,244,6,0,13,18,144,37,141,76,240,7,1,17, - 69,1,249,244,6,0,13,18,144,37,141,76,252,115,49,0, - 0,0,130,65,8,67,15,1,193,11,65,33,66,63,0,194, - 44,1,66,61,4,194,45,4,66,63,0,194,49,12,67,15, - 1,194,61,1,66,63,0,194,63,13,67,12,3,195,12,3, - 67,15,1,99,6,0,0,0,0,0,0,0,0,0,0,0, - 9,0,0,0,35,0,0,0,243,126,3,0,0,75,0,1, - 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,6,103,0,125,7,103,0,125, - 8,124,3,115,2,124,5,114,2,100,0,110,1,103,0,125, - 9,124,6,68,0,93,98,0,0,125,10,124,10,106,2,0, + 0,0,0,0,0,0,0,0,116,12,0,0,0,0,0,0, + 0,0,122,7,0,0,124,4,172,4,171,3,0,0,0,0, + 0,0,125,6,9,0,124,3,115,62,116,15,0,0,0,0, + 0,0,0,0,106,16,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,5,106,18,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, + 0,0,0,0,0,0,114,69,116,21,0,0,0,0,0,0, + 0,0,106,22,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,5,116,7,0,0,0,0,0,0, + 0,0,124,6,171,1,0,0,0,0,0,0,171,2,0,0, + 0,0,0,0,114,38,116,25,0,0,0,0,0,0,0,0, + 124,6,124,0,116,27,0,0,0,0,0,0,0,0,124,0, + 116,28,0,0,0,0,0,0,0,0,171,2,0,0,0,0, + 0,0,124,1,124,2,124,3,171,6,0,0,0,0,0,0, + 69,0,100,5,123,3,0,0,150,3,151,2,134,5,5,0, + 1,0,116,31,0,0,0,0,0,0,0,0,124,6,171,1, + 0,0,0,0,0,0,1,0,121,5,55,0,140,16,35,0, + 116,31,0,0,0,0,0,0,0,0,124,6,171,1,0,0, + 0,0,0,0,1,0,119,0,120,3,89,0,119,1,173,3, + 119,1,41,6,97,2,5,0,0,68,105,114,101,99,116,111, + 114,121,32,116,114,101,101,32,103,101,110,101,114,97,116,111, + 114,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115, + 32,98,101,104,97,118,101,115,32,101,120,97,99,116,108,121, + 32,108,105,107,101,32,119,97,108,107,40,41,44,32,101,120, + 99,101,112,116,32,116,104,97,116,32,105,116,32,121,105,101, + 108,100,115,32,97,32,52,45,116,117,112,108,101,10,10,32, + 32,32,32,32,32,32,32,32,32,32,32,100,105,114,112,97, + 116,104,44,32,100,105,114,110,97,109,101,115,44,32,102,105, + 108,101,110,97,109,101,115,44,32,100,105,114,102,100,10,10, + 32,32,32,32,32,32,32,32,96,100,105,114,112,97,116,104, + 96,44,32,96,100,105,114,110,97,109,101,115,96,32,97,110, + 100,32,96,102,105,108,101,110,97,109,101,115,96,32,97,114, + 101,32,105,100,101,110,116,105,99,97,108,32,116,111,32,119, + 97,108,107,40,41,32,111,117,116,112,117,116,44,10,32,32, + 32,32,32,32,32,32,97,110,100,32,96,100,105,114,102,100, + 96,32,105,115,32,97,32,102,105,108,101,32,100,101,115,99, + 114,105,112,116,111,114,32,114,101,102,101,114,114,105,110,103, + 32,116,111,32,116,104,101,32,100,105,114,101,99,116,111,114, + 121,32,96,100,105,114,112,97,116,104,96,46,10,10,32,32, + 32,32,32,32,32,32,84,104,101,32,97,100,118,97,110,116, + 97,103,101,32,111,102,32,102,119,97,108,107,40,41,32,111, + 118,101,114,32,119,97,108,107,40,41,32,105,115,32,116,104, + 97,116,32,105,116,39,115,32,115,97,102,101,32,97,103,97, + 105,110,115,116,32,115,121,109,108,105,110,107,10,32,32,32, + 32,32,32,32,32,114,97,99,101,115,32,40,119,104,101,110, + 32,102,111,108,108,111,119,95,115,121,109,108,105,110,107,115, + 32,105,115,32,70,97,108,115,101,41,46,10,10,32,32,32, + 32,32,32,32,32,73,102,32,100,105,114,95,102,100,32,105, + 115,32,110,111,116,32,78,111,110,101,44,32,105,116,32,115, + 104,111,117,108,100,32,98,101,32,97,32,102,105,108,101,32, + 100,101,115,99,114,105,112,116,111,114,32,111,112,101,110,32, + 116,111,32,97,32,100,105,114,101,99,116,111,114,121,44,10, + 32,32,32,32,32,32,32,32,32,32,97,110,100,32,116,111, + 112,32,115,104,111,117,108,100,32,98,101,32,114,101,108,97, + 116,105,118,101,59,32,116,111,112,32,119,105,108,108,32,116, + 104,101,110,32,98,101,32,114,101,108,97,116,105,118,101,32, + 116,111,32,116,104,97,116,32,100,105,114,101,99,116,111,114, + 121,46,10,32,32,32,32,32,32,32,32,32,32,40,100,105, + 114,95,102,100,32,105,115,32,97,108,119,97,121,115,32,115, + 117,112,112,111,114,116,101,100,32,102,111,114,32,102,119,97, + 108,107,46,41,10,10,32,32,32,32,32,32,32,32,67,97, + 117,116,105,111,110,58,10,32,32,32,32,32,32,32,32,83, + 105,110,99,101,32,102,119,97,108,107,40,41,32,121,105,101, + 108,100,115,32,102,105,108,101,32,100,101,115,99,114,105,112, + 116,111,114,115,44,32,116,104,111,115,101,32,97,114,101,32, + 111,110,108,121,32,118,97,108,105,100,32,117,110,116,105,108, + 32,116,104,101,10,32,32,32,32,32,32,32,32,110,101,120, + 116,32,105,116,101,114,97,116,105,111,110,32,115,116,101,112, + 44,32,115,111,32,121,111,117,32,115,104,111,117,108,100,32, + 100,117,112,40,41,32,116,104,101,109,32,105,102,32,121,111, + 117,32,119,97,110,116,32,116,111,32,107,101,101,112,32,116, + 104,101,109,10,32,32,32,32,32,32,32,32,102,111,114,32, + 97,32,108,111,110,103,101,114,32,112,101,114,105,111,100,46, + 10,10,32,32,32,32,32,32,32,32,69,120,97,109,112,108, + 101,58,10,10,32,32,32,32,32,32,32,32,105,109,112,111, + 114,116,32,111,115,10,32,32,32,32,32,32,32,32,102,111, + 114,32,114,111,111,116,44,32,100,105,114,115,44,32,102,105, + 108,101,115,44,32,114,111,111,116,102,100,32,105,110,32,111, + 115,46,102,119,97,108,107,40,39,112,121,116,104,111,110,47, + 76,105,98,47,101,109,97,105,108,39,41,58,10,32,32,32, + 32,32,32,32,32,32,32,32,32,112,114,105,110,116,40,114, + 111,111,116,44,32,34,99,111,110,115,117,109,101,115,34,44, + 32,101,110,100,61,34,34,41,10,32,32,32,32,32,32,32, + 32,32,32,32,32,112,114,105,110,116,40,115,117,109,40,111, + 115,46,115,116,97,116,40,110,97,109,101,44,32,100,105,114, + 95,102,100,61,114,111,111,116,102,100,41,46,115,116,95,115, + 105,122,101,32,102,111,114,32,110,97,109,101,32,105,110,32, + 102,105,108,101,115,41,44,10,32,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,101,110,100,61,34,34, + 41,10,32,32,32,32,32,32,32,32,32,32,32,32,112,114, + 105,110,116,40,34,98,121,116,101,115,32,105,110,34,44,32, + 108,101,110,40,102,105,108,101,115,41,44,32,34,110,111,110, + 45,100,105,114,101,99,116,111,114,121,32,102,105,108,101,115, + 34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,105, + 102,32,39,67,86,83,39,32,105,110,32,100,105,114,115,58, + 10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,100,105,114,115,46,114,101,109,111,118,101,40,39,67,86, + 83,39,41,32,32,35,32,100,111,110,39,116,32,118,105,115, + 105,116,32,67,86,83,32,100,105,114,101,99,116,111,114,105, + 101,115,10,32,32,32,32,32,32,32,32,122,8,111,115,46, + 102,119,97,108,107,70,114,159,0,0,0,169,1,114,161,0, + 0,0,78,41,16,114,130,0,0,0,114,131,0,0,0,114, + 132,0,0,0,114,57,0,0,0,114,69,0,0,0,218,8, + 79,95,82,68,79,78,76,89,218,10,79,95,78,79,78,66, + 76,79,67,75,218,2,115,116,218,7,83,95,73,83,68,73, + 82,218,7,115,116,95,109,111,100,101,114,12,0,0,0,218, + 8,115,97,109,101,115,116,97,116,218,6,95,102,119,97,108, + 107,114,115,0,0,0,114,116,0,0,0,218,5,99,108,111, + 115,101,41,7,114,143,0,0,0,114,144,0,0,0,114,145, + 0,0,0,114,160,0,0,0,114,161,0,0,0,218,7,111, + 114,105,103,95,115,116,218,5,116,111,112,102,100,115,7,0, + 0,0,32,32,32,32,32,32,32,114,25,0,0,0,218,5, + 102,119,97,108,107,114,174,0,0,0,181,1,0,0,115,185, + 0,0,0,232,0,248,128,0,244,66,1,0,9,12,143,9, + 137,9,144,42,152,99,160,55,168,71,176,95,192,102,212,8, + 77,220,14,20,144,83,139,107,136,3,241,6,0,16,31,220, + 22,26,152,51,176,5,184,102,212,22,69,136,71,220,16,20, + 144,83,156,40,164,90,209,26,47,184,6,212,16,63,136,5, + 240,2,6,9,25,217,16,31,164,66,167,74,161,74,168,119, + 175,127,169,127,212,36,63,220,36,40,167,77,161,77,176,39, + 188,52,192,5,187,59,212,36,71,220,27,33,160,37,168,19, + 172,106,184,19,188,101,211,46,68,216,34,41,168,55,176,79, + 243,3,1,28,69,1,247,0,1,17,69,1,240,0,1,17, + 69,1,244,6,0,13,18,144,37,141,76,240,7,1,17,69, + 1,249,244,6,0,13,18,144,37,141,76,252,115,49,0,0, + 0,130,65,15,67,22,1,193,18,65,33,67,6,0,194,51, + 1,67,4,4,194,52,4,67,6,0,194,56,12,67,22,1, + 195,4,1,67,6,0,195,6,13,67,19,3,195,19,3,67, + 22,1,99,6,0,0,0,0,0,0,0,0,0,0,0,9, + 0,0,0,35,0,0,0,243,140,3,0,0,75,0,1,0, + 151,0,116,1,0,0,0,0,0,0,0,0,124,0,171,1, + 0,0,0,0,0,0,125,6,103,0,125,7,103,0,125,8, + 124,3,115,2,124,5,114,2,100,0,110,1,103,0,125,9, + 124,6,68,0,93,98,0,0,125,10,124,10,106,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,11,124,2,114,11,116,5,0,0,0,0,0,0,0, - 0,124,11,171,1,0,0,0,0,0,0,125,11,9,0,124, - 10,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,114,37,124, - 7,106,9,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,11,171,1,0,0,0,0,0,0,1, - 0,124,9,129,35,124,9,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,10,171,1,0, - 0,0,0,0,0,1,0,110,17,124,8,106,9,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 11,171,1,0,0,0,0,0,0,1,0,140,100,4,0,124, - 3,114,8,124,1,124,7,124,8,124,0,102,4,150,1,151, - 1,1,0,124,9,128,2,124,7,110,11,116,15,0,0,0, - 0,0,0,0,0,124,7,124,9,171,2,0,0,0,0,0, - 0,68,0,93,158,0,0,125,11,9,0,124,5,115,44,124, - 3,114,15,116,17,0,0,0,0,0,0,0,0,124,11,124, - 0,100,1,172,2,171,3,0,0,0,0,0,0,125,12,110, - 27,124,9,128,2,74,0,130,1,124,11,92,2,0,0,125, - 11,125,10,124,10,106,17,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,1,172,3,171,1,0, - 0,0,0,0,0,125,12,116,19,0,0,0,0,0,0,0, - 0,124,11,116,20,0,0,0,0,0,0,0,0,124,0,172, - 4,171,3,0,0,0,0,0,0,125,13,9,0,124,5,115, - 31,116,23,0,0,0,0,0,0,0,0,106,24,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, - 12,116,17,0,0,0,0,0,0,0,0,124,13,171,1,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,114,46,116, - 23,0,0,0,0,0,0,0,0,106,26,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,124, - 11,171,2,0,0,0,0,0,0,125,15,116,29,0,0,0, - 0,0,0,0,0,124,13,124,15,124,2,124,3,124,4,124, - 5,171,6,0,0,0,0,0,0,69,0,100,0,123,3,0, - 0,150,3,151,2,134,5,5,0,1,0,116,31,0,0,0, - 0,0,0,0,0,124,13,171,1,0,0,0,0,0,0,1, - 0,140,160,4,0,124,3,115,9,124,1,124,7,124,8,124, - 0,102,4,150,1,151,1,1,0,121,0,121,0,35,0,116, - 10,0,0,0,0,0,0,0,0,36,0,114,54,1,0,9, - 0,124,10,106,13,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,114, - 17,124,8,106,9,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,11,171,1,0,0,0,0,0, - 0,1,0,110,15,35,0,116,10,0,0,0,0,0,0,0, - 0,36,0,114,3,1,0,89,0,110,4,119,0,120,3,89, - 0,119,1,89,0,144,1,140,106,119,0,120,3,89,0,119, - 1,35,0,116,10,0,0,0,0,0,0,0,0,36,0,114, - 21,125,14,124,4,129,8,2,0,124,4,124,14,171,1,0, - 0,0,0,0,0,1,0,89,0,100,0,125,14,126,14,144, - 1,140,8,100,0,125,14,126,14,119,1,119,0,120,3,89, - 0,119,1,55,0,140,128,35,0,116,31,0,0,0,0,0, - 0,0,0,124,13,171,1,0,0,0,0,0,0,1,0,119, - 0,120,3,89,0,119,1,173,3,119,1,41,5,78,70,41, - 2,114,161,0,0,0,114,160,0,0,0,41,1,114,160,0, - 0,0,114,163,0,0,0,41,16,114,86,0,0,0,114,11, - 0,0,0,114,17,0,0,0,114,139,0,0,0,114,140,0, - 0,0,114,117,0,0,0,114,141,0,0,0,218,3,122,105, - 112,114,57,0,0,0,114,69,0,0,0,114,164,0,0,0, - 114,12,0,0,0,114,168,0,0,0,114,134,0,0,0,114, - 169,0,0,0,114,170,0,0,0,41,16,114,172,0,0,0, - 218,7,116,111,112,112,97,116,104,218,7,105,115,98,121,116, - 101,115,114,144,0,0,0,114,145,0,0,0,114,160,0,0, - 0,114,151,0,0,0,114,148,0,0,0,114,149,0,0,0, - 218,7,101,110,116,114,105,101,115,114,154,0,0,0,114,11, - 0,0,0,114,171,0,0,0,218,5,100,105,114,102,100,218, - 3,101,114,114,218,7,100,105,114,112,97,116,104,115,16,0, - 0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,114,25,0,0,0,114,169,0,0,0,114,169,0,0, - 0,229,1,0,0,115,219,1,0,0,232,0,248,128,0,244, - 10,0,22,29,152,85,147,94,136,10,216,15,17,136,4,216, - 18,20,136,7,217,26,33,161,95,145,36,184,34,136,7,216, - 21,31,242,0,17,9,25,136,69,216,19,24,151,58,145,58, - 136,68,217,15,22,220,23,31,160,4,147,126,144,4,240,2, - 13,13,25,216,19,24,151,60,145,60,148,62,216,20,24,151, - 75,145,75,160,4,212,20,37,216,23,30,208,23,42,216,24, - 31,159,14,153,14,160,117,213,24,45,224,20,27,151,78,145, - 78,160,52,212,20,40,248,240,21,17,9,25,241,38,0,12, - 19,216,18,25,152,52,160,23,168,37,208,18,47,210,12,47, - 224,28,35,152,79,145,68,180,19,176,84,184,55,211,49,67, - 242,0,20,9,29,136,68,240,2,12,13,25,217,23,38,217, - 23,30,220,34,38,160,116,176,69,200,53,212,34,81,153,7, - 224,31,38,208,31,50,209,24,50,216,38,42,153,11,152,4, - 152,101,216,34,39,167,42,161,42,184,85,160,42,211,34,67, - 152,7,220,24,28,152,84,164,56,176,69,212,24,58,144,5, - 240,10,6,13,29,217,19,34,164,100,167,109,161,109,176,71, - 188,84,192,37,187,91,212,38,73,220,30,34,159,105,153,105, - 168,7,176,20,211,30,54,144,71,220,31,37,160,101,168,87, - 176,103,216,38,45,168,119,184,15,243,3,1,32,73,1,247, - 0,1,21,73,1,240,0,1,21,73,1,244,6,0,17,22, - 144,101,149,12,240,41,20,9,29,241,44,0,16,23,216,18, - 25,152,52,160,23,168,37,208,18,47,211,12,47,240,3,0, - 16,23,248,244,67,1,0,20,27,242,0,6,13,25,240,2, - 5,17,25,224,23,28,215,23,39,209,23,39,212,23,41,216, - 24,31,159,14,153,14,160,116,212,24,44,249,220,23,30,242, - 0,1,17,25,217,20,24,240,3,1,17,25,253,240,11,6, - 13,25,251,244,42,0,20,27,242,0,3,13,25,216,19,26, - 208,19,38,217,20,27,152,67,148,76,221,16,24,251,240,7, - 3,13,25,250,240,14,1,21,73,1,249,244,6,0,17,22, - 144,101,149,12,252,115,157,0,0,0,130,54,70,61,1,185, - 65,6,69,8,2,193,63,31,70,61,1,194,31,65,0,70, - 10,2,195,32,65,10,70,45,2,196,42,1,70,43,6,196, - 43,4,70,45,2,196,47,25,70,61,1,197,8,9,70,7, - 5,197,18,33,69,52,4,197,51,1,70,7,5,197,52,9, - 70,0,7,197,61,2,70,7,5,197,63,1,70,0,7,198, - 0,3,70,7,5,198,3,3,70,61,1,198,6,1,70,7, - 5,198,7,3,70,61,1,198,10,9,70,40,5,198,19,10, - 70,35,5,198,29,6,70,61,1,198,35,5,70,40,5,198, - 40,3,70,61,1,198,43,1,70,45,2,198,45,13,70,58, - 5,198,58,3,70,61,1,114,173,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,7,0,0, - 0,243,28,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,124,0,124,1,171,2,0,0,0,0,0,0,1,0, - 121,1,41,2,122,112,101,120,101,99,108,40,102,105,108,101, - 44,32,42,97,114,103,115,41,10,10,32,32,32,32,69,120, - 101,99,117,116,101,32,116,104,101,32,101,120,101,99,117,116, - 97,98,108,101,32,102,105,108,101,32,119,105,116,104,32,97, - 114,103,117,109,101,110,116,32,108,105,115,116,32,97,114,103, - 115,44,32,114,101,112,108,97,99,105,110,103,32,116,104,101, - 10,32,32,32,32,99,117,114,114,101,110,116,32,112,114,111, - 99,101,115,115,46,32,78,41,1,218,5,101,120,101,99,118, - 169,2,218,4,102,105,108,101,218,4,97,114,103,115,115,2, - 0,0,0,32,32,114,25,0,0,0,218,5,101,120,101,99, - 108,114,187,0,0,0,31,2,0,0,115,14,0,0,0,128, - 0,244,10,0,5,10,136,36,144,4,213,4,21,114,27,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,7,0,0,0,243,46,0,0,0,151,0,124,1, - 100,1,25,0,0,0,125,2,116,1,0,0,0,0,0,0, - 0,0,124,0,124,1,100,2,100,1,26,0,124,2,171,3, - 0,0,0,0,0,0,1,0,121,2,41,3,122,138,101,120, - 101,99,108,101,40,102,105,108,101,44,32,42,97,114,103,115, - 44,32,101,110,118,41,10,10,32,32,32,32,69,120,101,99, - 117,116,101,32,116,104,101,32,101,120,101,99,117,116,97,98, - 108,101,32,102,105,108,101,32,119,105,116,104,32,97,114,103, - 117,109,101,110,116,32,108,105,115,116,32,97,114,103,115,32, - 97,110,100,10,32,32,32,32,101,110,118,105,114,111,110,109, - 101,110,116,32,101,110,118,44,32,114,101,112,108,97,99,105, - 110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,112, - 114,111,99,101,115,115,46,32,233,255,255,255,255,78,41,1, - 114,88,0,0,0,169,3,114,185,0,0,0,114,186,0,0, - 0,218,3,101,110,118,115,3,0,0,0,32,32,32,114,25, - 0,0,0,218,6,101,120,101,99,108,101,114,192,0,0,0, - 38,2,0,0,115,31,0,0,0,128,0,240,10,0,11,15, - 136,114,137,40,128,67,220,4,10,136,52,144,20,144,99,144, - 114,144,25,152,67,213,4,32,114,27,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,7,0, - 0,0,243,28,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,124,1,171,2,0,0,0,0,0,0,1, - 0,121,1,41,2,122,149,101,120,101,99,108,112,40,102,105, - 108,101,44,32,42,97,114,103,115,41,10,10,32,32,32,32, - 69,120,101,99,117,116,101,32,116,104,101,32,101,120,101,99, - 117,116,97,98,108,101,32,102,105,108,101,32,40,119,104,105, - 99,104,32,105,115,32,115,101,97,114,99,104,101,100,32,102, - 111,114,32,97,108,111,110,103,32,36,80,65,84,72,41,10, - 32,32,32,32,119,105,116,104,32,97,114,103,117,109,101,110, - 116,32,108,105,115,116,32,97,114,103,115,44,32,114,101,112, - 108,97,99,105,110,103,32,116,104,101,32,99,117,114,114,101, - 110,116,32,112,114,111,99,101,115,115,46,32,78,41,1,218, - 6,101,120,101,99,118,112,114,184,0,0,0,115,2,0,0, - 0,32,32,114,25,0,0,0,218,6,101,120,101,99,108,112, - 114,195,0,0,0,46,2,0,0,115,14,0,0,0,128,0, - 244,10,0,5,11,136,52,144,20,213,4,22,114,27,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,6,0, - 0,0,7,0,0,0,243,46,0,0,0,151,0,124,1,100, - 1,25,0,0,0,125,2,116,1,0,0,0,0,0,0,0, - 0,124,0,124,1,100,2,100,1,26,0,124,2,171,3,0, - 0,0,0,0,0,1,0,121,2,41,3,122,179,101,120,101, - 99,108,112,101,40,102,105,108,101,44,32,42,97,114,103,115, - 44,32,101,110,118,41,10,10,32,32,32,32,69,120,101,99, - 117,116,101,32,116,104,101,32,101,120,101,99,117,116,97,98, - 108,101,32,102,105,108,101,32,40,119,104,105,99,104,32,105, - 115,32,115,101,97,114,99,104,101,100,32,102,111,114,32,97, - 108,111,110,103,32,36,80,65,84,72,41,10,32,32,32,32, - 119,105,116,104,32,97,114,103,117,109,101,110,116,32,108,105, - 115,116,32,97,114,103,115,32,97,110,100,32,101,110,118,105, - 114,111,110,109,101,110,116,32,101,110,118,44,32,114,101,112, - 108,97,99,105,110,103,32,116,104,101,32,99,117,114,114,101, - 110,116,10,32,32,32,32,112,114,111,99,101,115,115,46,32, - 114,189,0,0,0,78,41,1,218,7,101,120,101,99,118,112, - 101,114,190,0,0,0,115,3,0,0,0,32,32,32,114,25, - 0,0,0,218,7,101,120,101,99,108,112,101,114,198,0,0, - 0,53,2,0,0,115,31,0,0,0,128,0,240,12,0,11, - 15,136,114,137,40,128,67,220,4,11,136,68,144,36,144,115, - 152,2,144,41,152,83,213,4,33,114,27,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,28,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,124,1,171,2,0,0,0,0,0,0, - 1,0,121,1,41,2,122,192,101,120,101,99,118,112,40,102, - 105,108,101,44,32,97,114,103,115,41,10,10,32,32,32,32, - 69,120,101,99,117,116,101,32,116,104,101,32,101,120,101,99, - 117,116,97,98,108,101,32,102,105,108,101,32,40,119,104,105, - 99,104,32,105,115,32,115,101,97,114,99,104,101,100,32,102, - 111,114,32,97,108,111,110,103,32,36,80,65,84,72,41,10, - 32,32,32,32,119,105,116,104,32,97,114,103,117,109,101,110, + 125,11,124,2,114,11,116,5,0,0,0,0,0,0,0,0, + 124,11,171,1,0,0,0,0,0,0,125,11,9,0,124,10, + 106,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,171,0,0,0,0,0,0,0,114,37,124,7, + 106,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,11,171,1,0,0,0,0,0,0,1,0, + 124,9,129,35,124,9,106,9,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,10,171,1,0,0, + 0,0,0,0,1,0,110,17,124,8,106,9,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,11, + 171,1,0,0,0,0,0,0,1,0,140,100,4,0,124,3, + 114,8,124,1,124,7,124,8,124,0,102,4,150,1,151,1, + 1,0,124,9,128,2,124,7,110,11,116,15,0,0,0,0, + 0,0,0,0,124,7,124,9,171,2,0,0,0,0,0,0, + 68,0,93,165,0,0,125,11,9,0,124,5,115,44,124,3, + 114,15,116,17,0,0,0,0,0,0,0,0,124,11,124,0, + 100,1,172,2,171,3,0,0,0,0,0,0,125,12,110,27, + 124,9,128,2,74,0,130,1,124,11,92,2,0,0,125,11, + 125,10,124,10,106,17,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,100,1,172,3,171,1,0,0, + 0,0,0,0,125,12,116,19,0,0,0,0,0,0,0,0, + 124,11,116,20,0,0,0,0,0,0,0,0,116,22,0,0, + 0,0,0,0,0,0,122,7,0,0,124,0,172,4,171,3, + 0,0,0,0,0,0,125,13,9,0,124,5,115,31,116,25, + 0,0,0,0,0,0,0,0,106,26,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,127,12,116,17, + 0,0,0,0,0,0,0,0,124,13,171,1,0,0,0,0, + 0,0,171,2,0,0,0,0,0,0,114,46,116,25,0,0, + 0,0,0,0,0,0,106,28,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,1,124,11,171,2, + 0,0,0,0,0,0,125,15,116,31,0,0,0,0,0,0, + 0,0,124,13,124,15,124,2,124,3,124,4,124,5,171,6, + 0,0,0,0,0,0,69,0,100,0,123,3,0,0,150,3, + 151,2,134,5,5,0,1,0,116,33,0,0,0,0,0,0, + 0,0,124,13,171,1,0,0,0,0,0,0,1,0,140,167, + 4,0,124,3,115,9,124,1,124,7,124,8,124,0,102,4, + 150,1,151,1,1,0,121,0,121,0,35,0,116,10,0,0, + 0,0,0,0,0,0,36,0,114,54,1,0,9,0,124,10, + 106,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,171,0,0,0,0,0,0,0,114,17,124,8, + 106,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,124,11,171,1,0,0,0,0,0,0,1,0, + 110,15,35,0,116,10,0,0,0,0,0,0,0,0,36,0, + 114,3,1,0,89,0,110,4,119,0,120,3,89,0,119,1, + 89,0,144,1,140,113,119,0,120,3,89,0,119,1,35,0, + 116,10,0,0,0,0,0,0,0,0,36,0,114,21,125,14, + 124,4,129,8,2,0,124,4,124,14,171,1,0,0,0,0, + 0,0,1,0,89,0,100,0,125,14,126,14,144,1,140,15, + 100,0,125,14,126,14,119,1,119,0,120,3,89,0,119,1, + 55,0,140,128,35,0,116,33,0,0,0,0,0,0,0,0, + 124,13,171,1,0,0,0,0,0,0,1,0,119,0,120,3, + 89,0,119,1,173,3,119,1,41,5,78,70,41,2,114,161, + 0,0,0,114,160,0,0,0,41,1,114,160,0,0,0,114, + 163,0,0,0,41,17,114,86,0,0,0,114,11,0,0,0, + 114,17,0,0,0,114,139,0,0,0,114,140,0,0,0,114, + 117,0,0,0,114,141,0,0,0,218,3,122,105,112,114,57, + 0,0,0,114,69,0,0,0,114,164,0,0,0,114,165,0, + 0,0,114,12,0,0,0,114,169,0,0,0,114,134,0,0, + 0,114,170,0,0,0,114,171,0,0,0,41,16,114,173,0, + 0,0,218,7,116,111,112,112,97,116,104,218,7,105,115,98, + 121,116,101,115,114,144,0,0,0,114,145,0,0,0,114,160, + 0,0,0,114,151,0,0,0,114,148,0,0,0,114,149,0, + 0,0,218,7,101,110,116,114,105,101,115,114,154,0,0,0, + 114,11,0,0,0,114,172,0,0,0,218,5,100,105,114,102, + 100,218,3,101,114,114,218,7,100,105,114,112,97,116,104,115, + 16,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,114,25,0,0,0,114,170,0,0,0,114,170, + 0,0,0,229,1,0,0,115,227,1,0,0,232,0,248,128, + 0,244,10,0,22,29,152,85,147,94,136,10,216,15,17,136, + 4,216,18,20,136,7,217,26,33,161,95,145,36,184,34,136, + 7,216,21,31,242,0,17,9,25,136,69,216,19,24,151,58, + 145,58,136,68,217,15,22,220,23,31,160,4,147,126,144,4, + 240,2,13,13,25,216,19,24,151,60,145,60,148,62,216,20, + 24,151,75,145,75,160,4,212,20,37,216,23,30,208,23,42, + 216,24,31,159,14,153,14,160,117,213,24,45,224,20,27,151, + 78,145,78,160,52,212,20,40,248,240,21,17,9,25,241,38, + 0,12,19,216,18,25,152,52,160,23,168,37,208,18,47,210, + 12,47,224,28,35,152,79,145,68,180,19,176,84,184,55,211, + 49,67,242,0,20,9,29,136,68,240,2,12,13,25,217,23, + 38,217,23,30,220,34,38,160,116,176,69,200,53,212,34,81, + 153,7,224,31,38,208,31,50,208,24,50,208,31,50,216,38, + 42,153,11,152,4,152,101,216,34,39,167,42,161,42,184,85, + 160,42,211,34,67,152,7,220,24,28,152,84,164,56,172,106, + 209,35,56,192,21,212,24,71,144,5,240,10,6,13,29,217, + 19,34,164,100,167,109,161,109,176,71,188,84,192,37,187,91, + 212,38,73,220,30,34,159,105,153,105,168,7,176,20,211,30, + 54,144,71,220,31,37,160,101,168,87,176,103,216,38,45,168, + 119,184,15,243,3,1,32,73,1,247,0,1,21,73,1,240, + 0,1,21,73,1,244,6,0,17,22,144,101,149,12,240,41, + 20,9,29,241,44,0,16,23,216,18,25,152,52,160,23,168, + 37,208,18,47,211,12,47,240,3,0,16,23,248,244,67,1, + 0,20,27,242,0,6,13,25,240,2,5,17,25,224,23,28, + 215,23,39,209,23,39,212,23,41,216,24,31,159,14,153,14, + 160,116,212,24,44,249,220,23,30,242,0,1,17,25,217,20, + 24,240,3,1,17,25,253,240,11,6,13,25,251,244,42,0, + 20,27,242,0,3,13,25,216,19,26,208,19,38,217,20,27, + 152,67,148,76,221,16,24,251,240,7,3,13,25,250,240,14, + 1,21,73,1,249,244,6,0,17,22,144,101,149,12,252,115, + 157,0,0,0,130,54,71,4,1,185,65,6,69,15,2,193, + 63,31,71,4,1,194,31,65,7,70,17,2,195,39,65,10, + 70,52,2,196,49,1,70,50,6,196,50,4,70,52,2,196, + 54,25,71,4,1,197,15,9,70,14,5,197,25,33,69,59, + 4,197,58,1,70,14,5,197,59,9,70,7,7,198,4,2, + 70,14,5,198,6,1,70,7,7,198,7,3,70,14,5,198, + 10,3,71,4,1,198,13,1,70,14,5,198,14,3,71,4, + 1,198,17,9,70,47,5,198,26,10,70,42,5,198,36,6, + 71,4,1,198,42,5,70,47,5,198,47,3,71,4,1,198, + 50,1,70,52,2,198,52,13,71,1,5,199,1,3,71,4, + 1,114,174,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,7,0,0,0,243,28,0,0,0, + 151,0,116,1,0,0,0,0,0,0,0,0,124,0,124,1, + 171,2,0,0,0,0,0,0,1,0,121,1,41,2,122,112, + 101,120,101,99,108,40,102,105,108,101,44,32,42,97,114,103, + 115,41,10,10,32,32,32,32,69,120,101,99,117,116,101,32, + 116,104,101,32,101,120,101,99,117,116,97,98,108,101,32,102, + 105,108,101,32,119,105,116,104,32,97,114,103,117,109,101,110, 116,32,108,105,115,116,32,97,114,103,115,44,32,114,101,112, - 108,97,99,105,110,103,32,116,104,101,32,99,117,114,114,101, - 110,116,32,112,114,111,99,101,115,115,46,10,32,32,32,32, - 97,114,103,115,32,109,97,121,32,98,101,32,97,32,108,105, - 115,116,32,111,114,32,116,117,112,108,101,32,111,102,32,115, - 116,114,105,110,103,115,46,32,78,169,1,218,8,95,101,120, - 101,99,118,112,101,114,184,0,0,0,115,2,0,0,0,32, - 32,114,25,0,0,0,114,194,0,0,0,114,194,0,0,0, - 62,2,0,0,115,14,0,0,0,128,0,244,12,0,5,13, - 136,84,144,52,213,4,24,114,27,0,0,0,99,3,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,30,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,124,0,124,1,124,2,171,3,0,0,0,0,0,0, - 1,0,121,1,41,2,122,222,101,120,101,99,118,112,101,40, - 102,105,108,101,44,32,97,114,103,115,44,32,101,110,118,41, + 108,97,99,105,110,103,32,116,104,101,10,32,32,32,32,99, + 117,114,114,101,110,116,32,112,114,111,99,101,115,115,46,32, + 78,41,1,218,5,101,120,101,99,118,169,2,218,4,102,105, + 108,101,218,4,97,114,103,115,115,2,0,0,0,32,32,114, + 25,0,0,0,218,5,101,120,101,99,108,114,188,0,0,0, + 31,2,0,0,115,14,0,0,0,128,0,244,10,0,5,10, + 136,36,144,4,213,4,21,114,27,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,6,0,0,0,7,0,0, + 0,243,46,0,0,0,151,0,124,1,100,1,25,0,0,0, + 125,2,116,1,0,0,0,0,0,0,0,0,124,0,124,1, + 100,2,100,1,26,0,124,2,171,3,0,0,0,0,0,0, + 1,0,121,2,41,3,122,138,101,120,101,99,108,101,40,102, + 105,108,101,44,32,42,97,114,103,115,44,32,101,110,118,41, + 10,10,32,32,32,32,69,120,101,99,117,116,101,32,116,104, + 101,32,101,120,101,99,117,116,97,98,108,101,32,102,105,108, + 101,32,119,105,116,104,32,97,114,103,117,109,101,110,116,32, + 108,105,115,116,32,97,114,103,115,32,97,110,100,10,32,32, + 32,32,101,110,118,105,114,111,110,109,101,110,116,32,101,110, + 118,44,32,114,101,112,108,97,99,105,110,103,32,116,104,101, + 32,99,117,114,114,101,110,116,32,112,114,111,99,101,115,115, + 46,32,233,255,255,255,255,78,41,1,114,88,0,0,0,169, + 3,114,186,0,0,0,114,187,0,0,0,218,3,101,110,118, + 115,3,0,0,0,32,32,32,114,25,0,0,0,218,6,101, + 120,101,99,108,101,114,193,0,0,0,38,2,0,0,115,31, + 0,0,0,128,0,240,10,0,11,15,136,114,137,40,128,67, + 220,4,10,136,52,144,20,144,99,144,114,144,25,152,67,213, + 4,32,114,27,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,7,0,0,0,243,28,0,0, + 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,124, + 1,171,2,0,0,0,0,0,0,1,0,121,1,41,2,122, + 149,101,120,101,99,108,112,40,102,105,108,101,44,32,42,97, + 114,103,115,41,10,10,32,32,32,32,69,120,101,99,117,116, + 101,32,116,104,101,32,101,120,101,99,117,116,97,98,108,101, + 32,102,105,108,101,32,40,119,104,105,99,104,32,105,115,32, + 115,101,97,114,99,104,101,100,32,102,111,114,32,97,108,111, + 110,103,32,36,80,65,84,72,41,10,32,32,32,32,119,105, + 116,104,32,97,114,103,117,109,101,110,116,32,108,105,115,116, + 32,97,114,103,115,44,32,114,101,112,108,97,99,105,110,103, + 32,116,104,101,32,99,117,114,114,101,110,116,32,112,114,111, + 99,101,115,115,46,32,78,41,1,218,6,101,120,101,99,118, + 112,114,185,0,0,0,115,2,0,0,0,32,32,114,25,0, + 0,0,218,6,101,120,101,99,108,112,114,196,0,0,0,46, + 2,0,0,115,14,0,0,0,128,0,244,10,0,5,11,136, + 52,144,20,213,4,22,114,27,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,6,0,0,0,7,0,0,0, + 243,46,0,0,0,151,0,124,1,100,1,25,0,0,0,125, + 2,116,1,0,0,0,0,0,0,0,0,124,0,124,1,100, + 2,100,1,26,0,124,2,171,3,0,0,0,0,0,0,1, + 0,121,2,41,3,122,179,101,120,101,99,108,112,101,40,102, + 105,108,101,44,32,42,97,114,103,115,44,32,101,110,118,41, 10,10,32,32,32,32,69,120,101,99,117,116,101,32,116,104, 101,32,101,120,101,99,117,116,97,98,108,101,32,102,105,108, 101,32,40,119,104,105,99,104,32,105,115,32,115,101,97,114, @@ -1227,882 +1190,772 @@ const unsigned char _Py_M__os[] = { 114,103,117,109,101,110,116,32,108,105,115,116,32,97,114,103, 115,32,97,110,100,32,101,110,118,105,114,111,110,109,101,110, 116,32,101,110,118,44,32,114,101,112,108,97,99,105,110,103, - 32,116,104,101,10,32,32,32,32,99,117,114,114,101,110,116, - 32,112,114,111,99,101,115,115,46,10,32,32,32,32,97,114, - 103,115,32,109,97,121,32,98,101,32,97,32,108,105,115,116, - 32,111,114,32,116,117,112,108,101,32,111,102,32,115,116,114, - 105,110,103,115,46,32,78,114,200,0,0,0,114,190,0,0, - 0,115,3,0,0,0,32,32,32,114,25,0,0,0,114,197, - 0,0,0,114,197,0,0,0,70,2,0,0,115,16,0,0, - 0,128,0,244,14,0,5,13,136,84,144,52,152,19,213,4, - 29,114,27,0,0,0,41,6,114,187,0,0,0,114,192,0, - 0,0,114,195,0,0,0,114,198,0,0,0,114,194,0,0, - 0,114,197,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,158,1,0,0, - 151,0,124,2,129,11,116,0,0,0,0,0,0,0,0,0, - 125,3,124,1,124,2,102,2,125,4,110,15,116,2,0,0, - 0,0,0,0,0,0,125,3,124,1,102,1,125,4,116,4, - 0,0,0,0,0,0,0,0,125,2,116,7,0,0,0,0, - 0,0,0,0,106,8,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,114,10,2,0,124,3,124,0,103,1,124,4,162,1, - 173,6,142,0,1,0,121,0,100,0,125,5,116,11,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 125,6,116,12,0,0,0,0,0,0,0,0,100,1,107,55, - 0,0,114,27,116,15,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,125,0,116,17,0,0,0,0, - 0,0,0,0,116,14,0,0,0,0,0,0,0,0,124,6, - 171,2,0,0,0,0,0,0,125,6,124,6,68,0,93,34, - 0,0,125,7,116,7,0,0,0,0,0,0,0,0,106,18, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,7,124,0,171,2,0,0,0,0,0,0,125,8, - 9,0,2,0,124,3,124,8,103,1,124,4,162,1,173,6, - 142,0,1,0,140,36,4,0,124,5,129,2,124,5,130,1, - 127,10,130,1,35,0,116,20,0,0,0,0,0,0,0,0, - 116,22,0,0,0,0,0,0,0,0,102,2,36,0,114,12, - 125,9,124,9,125,10,89,0,100,0,125,9,126,9,140,65, - 100,0,125,9,126,9,119,1,116,24,0,0,0,0,0,0, - 0,0,36,0,114,16,125,9,124,9,125,10,124,5,128,2, - 124,9,125,5,89,0,100,0,125,9,126,9,140,88,100,0, - 125,9,126,9,119,1,119,0,120,3,89,0,119,1,41,2, - 78,114,42,0,0,0,41,13,114,88,0,0,0,114,183,0, - 0,0,218,7,101,110,118,105,114,111,110,114,12,0,0,0, - 114,156,0,0,0,114,19,0,0,0,114,11,0,0,0,114, - 17,0,0,0,218,3,109,97,112,114,134,0,0,0,218,17, - 70,105,108,101,78,111,116,70,111,117,110,100,69,114,114,111, - 114,218,18,78,111,116,65,68,105,114,101,99,116,111,114,121, - 69,114,114,111,114,114,117,0,0,0,41,11,114,185,0,0, - 0,114,186,0,0,0,114,191,0,0,0,218,9,101,120,101, - 99,95,102,117,110,99,218,7,97,114,103,114,101,115,116,218, - 9,115,97,118,101,100,95,101,120,99,218,9,112,97,116,104, - 95,108,105,115,116,114,33,0,0,0,218,8,102,117,108,108, - 110,97,109,101,218,1,101,218,8,108,97,115,116,95,101,120, - 99,115,11,0,0,0,32,32,32,32,32,32,32,32,32,32, - 32,114,25,0,0,0,114,201,0,0,0,114,201,0,0,0, - 81,2,0,0,115,231,0,0,0,128,0,216,7,10,128,127, - 220,20,26,136,9,216,19,23,152,19,144,43,137,7,228,20, - 25,136,9,216,19,23,144,39,136,7,220,14,21,136,3,228, - 7,11,135,124,129,124,144,68,212,7,25,217,8,17,144,36, - 208,8,33,152,23,211,8,33,216,8,14,216,16,20,128,73, - 220,16,29,152,99,211,16,34,128,73,220,7,11,136,116,130, - 124,220,15,23,152,4,139,126,136,4,220,20,23,156,8,160, - 41,211,20,44,136,9,216,15,24,242,0,9,5,30,136,3, - 220,19,23,151,57,145,57,152,83,160,36,211,19,39,136,8, - 240,2,7,9,30,217,12,21,144,104,208,12,41,160,23,212, - 12,41,240,7,9,5,30,240,20,0,8,17,208,7,28,216, - 14,23,136,15,216,10,18,128,78,248,244,17,0,17,34,212, - 35,53,208,15,54,242,0,1,9,25,216,23,24,141,72,251, - 220,15,22,242,0,3,9,30,216,23,24,136,72,216,15,24, - 208,15,32,216,28,29,144,9,255,248,240,7,3,9,30,250, - 115,36,0,0,0,194,9,9,66,26,2,194,26,15,67,12, - 5,194,41,2,66,48,5,194,48,12,67,12,5,194,60,6, - 67,7,5,195,7,5,67,12,5,99,1,0,0,0,0,0, - 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,170, - 1,0,0,151,0,100,1,100,2,108,0,125,1,124,0,128, - 6,116,2,0,0,0,0,0,0,0,0,125,0,124,1,106, - 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,53,0,1,0,124, - 1,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,3,116,8,0,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,1,0,9,0,124,0,106, - 11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,4,171,1,0,0,0,0,0,0,125,2,116, - 14,0,0,0,0,0,0,0,0,114,50,9,0,124,0,100, - 5,25,0,0,0,125,3,124,2,129,11,116,17,0,0,0, - 0,0,0,0,0,100,6,171,1,0,0,0,0,0,0,130, - 1,124,3,125,2,124,2,129,27,116,21,0,0,0,0,0, - 0,0,0,124,2,116,22,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,114,11,116,25,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,125,2,100, - 2,100,2,100,2,171,2,0,0,0,0,0,0,1,0,127, - 2,128,6,116,26,0,0,0,0,0,0,0,0,125,2,124, - 2,106,29,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,116,30,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,83,0,35,0,116,12,0,0,0, - 0,0,0,0,0,36,0,114,5,1,0,100,2,125,2,89, - 0,140,106,119,0,120,3,89,0,119,1,35,0,116,18,0, - 0,0,0,0,0,0,0,116,12,0,0,0,0,0,0,0, - 0,102,2,36,0,114,3,1,0,89,0,140,100,119,0,120, - 3,89,0,119,1,35,0,49,0,115,1,119,2,1,0,89, - 0,1,0,1,0,140,76,120,3,89,0,119,1,41,7,122, - 243,82,101,116,117,114,110,115,32,116,104,101,32,115,101,113, - 117,101,110,99,101,32,111,102,32,100,105,114,101,99,116,111, - 114,105,101,115,32,116,104,97,116,32,119,105,108,108,32,98, - 101,32,115,101,97,114,99,104,101,100,32,102,111,114,32,116, - 104,101,10,32,32,32,32,110,97,109,101,100,32,101,120,101, - 99,117,116,97,98,108,101,32,40,115,105,109,105,108,97,114, - 32,116,111,32,97,32,115,104,101,108,108,41,32,119,104,101, - 110,32,108,97,117,110,99,104,105,110,103,32,97,32,112,114, - 111,99,101,115,115,46,10,10,32,32,32,32,42,101,110,118, - 42,32,109,117,115,116,32,98,101,32,97,110,32,101,110,118, - 105,114,111,110,109,101,110,116,32,118,97,114,105,97,98,108, - 101,32,100,105,99,116,32,111,114,32,78,111,110,101,46,32, - 32,73,102,32,42,101,110,118,42,32,105,115,32,78,111,110, - 101,44,10,32,32,32,32,111,115,46,101,110,118,105,114,111, - 110,32,119,105,108,108,32,98,101,32,117,115,101,100,46,10, - 32,32,32,32,114,2,0,0,0,78,218,6,105,103,110,111, - 114,101,218,4,80,65,84,72,115,4,0,0,0,80,65,84, - 72,122,42,101,110,118,32,99,97,110,110,111,116,32,99,111, - 110,116,97,105,110,32,39,80,65,84,72,39,32,97,110,100, - 32,98,39,80,65,84,72,39,32,107,101,121,115,41,16,218, - 8,119,97,114,110,105,110,103,115,114,204,0,0,0,218,14, - 99,97,116,99,104,95,119,97,114,110,105,110,103,115,218,12, - 115,105,109,112,108,101,102,105,108,116,101,114,218,12,66,121, - 116,101,115,87,97,114,110,105,110,103,218,3,103,101,116,218, - 9,84,121,112,101,69,114,114,111,114,218,22,115,117,112,112, - 111,114,116,115,95,98,121,116,101,115,95,101,110,118,105,114, - 111,110,218,10,86,97,108,117,101,69,114,114,111,114,218,8, - 75,101,121,69,114,114,111,114,114,115,0,0,0,114,116,0, - 0,0,114,18,0,0,0,114,10,0,0,0,114,111,0,0, - 0,114,8,0,0,0,41,4,114,191,0,0,0,114,218,0, - 0,0,114,211,0,0,0,218,10,112,97,116,104,95,108,105, - 115,116,98,115,4,0,0,0,32,32,32,32,114,25,0,0, - 0,114,19,0,0,0,114,19,0,0,0,113,2,0,0,115, - 235,0,0,0,128,0,243,20,0,5,20,224,7,10,128,123, - 220,14,21,136,3,240,8,0,10,18,215,9,32,209,9,32, - 211,9,34,241,0,20,5,48,216,8,16,215,8,29,209,8, - 29,152,104,172,12,212,8,53,240,4,3,9,29,216,24,27, - 159,7,153,7,160,6,155,15,136,73,245,8,0,12,34,240, - 2,8,13,39,216,29,32,160,23,153,92,144,10,240,8,0, - 20,29,208,19,40,220,26,36,216,24,68,243,3,1,27,70, - 1,240,0,1,21,70,1,224,28,38,144,9,224,15,24,208, - 15,36,172,26,176,73,188,117,212,41,69,220,28,36,160,89, - 211,28,47,144,9,247,41,20,5,48,240,44,0,8,17,208, - 7,24,220,20,27,136,9,216,11,20,143,63,137,63,156,55, - 211,11,35,208,4,35,248,244,39,0,16,25,242,0,1,9, - 29,216,24,28,138,73,240,3,1,9,29,251,244,12,0,21, - 29,156,105,208,19,40,242,0,1,13,21,217,16,20,240,3, - 1,13,21,250,247,23,20,5,48,240,0,20,5,48,250,115, - 82,0,0,0,157,23,67,9,3,181,17,66,35,2,193,6, - 6,67,9,3,193,13,5,66,52,2,193,18,44,67,9,3, - 194,35,11,66,49,5,194,46,2,67,9,3,194,48,1,66, - 49,5,194,49,3,67,9,3,194,52,15,67,6,5,195,3, - 2,67,9,3,195,5,1,67,6,5,195,6,3,67,9,3, - 195,9,5,67,18,7,41,2,218,14,77,117,116,97,98,108, - 101,77,97,112,112,105,110,103,218,7,77,97,112,112,105,110, - 103,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,0,0,0,0,243,84,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,132,0,90,3,100,2,132,0,90, - 4,100,3,132,0,90,5,100,4,132,0,90,6,100,5,132, - 0,90,7,100,6,132,0,90,8,100,7,132,0,90,9,100, - 8,132,0,90,10,100,9,132,0,90,11,100,10,132,0,90, - 12,100,11,132,0,90,13,100,12,132,0,90,14,121,13,41, - 14,218,8,95,69,110,118,105,114,111,110,99,6,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, - 243,74,0,0,0,151,0,124,2,124,0,95,0,0,0,0, - 0,0,0,0,0,124,3,124,0,95,1,0,0,0,0,0, - 0,0,0,124,4,124,0,95,2,0,0,0,0,0,0,0, - 0,124,5,124,0,95,3,0,0,0,0,0,0,0,0,124, - 1,124,0,95,4,0,0,0,0,0,0,0,0,121,0,114, - 23,0,0,0,41,5,218,9,101,110,99,111,100,101,107,101, - 121,218,9,100,101,99,111,100,101,107,101,121,218,11,101,110, - 99,111,100,101,118,97,108,117,101,218,11,100,101,99,111,100, - 101,118,97,108,117,101,218,5,95,100,97,116,97,41,6,218, - 4,115,101,108,102,218,4,100,97,116,97,114,233,0,0,0, - 114,234,0,0,0,114,235,0,0,0,114,236,0,0,0,115, - 6,0,0,0,32,32,32,32,32,32,114,25,0,0,0,218, - 8,95,95,105,110,105,116,95,95,122,17,95,69,110,118,105, - 114,111,110,46,95,95,105,110,105,116,95,95,161,2,0,0, - 115,39,0,0,0,128,0,216,25,34,136,4,140,14,216,25, - 34,136,4,140,14,216,27,38,136,4,212,8,24,216,27,38, - 136,4,212,8,24,216,21,25,136,4,141,10,114,27,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,148,0,0,0,151,0,9,0,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,106,3,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,25,0,0,0,125,2,124,0,106,7,0, + 32,116,104,101,32,99,117,114,114,101,110,116,10,32,32,32, + 32,112,114,111,99,101,115,115,46,32,114,190,0,0,0,78, + 41,1,218,7,101,120,101,99,118,112,101,114,191,0,0,0, + 115,3,0,0,0,32,32,32,114,25,0,0,0,218,7,101, + 120,101,99,108,112,101,114,199,0,0,0,53,2,0,0,115, + 31,0,0,0,128,0,240,12,0,11,15,136,114,137,40,128, + 67,220,4,11,136,68,144,36,144,115,152,2,144,41,152,83, + 213,4,33,114,27,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,28,0, + 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, + 124,1,171,2,0,0,0,0,0,0,1,0,121,1,41,2, + 122,192,101,120,101,99,118,112,40,102,105,108,101,44,32,97, + 114,103,115,41,10,10,32,32,32,32,69,120,101,99,117,116, + 101,32,116,104,101,32,101,120,101,99,117,116,97,98,108,101, + 32,102,105,108,101,32,40,119,104,105,99,104,32,105,115,32, + 115,101,97,114,99,104,101,100,32,102,111,114,32,97,108,111, + 110,103,32,36,80,65,84,72,41,10,32,32,32,32,119,105, + 116,104,32,97,114,103,117,109,101,110,116,32,108,105,115,116, + 32,97,114,103,115,44,32,114,101,112,108,97,99,105,110,103, + 32,116,104,101,32,99,117,114,114,101,110,116,32,112,114,111, + 99,101,115,115,46,10,32,32,32,32,97,114,103,115,32,109, + 97,121,32,98,101,32,97,32,108,105,115,116,32,111,114,32, + 116,117,112,108,101,32,111,102,32,115,116,114,105,110,103,115, + 46,32,78,169,1,218,8,95,101,120,101,99,118,112,101,114, + 185,0,0,0,115,2,0,0,0,32,32,114,25,0,0,0, + 114,195,0,0,0,114,195,0,0,0,62,2,0,0,115,14, + 0,0,0,128,0,244,12,0,5,13,136,84,144,52,213,4, + 24,114,27,0,0,0,99,3,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,3,0,0,0,243,30,0,0,0, + 151,0,116,1,0,0,0,0,0,0,0,0,124,0,124,1, + 124,2,171,3,0,0,0,0,0,0,1,0,121,1,41,2, + 122,222,101,120,101,99,118,112,101,40,102,105,108,101,44,32, + 97,114,103,115,44,32,101,110,118,41,10,10,32,32,32,32, + 69,120,101,99,117,116,101,32,116,104,101,32,101,120,101,99, + 117,116,97,98,108,101,32,102,105,108,101,32,40,119,104,105, + 99,104,32,105,115,32,115,101,97,114,99,104,101,100,32,102, + 111,114,32,97,108,111,110,103,32,36,80,65,84,72,41,10, + 32,32,32,32,119,105,116,104,32,97,114,103,117,109,101,110, + 116,32,108,105,115,116,32,97,114,103,115,32,97,110,100,32, + 101,110,118,105,114,111,110,109,101,110,116,32,101,110,118,44, + 32,114,101,112,108,97,99,105,110,103,32,116,104,101,10,32, + 32,32,32,99,117,114,114,101,110,116,32,112,114,111,99,101, + 115,115,46,10,32,32,32,32,97,114,103,115,32,109,97,121, + 32,98,101,32,97,32,108,105,115,116,32,111,114,32,116,117, + 112,108,101,32,111,102,32,115,116,114,105,110,103,115,46,32, + 78,114,201,0,0,0,114,191,0,0,0,115,3,0,0,0, + 32,32,32,114,25,0,0,0,114,198,0,0,0,114,198,0, + 0,0,70,2,0,0,115,16,0,0,0,128,0,244,14,0, + 5,13,136,84,144,52,152,19,213,4,29,114,27,0,0,0, + 41,6,114,188,0,0,0,114,193,0,0,0,114,196,0,0, + 0,114,199,0,0,0,114,195,0,0,0,114,198,0,0,0, + 99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,243,158,1,0,0,151,0,124,2,129,11, + 116,0,0,0,0,0,0,0,0,0,125,3,124,1,124,2, + 102,2,125,4,110,15,116,2,0,0,0,0,0,0,0,0, + 125,3,124,1,102,1,125,4,116,4,0,0,0,0,0,0, + 0,0,125,2,116,7,0,0,0,0,0,0,0,0,106,8, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,2,171,1,0,0,0,0,0,0,83,0,35,0,116, - 4,0,0,0,0,0,0,0,0,36,0,114,13,1,0,116, - 5,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,100,0,130,2,119,0,120,3,89,0,119,1,114, - 23,0,0,0,41,4,114,237,0,0,0,114,233,0,0,0, - 114,226,0,0,0,114,236,0,0,0,169,3,114,238,0,0, - 0,218,3,107,101,121,218,5,118,97,108,117,101,115,3,0, - 0,0,32,32,32,114,25,0,0,0,218,11,95,95,103,101, - 116,105,116,101,109,95,95,122,20,95,69,110,118,105,114,111, - 110,46,95,95,103,101,116,105,116,101,109,95,95,168,2,0, - 0,115,78,0,0,0,128,0,240,2,4,9,42,216,20,24, - 151,74,145,74,152,116,159,126,153,126,168,99,211,31,50,209, - 20,51,136,69,240,8,0,16,20,215,15,31,209,15,31,160, - 5,211,15,38,208,8,38,248,244,7,0,16,24,242,0,2, - 9,42,228,18,26,152,51,147,45,160,84,208,12,41,240,5, - 2,9,42,250,115,9,0,0,0,130,30,49,0,177,22,65, - 7,3,99,3,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,126,0,0,0,151,0,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,125,1, - 124,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 125,2,116,5,0,0,0,0,0,0,0,0,124,1,124,2, - 171,2,0,0,0,0,0,0,1,0,124,2,124,0,106,6, + 0,0,124,0,171,1,0,0,0,0,0,0,114,10,2,0, + 124,3,124,0,103,1,124,4,162,1,173,6,142,0,1,0, + 121,0,100,0,125,5,116,11,0,0,0,0,0,0,0,0, + 124,2,171,1,0,0,0,0,0,0,125,6,116,12,0,0, + 0,0,0,0,0,0,100,1,107,55,0,0,114,27,116,15, + 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, + 0,0,125,0,116,17,0,0,0,0,0,0,0,0,116,14, + 0,0,0,0,0,0,0,0,124,6,171,2,0,0,0,0, + 0,0,125,6,124,6,68,0,93,34,0,0,125,7,116,7, + 0,0,0,0,0,0,0,0,106,18,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,7,124,0, + 171,2,0,0,0,0,0,0,125,8,9,0,2,0,124,3, + 124,8,103,1,124,4,162,1,173,6,142,0,1,0,140,36, + 4,0,124,5,129,2,124,5,130,1,127,10,130,1,35,0, + 116,20,0,0,0,0,0,0,0,0,116,22,0,0,0,0, + 0,0,0,0,102,2,36,0,114,12,125,9,124,9,125,10, + 89,0,100,0,125,9,126,9,140,65,100,0,125,9,126,9, + 119,1,116,24,0,0,0,0,0,0,0,0,36,0,114,16, + 125,9,124,9,125,10,124,5,128,2,124,9,125,5,89,0, + 100,0,125,9,126,9,140,88,100,0,125,9,126,9,119,1, + 119,0,120,3,89,0,119,1,41,2,78,114,42,0,0,0, + 41,13,114,88,0,0,0,114,184,0,0,0,218,7,101,110, + 118,105,114,111,110,114,12,0,0,0,114,156,0,0,0,114, + 19,0,0,0,114,11,0,0,0,114,17,0,0,0,218,3, + 109,97,112,114,134,0,0,0,218,17,70,105,108,101,78,111, + 116,70,111,117,110,100,69,114,114,111,114,218,18,78,111,116, + 65,68,105,114,101,99,116,111,114,121,69,114,114,111,114,114, + 117,0,0,0,41,11,114,186,0,0,0,114,187,0,0,0, + 114,192,0,0,0,218,9,101,120,101,99,95,102,117,110,99, + 218,7,97,114,103,114,101,115,116,218,9,115,97,118,101,100, + 95,101,120,99,218,9,112,97,116,104,95,108,105,115,116,114, + 33,0,0,0,218,8,102,117,108,108,110,97,109,101,218,1, + 101,218,8,108,97,115,116,95,101,120,99,115,11,0,0,0, + 32,32,32,32,32,32,32,32,32,32,32,114,25,0,0,0, + 114,202,0,0,0,114,202,0,0,0,81,2,0,0,115,231, + 0,0,0,128,0,216,7,10,128,127,220,20,26,136,9,216, + 19,23,152,19,144,43,137,7,228,20,25,136,9,216,19,23, + 144,39,136,7,220,14,21,136,3,228,7,11,135,124,129,124, + 144,68,212,7,25,217,8,17,144,36,208,8,33,152,23,211, + 8,33,216,8,14,216,16,20,128,73,220,16,29,152,99,211, + 16,34,128,73,220,7,11,136,116,130,124,220,15,23,152,4, + 139,126,136,4,220,20,23,156,8,160,41,211,20,44,136,9, + 216,15,24,242,0,9,5,30,136,3,220,19,23,151,57,145, + 57,152,83,160,36,211,19,39,136,8,240,2,7,9,30,217, + 12,21,144,104,208,12,41,160,23,212,12,41,240,7,9,5, + 30,240,20,0,8,17,208,7,28,216,14,23,136,15,216,10, + 18,128,78,248,244,17,0,17,34,212,35,53,208,15,54,242, + 0,1,9,25,216,23,24,141,72,251,220,15,22,242,0,3, + 9,30,216,23,24,136,72,216,15,24,208,15,32,216,28,29, + 144,9,255,248,240,7,3,9,30,250,115,36,0,0,0,194, + 9,9,66,26,2,194,26,15,67,12,5,194,41,2,66,48, + 5,194,48,12,67,12,5,194,60,6,67,7,5,195,7,5, + 67,12,5,99,1,0,0,0,0,0,0,0,0,0,0,0, + 6,0,0,0,3,0,0,0,243,170,1,0,0,151,0,100, + 1,100,2,108,0,125,1,124,0,128,6,116,2,0,0,0, + 0,0,0,0,0,125,0,124,1,106,5,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, + 0,0,0,0,0,53,0,1,0,124,1,106,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, + 3,116,8,0,0,0,0,0,0,0,0,171,2,0,0,0, + 0,0,0,1,0,9,0,124,0,106,11,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,100,4,171, + 1,0,0,0,0,0,0,125,2,116,14,0,0,0,0,0, + 0,0,0,114,50,9,0,124,0,100,5,25,0,0,0,125, + 3,124,2,129,11,116,17,0,0,0,0,0,0,0,0,100, + 6,171,1,0,0,0,0,0,0,130,1,124,3,125,2,124, + 2,129,27,116,21,0,0,0,0,0,0,0,0,124,2,116, + 22,0,0,0,0,0,0,0,0,171,2,0,0,0,0,0, + 0,114,11,116,25,0,0,0,0,0,0,0,0,124,2,171, + 1,0,0,0,0,0,0,125,2,100,2,100,2,100,2,171, + 2,0,0,0,0,0,0,1,0,127,2,128,6,116,26,0, + 0,0,0,0,0,0,0,125,2,124,2,106,29,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, + 30,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, + 0,83,0,35,0,116,12,0,0,0,0,0,0,0,0,36, + 0,114,5,1,0,100,2,125,2,89,0,140,106,119,0,120, + 3,89,0,119,1,35,0,116,18,0,0,0,0,0,0,0, + 0,116,12,0,0,0,0,0,0,0,0,102,2,36,0,114, + 3,1,0,89,0,140,100,119,0,120,3,89,0,119,1,35, + 0,49,0,115,1,119,2,1,0,89,0,1,0,1,0,140, + 76,120,3,89,0,119,1,41,7,122,243,82,101,116,117,114, + 110,115,32,116,104,101,32,115,101,113,117,101,110,99,101,32, + 111,102,32,100,105,114,101,99,116,111,114,105,101,115,32,116, + 104,97,116,32,119,105,108,108,32,98,101,32,115,101,97,114, + 99,104,101,100,32,102,111,114,32,116,104,101,10,32,32,32, + 32,110,97,109,101,100,32,101,120,101,99,117,116,97,98,108, + 101,32,40,115,105,109,105,108,97,114,32,116,111,32,97,32, + 115,104,101,108,108,41,32,119,104,101,110,32,108,97,117,110, + 99,104,105,110,103,32,97,32,112,114,111,99,101,115,115,46, + 10,10,32,32,32,32,42,101,110,118,42,32,109,117,115,116, + 32,98,101,32,97,110,32,101,110,118,105,114,111,110,109,101, + 110,116,32,118,97,114,105,97,98,108,101,32,100,105,99,116, + 32,111,114,32,78,111,110,101,46,32,32,73,102,32,42,101, + 110,118,42,32,105,115,32,78,111,110,101,44,10,32,32,32, + 32,111,115,46,101,110,118,105,114,111,110,32,119,105,108,108, + 32,98,101,32,117,115,101,100,46,10,32,32,32,32,114,2, + 0,0,0,78,218,6,105,103,110,111,114,101,218,4,80,65, + 84,72,115,4,0,0,0,80,65,84,72,122,42,101,110,118, + 32,99,97,110,110,111,116,32,99,111,110,116,97,105,110,32, + 39,80,65,84,72,39,32,97,110,100,32,98,39,80,65,84, + 72,39,32,107,101,121,115,41,16,218,8,119,97,114,110,105, + 110,103,115,114,205,0,0,0,218,14,99,97,116,99,104,95, + 119,97,114,110,105,110,103,115,218,12,115,105,109,112,108,101, + 102,105,108,116,101,114,218,12,66,121,116,101,115,87,97,114, + 110,105,110,103,218,3,103,101,116,218,9,84,121,112,101,69, + 114,114,111,114,218,22,115,117,112,112,111,114,116,115,95,98, + 121,116,101,115,95,101,110,118,105,114,111,110,218,10,86,97, + 108,117,101,69,114,114,111,114,218,8,75,101,121,69,114,114, + 111,114,114,115,0,0,0,114,116,0,0,0,114,18,0,0, + 0,114,10,0,0,0,114,111,0,0,0,114,8,0,0,0, + 41,4,114,192,0,0,0,114,219,0,0,0,114,212,0,0, + 0,218,10,112,97,116,104,95,108,105,115,116,98,115,4,0, + 0,0,32,32,32,32,114,25,0,0,0,114,19,0,0,0, + 114,19,0,0,0,113,2,0,0,115,235,0,0,0,128,0, + 243,20,0,5,20,224,7,10,128,123,220,14,21,136,3,240, + 8,0,10,18,215,9,32,209,9,32,211,9,34,241,0,20, + 5,48,216,8,16,215,8,29,209,8,29,152,104,172,12,212, + 8,53,240,4,3,9,29,216,24,27,159,7,153,7,160,6, + 155,15,136,73,245,8,0,12,34,240,2,8,13,39,216,29, + 32,160,23,153,92,144,10,240,8,0,20,29,208,19,40,220, + 26,36,216,24,68,243,3,1,27,70,1,240,0,1,21,70, + 1,224,28,38,144,9,224,15,24,208,15,36,172,26,176,73, + 188,117,212,41,69,220,28,36,160,89,211,28,47,144,9,247, + 41,20,5,48,240,44,0,8,17,208,7,24,220,20,27,136, + 9,216,11,20,143,63,137,63,156,55,211,11,35,208,4,35, + 248,244,39,0,16,25,242,0,1,9,29,216,24,28,138,73, + 240,3,1,9,29,251,244,12,0,21,29,156,105,208,19,40, + 242,0,1,13,21,217,16,20,240,3,1,13,21,250,247,23, + 20,5,48,240,0,20,5,48,250,115,82,0,0,0,157,23, + 67,9,3,181,17,66,35,2,193,6,6,67,9,3,193,13, + 5,66,52,2,193,18,44,67,9,3,194,35,11,66,49,5, + 194,46,2,67,9,3,194,48,1,66,49,5,194,49,3,67, + 9,3,194,52,15,67,6,5,195,3,2,67,9,3,195,5, + 1,67,6,5,195,6,3,67,9,3,195,9,5,67,18,7, + 41,2,218,14,77,117,116,97,98,108,101,77,97,112,112,105, + 110,103,218,7,77,97,112,112,105,110,103,99,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 243,84,0,0,0,151,0,101,0,90,1,100,0,90,2,100, + 1,132,0,90,3,100,2,132,0,90,4,100,3,132,0,90, + 5,100,4,132,0,90,6,100,5,132,0,90,7,100,6,132, + 0,90,8,100,7,132,0,90,9,100,8,132,0,90,10,100, + 9,132,0,90,11,100,10,132,0,90,12,100,11,132,0,90, + 13,100,12,132,0,90,14,121,13,41,14,218,8,95,69,110, + 118,105,114,111,110,99,6,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,3,0,0,0,243,74,0,0,0,151, + 0,124,2,124,0,95,0,0,0,0,0,0,0,0,0,124, + 3,124,0,95,1,0,0,0,0,0,0,0,0,124,4,124, + 0,95,2,0,0,0,0,0,0,0,0,124,5,124,0,95, + 3,0,0,0,0,0,0,0,0,124,1,124,0,95,4,0, + 0,0,0,0,0,0,0,121,0,114,23,0,0,0,41,5, + 218,9,101,110,99,111,100,101,107,101,121,218,9,100,101,99, + 111,100,101,107,101,121,218,11,101,110,99,111,100,101,118,97, + 108,117,101,218,11,100,101,99,111,100,101,118,97,108,117,101, + 218,5,95,100,97,116,97,41,6,218,4,115,101,108,102,218, + 4,100,97,116,97,114,234,0,0,0,114,235,0,0,0,114, + 236,0,0,0,114,237,0,0,0,115,6,0,0,0,32,32, + 32,32,32,32,114,25,0,0,0,218,8,95,95,105,110,105, + 116,95,95,122,17,95,69,110,118,105,114,111,110,46,95,95, + 105,110,105,116,95,95,161,2,0,0,115,39,0,0,0,128, + 0,216,25,34,136,4,140,14,216,25,34,136,4,140,14,216, + 27,38,136,4,212,8,24,216,27,38,136,4,212,8,24,216, + 21,25,136,4,141,10,114,27,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,148,0,0,0,151,0,9,0,124,0,106,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, + 0,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,1,171,1,0,0,0,0,0,0,25, + 0,0,0,125,2,124,0,106,7,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,2,171,1,0, + 0,0,0,0,0,83,0,35,0,116,4,0,0,0,0,0, + 0,0,0,36,0,114,13,1,0,116,5,0,0,0,0,0, + 0,0,0,124,1,171,1,0,0,0,0,0,0,100,0,130, + 2,119,0,120,3,89,0,119,1,114,23,0,0,0,41,4, + 114,238,0,0,0,114,234,0,0,0,114,227,0,0,0,114, + 237,0,0,0,169,3,114,239,0,0,0,218,3,107,101,121, + 218,5,118,97,108,117,101,115,3,0,0,0,32,32,32,114, + 25,0,0,0,218,11,95,95,103,101,116,105,116,101,109,95, + 95,122,20,95,69,110,118,105,114,111,110,46,95,95,103,101, + 116,105,116,101,109,95,95,168,2,0,0,115,78,0,0,0, + 128,0,240,2,4,9,42,216,20,24,151,74,145,74,152,116, + 159,126,153,126,168,99,211,31,50,209,20,51,136,69,240,8, + 0,16,20,215,15,31,209,15,31,160,5,211,15,38,208,8, + 38,248,244,7,0,16,24,242,0,2,9,42,228,18,26,152, + 51,147,45,160,84,208,12,41,240,5,2,9,42,250,115,9, + 0,0,0,130,30,49,0,177,22,65,7,3,99,3,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,126,0,0,0,151,0,124,0,106,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, + 171,1,0,0,0,0,0,0,125,1,124,0,106,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,60,0,0,0,121,0,114,23,0,0,0,41, - 4,114,233,0,0,0,114,235,0,0,0,218,6,112,117,116, - 101,110,118,114,237,0,0,0,114,242,0,0,0,115,3,0, - 0,0,32,32,32,114,25,0,0,0,218,11,95,95,115,101, - 116,105,116,101,109,95,95,122,20,95,69,110,118,105,114,111, - 110,46,95,95,115,101,116,105,116,101,109,95,95,176,2,0, - 0,115,55,0,0,0,128,0,216,14,18,143,110,137,110,152, - 83,211,14,33,136,3,216,16,20,215,16,32,209,16,32,160, - 21,211,16,39,136,5,220,8,14,136,115,144,69,212,8,26, - 216,26,31,136,4,143,10,137,10,144,51,138,15,114,27,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,138,0,0,0,151,0,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,125,2, - 116,3,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,1,0,9,0,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 61,0,121,0,35,0,116,6,0,0,0,0,0,0,0,0, - 36,0,114,13,1,0,116,7,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,100,0,130,2,119,0, - 120,3,89,0,119,1,114,23,0,0,0,41,4,114,233,0, - 0,0,218,8,117,110,115,101,116,101,110,118,114,237,0,0, - 0,114,226,0,0,0,41,3,114,238,0,0,0,114,243,0, - 0,0,218,10,101,110,99,111,100,101,100,107,101,121,115,3, - 0,0,0,32,32,32,114,25,0,0,0,218,11,95,95,100, - 101,108,105,116,101,109,95,95,122,20,95,69,110,118,105,114, - 111,110,46,95,95,100,101,108,105,116,101,109,95,95,182,2, - 0,0,115,68,0,0,0,128,0,216,21,25,151,94,145,94, - 160,67,211,21,40,136,10,220,8,16,144,26,212,8,28,240, - 2,4,9,42,216,16,20,151,10,145,10,152,58,209,16,38, - 248,220,15,23,242,0,2,9,42,228,18,26,152,51,147,45, - 160,84,208,12,41,240,5,2,9,42,250,115,9,0,0,0, - 158,13,44,0,172,22,65,2,3,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,35,0,0,0,243,106, - 0,0,0,75,0,1,0,151,0,116,1,0,0,0,0,0, + 124,2,171,1,0,0,0,0,0,0,125,2,116,5,0,0, + 0,0,0,0,0,0,124,1,124,2,171,2,0,0,0,0, + 0,0,1,0,124,2,124,0,106,6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,1,60,0, + 0,0,121,0,114,23,0,0,0,41,4,114,234,0,0,0, + 114,236,0,0,0,218,6,112,117,116,101,110,118,114,238,0, + 0,0,114,243,0,0,0,115,3,0,0,0,32,32,32,114, + 25,0,0,0,218,11,95,95,115,101,116,105,116,101,109,95, + 95,122,20,95,69,110,118,105,114,111,110,46,95,95,115,101, + 116,105,116,101,109,95,95,176,2,0,0,115,55,0,0,0, + 128,0,216,14,18,143,110,137,110,152,83,211,14,33,136,3, + 216,16,20,215,16,32,209,16,32,160,21,211,16,39,136,5, + 220,8,14,136,115,144,69,212,8,26,216,26,31,136,4,143, + 10,137,10,144,51,138,15,114,27,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,138,0,0,0,151,0,124,0,106,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, + 171,1,0,0,0,0,0,0,125,2,116,3,0,0,0,0, + 0,0,0,0,124,2,171,1,0,0,0,0,0,0,1,0, + 9,0,124,0,106,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,2,61,0,121,0,35,0, + 116,6,0,0,0,0,0,0,0,0,36,0,114,13,1,0, + 116,7,0,0,0,0,0,0,0,0,124,1,171,1,0,0, + 0,0,0,0,100,0,130,2,119,0,120,3,89,0,119,1, + 114,23,0,0,0,41,4,114,234,0,0,0,218,8,117,110, + 115,101,116,101,110,118,114,238,0,0,0,114,227,0,0,0, + 41,3,114,239,0,0,0,114,244,0,0,0,218,10,101,110, + 99,111,100,101,100,107,101,121,115,3,0,0,0,32,32,32, + 114,25,0,0,0,218,11,95,95,100,101,108,105,116,101,109, + 95,95,122,20,95,69,110,118,105,114,111,110,46,95,95,100, + 101,108,105,116,101,109,95,95,182,2,0,0,115,68,0,0, + 0,128,0,216,21,25,151,94,145,94,160,67,211,21,40,136, + 10,220,8,16,144,26,212,8,28,240,2,4,9,42,216,16, + 20,151,10,145,10,152,58,209,16,38,248,220,15,23,242,0, + 2,9,42,228,18,26,152,51,147,45,160,84,208,12,41,240, + 5,2,9,42,250,115,9,0,0,0,158,13,44,0,172,22, + 65,2,3,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,35,0,0,0,243,106,0,0,0,75,0,1, + 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,106, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,171,1,0,0,0,0,0,0,125,1,124,1,68, + 0,93,21,0,0,125,2,124,0,106,5,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,171, + 1,0,0,0,0,0,0,150,1,151,1,1,0,140,23,4, + 0,121,0,173,3,119,1,114,23,0,0,0,41,3,114,30, + 0,0,0,114,238,0,0,0,114,235,0,0,0,41,3,114, + 239,0,0,0,218,4,107,101,121,115,114,244,0,0,0,115, + 3,0,0,0,32,32,32,114,25,0,0,0,218,8,95,95, + 105,116,101,114,95,95,122,17,95,69,110,118,105,114,111,110, + 46,95,95,105,116,101,114,95,95,191,2,0,0,115,50,0, + 0,0,232,0,248,128,0,228,15,19,144,68,151,74,145,74, + 211,15,31,136,4,216,19,23,242,0,1,9,38,136,67,216, + 18,22,151,46,145,46,160,19,211,18,37,211,12,37,241,3, + 1,9,38,249,115,4,0,0,0,130,49,51,1,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,243,44,0,0,0,151,0,116,1,0,0,0,0,0, 0,0,0,124,0,106,2,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,125,1,124,1,68,0,93,21,0,0,125,2,124,0,106, - 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,150,1,151, - 1,1,0,140,23,4,0,121,0,173,3,119,1,114,23,0, - 0,0,41,3,114,30,0,0,0,114,237,0,0,0,114,234, - 0,0,0,41,3,114,238,0,0,0,218,4,107,101,121,115, - 114,243,0,0,0,115,3,0,0,0,32,32,32,114,25,0, - 0,0,218,8,95,95,105,116,101,114,95,95,122,17,95,69, - 110,118,105,114,111,110,46,95,95,105,116,101,114,95,95,191, - 2,0,0,115,50,0,0,0,232,0,248,128,0,228,15,19, - 144,68,151,74,145,74,211,15,31,136,4,216,19,23,242,0, - 1,9,38,136,67,216,18,22,151,46,145,46,160,19,211,18, - 37,211,12,37,241,3,1,9,38,249,115,4,0,0,0,130, - 49,51,1,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,44,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,83,0,114,23,0,0,0,41,2, - 218,3,108,101,110,114,237,0,0,0,169,1,114,238,0,0, - 0,115,1,0,0,0,32,114,25,0,0,0,218,7,95,95, - 108,101,110,95,95,122,16,95,69,110,118,105,114,111,110,46, - 95,95,108,101,110,95,95,197,2,0,0,115,16,0,0,0, - 128,0,220,15,18,144,52,151,58,145,58,139,127,208,8,30, - 114,27,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,5,0,0,0,3,0,0,0,243,116,0,0,0,135, - 0,151,0,100,1,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,136,0,102,1,100,2,132, - 8,137,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,68,0,171,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,125,1,100,3,124,1,155,0,100,4,157, - 3,83,0,41,5,78,122,2,44,32,99,1,0,0,0,0, - 0,0,0,0,0,0,0,6,0,0,0,51,0,0,0,243, - 110,0,0,0,149,1,75,0,1,0,151,0,124,0,93,44, - 0,0,92,2,0,0,125,1,125,2,137,3,106,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,155,2,100,0,137,3, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,2,171,1,0,0,0,0,0,0,155,2, - 157,3,150,1,151,1,1,0,140,46,4,0,121,1,173,3, - 119,1,41,2,122,2,58,32,78,41,2,114,234,0,0,0, - 114,236,0,0,0,41,4,218,2,46,48,114,243,0,0,0, - 114,244,0,0,0,114,238,0,0,0,115,4,0,0,0,32, - 32,32,128,114,25,0,0,0,250,9,60,103,101,110,101,120, - 112,114,62,122,36,95,69,110,118,105,114,111,110,46,95,95, - 114,101,112,114,95,95,46,60,108,111,99,97,108,115,62,46, - 60,103,101,110,101,120,112,114,62,201,2,0,0,115,62,0, - 0,0,248,232,0,248,128,0,242,0,3,36,10,225,16,26, - 144,3,144,85,240,3,0,16,20,143,126,137,126,152,99,211, - 15,34,208,14,37,160,82,168,4,215,40,56,209,40,56,184, - 21,211,40,63,208,39,66,212,12,67,241,3,3,36,10,249, - 115,4,0,0,0,131,50,53,1,122,9,101,110,118,105,114, - 111,110,40,123,122,2,125,41,41,3,114,134,0,0,0,114, - 237,0,0,0,218,5,105,116,101,109,115,41,2,114,238,0, - 0,0,218,15,102,111,114,109,97,116,116,101,100,95,105,116, - 101,109,115,115,2,0,0,0,96,32,114,25,0,0,0,218, - 8,95,95,114,101,112,114,95,95,122,17,95,69,110,118,105, - 114,111,110,46,95,95,114,101,112,114,95,95,200,2,0,0, - 115,61,0,0,0,248,128,0,216,26,30,159,41,153,41,243, - 0,3,36,10,224,30,34,159,106,153,106,215,30,46,209,30, - 46,211,30,48,244,5,3,36,10,243,0,3,27,10,136,15, - 240,8,0,18,28,152,79,208,27,44,168,67,208,15,48,208, - 8,48,114,27,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,243,24,0,0, - 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,83,0,114,23,0,0,0,41,1, - 218,4,100,105,99,116,114,2,1,0,0,115,1,0,0,0, - 32,114,25,0,0,0,218,4,99,111,112,121,122,13,95,69, - 110,118,105,114,111,110,46,99,111,112,121,207,2,0,0,115, - 12,0,0,0,128,0,220,15,19,144,68,139,122,208,8,25, - 114,27,0,0,0,99,3,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,30,0,0,0,151, - 0,124,1,124,0,118,1,114,5,124,2,124,0,124,1,60, - 0,0,0,124,0,124,1,25,0,0,0,83,0,114,23,0, - 0,0,169,0,114,242,0,0,0,115,3,0,0,0,32,32, - 32,114,25,0,0,0,218,10,115,101,116,100,101,102,97,117, - 108,116,122,19,95,69,110,118,105,114,111,110,46,115,101,116, - 100,101,102,97,117,108,116,210,2,0,0,115,28,0,0,0, - 128,0,216,11,14,144,100,137,63,216,24,29,136,68,144,19, - 137,73,216,15,19,144,67,137,121,208,8,24,114,27,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,243,40,0,0,0,151,0,124,0,106, + 0,83,0,114,23,0,0,0,41,2,218,3,108,101,110,114, + 238,0,0,0,169,1,114,239,0,0,0,115,1,0,0,0, + 32,114,25,0,0,0,218,7,95,95,108,101,110,95,95,122, + 16,95,69,110,118,105,114,111,110,46,95,95,108,101,110,95, + 95,197,2,0,0,115,16,0,0,0,128,0,220,15,18,144, + 52,151,58,145,58,139,127,208,8,30,114,27,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 3,0,0,0,243,116,0,0,0,135,0,151,0,100,1,106, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,1,0,124, - 0,83,0,114,23,0,0,0,41,1,218,6,117,112,100,97, - 116,101,41,2,114,238,0,0,0,218,5,111,116,104,101,114, - 115,2,0,0,0,32,32,114,25,0,0,0,218,7,95,95, - 105,111,114,95,95,122,16,95,69,110,118,105,114,111,110,46, - 95,95,105,111,114,95,95,215,2,0,0,115,19,0,0,0, - 128,0,216,8,12,143,11,137,11,144,69,212,8,26,216,15, - 19,136,11,114,27,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,106,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,1, - 116,2,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,115,6,116,4,0,0,0,0,0,0,0,0,83,0, - 116,7,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,2,124,2,106,9,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,1,0,124,2,83,0,114,23,0,0, - 0,169,5,114,115,0,0,0,114,229,0,0,0,218,14,78, - 111,116,73,109,112,108,101,109,101,110,116,101,100,114,12,1, - 0,0,114,18,1,0,0,169,3,114,238,0,0,0,114,19, - 1,0,0,114,127,0,0,0,115,3,0,0,0,32,32,32, - 114,25,0,0,0,218,6,95,95,111,114,95,95,122,15,95, - 69,110,118,105,114,111,110,46,95,95,111,114,95,95,219,2, - 0,0,115,44,0,0,0,128,0,220,15,25,152,37,164,23, - 212,15,41,220,19,33,208,12,33,220,14,18,144,52,139,106, - 136,3,216,8,11,143,10,137,10,144,53,212,8,25,216,15, - 18,136,10,114,27,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,106,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,1, - 116,2,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,115,6,116,4,0,0,0,0,0,0,0,0,83,0, - 116,7,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,125,2,124,2,106,9,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,1,0,124,2,83,0,114,23,0,0, - 0,114,22,1,0,0,114,24,1,0,0,115,3,0,0,0, - 32,32,32,114,25,0,0,0,218,7,95,95,114,111,114,95, - 95,122,16,95,69,110,118,105,114,111,110,46,95,95,114,111, - 114,95,95,226,2,0,0,115,44,0,0,0,128,0,220,15, - 25,152,37,164,23,212,15,41,220,19,33,208,12,33,220,14, - 18,144,53,139,107,136,3,216,8,11,143,10,137,10,144,52, - 212,8,24,216,15,18,136,10,114,27,0,0,0,78,41,15, - 218,8,95,95,110,97,109,101,95,95,218,10,95,95,109,111, - 100,117,108,101,95,95,218,12,95,95,113,117,97,108,110,97, - 109,101,95,95,114,240,0,0,0,114,245,0,0,0,114,248, - 0,0,0,114,252,0,0,0,114,255,0,0,0,114,3,1, - 0,0,114,10,1,0,0,114,13,1,0,0,114,16,1,0, - 0,114,20,1,0,0,114,25,1,0,0,114,27,1,0,0, - 114,15,1,0,0,114,27,0,0,0,114,25,0,0,0,114, - 231,0,0,0,114,231,0,0,0,160,2,0,0,115,62,0, - 0,0,132,0,242,2,5,5,26,242,14,6,5,39,242,16, - 4,5,32,242,12,7,5,42,242,18,4,5,38,242,12,1, - 5,31,242,6,5,5,49,242,14,1,5,26,242,6,3,5, - 25,242,10,2,5,20,242,8,5,5,19,243,14,5,5,19, - 114,27,0,0,0,114,231,0,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,243, - 246,0,0,0,135,6,135,7,151,0,116,0,0,0,0,0, - 0,0,0,0,100,1,107,40,0,0,114,58,100,2,132,0, - 125,0,124,0,138,6,116,2,0,0,0,0,0,0,0,0, - 125,1,136,6,102,1,100,3,132,8,125,2,105,0,125,3, - 116,4,0,0,0,0,0,0,0,0,106,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,68,0,93,16,0,0,92,2,0,0, - 125,4,125,5,124,5,124,3,2,0,124,2,124,4,171,1, - 0,0,0,0,0,0,60,0,0,0,140,18,4,0,110,38, - 116,9,0,0,0,0,0,0,0,0,106,10,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,138,7,136,7,102,1,100,4,132,8, - 138,6,136,7,102,1,100,5,132,8,125,1,137,6,125,2, - 116,4,0,0,0,0,0,0,0,0,125,3,116,13,0,0, - 0,0,0,0,0,0,124,3,124,2,124,1,137,6,124,1, - 171,5,0,0,0,0,0,0,83,0,41,6,78,114,42,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,19,0,0,0,243,104,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,116,2,0,0,0,0, - 0,0,0,0,171,2,0,0,0,0,0,0,115,33,116,5, - 0,0,0,0,0,0,0,0,100,1,116,7,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,106,8, + 0,0,0,136,0,102,1,100,2,132,8,137,0,106,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,6,0,0,171,1,0,0,0,0,0,0,130,1, - 124,0,83,0,41,2,78,250,20,115,116,114,32,101,120,112, - 101,99,116,101,100,44,32,110,111,116,32,37,115,41,5,114, - 115,0,0,0,114,47,0,0,0,114,223,0,0,0,218,4, - 116,121,112,101,114,28,1,0,0,169,1,114,244,0,0,0, - 115,1,0,0,0,32,114,25,0,0,0,218,9,99,104,101, - 99,107,95,115,116,114,122,33,95,99,114,101,97,116,101,101, - 110,118,105,114,111,110,46,60,108,111,99,97,108,115,62,46, - 99,104,101,99,107,95,115,116,114,236,2,0,0,115,44,0, - 0,0,128,0,220,19,29,152,101,164,83,212,19,41,220,22, - 31,208,32,54,188,20,184,101,187,27,215,57,77,209,57,77, - 209,32,77,211,22,78,208,16,78,216,19,24,136,76,114,27, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,19,0,0,0,243,48,0,0,0,149,1,151, - 0,2,0,137,1,124,0,171,1,0,0,0,0,0,0,106, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,83,0,114,23,0, - 0,0,41,1,218,5,117,112,112,101,114,41,2,114,243,0, - 0,0,218,6,101,110,99,111,100,101,115,2,0,0,0,32, - 128,114,25,0,0,0,114,233,0,0,0,122,33,95,99,114, - 101,97,116,101,101,110,118,105,114,111,110,46,60,108,111,99, - 97,108,115,62,46,101,110,99,111,100,101,107,101,121,242,2, - 0,0,115,22,0,0,0,248,128,0,217,19,25,152,35,147, - 59,215,19,36,209,19,36,211,19,38,208,12,38,114,27,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,19,0,0,0,243,138,0,0,0,149,1,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,116,2,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,33, - 116,5,0,0,0,0,0,0,0,0,100,1,116,7,0,0, + 0,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,171,0,0,0,0,0,0,0,68,0,171, + 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,125, + 1,100,3,124,1,155,0,100,4,157,3,83,0,41,5,78, + 122,2,44,32,99,1,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,51,0,0,0,243,110,0,0,0,149,1, + 75,0,1,0,151,0,124,0,93,44,0,0,92,2,0,0, + 125,1,125,2,137,3,106,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, + 0,0,0,0,155,2,100,0,137,3,106,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, + 171,1,0,0,0,0,0,0,155,2,157,3,150,1,151,1, + 1,0,140,46,4,0,121,1,173,3,119,1,41,2,122,2, + 58,32,78,41,2,114,235,0,0,0,114,237,0,0,0,41, + 4,218,2,46,48,114,244,0,0,0,114,245,0,0,0,114, + 239,0,0,0,115,4,0,0,0,32,32,32,128,114,25,0, + 0,0,250,9,60,103,101,110,101,120,112,114,62,122,36,95, + 69,110,118,105,114,111,110,46,95,95,114,101,112,114,95,95, + 46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,120, + 112,114,62,201,2,0,0,115,62,0,0,0,248,232,0,248, + 128,0,242,0,3,36,10,225,16,26,144,3,144,85,240,3, + 0,16,20,143,126,137,126,152,99,211,15,34,208,14,37,160, + 82,168,4,215,40,56,209,40,56,184,21,211,40,63,208,39, + 66,212,12,67,241,3,3,36,10,249,115,4,0,0,0,131, + 50,53,1,122,9,101,110,118,105,114,111,110,40,123,122,2, + 125,41,41,3,114,134,0,0,0,114,238,0,0,0,218,5, + 105,116,101,109,115,41,2,114,239,0,0,0,218,15,102,111, + 114,109,97,116,116,101,100,95,105,116,101,109,115,115,2,0, + 0,0,96,32,114,25,0,0,0,218,8,95,95,114,101,112, + 114,95,95,122,17,95,69,110,118,105,114,111,110,46,95,95, + 114,101,112,114,95,95,200,2,0,0,115,61,0,0,0,248, + 128,0,216,26,30,159,41,153,41,243,0,3,36,10,224,30, + 34,159,106,153,106,215,30,46,209,30,46,211,30,48,244,5, + 3,36,10,243,0,3,27,10,136,15,240,8,0,18,28,152, + 79,208,27,44,168,67,208,15,48,208,8,48,114,27,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,243,24,0,0,0,151,0,116,1,0, + 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, + 0,83,0,114,23,0,0,0,41,1,218,4,100,105,99,116, + 114,3,1,0,0,115,1,0,0,0,32,114,25,0,0,0, + 218,4,99,111,112,121,122,13,95,69,110,118,105,114,111,110, + 46,99,111,112,121,207,2,0,0,115,12,0,0,0,128,0, + 220,15,19,144,68,139,122,208,8,25,114,27,0,0,0,99, + 3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,30,0,0,0,151,0,124,1,124,0,118, + 1,114,5,124,2,124,0,124,1,60,0,0,0,124,0,124, + 1,25,0,0,0,83,0,114,23,0,0,0,169,0,114,243, + 0,0,0,115,3,0,0,0,32,32,32,114,25,0,0,0, + 218,10,115,101,116,100,101,102,97,117,108,116,122,19,95,69, + 110,118,105,114,111,110,46,115,101,116,100,101,102,97,117,108, + 116,210,2,0,0,115,28,0,0,0,128,0,216,11,14,144, + 100,137,63,216,24,29,136,68,144,19,137,73,216,15,19,144, + 67,137,121,208,8,24,114,27,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, + 243,40,0,0,0,151,0,124,0,106,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, + 1,0,0,0,0,0,0,1,0,124,0,83,0,114,23,0, + 0,0,41,1,218,6,117,112,100,97,116,101,41,2,114,239, + 0,0,0,218,5,111,116,104,101,114,115,2,0,0,0,32, + 32,114,25,0,0,0,218,7,95,95,105,111,114,95,95,122, + 16,95,69,110,118,105,114,111,110,46,95,95,105,111,114,95, + 95,215,2,0,0,115,19,0,0,0,128,0,216,8,12,143, + 11,137,11,144,69,212,8,26,216,15,19,136,11,114,27,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,106,0,0,0,151,0,116,1, + 0,0,0,0,0,0,0,0,124,1,116,2,0,0,0,0, + 0,0,0,0,171,2,0,0,0,0,0,0,115,6,116,4, + 0,0,0,0,0,0,0,0,83,0,116,7,0,0,0,0, + 0,0,0,0,124,0,171,1,0,0,0,0,0,0,125,2, + 124,2,106,9,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, + 1,0,124,2,83,0,114,23,0,0,0,169,5,114,115,0, + 0,0,114,230,0,0,0,218,14,78,111,116,73,109,112,108, + 101,109,101,110,116,101,100,114,13,1,0,0,114,19,1,0, + 0,169,3,114,239,0,0,0,114,20,1,0,0,114,127,0, + 0,0,115,3,0,0,0,32,32,32,114,25,0,0,0,218, + 6,95,95,111,114,95,95,122,15,95,69,110,118,105,114,111, + 110,46,95,95,111,114,95,95,219,2,0,0,115,44,0,0, + 0,128,0,220,15,25,152,37,164,23,212,15,41,220,19,33, + 208,12,33,220,14,18,144,52,139,106,136,3,216,8,11,143, + 10,137,10,144,53,212,8,25,216,15,18,136,10,114,27,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,106,0,0,0,151,0,116,1, + 0,0,0,0,0,0,0,0,124,1,116,2,0,0,0,0, + 0,0,0,0,171,2,0,0,0,0,0,0,115,6,116,4, + 0,0,0,0,0,0,0,0,83,0,116,7,0,0,0,0, + 0,0,0,0,124,1,171,1,0,0,0,0,0,0,125,2, + 124,2,106,9,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,122,6,0,0,171,1,0,0,0,0,0,0, - 130,1,124,0,106,11,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,137,1,100,2,171,2,0,0, - 0,0,0,0,83,0,41,3,78,114,33,1,0,0,218,15, - 115,117,114,114,111,103,97,116,101,101,115,99,97,112,101,41, - 6,114,115,0,0,0,114,47,0,0,0,114,223,0,0,0, - 114,34,1,0,0,114,28,1,0,0,114,39,1,0,0,169, - 2,114,244,0,0,0,218,8,101,110,99,111,100,105,110,103, - 115,2,0,0,0,32,128,114,25,0,0,0,114,39,1,0, - 0,122,30,95,99,114,101,97,116,101,101,110,118,105,114,111, - 110,46,60,108,111,99,97,108,115,62,46,101,110,99,111,100, - 101,250,2,0,0,115,58,0,0,0,248,128,0,220,19,29, - 152,101,164,83,212,19,41,220,22,31,208,32,54,188,20,184, - 101,187,27,215,57,77,209,57,77,209,32,77,211,22,78,208, - 16,78,216,19,24,151,60,145,60,160,8,208,42,59,211,19, - 60,208,12,60,114,27,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,19,0,0,0,243,40, - 0,0,0,149,1,151,0,124,0,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,137,1,100, - 1,171,2,0,0,0,0,0,0,83,0,41,2,78,114,41, - 1,0,0,41,1,218,6,100,101,99,111,100,101,114,42,1, - 0,0,115,2,0,0,0,32,128,114,25,0,0,0,114,45, - 1,0,0,122,30,95,99,114,101,97,116,101,101,110,118,105, - 114,111,110,46,60,108,111,99,97,108,115,62,46,100,101,99, - 111,100,101,254,2,0,0,115,21,0,0,0,248,128,0,216, - 19,24,151,60,145,60,160,8,208,42,59,211,19,60,208,12, - 60,114,27,0,0,0,41,7,114,11,0,0,0,114,47,0, - 0,0,114,204,0,0,0,114,8,1,0,0,114,130,0,0, - 0,218,21,103,101,116,102,105,108,101,115,121,115,116,101,109, - 101,110,99,111,100,105,110,103,114,231,0,0,0,41,8,114, - 36,1,0,0,114,45,1,0,0,114,233,0,0,0,114,239, - 0,0,0,114,243,0,0,0,114,244,0,0,0,114,39,1, - 0,0,114,43,1,0,0,115,8,0,0,0,32,32,32,32, - 32,32,64,64,114,25,0,0,0,218,14,95,99,114,101,97, - 116,101,101,110,118,105,114,111,110,114,47,1,0,0,233,2, - 0,0,115,137,0,0,0,249,128,0,220,7,11,136,116,130, - 124,242,4,3,9,25,240,8,0,18,27,136,6,220,17,20, - 136,6,244,2,1,9,39,224,15,17,136,4,220,26,33,159, - 45,153,45,155,47,242,0,1,9,41,137,74,136,67,144,21, - 216,35,40,136,68,145,25,152,51,147,30,210,12,32,241,3, - 1,9,41,244,8,0,20,23,215,19,44,209,19,44,211,19, - 46,136,8,244,2,3,9,61,244,8,1,9,61,224,20,26, - 136,9,220,15,22,136,4,220,11,19,144,68,216,8,17,144, - 54,216,8,14,144,6,243,5,2,12,24,240,0,2,5,24, - 114,27,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,46,0,0,0,151, - 0,116,0,0,0,0,0,0,0,0,0,106,3,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,124,1,171,2,0,0,0,0,0,0,83,0,41,1,122, - 169,71,101,116,32,97,110,32,101,110,118,105,114,111,110,109, - 101,110,116,32,118,97,114,105,97,98,108,101,44,32,114,101, - 116,117,114,110,32,78,111,110,101,32,105,102,32,105,116,32, - 100,111,101,115,110,39,116,32,101,120,105,115,116,46,10,32, - 32,32,32,84,104,101,32,111,112,116,105,111,110,97,108,32, - 115,101,99,111,110,100,32,97,114,103,117,109,101,110,116,32, - 99,97,110,32,115,112,101,99,105,102,121,32,97,110,32,97, - 108,116,101,114,110,97,116,101,32,100,101,102,97,117,108,116, - 46,10,32,32,32,32,107,101,121,44,32,100,101,102,97,117, - 108,116,32,97,110,100,32,116,104,101,32,114,101,115,117,108, - 116,32,97,114,101,32,115,116,114,46,41,2,114,204,0,0, - 0,114,222,0,0,0,169,2,114,243,0,0,0,218,7,100, - 101,102,97,117,108,116,115,2,0,0,0,32,32,114,25,0, - 0,0,218,6,103,101,116,101,110,118,114,51,1,0,0,11, - 3,0,0,115,21,0,0,0,128,0,244,8,0,12,19,143, - 59,137,59,144,115,152,71,211,11,36,208,4,36,114,27,0, - 0,0,41,2,114,51,1,0,0,114,224,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, - 0,0,0,243,104,0,0,0,151,0,116,1,0,0,0,0, + 1,0,124,2,83,0,114,23,0,0,0,114,23,1,0,0, + 114,25,1,0,0,115,3,0,0,0,32,32,32,114,25,0, + 0,0,218,7,95,95,114,111,114,95,95,122,16,95,69,110, + 118,105,114,111,110,46,95,95,114,111,114,95,95,226,2,0, + 0,115,44,0,0,0,128,0,220,15,25,152,37,164,23,212, + 15,41,220,19,33,208,12,33,220,14,18,144,53,139,107,136, + 3,216,8,11,143,10,137,10,144,52,212,8,24,216,15,18, + 136,10,114,27,0,0,0,78,41,15,218,8,95,95,110,97, + 109,101,95,95,218,10,95,95,109,111,100,117,108,101,95,95, + 218,12,95,95,113,117,97,108,110,97,109,101,95,95,114,241, + 0,0,0,114,246,0,0,0,114,249,0,0,0,114,253,0, + 0,0,114,0,1,0,0,114,4,1,0,0,114,11,1,0, + 0,114,14,1,0,0,114,17,1,0,0,114,21,1,0,0, + 114,26,1,0,0,114,28,1,0,0,114,16,1,0,0,114, + 27,0,0,0,114,25,0,0,0,114,232,0,0,0,114,232, + 0,0,0,160,2,0,0,115,62,0,0,0,132,0,242,2, + 5,5,26,242,14,6,5,39,242,16,4,5,32,242,12,7, + 5,42,242,18,4,5,38,242,12,1,5,31,242,6,5,5, + 49,242,14,1,5,26,242,6,3,5,25,242,10,2,5,20, + 242,8,5,5,19,243,14,5,5,19,114,27,0,0,0,114, + 232,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,7,0,0,0,3,0,0,0,243,246,0,0,0,135,6, + 135,7,151,0,116,0,0,0,0,0,0,0,0,0,100,1, + 107,40,0,0,114,58,100,2,132,0,125,0,124,0,138,6, + 116,2,0,0,0,0,0,0,0,0,125,1,136,6,102,1, + 100,3,132,8,125,2,105,0,125,3,116,4,0,0,0,0, + 0,0,0,0,106,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, + 68,0,93,16,0,0,92,2,0,0,125,4,125,5,124,5, + 124,3,2,0,124,2,124,4,171,1,0,0,0,0,0,0, + 60,0,0,0,140,18,4,0,110,38,116,9,0,0,0,0, + 0,0,0,0,106,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, + 138,7,136,7,102,1,100,4,132,8,138,6,136,7,102,1, + 100,5,132,8,125,1,137,6,125,2,116,4,0,0,0,0, + 0,0,0,0,125,3,116,13,0,0,0,0,0,0,0,0, + 124,3,124,2,124,1,137,6,124,1,171,5,0,0,0,0, + 0,0,83,0,41,6,78,114,42,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,6,0,0,0,19,0,0, + 0,243,104,0,0,0,151,0,116,1,0,0,0,0,0,0, + 0,0,124,0,116,2,0,0,0,0,0,0,0,0,171,2, + 0,0,0,0,0,0,115,33,116,5,0,0,0,0,0,0, + 0,0,100,1,116,7,0,0,0,0,0,0,0,0,124,0, + 171,1,0,0,0,0,0,0,106,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,122,6,0,0, + 171,1,0,0,0,0,0,0,130,1,124,0,83,0,41,2, + 78,250,20,115,116,114,32,101,120,112,101,99,116,101,100,44, + 32,110,111,116,32,37,115,41,5,114,115,0,0,0,114,47, + 0,0,0,114,224,0,0,0,218,4,116,121,112,101,114,29, + 1,0,0,169,1,114,245,0,0,0,115,1,0,0,0,32, + 114,25,0,0,0,218,9,99,104,101,99,107,95,115,116,114, + 122,33,95,99,114,101,97,116,101,101,110,118,105,114,111,110, + 46,60,108,111,99,97,108,115,62,46,99,104,101,99,107,95, + 115,116,114,236,2,0,0,115,44,0,0,0,128,0,220,19, + 29,152,101,164,83,212,19,41,220,22,31,208,32,54,188,20, + 184,101,187,27,215,57,77,209,57,77,209,32,77,211,22,78, + 208,16,78,216,19,24,136,76,114,27,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,19,0, + 0,0,243,48,0,0,0,149,1,151,0,2,0,137,1,124, + 0,171,1,0,0,0,0,0,0,106,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, + 0,0,0,0,0,83,0,114,23,0,0,0,41,1,218,5, + 117,112,112,101,114,41,2,114,244,0,0,0,218,6,101,110, + 99,111,100,101,115,2,0,0,0,32,128,114,25,0,0,0, + 114,234,0,0,0,122,33,95,99,114,101,97,116,101,101,110, + 118,105,114,111,110,46,60,108,111,99,97,108,115,62,46,101, + 110,99,111,100,101,107,101,121,242,2,0,0,115,22,0,0, + 0,248,128,0,217,19,25,152,35,147,59,215,19,36,209,19, + 36,211,19,38,208,12,38,114,27,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,6,0,0,0,19,0,0, + 0,243,138,0,0,0,149,1,151,0,116,1,0,0,0,0, 0,0,0,0,124,0,116,2,0,0,0,0,0,0,0,0, 171,2,0,0,0,0,0,0,115,33,116,5,0,0,0,0, 0,0,0,0,100,1,116,7,0,0,0,0,0,0,0,0, 124,0,171,1,0,0,0,0,0,0,106,8,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,6, - 0,0,171,1,0,0,0,0,0,0,130,1,124,0,83,0, - 41,2,78,122,22,98,121,116,101,115,32,101,120,112,101,99, - 116,101,100,44,32,110,111,116,32,37,115,41,5,114,115,0, - 0,0,114,116,0,0,0,114,223,0,0,0,114,34,1,0, - 0,114,28,1,0,0,114,35,1,0,0,115,1,0,0,0, - 32,114,25,0,0,0,218,12,95,99,104,101,99,107,95,98, - 121,116,101,115,114,53,1,0,0,21,3,0,0,115,44,0, - 0,0,128,0,220,15,25,152,37,164,21,212,15,39,220,18, - 27,208,28,52,180,116,184,69,179,123,215,55,75,209,55,75, - 209,28,75,211,18,76,208,12,76,216,15,20,136,12,114,27, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,46,0,0,0,151,0,116, - 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,124, - 1,171,2,0,0,0,0,0,0,83,0,41,1,122,179,71, - 101,116,32,97,110,32,101,110,118,105,114,111,110,109,101,110, - 116,32,118,97,114,105,97,98,108,101,44,32,114,101,116,117, - 114,110,32,78,111,110,101,32,105,102,32,105,116,32,100,111, - 101,115,110,39,116,32,101,120,105,115,116,46,10,32,32,32, - 32,32,32,32,32,84,104,101,32,111,112,116,105,111,110,97, - 108,32,115,101,99,111,110,100,32,97,114,103,117,109,101,110, - 116,32,99,97,110,32,115,112,101,99,105,102,121,32,97,110, - 32,97,108,116,101,114,110,97,116,101,32,100,101,102,97,117, - 108,116,46,10,32,32,32,32,32,32,32,32,107,101,121,44, - 32,100,101,102,97,117,108,116,32,97,110,100,32,116,104,101, - 32,114,101,115,117,108,116,32,97,114,101,32,98,121,116,101, - 115,46,41,2,218,8,101,110,118,105,114,111,110,98,114,222, - 0,0,0,114,49,1,0,0,115,2,0,0,0,32,32,114, - 25,0,0,0,218,7,103,101,116,101,110,118,98,114,56,1, - 0,0,32,3,0,0,115,21,0,0,0,128,0,244,8,0, - 16,24,143,124,137,124,152,67,160,23,211,15,41,208,8,41, - 114,27,0,0,0,41,2,114,55,1,0,0,114,56,1,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,3,0,0,0,243,118,0,0,0,135,2,135,3,151, - 0,116,1,0,0,0,0,0,0,0,0,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,138,2,116,1,0,0,0,0,0, - 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,138, - 3,136,2,136,3,102,2,100,1,132,8,125,0,136,2,136, - 3,102,2,100,2,132,8,125,1,124,0,124,1,102,2,83, - 0,41,3,78,99,1,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,19,0,0,0,243,98,0,0,0,149,2, - 151,0,116,1,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,125,0,116,3,0,0,0,0,0,0, - 0,0,124,0,116,4,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,114,18,124,0,106,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,1, - 137,2,171,2,0,0,0,0,0,0,83,0,124,0,83,0, - 41,1,97,23,1,0,0,69,110,99,111,100,101,32,102,105, - 108,101,110,97,109,101,32,40,97,110,32,111,115,46,80,97, - 116,104,76,105,107,101,44,32,98,121,116,101,115,44,32,111, - 114,32,115,116,114,41,32,116,111,32,116,104,101,32,102,105, + 0,0,171,1,0,0,0,0,0,0,130,1,124,0,106,11, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,137,1,100,2,171,2,0,0,0,0,0,0,83,0, + 41,3,78,114,34,1,0,0,218,15,115,117,114,114,111,103, + 97,116,101,101,115,99,97,112,101,41,6,114,115,0,0,0, + 114,47,0,0,0,114,224,0,0,0,114,35,1,0,0,114, + 29,1,0,0,114,40,1,0,0,169,2,114,245,0,0,0, + 218,8,101,110,99,111,100,105,110,103,115,2,0,0,0,32, + 128,114,25,0,0,0,114,40,1,0,0,122,30,95,99,114, + 101,97,116,101,101,110,118,105,114,111,110,46,60,108,111,99, + 97,108,115,62,46,101,110,99,111,100,101,250,2,0,0,115, + 58,0,0,0,248,128,0,220,19,29,152,101,164,83,212,19, + 41,220,22,31,208,32,54,188,20,184,101,187,27,215,57,77, + 209,57,77,209,32,77,211,22,78,208,16,78,216,19,24,151, + 60,145,60,160,8,208,42,59,211,19,60,208,12,60,114,27, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,19,0,0,0,243,40,0,0,0,149,1,151, + 0,124,0,106,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,137,1,100,1,171,2,0,0,0, + 0,0,0,83,0,41,2,78,114,42,1,0,0,41,1,218, + 6,100,101,99,111,100,101,114,43,1,0,0,115,2,0,0, + 0,32,128,114,25,0,0,0,114,46,1,0,0,122,30,95, + 99,114,101,97,116,101,101,110,118,105,114,111,110,46,60,108, + 111,99,97,108,115,62,46,100,101,99,111,100,101,254,2,0, + 0,115,21,0,0,0,248,128,0,216,19,24,151,60,145,60, + 160,8,208,42,59,211,19,60,208,12,60,114,27,0,0,0, + 41,7,114,11,0,0,0,114,47,0,0,0,114,205,0,0, + 0,114,9,1,0,0,114,130,0,0,0,218,21,103,101,116, + 102,105,108,101,115,121,115,116,101,109,101,110,99,111,100,105, + 110,103,114,232,0,0,0,41,8,114,37,1,0,0,114,46, + 1,0,0,114,234,0,0,0,114,240,0,0,0,114,244,0, + 0,0,114,245,0,0,0,114,40,1,0,0,114,44,1,0, + 0,115,8,0,0,0,32,32,32,32,32,32,64,64,114,25, + 0,0,0,218,14,95,99,114,101,97,116,101,101,110,118,105, + 114,111,110,114,48,1,0,0,233,2,0,0,115,137,0,0, + 0,249,128,0,220,7,11,136,116,130,124,242,4,3,9,25, + 240,8,0,18,27,136,6,220,17,20,136,6,244,2,1,9, + 39,224,15,17,136,4,220,26,33,159,45,153,45,155,47,242, + 0,1,9,41,137,74,136,67,144,21,216,35,40,136,68,145, + 25,152,51,147,30,210,12,32,241,3,1,9,41,244,8,0, + 20,23,215,19,44,209,19,44,211,19,46,136,8,244,2,3, + 9,61,244,8,1,9,61,224,20,26,136,9,220,15,22,136, + 4,220,11,19,144,68,216,8,17,144,54,216,8,14,144,6, + 243,5,2,12,24,240,0,2,5,24,114,27,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,46,0,0,0,151,0,116,0,0,0,0, + 0,0,0,0,0,106,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,0,124,1,171,2,0, + 0,0,0,0,0,83,0,41,1,122,169,71,101,116,32,97, + 110,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97, + 114,105,97,98,108,101,44,32,114,101,116,117,114,110,32,78, + 111,110,101,32,105,102,32,105,116,32,100,111,101,115,110,39, + 116,32,101,120,105,115,116,46,10,32,32,32,32,84,104,101, + 32,111,112,116,105,111,110,97,108,32,115,101,99,111,110,100, + 32,97,114,103,117,109,101,110,116,32,99,97,110,32,115,112, + 101,99,105,102,121,32,97,110,32,97,108,116,101,114,110,97, + 116,101,32,100,101,102,97,117,108,116,46,10,32,32,32,32, + 107,101,121,44,32,100,101,102,97,117,108,116,32,97,110,100, + 32,116,104,101,32,114,101,115,117,108,116,32,97,114,101,32, + 115,116,114,46,41,2,114,205,0,0,0,114,223,0,0,0, + 169,2,114,244,0,0,0,218,7,100,101,102,97,117,108,116, + 115,2,0,0,0,32,32,114,25,0,0,0,218,6,103,101, + 116,101,110,118,114,52,1,0,0,11,3,0,0,115,21,0, + 0,0,128,0,244,8,0,12,19,143,59,137,59,144,115,152, + 71,211,11,36,208,4,36,114,27,0,0,0,41,2,114,52, + 1,0,0,114,225,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,3,0,0,0,243,104,0, + 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, + 116,2,0,0,0,0,0,0,0,0,171,2,0,0,0,0, + 0,0,115,33,116,5,0,0,0,0,0,0,0,0,100,1, + 116,7,0,0,0,0,0,0,0,0,124,0,171,1,0,0, + 0,0,0,0,106,8,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,122,6,0,0,171,1,0,0, + 0,0,0,0,130,1,124,0,83,0,41,2,78,122,22,98, + 121,116,101,115,32,101,120,112,101,99,116,101,100,44,32,110, + 111,116,32,37,115,41,5,114,115,0,0,0,114,116,0,0, + 0,114,224,0,0,0,114,35,1,0,0,114,29,1,0,0, + 114,36,1,0,0,115,1,0,0,0,32,114,25,0,0,0, + 218,12,95,99,104,101,99,107,95,98,121,116,101,115,114,54, + 1,0,0,21,3,0,0,115,44,0,0,0,128,0,220,15, + 25,152,37,164,21,212,15,39,220,18,27,208,28,52,180,116, + 184,69,179,123,215,55,75,209,55,75,209,28,75,211,18,76, + 208,12,76,216,15,20,136,12,114,27,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,46,0,0,0,151,0,116,0,0,0,0,0,0, + 0,0,0,106,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,0,124,1,171,2,0,0,0, + 0,0,0,83,0,41,1,122,179,71,101,116,32,97,110,32, + 101,110,118,105,114,111,110,109,101,110,116,32,118,97,114,105, + 97,98,108,101,44,32,114,101,116,117,114,110,32,78,111,110, + 101,32,105,102,32,105,116,32,100,111,101,115,110,39,116,32, + 101,120,105,115,116,46,10,32,32,32,32,32,32,32,32,84, + 104,101,32,111,112,116,105,111,110,97,108,32,115,101,99,111, + 110,100,32,97,114,103,117,109,101,110,116,32,99,97,110,32, + 115,112,101,99,105,102,121,32,97,110,32,97,108,116,101,114, + 110,97,116,101,32,100,101,102,97,117,108,116,46,10,32,32, + 32,32,32,32,32,32,107,101,121,44,32,100,101,102,97,117, + 108,116,32,97,110,100,32,116,104,101,32,114,101,115,117,108, + 116,32,97,114,101,32,98,121,116,101,115,46,41,2,218,8, + 101,110,118,105,114,111,110,98,114,223,0,0,0,114,50,1, + 0,0,115,2,0,0,0,32,32,114,25,0,0,0,218,7, + 103,101,116,101,110,118,98,114,57,1,0,0,32,3,0,0, + 115,21,0,0,0,128,0,244,8,0,16,24,143,124,137,124, + 152,67,160,23,211,15,41,208,8,41,114,27,0,0,0,41, + 2,114,56,1,0,0,114,57,1,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, + 243,118,0,0,0,135,2,135,3,151,0,116,1,0,0,0, + 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, + 0,138,2,116,1,0,0,0,0,0,0,0,0,106,4,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,171,0,0,0,0,0,0,0,138,3,136,2,136,3,102, + 2,100,1,132,8,125,0,136,2,136,3,102,2,100,2,132, + 8,125,1,124,0,124,1,102,2,83,0,41,3,78,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,19, + 0,0,0,243,98,0,0,0,149,2,151,0,116,1,0,0, + 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, + 125,0,116,3,0,0,0,0,0,0,0,0,124,0,116,4, + 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, + 114,18,124,0,106,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,137,1,137,2,171,2,0,0, + 0,0,0,0,83,0,124,0,83,0,41,1,97,23,1,0, + 0,69,110,99,111,100,101,32,102,105,108,101,110,97,109,101, + 32,40,97,110,32,111,115,46,80,97,116,104,76,105,107,101, + 44,32,98,121,116,101,115,44,32,111,114,32,115,116,114,41, + 32,116,111,32,116,104,101,32,102,105,108,101,115,121,115,116, + 101,109,10,32,32,32,32,32,32,32,32,101,110,99,111,100, + 105,110,103,32,119,105,116,104,32,39,115,117,114,114,111,103, + 97,116,101,101,115,99,97,112,101,39,32,101,114,114,111,114, + 32,104,97,110,100,108,101,114,44,32,114,101,116,117,114,110, + 32,98,121,116,101,115,32,117,110,99,104,97,110,103,101,100, + 46,10,32,32,32,32,32,32,32,32,79,110,32,87,105,110, + 100,111,119,115,44,32,117,115,101,32,39,115,116,114,105,99, + 116,39,32,101,114,114,111,114,32,104,97,110,100,108,101,114, + 32,105,102,32,116,104,101,32,102,105,108,101,32,115,121,115, + 116,101,109,32,101,110,99,111,100,105,110,103,32,105,115,10, + 32,32,32,32,32,32,32,32,39,109,98,99,115,39,32,40, + 119,104,105,99,104,32,105,115,32,116,104,101,32,100,101,102, + 97,117,108,116,32,101,110,99,111,100,105,110,103,41,46,10, + 32,32,32,32,32,32,32,32,41,4,114,132,0,0,0,114, + 115,0,0,0,114,47,0,0,0,114,40,1,0,0,169,3, + 218,8,102,105,108,101,110,97,109,101,114,44,1,0,0,218, + 6,101,114,114,111,114,115,115,3,0,0,0,32,128,128,114, + 25,0,0,0,114,17,0,0,0,122,26,95,102,115,99,111, + 100,101,99,46,60,108,111,99,97,108,115,62,46,102,115,101, + 110,99,111,100,101,44,3,0,0,115,47,0,0,0,248,128, + 0,244,12,0,20,26,152,40,211,19,35,136,8,220,11,21, + 144,104,164,3,212,11,36,216,19,27,151,63,145,63,160,56, + 168,86,211,19,52,208,12,52,224,19,27,136,79,114,27,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,19,0,0,0,243,98,0,0,0,149,2,151,0, + 116,1,0,0,0,0,0,0,0,0,124,0,171,1,0,0, + 0,0,0,0,125,0,116,3,0,0,0,0,0,0,0,0, + 124,0,116,4,0,0,0,0,0,0,0,0,171,2,0,0, + 0,0,0,0,114,18,124,0,106,7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,137,1,137,2, + 171,2,0,0,0,0,0,0,83,0,124,0,83,0,41,1, + 97,23,1,0,0,68,101,99,111,100,101,32,102,105,108,101, + 110,97,109,101,32,40,97,110,32,111,115,46,80,97,116,104, + 76,105,107,101,44,32,98,121,116,101,115,44,32,111,114,32, + 115,116,114,41,32,102,114,111,109,32,116,104,101,32,102,105, 108,101,115,121,115,116,101,109,10,32,32,32,32,32,32,32, 32,101,110,99,111,100,105,110,103,32,119,105,116,104,32,39, 115,117,114,114,111,103,97,116,101,101,115,99,97,112,101,39, 32,101,114,114,111,114,32,104,97,110,100,108,101,114,44,32, - 114,101,116,117,114,110,32,98,121,116,101,115,32,117,110,99, - 104,97,110,103,101,100,46,10,32,32,32,32,32,32,32,32, - 79,110,32,87,105,110,100,111,119,115,44,32,117,115,101,32, - 39,115,116,114,105,99,116,39,32,101,114,114,111,114,32,104, - 97,110,100,108,101,114,32,105,102,32,116,104,101,32,102,105, - 108,101,32,115,121,115,116,101,109,32,101,110,99,111,100,105, - 110,103,32,105,115,10,32,32,32,32,32,32,32,32,39,109, - 98,99,115,39,32,40,119,104,105,99,104,32,105,115,32,116, - 104,101,32,100,101,102,97,117,108,116,32,101,110,99,111,100, - 105,110,103,41,46,10,32,32,32,32,32,32,32,32,41,4, - 114,132,0,0,0,114,115,0,0,0,114,47,0,0,0,114, - 39,1,0,0,169,3,218,8,102,105,108,101,110,97,109,101, - 114,43,1,0,0,218,6,101,114,114,111,114,115,115,3,0, - 0,0,32,128,128,114,25,0,0,0,114,17,0,0,0,122, - 26,95,102,115,99,111,100,101,99,46,60,108,111,99,97,108, - 115,62,46,102,115,101,110,99,111,100,101,44,3,0,0,115, - 47,0,0,0,248,128,0,244,12,0,20,26,152,40,211,19, - 35,136,8,220,11,21,144,104,164,3,212,11,36,216,19,27, - 151,63,145,63,160,56,168,86,211,19,52,208,12,52,224,19, - 27,136,79,114,27,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,19,0,0,0,243,98,0, - 0,0,149,2,151,0,116,1,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,125,0,116,3,0,0, - 0,0,0,0,0,0,124,0,116,4,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,114,18,124,0,106,7, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,137,1,137,2,171,2,0,0,0,0,0,0,83,0, - 124,0,83,0,41,1,97,23,1,0,0,68,101,99,111,100, - 101,32,102,105,108,101,110,97,109,101,32,40,97,110,32,111, - 115,46,80,97,116,104,76,105,107,101,44,32,98,121,116,101, - 115,44,32,111,114,32,115,116,114,41,32,102,114,111,109,32, - 116,104,101,32,102,105,108,101,115,121,115,116,101,109,10,32, - 32,32,32,32,32,32,32,101,110,99,111,100,105,110,103,32, - 119,105,116,104,32,39,115,117,114,114,111,103,97,116,101,101, - 115,99,97,112,101,39,32,101,114,114,111,114,32,104,97,110, - 100,108,101,114,44,32,114,101,116,117,114,110,32,115,116,114, - 32,117,110,99,104,97,110,103,101,100,46,32,79,110,10,32, - 32,32,32,32,32,32,32,87,105,110,100,111,119,115,44,32, - 117,115,101,32,39,115,116,114,105,99,116,39,32,101,114,114, - 111,114,32,104,97,110,100,108,101,114,32,105,102,32,116,104, - 101,32,102,105,108,101,32,115,121,115,116,101,109,32,101,110, - 99,111,100,105,110,103,32,105,115,10,32,32,32,32,32,32, - 32,32,39,109,98,99,115,39,32,40,119,104,105,99,104,32, - 105,115,32,116,104,101,32,100,101,102,97,117,108,116,32,101, - 110,99,111,100,105,110,103,41,46,10,32,32,32,32,32,32, - 32,32,41,4,114,132,0,0,0,114,115,0,0,0,114,116, - 0,0,0,114,45,1,0,0,114,59,1,0,0,115,3,0, - 0,0,32,128,128,114,25,0,0,0,114,18,0,0,0,122, - 26,95,102,115,99,111,100,101,99,46,60,108,111,99,97,108, - 115,62,46,102,115,100,101,99,111,100,101,56,3,0,0,115, - 47,0,0,0,248,128,0,244,12,0,20,26,152,40,211,19, - 35,136,8,220,11,21,144,104,164,5,212,11,38,216,19,27, - 151,63,145,63,160,56,168,86,211,19,52,208,12,52,224,19, - 27,136,79,114,27,0,0,0,41,3,114,130,0,0,0,114, - 46,1,0,0,218,25,103,101,116,102,105,108,101,115,121,115, - 116,101,109,101,110,99,111,100,101,101,114,114,111,114,115,41, - 4,114,17,0,0,0,114,18,0,0,0,114,43,1,0,0, - 114,61,1,0,0,115,4,0,0,0,32,32,64,64,114,25, - 0,0,0,218,8,95,102,115,99,111,100,101,99,114,64,1, - 0,0,40,3,0,0,115,54,0,0,0,249,128,0,220,15, - 18,215,15,40,209,15,40,211,15,42,128,72,220,13,16,215, - 13,42,209,13,42,211,13,44,128,70,245,4,10,5,28,245, - 24,10,5,28,240,24,0,12,20,144,88,208,11,29,208,4, - 29,114,27,0,0,0,218,4,102,111,114,107,218,6,115,112, - 97,119,110,118,114,183,0,0,0,41,3,218,6,80,95,87, - 65,73,84,218,8,80,95,78,79,87,65,73,84,218,9,80, - 95,78,79,87,65,73,84,79,99,5,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,243,58,1, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,2, - 116,2,0,0,0,0,0,0,0,0,116,4,0,0,0,0, - 0,0,0,0,102,2,171,2,0,0,0,0,0,0,115,11, - 116,7,0,0,0,0,0,0,0,0,100,1,171,1,0,0, - 0,0,0,0,130,1,124,2,114,5,124,2,100,2,25,0, - 0,0,115,11,116,9,0,0,0,0,0,0,0,0,100,3, - 171,1,0,0,0,0,0,0,130,1,116,11,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,125,5,124,5, - 115,25,9,0,124,3,128,10,2,0,124,4,124,1,124,2, - 171,2,0,0,0,0,0,0,1,0,110,11,2,0,124,4, - 124,1,124,2,124,3,171,3,0,0,0,0,0,0,1,0, - 121,0,121,0,124,0,116,14,0,0,0,0,0,0,0,0, - 107,40,0,0,114,2,124,5,83,0,9,0,116,17,0,0, - 0,0,0,0,0,0,124,5,100,2,171,2,0,0,0,0, - 0,0,92,2,0,0,125,6,125,7,116,19,0,0,0,0, - 0,0,0,0,124,7,171,1,0,0,0,0,0,0,114,1, - 140,28,116,21,0,0,0,0,0,0,0,0,124,7,171,1, - 0,0,0,0,0,0,83,0,35,0,1,0,116,13,0,0, - 0,0,0,0,0,0,100,4,171,1,0,0,0,0,0,0, - 1,0,89,0,121,0,120,3,89,0,119,1,41,5,78,122, - 30,97,114,103,118,32,109,117,115,116,32,98,101,32,97,32, - 116,117,112,108,101,32,111,114,32,97,32,108,105,115,116,114, - 2,0,0,0,122,34,97,114,103,118,32,102,105,114,115,116, - 32,101,108,101,109,101,110,116,32,99,97,110,110,111,116,32, - 98,101,32,101,109,112,116,121,233,127,0,0,0,41,11,114, - 115,0,0,0,114,136,0,0,0,114,30,0,0,0,114,223, - 0,0,0,114,225,0,0,0,114,65,1,0,0,114,40,0, - 0,0,114,68,1,0,0,218,7,119,97,105,116,112,105,100, - 218,10,87,73,70,83,84,79,80,80,69,68,218,22,119,97, - 105,116,115,116,97,116,117,115,95,116,111,95,101,120,105,116, - 99,111,100,101,41,8,114,119,0,0,0,114,185,0,0,0, - 114,186,0,0,0,114,191,0,0,0,218,4,102,117,110,99, - 218,3,112,105,100,218,4,119,112,105,100,218,3,115,116,115, - 115,8,0,0,0,32,32,32,32,32,32,32,32,114,25,0, - 0,0,218,9,95,115,112,97,119,110,118,101,102,114,79,1, - 0,0,85,3,0,0,115,164,0,0,0,128,0,228,15,25, - 152,36,164,21,172,4,160,13,212,15,46,220,18,27,208,28, - 60,211,18,61,208,12,61,217,15,19,152,52,160,1,154,55, - 220,18,28,208,29,65,211,18,66,208,12,66,220,14,18,139, - 102,136,3,217,15,18,240,4,6,13,27,216,19,22,144,59, - 217,20,24,152,20,152,116,213,20,36,225,20,24,152,20,152, - 116,160,83,213,20,41,240,5,0,21,37,240,14,0,16,20, - 148,120,210,15,31,216,23,26,144,10,216,18,19,220,28,35, - 160,67,168,17,155,79,145,9,144,4,144,99,220,19,29,152, - 99,148,63,216,20,28,228,23,45,168,99,211,23,50,208,16, - 50,248,240,23,1,13,27,220,16,21,144,99,150,10,250,115, - 12,0,0,0,193,1,22,66,11,0,194,11,13,66,26,3, - 99,3,0,0,0,0,0,0,0,0,0,0,0,7,0,0, - 0,3,0,0,0,243,40,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,124,1,124,2,100,1,116,2, - 0,0,0,0,0,0,0,0,171,5,0,0,0,0,0,0, - 83,0,41,2,97,21,1,0,0,115,112,97,119,110,118,40, - 109,111,100,101,44,32,102,105,108,101,44,32,97,114,103,115, - 41,32,45,62,32,105,110,116,101,103,101,114,10,10,69,120, - 101,99,117,116,101,32,102,105,108,101,32,119,105,116,104,32, - 97,114,103,117,109,101,110,116,115,32,102,114,111,109,32,97, - 114,103,115,32,105,110,32,97,32,115,117,98,112,114,111,99, - 101,115,115,46,10,73,102,32,109,111,100,101,32,61,61,32, - 80,95,78,79,87,65,73,84,32,114,101,116,117,114,110,32, - 116,104,101,32,112,105,100,32,111,102,32,116,104,101,32,112, - 114,111,99,101,115,115,46,10,73,102,32,109,111,100,101,32, - 61,61,32,80,95,87,65,73,84,32,114,101,116,117,114,110, - 32,116,104,101,32,112,114,111,99,101,115,115,39,115,32,101, - 120,105,116,32,99,111,100,101,32,105,102,32,105,116,32,101, - 120,105,116,115,32,110,111,114,109,97,108,108,121,59,10,111, - 116,104,101,114,119,105,115,101,32,114,101,116,117,114,110,32, - 45,83,73,71,44,32,119,104,101,114,101,32,83,73,71,32, - 105,115,32,116,104,101,32,115,105,103,110,97,108,32,116,104, - 97,116,32,107,105,108,108,101,100,32,105,116,46,32,78,41, - 2,114,79,1,0,0,114,183,0,0,0,169,3,114,119,0, - 0,0,114,185,0,0,0,114,186,0,0,0,115,3,0,0, - 0,32,32,32,114,25,0,0,0,114,66,1,0,0,114,66, - 1,0,0,112,3,0,0,115,23,0,0,0,128,0,244,14, - 0,16,25,152,20,152,116,160,84,168,52,180,21,211,15,55, - 208,8,55,114,27,0,0,0,99,4,0,0,0,0,0,0, - 0,0,0,0,0,7,0,0,0,3,0,0,0,243,40,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 124,1,124,2,124,3,116,2,0,0,0,0,0,0,0,0, - 171,5,0,0,0,0,0,0,83,0,41,1,97,58,1,0, - 0,115,112,97,119,110,118,101,40,109,111,100,101,44,32,102, - 105,108,101,44,32,97,114,103,115,44,32,101,110,118,41,32, - 45,62,32,105,110,116,101,103,101,114,10,10,69,120,101,99, - 117,116,101,32,102,105,108,101,32,119,105,116,104,32,97,114, - 103,117,109,101,110,116,115,32,102,114,111,109,32,97,114,103, - 115,32,105,110,32,97,32,115,117,98,112,114,111,99,101,115, - 115,32,119,105,116,104,32,116,104,101,10,115,112,101,99,105, - 102,105,101,100,32,101,110,118,105,114,111,110,109,101,110,116, - 46,10,73,102,32,109,111,100,101,32,61,61,32,80,95,78, - 79,87,65,73,84,32,114,101,116,117,114,110,32,116,104,101, - 32,112,105,100,32,111,102,32,116,104,101,32,112,114,111,99, - 101,115,115,46,10,73,102,32,109,111,100,101,32,61,61,32, - 80,95,87,65,73,84,32,114,101,116,117,114,110,32,116,104, - 101,32,112,114,111,99,101,115,115,39,115,32,101,120,105,116, - 32,99,111,100,101,32,105,102,32,105,116,32,101,120,105,116, - 115,32,110,111,114,109,97,108,108,121,59,10,111,116,104,101, - 114,119,105,115,101,32,114,101,116,117,114,110,32,45,83,73, - 71,44,32,119,104,101,114,101,32,83,73,71,32,105,115,32, - 116,104,101,32,115,105,103,110,97,108,32,116,104,97,116,32, - 107,105,108,108,101,100,32,105,116,46,32,41,2,114,79,1, - 0,0,114,88,0,0,0,169,4,114,119,0,0,0,114,185, - 0,0,0,114,186,0,0,0,114,191,0,0,0,115,4,0, - 0,0,32,32,32,32,114,25,0,0,0,218,7,115,112,97, - 119,110,118,101,114,84,1,0,0,121,3,0,0,115,23,0, - 0,0,128,0,244,16,0,16,25,152,20,152,116,160,84,168, - 51,180,6,211,15,55,208,8,55,114,27,0,0,0,99,3, - 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,3, - 0,0,0,243,40,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,124,1,124,2,100,1,116,2,0,0, - 0,0,0,0,0,0,171,5,0,0,0,0,0,0,83,0, - 41,2,97,56,1,0,0,115,112,97,119,110,118,112,40,109, - 111,100,101,44,32,102,105,108,101,44,32,97,114,103,115,41, - 32,45,62,32,105,110,116,101,103,101,114,10,10,69,120,101, - 99,117,116,101,32,102,105,108,101,32,40,119,104,105,99,104, - 32,105,115,32,108,111,111,107,101,100,32,102,111,114,32,97, - 108,111,110,103,32,36,80,65,84,72,41,32,119,105,116,104, - 32,97,114,103,117,109,101,110,116,115,32,102,114,111,109,10, - 97,114,103,115,32,105,110,32,97,32,115,117,98,112,114,111, - 99,101,115,115,46,10,73,102,32,109,111,100,101,32,61,61, - 32,80,95,78,79,87,65,73,84,32,114,101,116,117,114,110, - 32,116,104,101,32,112,105,100,32,111,102,32,116,104,101,32, - 112,114,111,99,101,115,115,46,10,73,102,32,109,111,100,101, - 32,61,61,32,80,95,87,65,73,84,32,114,101,116,117,114, - 110,32,116,104,101,32,112,114,111,99,101,115,115,39,115,32, - 101,120,105,116,32,99,111,100,101,32,105,102,32,105,116,32, - 101,120,105,116,115,32,110,111,114,109,97,108,108,121,59,10, - 111,116,104,101,114,119,105,115,101,32,114,101,116,117,114,110, - 32,45,83,73,71,44,32,119,104,101,114,101,32,83,73,71, - 32,105,115,32,116,104,101,32,115,105,103,110,97,108,32,116, - 104,97,116,32,107,105,108,108,101,100,32,105,116,46,32,78, - 41,2,114,79,1,0,0,114,194,0,0,0,114,81,1,0, - 0,115,3,0,0,0,32,32,32,114,25,0,0,0,218,7, - 115,112,97,119,110,118,112,114,86,1,0,0,133,3,0,0, - 115,23,0,0,0,128,0,244,16,0,16,25,152,20,152,116, - 160,84,168,52,180,22,211,15,56,208,8,56,114,27,0,0, - 0,99,4,0,0,0,0,0,0,0,0,0,0,0,7,0, - 0,0,3,0,0,0,243,40,0,0,0,151,0,116,1,0, - 0,0,0,0,0,0,0,124,0,124,1,124,2,124,3,116, - 2,0,0,0,0,0,0,0,0,171,5,0,0,0,0,0, - 0,83,0,41,1,97,92,1,0,0,115,112,97,119,110,118, - 112,101,40,109,111,100,101,44,32,102,105,108,101,44,32,97, + 114,101,116,117,114,110,32,115,116,114,32,117,110,99,104,97, + 110,103,101,100,46,32,79,110,10,32,32,32,32,32,32,32, + 32,87,105,110,100,111,119,115,44,32,117,115,101,32,39,115, + 116,114,105,99,116,39,32,101,114,114,111,114,32,104,97,110, + 100,108,101,114,32,105,102,32,116,104,101,32,102,105,108,101, + 32,115,121,115,116,101,109,32,101,110,99,111,100,105,110,103, + 32,105,115,10,32,32,32,32,32,32,32,32,39,109,98,99, + 115,39,32,40,119,104,105,99,104,32,105,115,32,116,104,101, + 32,100,101,102,97,117,108,116,32,101,110,99,111,100,105,110, + 103,41,46,10,32,32,32,32,32,32,32,32,41,4,114,132, + 0,0,0,114,115,0,0,0,114,116,0,0,0,114,46,1, + 0,0,114,60,1,0,0,115,3,0,0,0,32,128,128,114, + 25,0,0,0,114,18,0,0,0,122,26,95,102,115,99,111, + 100,101,99,46,60,108,111,99,97,108,115,62,46,102,115,100, + 101,99,111,100,101,56,3,0,0,115,47,0,0,0,248,128, + 0,244,12,0,20,26,152,40,211,19,35,136,8,220,11,21, + 144,104,164,5,212,11,38,216,19,27,151,63,145,63,160,56, + 168,86,211,19,52,208,12,52,224,19,27,136,79,114,27,0, + 0,0,41,3,114,130,0,0,0,114,47,1,0,0,218,25, + 103,101,116,102,105,108,101,115,121,115,116,101,109,101,110,99, + 111,100,101,101,114,114,111,114,115,41,4,114,17,0,0,0, + 114,18,0,0,0,114,44,1,0,0,114,62,1,0,0,115, + 4,0,0,0,32,32,64,64,114,25,0,0,0,218,8,95, + 102,115,99,111,100,101,99,114,65,1,0,0,40,3,0,0, + 115,54,0,0,0,249,128,0,220,15,18,215,15,40,209,15, + 40,211,15,42,128,72,220,13,16,215,13,42,209,13,42,211, + 13,44,128,70,245,4,10,5,28,245,24,10,5,28,240,24, + 0,12,20,144,88,208,11,29,208,4,29,114,27,0,0,0, + 218,4,102,111,114,107,218,6,115,112,97,119,110,118,114,184, + 0,0,0,41,3,218,6,80,95,87,65,73,84,218,8,80, + 95,78,79,87,65,73,84,218,9,80,95,78,79,87,65,73, + 84,79,99,5,0,0,0,0,0,0,0,0,0,0,0,5, + 0,0,0,3,0,0,0,243,58,1,0,0,151,0,116,1, + 0,0,0,0,0,0,0,0,124,2,116,2,0,0,0,0, + 0,0,0,0,116,4,0,0,0,0,0,0,0,0,102,2, + 171,2,0,0,0,0,0,0,115,11,116,7,0,0,0,0, + 0,0,0,0,100,1,171,1,0,0,0,0,0,0,130,1, + 124,2,114,5,124,2,100,2,25,0,0,0,115,11,116,9, + 0,0,0,0,0,0,0,0,100,3,171,1,0,0,0,0, + 0,0,130,1,116,11,0,0,0,0,0,0,0,0,171,0, + 0,0,0,0,0,0,125,5,124,5,115,25,9,0,124,3, + 128,10,2,0,124,4,124,1,124,2,171,2,0,0,0,0, + 0,0,1,0,110,11,2,0,124,4,124,1,124,2,124,3, + 171,3,0,0,0,0,0,0,1,0,121,0,121,0,124,0, + 116,14,0,0,0,0,0,0,0,0,107,40,0,0,114,2, + 124,5,83,0,9,0,116,17,0,0,0,0,0,0,0,0, + 124,5,100,2,171,2,0,0,0,0,0,0,92,2,0,0, + 125,6,125,7,116,19,0,0,0,0,0,0,0,0,124,7, + 171,1,0,0,0,0,0,0,114,1,140,28,116,21,0,0, + 0,0,0,0,0,0,124,7,171,1,0,0,0,0,0,0, + 83,0,35,0,1,0,116,13,0,0,0,0,0,0,0,0, + 100,4,171,1,0,0,0,0,0,0,1,0,89,0,121,0, + 120,3,89,0,119,1,41,5,78,122,30,97,114,103,118,32, + 109,117,115,116,32,98,101,32,97,32,116,117,112,108,101,32, + 111,114,32,97,32,108,105,115,116,114,2,0,0,0,122,34, + 97,114,103,118,32,102,105,114,115,116,32,101,108,101,109,101, + 110,116,32,99,97,110,110,111,116,32,98,101,32,101,109,112, + 116,121,233,127,0,0,0,41,11,114,115,0,0,0,114,136, + 0,0,0,114,30,0,0,0,114,224,0,0,0,114,226,0, + 0,0,114,66,1,0,0,114,40,0,0,0,114,69,1,0, + 0,218,7,119,97,105,116,112,105,100,218,10,87,73,70,83, + 84,79,80,80,69,68,218,22,119,97,105,116,115,116,97,116, + 117,115,95,116,111,95,101,120,105,116,99,111,100,101,41,8, + 114,119,0,0,0,114,186,0,0,0,114,187,0,0,0,114, + 192,0,0,0,218,4,102,117,110,99,218,3,112,105,100,218, + 4,119,112,105,100,218,3,115,116,115,115,8,0,0,0,32, + 32,32,32,32,32,32,32,114,25,0,0,0,218,9,95,115, + 112,97,119,110,118,101,102,114,80,1,0,0,85,3,0,0, + 115,164,0,0,0,128,0,228,15,25,152,36,164,21,172,4, + 160,13,212,15,46,220,18,27,208,28,60,211,18,61,208,12, + 61,217,15,19,152,52,160,1,154,55,220,18,28,208,29,65, + 211,18,66,208,12,66,220,14,18,139,102,136,3,217,15,18, + 240,4,6,13,27,216,19,22,144,59,217,20,24,152,20,152, + 116,213,20,36,225,20,24,152,20,152,116,160,83,213,20,41, + 240,5,0,21,37,240,14,0,16,20,148,120,210,15,31,216, + 23,26,144,10,216,18,19,220,28,35,160,67,168,17,155,79, + 145,9,144,4,144,99,220,19,29,152,99,148,63,216,20,28, + 228,23,45,168,99,211,23,50,208,16,50,248,240,23,1,13, + 27,220,16,21,144,99,150,10,250,115,12,0,0,0,193,1, + 22,66,11,0,194,11,13,66,26,3,99,3,0,0,0,0, + 0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,243, + 40,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, + 124,0,124,1,124,2,100,1,116,2,0,0,0,0,0,0, + 0,0,171,5,0,0,0,0,0,0,83,0,41,2,97,21, + 1,0,0,115,112,97,119,110,118,40,109,111,100,101,44,32, + 102,105,108,101,44,32,97,114,103,115,41,32,45,62,32,105, + 110,116,101,103,101,114,10,10,69,120,101,99,117,116,101,32, + 102,105,108,101,32,119,105,116,104,32,97,114,103,117,109,101, + 110,116,115,32,102,114,111,109,32,97,114,103,115,32,105,110, + 32,97,32,115,117,98,112,114,111,99,101,115,115,46,10,73, + 102,32,109,111,100,101,32,61,61,32,80,95,78,79,87,65, + 73,84,32,114,101,116,117,114,110,32,116,104,101,32,112,105, + 100,32,111,102,32,116,104,101,32,112,114,111,99,101,115,115, + 46,10,73,102,32,109,111,100,101,32,61,61,32,80,95,87, + 65,73,84,32,114,101,116,117,114,110,32,116,104,101,32,112, + 114,111,99,101,115,115,39,115,32,101,120,105,116,32,99,111, + 100,101,32,105,102,32,105,116,32,101,120,105,116,115,32,110, + 111,114,109,97,108,108,121,59,10,111,116,104,101,114,119,105, + 115,101,32,114,101,116,117,114,110,32,45,83,73,71,44,32, + 119,104,101,114,101,32,83,73,71,32,105,115,32,116,104,101, + 32,115,105,103,110,97,108,32,116,104,97,116,32,107,105,108, + 108,101,100,32,105,116,46,32,78,41,2,114,80,1,0,0, + 114,184,0,0,0,169,3,114,119,0,0,0,114,186,0,0, + 0,114,187,0,0,0,115,3,0,0,0,32,32,32,114,25, + 0,0,0,114,67,1,0,0,114,67,1,0,0,112,3,0, + 0,115,23,0,0,0,128,0,244,14,0,16,25,152,20,152, + 116,160,84,168,52,180,21,211,15,55,208,8,55,114,27,0, + 0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,7, + 0,0,0,3,0,0,0,243,40,0,0,0,151,0,116,1, + 0,0,0,0,0,0,0,0,124,0,124,1,124,2,124,3, + 116,2,0,0,0,0,0,0,0,0,171,5,0,0,0,0, + 0,0,83,0,41,1,97,58,1,0,0,115,112,97,119,110, + 118,101,40,109,111,100,101,44,32,102,105,108,101,44,32,97, 114,103,115,44,32,101,110,118,41,32,45,62,32,105,110,116, 101,103,101,114,10,10,69,120,101,99,117,116,101,32,102,105, - 108,101,32,40,119,104,105,99,104,32,105,115,32,108,111,111, - 107,101,100,32,102,111,114,32,97,108,111,110,103,32,36,80, - 65,84,72,41,32,119,105,116,104,32,97,114,103,117,109,101, - 110,116,115,32,102,114,111,109,10,97,114,103,115,32,105,110, - 32,97,32,115,117,98,112,114,111,99,101,115,115,32,119,105, - 116,104,32,116,104,101,32,115,117,112,112,108,105,101,100,32, - 101,110,118,105,114,111,110,109,101,110,116,46,10,73,102,32, - 109,111,100,101,32,61,61,32,80,95,78,79,87,65,73,84, - 32,114,101,116,117,114,110,32,116,104,101,32,112,105,100,32, - 111,102,32,116,104,101,32,112,114,111,99,101,115,115,46,10, - 73,102,32,109,111,100,101,32,61,61,32,80,95,87,65,73, - 84,32,114,101,116,117,114,110,32,116,104,101,32,112,114,111, - 99,101,115,115,39,115,32,101,120,105,116,32,99,111,100,101, - 32,105,102,32,105,116,32,101,120,105,116,115,32,110,111,114, - 109,97,108,108,121,59,10,111,116,104,101,114,119,105,115,101, - 32,114,101,116,117,114,110,32,45,83,73,71,44,32,119,104, - 101,114,101,32,83,73,71,32,105,115,32,116,104,101,32,115, - 105,103,110,97,108,32,116,104,97,116,32,107,105,108,108,101, - 100,32,105,116,46,32,41,2,114,79,1,0,0,114,197,0, - 0,0,114,83,1,0,0,115,4,0,0,0,32,32,32,32, - 114,25,0,0,0,218,8,115,112,97,119,110,118,112,101,114, - 88,1,0,0,143,3,0,0,115,23,0,0,0,128,0,244, - 16,0,16,25,152,20,152,116,160,84,168,51,180,7,211,15, - 56,208,8,56,114,27,0,0,0,41,4,114,66,1,0,0, - 114,84,1,0,0,114,86,1,0,0,114,88,1,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 7,0,0,0,243,28,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,124,1,124,2,171,3,0,0,0, - 0,0,0,83,0,41,1,97,22,1,0,0,115,112,97,119, - 110,108,40,109,111,100,101,44,32,102,105,108,101,44,32,42, - 97,114,103,115,41,32,45,62,32,105,110,116,101,103,101,114, - 10,10,69,120,101,99,117,116,101,32,102,105,108,101,32,119, - 105,116,104,32,97,114,103,117,109,101,110,116,115,32,102,114, - 111,109,32,97,114,103,115,32,105,110,32,97,32,115,117,98, - 112,114,111,99,101,115,115,46,10,73,102,32,109,111,100,101, - 32,61,61,32,80,95,78,79,87,65,73,84,32,114,101,116, - 117,114,110,32,116,104,101,32,112,105,100,32,111,102,32,116, - 104,101,32,112,114,111,99,101,115,115,46,10,73,102,32,109, - 111,100,101,32,61,61,32,80,95,87,65,73,84,32,114,101, - 116,117,114,110,32,116,104,101,32,112,114,111,99,101,115,115, - 39,115,32,101,120,105,116,32,99,111,100,101,32,105,102,32, - 105,116,32,101,120,105,116,115,32,110,111,114,109,97,108,108, - 121,59,10,111,116,104,101,114,119,105,115,101,32,114,101,116, - 117,114,110,32,45,83,73,71,44,32,119,104,101,114,101,32, - 83,73,71,32,105,115,32,116,104,101,32,115,105,103,110,97, - 108,32,116,104,97,116,32,107,105,108,108,101,100,32,105,116, - 46,32,41,1,114,66,1,0,0,114,81,1,0,0,115,3, - 0,0,0,32,32,32,114,25,0,0,0,218,6,115,112,97, - 119,110,108,114,90,1,0,0,161,3,0,0,115,19,0,0, - 0,128,0,244,14,0,16,22,144,100,152,68,160,36,211,15, - 39,208,8,39,114,27,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,7,0,0,0,7,0,0,0,243,46, - 0,0,0,151,0,124,2,100,1,25,0,0,0,125,3,116, - 1,0,0,0,0,0,0,0,0,124,0,124,1,124,2,100, - 2,100,1,26,0,124,3,171,4,0,0,0,0,0,0,83, - 0,41,3,97,58,1,0,0,115,112,97,119,110,108,101,40, - 109,111,100,101,44,32,102,105,108,101,44,32,42,97,114,103, - 115,44,32,101,110,118,41,32,45,62,32,105,110,116,101,103, - 101,114,10,10,69,120,101,99,117,116,101,32,102,105,108,101, - 32,119,105,116,104,32,97,114,103,117,109,101,110,116,115,32, - 102,114,111,109,32,97,114,103,115,32,105,110,32,97,32,115, - 117,98,112,114,111,99,101,115,115,32,119,105,116,104,32,116, - 104,101,10,115,117,112,112,108,105,101,100,32,101,110,118,105, - 114,111,110,109,101,110,116,46,10,73,102,32,109,111,100,101, - 32,61,61,32,80,95,78,79,87,65,73,84,32,114,101,116, - 117,114,110,32,116,104,101,32,112,105,100,32,111,102,32,116, - 104,101,32,112,114,111,99,101,115,115,46,10,73,102,32,109, - 111,100,101,32,61,61,32,80,95,87,65,73,84,32,114,101, - 116,117,114,110,32,116,104,101,32,112,114,111,99,101,115,115, - 39,115,32,101,120,105,116,32,99,111,100,101,32,105,102,32, - 105,116,32,101,120,105,116,115,32,110,111,114,109,97,108,108, - 121,59,10,111,116,104,101,114,119,105,115,101,32,114,101,116, - 117,114,110,32,45,83,73,71,44,32,119,104,101,114,101,32, - 83,73,71,32,105,115,32,116,104,101,32,115,105,103,110,97, - 108,32,116,104,97,116,32,107,105,108,108,101,100,32,105,116, - 46,32,114,189,0,0,0,78,41,1,114,84,1,0,0,114, - 83,1,0,0,115,4,0,0,0,32,32,32,32,114,25,0, - 0,0,218,7,115,112,97,119,110,108,101,114,92,1,0,0, - 170,3,0,0,115,36,0,0,0,128,0,240,16,0,15,19, - 144,50,137,104,136,3,220,15,22,144,116,152,84,160,52,168, - 3,168,18,160,57,168,99,211,15,50,208,8,50,114,27,0, - 0,0,114,90,1,0,0,114,92,1,0,0,114,86,1,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,7,0,0,0,243,28,0,0,0,151,0,116,1,0, - 0,0,0,0,0,0,0,124,0,124,1,124,2,171,3,0, - 0,0,0,0,0,83,0,41,1,97,87,1,0,0,115,112, - 97,119,110,108,112,40,109,111,100,101,44,32,102,105,108,101, - 44,32,42,97,114,103,115,41,32,45,62,32,105,110,116,101, - 103,101,114,10,10,69,120,101,99,117,116,101,32,102,105,108, - 101,32,40,119,104,105,99,104,32,105,115,32,108,111,111,107, - 101,100,32,102,111,114,32,97,108,111,110,103,32,36,80,65, - 84,72,41,32,119,105,116,104,32,97,114,103,117,109,101,110, - 116,115,32,102,114,111,109,10,97,114,103,115,32,105,110,32, - 97,32,115,117,98,112,114,111,99,101,115,115,32,119,105,116, - 104,32,116,104,101,32,115,117,112,112,108,105,101,100,32,101, + 108,101,32,119,105,116,104,32,97,114,103,117,109,101,110,116, + 115,32,102,114,111,109,32,97,114,103,115,32,105,110,32,97, + 32,115,117,98,112,114,111,99,101,115,115,32,119,105,116,104, + 32,116,104,101,10,115,112,101,99,105,102,105,101,100,32,101, 110,118,105,114,111,110,109,101,110,116,46,10,73,102,32,109, 111,100,101,32,61,61,32,80,95,78,79,87,65,73,84,32, 114,101,116,117,114,110,32,116,104,101,32,112,105,100,32,111, @@ -2115,26 +1968,25 @@ const unsigned char _Py_M__os[] = { 114,101,116,117,114,110,32,45,83,73,71,44,32,119,104,101, 114,101,32,83,73,71,32,105,115,32,116,104,101,32,115,105, 103,110,97,108,32,116,104,97,116,32,107,105,108,108,101,100, - 32,105,116,46,32,41,1,114,86,1,0,0,114,81,1,0, - 0,115,3,0,0,0,32,32,32,114,25,0,0,0,218,7, - 115,112,97,119,110,108,112,114,94,1,0,0,188,3,0,0, - 115,19,0,0,0,128,0,244,16,0,16,23,144,116,152,84, - 160,52,211,15,40,208,8,40,114,27,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0, - 0,0,243,46,0,0,0,151,0,124,2,100,1,25,0,0, - 0,125,3,116,1,0,0,0,0,0,0,0,0,124,0,124, - 1,124,2,100,2,100,1,26,0,124,3,171,4,0,0,0, - 0,0,0,83,0,41,3,97,93,1,0,0,115,112,97,119, - 110,108,112,101,40,109,111,100,101,44,32,102,105,108,101,44, - 32,42,97,114,103,115,44,32,101,110,118,41,32,45,62,32, - 105,110,116,101,103,101,114,10,10,69,120,101,99,117,116,101, - 32,102,105,108,101,32,40,119,104,105,99,104,32,105,115,32, - 108,111,111,107,101,100,32,102,111,114,32,97,108,111,110,103, - 32,36,80,65,84,72,41,32,119,105,116,104,32,97,114,103, - 117,109,101,110,116,115,32,102,114,111,109,10,97,114,103,115, - 32,105,110,32,97,32,115,117,98,112,114,111,99,101,115,115, - 32,119,105,116,104,32,116,104,101,32,115,117,112,112,108,105, - 101,100,32,101,110,118,105,114,111,110,109,101,110,116,46,10, + 32,105,116,46,32,41,2,114,80,1,0,0,114,88,0,0, + 0,169,4,114,119,0,0,0,114,186,0,0,0,114,187,0, + 0,0,114,192,0,0,0,115,4,0,0,0,32,32,32,32, + 114,25,0,0,0,218,7,115,112,97,119,110,118,101,114,85, + 1,0,0,121,3,0,0,115,23,0,0,0,128,0,244,16, + 0,16,25,152,20,152,116,160,84,168,51,180,6,211,15,55, + 208,8,55,114,27,0,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,7,0,0,0,3,0,0,0,243,40,0, + 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, + 124,1,124,2,100,1,116,2,0,0,0,0,0,0,0,0, + 171,5,0,0,0,0,0,0,83,0,41,2,97,56,1,0, + 0,115,112,97,119,110,118,112,40,109,111,100,101,44,32,102, + 105,108,101,44,32,97,114,103,115,41,32,45,62,32,105,110, + 116,101,103,101,114,10,10,69,120,101,99,117,116,101,32,102, + 105,108,101,32,40,119,104,105,99,104,32,105,115,32,108,111, + 111,107,101,100,32,102,111,114,32,97,108,111,110,103,32,36, + 80,65,84,72,41,32,119,105,116,104,32,97,114,103,117,109, + 101,110,116,115,32,102,114,111,109,10,97,114,103,115,32,105, + 110,32,97,32,115,117,98,112,114,111,99,101,115,115,46,10, 73,102,32,109,111,100,101,32,61,61,32,80,95,78,79,87, 65,73,84,32,114,101,116,117,114,110,32,116,104,101,32,112, 105,100,32,111,102,32,116,104,101,32,112,114,111,99,101,115, @@ -2146,570 +1998,722 @@ const unsigned char _Py_M__os[] = { 105,115,101,32,114,101,116,117,114,110,32,45,83,73,71,44, 32,119,104,101,114,101,32,83,73,71,32,105,115,32,116,104, 101,32,115,105,103,110,97,108,32,116,104,97,116,32,107,105, - 108,108,101,100,32,105,116,46,32,114,189,0,0,0,78,41, - 1,114,88,1,0,0,114,83,1,0,0,115,4,0,0,0, - 32,32,32,32,114,25,0,0,0,218,8,115,112,97,119,110, - 108,112,101,114,96,1,0,0,198,3,0,0,115,36,0,0, - 0,128,0,240,16,0,15,19,144,50,137,104,136,3,220,15, - 23,152,4,152,100,160,68,168,19,168,34,160,73,168,115,211, - 15,51,208,8,51,114,27,0,0,0,114,94,1,0,0,114, - 96,1,0,0,218,7,118,120,119,111,114,107,115,99,3,0, - 0,0,0,0,0,0,0,0,0,0,7,0,0,0,3,0, - 0,0,243,130,1,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,116,2,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,115,23,116,5,0,0,0,0,0, - 0,0,0,100,1,116,7,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,122,6,0,0,171,1,0, - 0,0,0,0,0,130,1,124,1,100,2,118,1,114,14,116, - 9,0,0,0,0,0,0,0,0,100,3,124,1,122,6,0, - 0,171,1,0,0,0,0,0,0,130,1,124,2,100,4,107, - 40,0,0,115,2,124,2,128,11,116,9,0,0,0,0,0, - 0,0,0,100,5,171,1,0,0,0,0,0,0,130,1,100, - 4,100,0,108,5,125,3,124,1,100,6,107,40,0,0,114, - 54,124,3,106,13,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,100,7,100,7,124,3,106, - 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,172,8,171,5,0,0,0,0,0,0,125, - 4,116,17,0,0,0,0,0,0,0,0,124,4,106,18,0, + 108,108,101,100,32,105,116,46,32,78,41,2,114,80,1,0, + 0,114,195,0,0,0,114,82,1,0,0,115,3,0,0,0, + 32,32,32,114,25,0,0,0,218,7,115,112,97,119,110,118, + 112,114,87,1,0,0,133,3,0,0,115,23,0,0,0,128, + 0,244,16,0,16,25,152,20,152,116,160,84,168,52,180,22, + 211,15,56,208,8,56,114,27,0,0,0,99,4,0,0,0, + 0,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0, + 243,40,0,0,0,151,0,116,1,0,0,0,0,0,0,0, + 0,124,0,124,1,124,2,124,3,116,2,0,0,0,0,0, + 0,0,0,171,5,0,0,0,0,0,0,83,0,41,1,97, + 92,1,0,0,115,112,97,119,110,118,112,101,40,109,111,100, + 101,44,32,102,105,108,101,44,32,97,114,103,115,44,32,101, + 110,118,41,32,45,62,32,105,110,116,101,103,101,114,10,10, + 69,120,101,99,117,116,101,32,102,105,108,101,32,40,119,104, + 105,99,104,32,105,115,32,108,111,111,107,101,100,32,102,111, + 114,32,97,108,111,110,103,32,36,80,65,84,72,41,32,119, + 105,116,104,32,97,114,103,117,109,101,110,116,115,32,102,114, + 111,109,10,97,114,103,115,32,105,110,32,97,32,115,117,98, + 112,114,111,99,101,115,115,32,119,105,116,104,32,116,104,101, + 32,115,117,112,112,108,105,101,100,32,101,110,118,105,114,111, + 110,109,101,110,116,46,10,73,102,32,109,111,100,101,32,61, + 61,32,80,95,78,79,87,65,73,84,32,114,101,116,117,114, + 110,32,116,104,101,32,112,105,100,32,111,102,32,116,104,101, + 32,112,114,111,99,101,115,115,46,10,73,102,32,109,111,100, + 101,32,61,61,32,80,95,87,65,73,84,32,114,101,116,117, + 114,110,32,116,104,101,32,112,114,111,99,101,115,115,39,115, + 32,101,120,105,116,32,99,111,100,101,32,105,102,32,105,116, + 32,101,120,105,116,115,32,110,111,114,109,97,108,108,121,59, + 10,111,116,104,101,114,119,105,115,101,32,114,101,116,117,114, + 110,32,45,83,73,71,44,32,119,104,101,114,101,32,83,73, + 71,32,105,115,32,116,104,101,32,115,105,103,110,97,108,32, + 116,104,97,116,32,107,105,108,108,101,100,32,105,116,46,32, + 41,2,114,80,1,0,0,114,198,0,0,0,114,84,1,0, + 0,115,4,0,0,0,32,32,32,32,114,25,0,0,0,218, + 8,115,112,97,119,110,118,112,101,114,89,1,0,0,143,3, + 0,0,115,23,0,0,0,128,0,244,16,0,16,25,152,20, + 152,116,160,84,168,51,180,7,211,15,56,208,8,56,114,27, + 0,0,0,41,4,114,67,1,0,0,114,85,1,0,0,114, + 87,1,0,0,114,89,1,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,7,0,0,0,243,28, + 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, + 0,124,1,124,2,171,3,0,0,0,0,0,0,83,0,41, + 1,97,22,1,0,0,115,112,97,119,110,108,40,109,111,100, + 101,44,32,102,105,108,101,44,32,42,97,114,103,115,41,32, + 45,62,32,105,110,116,101,103,101,114,10,10,69,120,101,99, + 117,116,101,32,102,105,108,101,32,119,105,116,104,32,97,114, + 103,117,109,101,110,116,115,32,102,114,111,109,32,97,114,103, + 115,32,105,110,32,97,32,115,117,98,112,114,111,99,101,115, + 115,46,10,73,102,32,109,111,100,101,32,61,61,32,80,95, + 78,79,87,65,73,84,32,114,101,116,117,114,110,32,116,104, + 101,32,112,105,100,32,111,102,32,116,104,101,32,112,114,111, + 99,101,115,115,46,10,73,102,32,109,111,100,101,32,61,61, + 32,80,95,87,65,73,84,32,114,101,116,117,114,110,32,116, + 104,101,32,112,114,111,99,101,115,115,39,115,32,101,120,105, + 116,32,99,111,100,101,32,105,102,32,105,116,32,101,120,105, + 116,115,32,110,111,114,109,97,108,108,121,59,10,111,116,104, + 101,114,119,105,115,101,32,114,101,116,117,114,110,32,45,83, + 73,71,44,32,119,104,101,114,101,32,83,73,71,32,105,115, + 32,116,104,101,32,115,105,103,110,97,108,32,116,104,97,116, + 32,107,105,108,108,101,100,32,105,116,46,32,41,1,114,67, + 1,0,0,114,82,1,0,0,115,3,0,0,0,32,32,32, + 114,25,0,0,0,218,6,115,112,97,119,110,108,114,91,1, + 0,0,161,3,0,0,115,19,0,0,0,128,0,244,14,0, + 16,22,144,100,152,68,160,36,211,15,39,208,8,39,114,27, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 7,0,0,0,7,0,0,0,243,46,0,0,0,151,0,124, + 2,100,1,25,0,0,0,125,3,116,1,0,0,0,0,0, + 0,0,0,124,0,124,1,124,2,100,2,100,1,26,0,124, + 3,171,4,0,0,0,0,0,0,83,0,41,3,97,58,1, + 0,0,115,112,97,119,110,108,101,40,109,111,100,101,44,32, + 102,105,108,101,44,32,42,97,114,103,115,44,32,101,110,118, + 41,32,45,62,32,105,110,116,101,103,101,114,10,10,69,120, + 101,99,117,116,101,32,102,105,108,101,32,119,105,116,104,32, + 97,114,103,117,109,101,110,116,115,32,102,114,111,109,32,97, + 114,103,115,32,105,110,32,97,32,115,117,98,112,114,111,99, + 101,115,115,32,119,105,116,104,32,116,104,101,10,115,117,112, + 112,108,105,101,100,32,101,110,118,105,114,111,110,109,101,110, + 116,46,10,73,102,32,109,111,100,101,32,61,61,32,80,95, + 78,79,87,65,73,84,32,114,101,116,117,114,110,32,116,104, + 101,32,112,105,100,32,111,102,32,116,104,101,32,112,114,111, + 99,101,115,115,46,10,73,102,32,109,111,100,101,32,61,61, + 32,80,95,87,65,73,84,32,114,101,116,117,114,110,32,116, + 104,101,32,112,114,111,99,101,115,115,39,115,32,101,120,105, + 116,32,99,111,100,101,32,105,102,32,105,116,32,101,120,105, + 116,115,32,110,111,114,109,97,108,108,121,59,10,111,116,104, + 101,114,119,105,115,101,32,114,101,116,117,114,110,32,45,83, + 73,71,44,32,119,104,101,114,101,32,83,73,71,32,105,115, + 32,116,104,101,32,115,105,103,110,97,108,32,116,104,97,116, + 32,107,105,108,108,101,100,32,105,116,46,32,114,190,0,0, + 0,78,41,1,114,85,1,0,0,114,84,1,0,0,115,4, + 0,0,0,32,32,32,32,114,25,0,0,0,218,7,115,112, + 97,119,110,108,101,114,93,1,0,0,170,3,0,0,115,36, + 0,0,0,128,0,240,16,0,15,19,144,50,137,104,136,3, + 220,15,22,144,116,152,84,160,52,168,3,168,18,160,57,168, + 99,211,15,50,208,8,50,114,27,0,0,0,114,91,1,0, + 0,114,93,1,0,0,114,87,1,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,7,0,0,0, + 243,28,0,0,0,151,0,116,1,0,0,0,0,0,0,0, + 0,124,0,124,1,124,2,171,3,0,0,0,0,0,0,83, + 0,41,1,97,87,1,0,0,115,112,97,119,110,108,112,40, + 109,111,100,101,44,32,102,105,108,101,44,32,42,97,114,103, + 115,41,32,45,62,32,105,110,116,101,103,101,114,10,10,69, + 120,101,99,117,116,101,32,102,105,108,101,32,40,119,104,105, + 99,104,32,105,115,32,108,111,111,107,101,100,32,102,111,114, + 32,97,108,111,110,103,32,36,80,65,84,72,41,32,119,105, + 116,104,32,97,114,103,117,109,101,110,116,115,32,102,114,111, + 109,10,97,114,103,115,32,105,110,32,97,32,115,117,98,112, + 114,111,99,101,115,115,32,119,105,116,104,32,116,104,101,32, + 115,117,112,112,108,105,101,100,32,101,110,118,105,114,111,110, + 109,101,110,116,46,10,73,102,32,109,111,100,101,32,61,61, + 32,80,95,78,79,87,65,73,84,32,114,101,116,117,114,110, + 32,116,104,101,32,112,105,100,32,111,102,32,116,104,101,32, + 112,114,111,99,101,115,115,46,10,73,102,32,109,111,100,101, + 32,61,61,32,80,95,87,65,73,84,32,114,101,116,117,114, + 110,32,116,104,101,32,112,114,111,99,101,115,115,39,115,32, + 101,120,105,116,32,99,111,100,101,32,105,102,32,105,116,32, + 101,120,105,116,115,32,110,111,114,109,97,108,108,121,59,10, + 111,116,104,101,114,119,105,115,101,32,114,101,116,117,114,110, + 32,45,83,73,71,44,32,119,104,101,114,101,32,83,73,71, + 32,105,115,32,116,104,101,32,115,105,103,110,97,108,32,116, + 104,97,116,32,107,105,108,108,101,100,32,105,116,46,32,41, + 1,114,87,1,0,0,114,82,1,0,0,115,3,0,0,0, + 32,32,32,114,25,0,0,0,218,7,115,112,97,119,110,108, + 112,114,95,1,0,0,188,3,0,0,115,19,0,0,0,128, + 0,244,16,0,16,23,144,116,152,84,160,52,211,15,40,208, + 8,40,114,27,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,7,0,0,0,7,0,0,0,243,46,0,0, + 0,151,0,124,2,100,1,25,0,0,0,125,3,116,1,0, + 0,0,0,0,0,0,0,124,0,124,1,124,2,100,2,100, + 1,26,0,124,3,171,4,0,0,0,0,0,0,83,0,41, + 3,97,93,1,0,0,115,112,97,119,110,108,112,101,40,109, + 111,100,101,44,32,102,105,108,101,44,32,42,97,114,103,115, + 44,32,101,110,118,41,32,45,62,32,105,110,116,101,103,101, + 114,10,10,69,120,101,99,117,116,101,32,102,105,108,101,32, + 40,119,104,105,99,104,32,105,115,32,108,111,111,107,101,100, + 32,102,111,114,32,97,108,111,110,103,32,36,80,65,84,72, + 41,32,119,105,116,104,32,97,114,103,117,109,101,110,116,115, + 32,102,114,111,109,10,97,114,103,115,32,105,110,32,97,32, + 115,117,98,112,114,111,99,101,115,115,32,119,105,116,104,32, + 116,104,101,32,115,117,112,112,108,105,101,100,32,101,110,118, + 105,114,111,110,109,101,110,116,46,10,73,102,32,109,111,100, + 101,32,61,61,32,80,95,78,79,87,65,73,84,32,114,101, + 116,117,114,110,32,116,104,101,32,112,105,100,32,111,102,32, + 116,104,101,32,112,114,111,99,101,115,115,46,10,73,102,32, + 109,111,100,101,32,61,61,32,80,95,87,65,73,84,32,114, + 101,116,117,114,110,32,116,104,101,32,112,114,111,99,101,115, + 115,39,115,32,101,120,105,116,32,99,111,100,101,32,105,102, + 32,105,116,32,101,120,105,116,115,32,110,111,114,109,97,108, + 108,121,59,10,111,116,104,101,114,119,105,115,101,32,114,101, + 116,117,114,110,32,45,83,73,71,44,32,119,104,101,114,101, + 32,83,73,71,32,105,115,32,116,104,101,32,115,105,103,110, + 97,108,32,116,104,97,116,32,107,105,108,108,101,100,32,105, + 116,46,32,114,190,0,0,0,78,41,1,114,89,1,0,0, + 114,84,1,0,0,115,4,0,0,0,32,32,32,32,114,25, + 0,0,0,218,8,115,112,97,119,110,108,112,101,114,97,1, + 0,0,198,3,0,0,115,36,0,0,0,128,0,240,16,0, + 15,19,144,50,137,104,136,3,220,15,23,152,4,152,100,160, + 68,168,19,168,34,160,73,168,115,211,15,51,208,8,51,114, + 27,0,0,0,114,95,1,0,0,114,97,1,0,0,218,7, + 118,120,119,111,114,107,115,99,3,0,0,0,0,0,0,0, + 0,0,0,0,7,0,0,0,3,0,0,0,243,130,1,0, + 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,116, + 2,0,0,0,0,0,0,0,0,171,2,0,0,0,0,0, + 0,115,23,116,5,0,0,0,0,0,0,0,0,100,1,116, + 7,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, + 0,0,0,122,6,0,0,171,1,0,0,0,0,0,0,130, + 1,124,1,100,2,118,1,114,14,116,9,0,0,0,0,0, + 0,0,0,100,3,124,1,122,6,0,0,171,1,0,0,0, + 0,0,0,130,1,124,2,100,4,107,40,0,0,115,2,124, + 2,128,11,116,9,0,0,0,0,0,0,0,0,100,5,171, + 1,0,0,0,0,0,0,130,1,100,4,100,0,108,5,125, + 3,124,1,100,6,107,40,0,0,114,54,124,3,106,13,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,4,171,2,0,0,0,0,0,0,83,0,124,3,106, - 13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,100,7,100,7,124,3,106,14,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 2,172,9,171,5,0,0,0,0,0,0,125,4,116,17,0, - 0,0,0,0,0,0,0,124,4,106,20,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,4,171, - 2,0,0,0,0,0,0,83,0,41,10,78,122,38,105,110, - 118,97,108,105,100,32,99,109,100,32,116,121,112,101,32,40, - 37,115,44,32,101,120,112,101,99,116,101,100,32,115,116,114, - 105,110,103,41,41,2,218,1,114,218,1,119,122,15,105,110, - 118,97,108,105,100,32,109,111,100,101,32,37,114,114,2,0, - 0,0,122,43,112,111,112,101,110,40,41,32,100,111,101,115, - 32,110,111,116,32,115,117,112,112,111,114,116,32,117,110,98, - 117,102,102,101,114,101,100,32,115,116,114,101,97,109,115,114, - 99,1,0,0,84,41,4,218,5,115,104,101,108,108,218,4, - 116,101,120,116,218,6,115,116,100,111,117,116,218,7,98,117, - 102,115,105,122,101,41,4,114,101,1,0,0,114,102,1,0, - 0,218,5,115,116,100,105,110,114,104,1,0,0,41,11,114, - 115,0,0,0,114,47,0,0,0,114,223,0,0,0,114,34, - 1,0,0,114,225,0,0,0,218,10,115,117,98,112,114,111, - 99,101,115,115,218,5,80,111,112,101,110,218,4,80,73,80, - 69,218,11,95,119,114,97,112,95,99,108,111,115,101,114,103, - 1,0,0,114,105,1,0,0,41,5,218,3,99,109,100,114, - 119,0,0,0,218,9,98,117,102,102,101,114,105,110,103,114, - 106,1,0,0,218,4,112,114,111,99,115,5,0,0,0,32, - 32,32,32,32,114,25,0,0,0,218,5,112,111,112,101,110, - 114,113,1,0,0,216,3,0,0,115,206,0,0,0,128,0, - 220,15,25,152,35,156,115,212,15,35,220,18,27,208,28,68, - 196,116,200,67,195,121,209,28,80,211,18,81,208,12,81,216, - 11,15,144,122,209,11,33,220,18,28,208,29,46,176,20,209, - 29,53,211,18,54,208,12,54,216,11,20,152,1,138,62,152, - 89,208,29,46,220,18,28,208,29,74,211,18,75,208,12,75, - 219,8,25,216,11,15,144,51,138,59,216,19,29,215,19,35, - 209,19,35,160,67,216,42,46,176,84,216,43,53,175,63,169, - 63,216,44,53,240,7,0,20,36,243,0,3,20,55,136,68, - 244,8,0,20,31,152,116,159,123,153,123,168,68,211,19,49, - 208,12,49,224,19,29,215,19,35,209,19,35,160,67,216,42, - 46,176,84,216,42,52,175,47,169,47,216,44,53,240,7,0, - 20,36,243,0,3,20,55,136,68,244,8,0,20,31,152,116, - 159,122,153,122,168,52,211,19,48,208,12,48,114,27,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,0,0,0,0,243,48,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,132,0,90,3,100,2,132,0,90, - 4,100,3,132,0,90,5,100,4,132,0,90,6,100,5,132, - 0,90,7,100,6,132,0,90,8,121,7,41,8,114,109,1, - 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,3,0,0,0,243,32,0,0,0,151,0,124,1, - 124,0,95,0,0,0,0,0,0,0,0,0,124,2,124,0, - 95,1,0,0,0,0,0,0,0,0,121,0,114,23,0,0, - 0,41,2,218,7,95,115,116,114,101,97,109,218,5,95,112, - 114,111,99,41,3,114,238,0,0,0,218,6,115,116,114,101, - 97,109,114,112,1,0,0,115,3,0,0,0,32,32,32,114, - 25,0,0,0,114,240,0,0,0,122,20,95,119,114,97,112, - 95,99,108,111,115,101,46,95,95,105,110,105,116,95,95,239, - 3,0,0,115,16,0,0,0,128,0,216,27,33,136,68,140, - 76,216,25,29,136,68,141,74,114,27,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0, - 0,0,243,150,0,0,0,151,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,1,0,124,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,7,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,125, - 1,124,1,100,1,107,40,0,0,114,1,121,0,116,8,0, - 0,0,0,0,0,0,0,100,2,107,40,0,0,114,2,124, - 1,83,0,124,1,100,3,122,3,0,0,83,0,41,4,78, - 114,2,0,0,0,114,42,0,0,0,233,8,0,0,0,41, - 5,114,116,1,0,0,114,170,0,0,0,114,117,1,0,0, - 218,4,119,97,105,116,114,11,0,0,0,41,2,114,238,0, - 0,0,218,10,114,101,116,117,114,110,99,111,100,101,115,2, - 0,0,0,32,32,114,25,0,0,0,114,170,0,0,0,122, - 17,95,119,114,97,112,95,99,108,111,115,101,46,99,108,111, - 115,101,242,3,0,0,115,67,0,0,0,128,0,216,12,16, - 143,76,137,76,215,12,30,209,12,30,212,12,32,216,25,29, - 159,26,153,26,159,31,153,31,211,25,42,136,74,216,15,25, - 152,81,138,127,216,23,27,220,15,19,144,116,138,124,216,23, - 33,208,16,33,224,23,33,160,81,145,127,208,16,38,114,27, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,3,0,0,0,243,6,0,0,0,151,0,124, - 0,83,0,114,23,0,0,0,114,15,1,0,0,114,2,1, - 0,0,115,1,0,0,0,32,114,25,0,0,0,218,9,95, - 95,101,110,116,101,114,95,95,122,21,95,119,114,97,112,95, - 99,108,111,115,101,46,95,95,101,110,116,101,114,95,95,251, - 3,0,0,243,7,0,0,0,128,0,216,19,23,136,75,114, - 27,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,7,0,0,0,243,36,0,0,0,151,0, - 124,0,106,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 121,0,114,23,0,0,0,169,1,114,170,0,0,0,169,2, - 114,238,0,0,0,114,186,0,0,0,115,2,0,0,0,32, - 32,114,25,0,0,0,218,8,95,95,101,120,105,116,95,95, - 122,20,95,119,114,97,112,95,99,108,111,115,101,46,95,95, - 101,120,105,116,95,95,253,3,0,0,243,11,0,0,0,128, - 0,216,12,16,143,74,137,74,141,76,114,27,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,46,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,2,0, - 0,0,0,0,0,83,0,114,23,0,0,0,41,2,218,7, - 103,101,116,97,116,116,114,114,116,1,0,0,41,2,114,238, - 0,0,0,114,11,0,0,0,115,2,0,0,0,32,32,114, - 25,0,0,0,218,11,95,95,103,101,116,97,116,116,114,95, - 95,122,23,95,119,114,97,112,95,99,108,111,115,101,46,95, - 95,103,101,116,97,116,116,114,95,95,255,3,0,0,115,19, - 0,0,0,128,0,220,19,26,152,52,159,60,153,60,168,20, - 211,19,46,208,12,46,114,27,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,44,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,83, - 0,114,23,0,0,0,41,2,218,4,105,116,101,114,114,116, - 1,0,0,114,2,1,0,0,115,1,0,0,0,32,114,25, - 0,0,0,114,255,0,0,0,122,20,95,119,114,97,112,95, - 99,108,111,115,101,46,95,95,105,116,101,114,95,95,1,4, - 0,0,115,17,0,0,0,128,0,220,19,23,152,4,159,12, - 153,12,211,19,37,208,12,37,114,27,0,0,0,78,41,9, - 114,28,1,0,0,114,29,1,0,0,114,30,1,0,0,114, - 240,0,0,0,114,170,0,0,0,114,124,1,0,0,114,129, - 1,0,0,114,133,1,0,0,114,255,0,0,0,114,15,1, - 0,0,114,27,0,0,0,114,25,0,0,0,114,109,1,0, - 0,114,109,1,0,0,238,3,0,0,115,32,0,0,0,132, - 0,242,2,2,9,30,242,6,8,9,39,242,18,1,9,24, - 242,4,1,9,25,242,4,1,9,47,243,4,1,9,38,114, - 27,0,0,0,114,109,1,0,0,114,113,1,0,0,99,4, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,15, - 0,0,0,243,180,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,116,2,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,115,23,116,5,0,0,0,0, - 0,0,0,0,100,1,116,7,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,122,6,0,0,171,1, - 0,0,0,0,0,0,130,1,100,2,100,0,108,4,125,6, - 100,3,124,1,118,1,114,17,124,6,106,11,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,3, - 171,1,0,0,0,0,0,0,125,3,2,0,124,6,106,12, + 0,124,0,100,7,100,7,124,3,106,14,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,172, + 8,171,5,0,0,0,0,0,0,125,4,116,17,0,0,0, + 0,0,0,0,0,124,4,106,18,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,124,4,171,2,0, + 0,0,0,0,0,83,0,124,3,106,13,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,100, + 7,100,7,124,3,106,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,2,172,9,171,5,0, + 0,0,0,0,0,125,4,116,17,0,0,0,0,0,0,0, + 0,124,4,106,20,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,4,171,2,0,0,0,0,0, + 0,83,0,41,10,78,122,38,105,110,118,97,108,105,100,32, + 99,109,100,32,116,121,112,101,32,40,37,115,44,32,101,120, + 112,101,99,116,101,100,32,115,116,114,105,110,103,41,41,2, + 218,1,114,218,1,119,122,15,105,110,118,97,108,105,100,32, + 109,111,100,101,32,37,114,114,2,0,0,0,122,43,112,111, + 112,101,110,40,41,32,100,111,101,115,32,110,111,116,32,115, + 117,112,112,111,114,116,32,117,110,98,117,102,102,101,114,101, + 100,32,115,116,114,101,97,109,115,114,100,1,0,0,84,41, + 4,218,5,115,104,101,108,108,218,4,116,101,120,116,218,6, + 115,116,100,111,117,116,218,7,98,117,102,115,105,122,101,41, + 4,114,102,1,0,0,114,103,1,0,0,218,5,115,116,100, + 105,110,114,105,1,0,0,41,11,114,115,0,0,0,114,47, + 0,0,0,114,224,0,0,0,114,35,1,0,0,114,226,0, + 0,0,218,10,115,117,98,112,114,111,99,101,115,115,218,5, + 80,111,112,101,110,218,4,80,73,80,69,218,11,95,119,114, + 97,112,95,99,108,111,115,101,114,104,1,0,0,114,106,1, + 0,0,41,5,218,3,99,109,100,114,119,0,0,0,218,9, + 98,117,102,102,101,114,105,110,103,114,107,1,0,0,218,4, + 112,114,111,99,115,5,0,0,0,32,32,32,32,32,114,25, + 0,0,0,218,5,112,111,112,101,110,114,114,1,0,0,216, + 3,0,0,115,206,0,0,0,128,0,220,15,25,152,35,156, + 115,212,15,35,220,18,27,208,28,68,196,116,200,67,195,121, + 209,28,80,211,18,81,208,12,81,216,11,15,144,122,209,11, + 33,220,18,28,208,29,46,176,20,209,29,53,211,18,54,208, + 12,54,216,11,20,152,1,138,62,152,89,208,29,46,220,18, + 28,208,29,74,211,18,75,208,12,75,219,8,25,216,11,15, + 144,51,138,59,216,19,29,215,19,35,209,19,35,160,67,216, + 42,46,176,84,216,43,53,175,63,169,63,216,44,53,240,7, + 0,20,36,243,0,3,20,55,136,68,244,8,0,20,31,152, + 116,159,123,153,123,168,68,211,19,49,208,12,49,224,19,29, + 215,19,35,209,19,35,160,67,216,42,46,176,84,216,42,52, + 175,47,169,47,216,44,53,240,7,0,20,36,243,0,3,20, + 55,136,68,244,8,0,20,31,152,116,159,122,153,122,168,52, + 211,19,48,208,12,48,114,27,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 243,48,0,0,0,151,0,101,0,90,1,100,0,90,2,100, + 1,132,0,90,3,100,2,132,0,90,4,100,3,132,0,90, + 5,100,4,132,0,90,6,100,5,132,0,90,7,100,6,132, + 0,90,8,121,7,41,8,114,110,1,0,0,99,3,0,0, + 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0, + 0,243,32,0,0,0,151,0,124,1,124,0,95,0,0,0, + 0,0,0,0,0,0,124,2,124,0,95,1,0,0,0,0, + 0,0,0,0,121,0,114,23,0,0,0,41,2,218,7,95, + 115,116,114,101,97,109,218,5,95,112,114,111,99,41,3,114, + 239,0,0,0,218,6,115,116,114,101,97,109,114,113,1,0, + 0,115,3,0,0,0,32,32,32,114,25,0,0,0,114,241, + 0,0,0,122,20,95,119,114,97,112,95,99,108,111,115,101, + 46,95,95,105,110,105,116,95,95,239,3,0,0,115,16,0, + 0,0,128,0,216,27,33,136,68,140,76,216,25,29,136,68, + 141,74,114,27,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,243,150,0,0, + 0,151,0,124,0,106,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, + 0,0,0,0,0,1,0,124,0,106,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,106,7,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,171,0,0,0,0,0,0,0,125,1,124,1,100,1,107, + 40,0,0,114,1,121,0,116,8,0,0,0,0,0,0,0, + 0,100,2,107,40,0,0,114,2,124,1,83,0,124,1,100, + 3,122,3,0,0,83,0,41,4,78,114,2,0,0,0,114, + 42,0,0,0,233,8,0,0,0,41,5,114,117,1,0,0, + 114,171,0,0,0,114,118,1,0,0,218,4,119,97,105,116, + 114,11,0,0,0,41,2,114,239,0,0,0,218,10,114,101, + 116,117,114,110,99,111,100,101,115,2,0,0,0,32,32,114, + 25,0,0,0,114,171,0,0,0,122,17,95,119,114,97,112, + 95,99,108,111,115,101,46,99,108,111,115,101,242,3,0,0, + 115,67,0,0,0,128,0,216,12,16,143,76,137,76,215,12, + 30,209,12,30,212,12,32,216,25,29,159,26,153,26,159,31, + 153,31,211,25,42,136,74,216,15,25,152,81,138,127,216,23, + 27,220,15,19,144,116,138,124,216,23,33,208,16,33,224,23, + 33,160,81,145,127,208,16,38,114,27,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,243,6,0,0,0,151,0,124,0,83,0,114,23,0, + 0,0,114,16,1,0,0,114,3,1,0,0,115,1,0,0, + 0,32,114,25,0,0,0,218,9,95,95,101,110,116,101,114, + 95,95,122,21,95,119,114,97,112,95,99,108,111,115,101,46, + 95,95,101,110,116,101,114,95,95,251,3,0,0,243,7,0, + 0,0,128,0,216,19,23,136,75,114,27,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,7, + 0,0,0,243,36,0,0,0,151,0,124,0,106,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,124,1,124,2,124,3,103,4,124,4,162,1, - 173,6,105,0,124,5,164,1,142,1,83,0,41,4,78,122, - 38,105,110,118,97,108,105,100,32,102,100,32,116,121,112,101, - 32,40,37,115,44,32,101,120,112,101,99,116,101,100,32,105, - 110,116,101,103,101,114,41,114,2,0,0,0,218,1,98,41, - 7,114,115,0,0,0,218,3,105,110,116,114,223,0,0,0, - 114,34,1,0,0,218,2,105,111,218,13,116,101,120,116,95, - 101,110,99,111,100,105,110,103,114,69,0,0,0,41,7,218, - 2,102,100,114,119,0,0,0,114,111,1,0,0,114,43,1, - 0,0,114,186,0,0,0,218,6,107,119,97,114,103,115,114, - 139,1,0,0,115,7,0,0,0,32,32,32,32,32,32,32, - 114,25,0,0,0,114,20,0,0,0,114,20,0,0,0,7, - 4,0,0,115,92,0,0,0,128,0,220,11,21,144,98,156, - 35,212,11,30,220,14,23,208,24,64,196,52,200,2,195,56, - 209,24,75,211,14,76,208,8,76,219,4,13,216,7,10,144, - 36,129,127,216,19,21,215,19,35,209,19,35,160,72,211,19, - 45,136,8,216,11,18,136,50,143,55,137,55,144,50,144,116, - 152,89,168,8,208,11,66,176,52,210,11,66,184,54,209,11, - 66,208,4,66,114,27,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,8,0,0,0,3,0,0,0,243,112, - 1,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, - 0,116,2,0,0,0,0,0,0,0,0,116,4,0,0,0, - 0,0,0,0,0,102,2,171,2,0,0,0,0,0,0,114, - 2,124,0,83,0,116,7,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,125,1,9,0,124,1,106, - 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,2,116, - 1,0,0,0,0,0,0,0,0,124,2,116,2,0,0,0, + 171,0,0,0,0,0,0,0,1,0,121,0,114,23,0,0, + 0,169,1,114,171,0,0,0,169,2,114,239,0,0,0,114, + 187,0,0,0,115,2,0,0,0,32,32,114,25,0,0,0, + 218,8,95,95,101,120,105,116,95,95,122,20,95,119,114,97, + 112,95,99,108,111,115,101,46,95,95,101,120,105,116,95,95, + 253,3,0,0,243,11,0,0,0,128,0,216,12,16,143,74, + 137,74,141,76,114,27,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,46, + 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, + 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,1,171,2,0,0,0,0,0,0,83, + 0,114,23,0,0,0,41,2,218,7,103,101,116,97,116,116, + 114,114,117,1,0,0,41,2,114,239,0,0,0,114,11,0, + 0,0,115,2,0,0,0,32,32,114,25,0,0,0,218,11, + 95,95,103,101,116,97,116,116,114,95,95,122,23,95,119,114, + 97,112,95,99,108,111,115,101,46,95,95,103,101,116,97,116, + 116,114,95,95,255,3,0,0,115,19,0,0,0,128,0,220, + 19,26,152,52,159,60,153,60,168,20,211,19,46,208,12,46, + 114,27,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,3,0,0,0,243,44,0,0,0,151, + 0,116,1,0,0,0,0,0,0,0,0,124,0,106,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,171,1,0,0,0,0,0,0,83,0,114,23,0,0,0, + 41,2,218,4,105,116,101,114,114,117,1,0,0,114,3,1, + 0,0,115,1,0,0,0,32,114,25,0,0,0,114,0,1, + 0,0,122,20,95,119,114,97,112,95,99,108,111,115,101,46, + 95,95,105,116,101,114,95,95,1,4,0,0,115,17,0,0, + 0,128,0,220,19,23,152,4,159,12,153,12,211,19,37,208, + 12,37,114,27,0,0,0,78,41,9,114,29,1,0,0,114, + 30,1,0,0,114,31,1,0,0,114,241,0,0,0,114,171, + 0,0,0,114,125,1,0,0,114,130,1,0,0,114,134,1, + 0,0,114,0,1,0,0,114,16,1,0,0,114,27,0,0, + 0,114,25,0,0,0,114,110,1,0,0,114,110,1,0,0, + 238,3,0,0,115,32,0,0,0,132,0,242,2,2,9,30, + 242,6,8,9,39,242,18,1,9,24,242,4,1,9,25,242, + 4,1,9,47,243,4,1,9,38,114,27,0,0,0,114,110, + 1,0,0,114,114,1,0,0,99,4,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,15,0,0,0,243,180,0, + 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, + 116,2,0,0,0,0,0,0,0,0,171,2,0,0,0,0, + 0,0,115,23,116,5,0,0,0,0,0,0,0,0,100,1, + 116,7,0,0,0,0,0,0,0,0,124,0,171,1,0,0, + 0,0,0,0,122,6,0,0,171,1,0,0,0,0,0,0, + 130,1,100,2,100,0,108,4,125,6,100,3,124,1,118,1, + 114,17,124,6,106,11,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,3,171,1,0,0,0,0, + 0,0,125,3,2,0,124,6,106,12,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,0,124,1, + 124,2,124,3,103,4,124,4,162,1,173,6,105,0,124,5, + 164,1,142,1,83,0,41,4,78,122,38,105,110,118,97,108, + 105,100,32,102,100,32,116,121,112,101,32,40,37,115,44,32, + 101,120,112,101,99,116,101,100,32,105,110,116,101,103,101,114, + 41,114,2,0,0,0,218,1,98,41,7,114,115,0,0,0, + 218,3,105,110,116,114,224,0,0,0,114,35,1,0,0,218, + 2,105,111,218,13,116,101,120,116,95,101,110,99,111,100,105, + 110,103,114,69,0,0,0,41,7,218,2,102,100,114,119,0, + 0,0,114,112,1,0,0,114,44,1,0,0,114,187,0,0, + 0,218,6,107,119,97,114,103,115,114,140,1,0,0,115,7, + 0,0,0,32,32,32,32,32,32,32,114,25,0,0,0,114, + 20,0,0,0,114,20,0,0,0,7,4,0,0,115,92,0, + 0,0,128,0,220,11,21,144,98,156,35,212,11,30,220,14, + 23,208,24,64,196,52,200,2,195,56,209,24,75,211,14,76, + 208,8,76,219,4,13,216,7,10,144,36,129,127,216,19,21, + 215,19,35,209,19,35,160,72,211,19,45,136,8,216,11,18, + 136,50,143,55,137,55,144,50,144,116,152,89,168,8,208,11, + 66,176,52,210,11,66,184,54,209,11,66,208,4,66,114,27, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 8,0,0,0,3,0,0,0,243,112,1,0,0,151,0,116, + 1,0,0,0,0,0,0,0,0,124,0,116,2,0,0,0, 0,0,0,0,0,116,4,0,0,0,0,0,0,0,0,102, - 2,171,2,0,0,0,0,0,0,114,2,124,2,83,0,116, - 15,0,0,0,0,0,0,0,0,100,3,106,19,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,106,16,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,116,7,0,0,0,0,0,0,0,0,124, - 2,171,1,0,0,0,0,0,0,106,16,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,130,1,35, - 0,116,10,0,0,0,0,0,0,0,0,36,0,114,38,1, - 0,116,13,0,0,0,0,0,0,0,0,124,1,100,1,171, - 2,0,0,0,0,0,0,114,1,130,0,116,15,0,0,0, - 0,0,0,0,0,100,2,124,1,106,16,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,122,0,0, - 0,171,1,0,0,0,0,0,0,130,1,119,0,120,3,89, - 0,119,1,41,4,97,97,1,0,0,82,101,116,117,114,110, - 32,116,104,101,32,112,97,116,104,32,114,101,112,114,101,115, - 101,110,116,97,116,105,111,110,32,111,102,32,97,32,112,97, - 116,104,45,108,105,107,101,32,111,98,106,101,99,116,46,10, - 10,32,32,32,32,73,102,32,115,116,114,32,111,114,32,98, - 121,116,101,115,32,105,115,32,112,97,115,115,101,100,32,105, - 110,44,32,105,116,32,105,115,32,114,101,116,117,114,110,101, - 100,32,117,110,99,104,97,110,103,101,100,46,32,79,116,104, - 101,114,119,105,115,101,32,116,104,101,10,32,32,32,32,111, - 115,46,80,97,116,104,76,105,107,101,32,105,110,116,101,114, - 102,97,99,101,32,105,115,32,117,115,101,100,32,116,111,32, - 103,101,116,32,116,104,101,32,112,97,116,104,32,114,101,112, - 114,101,115,101,110,116,97,116,105,111,110,46,32,73,102,32, - 116,104,101,10,32,32,32,32,112,97,116,104,32,114,101,112, - 114,101,115,101,110,116,97,116,105,111,110,32,105,115,32,110, - 111,116,32,115,116,114,32,111,114,32,98,121,116,101,115,44, - 32,84,121,112,101,69,114,114,111,114,32,105,115,32,114,97, - 105,115,101,100,46,32,73,102,32,116,104,101,10,32,32,32, - 32,112,114,111,118,105,100,101,100,32,112,97,116,104,32,105, - 115,32,110,111,116,32,115,116,114,44,32,98,121,116,101,115, - 44,32,111,114,32,111,115,46,80,97,116,104,76,105,107,101, - 44,32,84,121,112,101,69,114,114,111,114,32,105,115,32,114, - 97,105,115,101,100,46,10,32,32,32,32,218,10,95,95,102, - 115,112,97,116,104,95,95,122,47,101,120,112,101,99,116,101, - 100,32,115,116,114,44,32,98,121,116,101,115,32,111,114,32, - 111,115,46,80,97,116,104,76,105,107,101,32,111,98,106,101, - 99,116,44,32,110,111,116,32,122,55,101,120,112,101,99,116, - 101,100,32,123,125,46,95,95,102,115,112,97,116,104,95,95, - 40,41,32,116,111,32,114,101,116,117,114,110,32,115,116,114, - 32,111,114,32,98,121,116,101,115,44,32,110,111,116,32,123, - 125,41,10,114,115,0,0,0,114,47,0,0,0,114,116,0, - 0,0,114,34,1,0,0,114,144,1,0,0,114,32,0,0, - 0,218,7,104,97,115,97,116,116,114,114,223,0,0,0,114, - 28,1,0,0,218,6,102,111,114,109,97,116,41,3,114,12, - 0,0,0,218,9,112,97,116,104,95,116,121,112,101,218,9, - 112,97,116,104,95,114,101,112,114,115,3,0,0,0,32,32, - 32,114,25,0,0,0,218,7,95,102,115,112,97,116,104,114, - 149,1,0,0,18,4,0,0,115,191,0,0,0,128,0,244, - 16,0,8,18,144,36,156,19,156,101,152,12,212,7,37,216, - 15,19,136,11,244,8,0,17,21,144,84,147,10,128,73,240, - 2,7,5,57,216,20,29,215,20,40,209,20,40,168,20,211, - 20,46,136,9,244,14,0,8,18,144,41,156,99,164,53,152, - 92,212,7,42,216,15,24,208,8,24,228,14,23,240,0,1, - 25,33,223,33,39,161,22,168,9,215,40,58,209,40,58,220, - 40,44,168,89,171,15,215,40,64,209,40,64,243,3,1,34, - 66,1,243,3,2,15,67,1,240,0,2,9,67,1,248,244, - 19,0,12,26,242,0,5,5,57,220,11,18,144,57,152,108, - 212,11,43,216,12,17,228,18,27,240,0,1,29,35,216,37, - 46,215,37,55,209,37,55,241,3,1,29,56,243,0,1,19, - 57,240,0,1,13,57,240,9,5,5,57,250,115,11,0,0, - 0,165,17,66,6,0,194,6,47,66,53,3,114,132,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,0,0,0,0,243,84,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,90,3,101,4,106,10,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 2,132,0,171,0,0,0,0,0,0,0,90,6,101,7,100, - 3,132,0,171,0,0,0,0,0,0,0,90,8,2,0,101, - 7,101,9,171,1,0,0,0,0,0,0,90,10,121,4,41, - 5,218,8,80,97,116,104,76,105,107,101,122,67,65,98,115, - 116,114,97,99,116,32,98,97,115,101,32,99,108,97,115,115, - 32,102,111,114,32,105,109,112,108,101,109,101,110,116,105,110, - 103,32,116,104,101,32,102,105,108,101,32,115,121,115,116,101, - 109,32,112,97,116,104,32,112,114,111,116,111,99,111,108,46, - 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,3,0,0,0,243,14,0,0,0,151,0,116,0,0,0, - 0,0,0,0,0,0,130,1,41,1,122,57,82,101,116,117, - 114,110,32,116,104,101,32,102,105,108,101,32,115,121,115,116, - 101,109,32,112,97,116,104,32,114,101,112,114,101,115,101,110, - 116,97,116,105,111,110,32,111,102,32,116,104,101,32,111,98, - 106,101,99,116,46,41,1,218,19,78,111,116,73,109,112,108, - 101,109,101,110,116,101,100,69,114,114,111,114,114,2,1,0, - 0,115,1,0,0,0,32,114,25,0,0,0,114,144,1,0, - 0,122,19,80,97,116,104,76,105,107,101,46,95,95,102,115, - 112,97,116,104,95,95,58,4,0,0,115,10,0,0,0,128, - 0,244,6,0,15,34,208,8,33,114,27,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,54,0,0,0,151,0,124,0,116,0,0,0, - 0,0,0,0,0,0,117,0,114,12,116,3,0,0,0,0, - 0,0,0,0,124,1,100,1,171,2,0,0,0,0,0,0, - 83,0,116,4,0,0,0,0,0,0,0,0,83,0,41,2, - 78,114,144,1,0,0,41,3,114,151,1,0,0,114,3,0, - 0,0,114,23,1,0,0,41,2,218,3,99,108,115,218,8, - 115,117,98,99,108,97,115,115,115,2,0,0,0,32,32,114, - 25,0,0,0,218,16,95,95,115,117,98,99,108,97,115,115, - 104,111,111,107,95,95,122,25,80,97,116,104,76,105,107,101, - 46,95,95,115,117,98,99,108,97,115,115,104,111,111,107,95, - 95,63,4,0,0,115,28,0,0,0,128,0,224,11,14,148, - 40,137,63,220,19,33,160,40,168,76,211,19,57,208,12,57, - 220,15,29,208,8,29,114,27,0,0,0,78,41,11,114,28, - 1,0,0,114,29,1,0,0,114,30,1,0,0,218,7,95, - 95,100,111,99,95,95,218,3,97,98,99,218,14,97,98,115, - 116,114,97,99,116,109,101,116,104,111,100,114,144,1,0,0, - 218,11,99,108,97,115,115,109,101,116,104,111,100,114,157,1, - 0,0,218,12,71,101,110,101,114,105,99,65,108,105,97,115, - 218,17,95,95,99,108,97,115,115,95,103,101,116,105,116,101, - 109,95,95,114,15,1,0,0,114,27,0,0,0,114,25,0, - 0,0,114,151,1,0,0,114,151,1,0,0,54,4,0,0, - 115,62,0,0,0,132,0,225,4,77,224,5,8,215,5,23, - 209,5,23,241,2,2,5,34,243,3,0,6,24,240,2,2, - 5,34,240,8,0,6,17,241,2,3,5,30,243,3,0,6, - 17,240,2,3,5,30,241,10,0,25,36,160,76,211,24,49, - 209,4,21,114,27,0,0,0,114,151,1,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, - 0,0,243,42,0,0,0,151,0,101,0,90,1,100,0,90, - 2,100,1,132,0,90,3,100,2,132,0,90,4,100,3,132, - 0,90,5,100,4,132,0,90,6,100,5,132,0,90,7,121, - 6,41,7,218,18,95,65,100,100,101,100,68,108,108,68,105, - 114,101,99,116,111,114,121,99,4,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,243,46,0,0, - 0,151,0,124,1,124,0,95,0,0,0,0,0,0,0,0, - 0,124,2,124,0,95,1,0,0,0,0,0,0,0,0,124, - 3,124,0,95,2,0,0,0,0,0,0,0,0,121,0,114, - 23,0,0,0,41,3,114,12,0,0,0,218,7,95,99,111, - 111,107,105,101,218,21,95,114,101,109,111,118,101,95,100,108, - 108,95,100,105,114,101,99,116,111,114,121,41,4,114,238,0, - 0,0,114,12,0,0,0,218,6,99,111,111,107,105,101,218, - 20,114,101,109,111,118,101,95,100,108,108,95,100,105,114,101, - 99,116,111,114,121,115,4,0,0,0,32,32,32,32,114,25, - 0,0,0,114,240,0,0,0,122,27,95,65,100,100,101,100, - 68,108,108,68,105,114,101,99,116,111,114,121,46,95,95,105, - 110,105,116,95,95,74,4,0,0,115,24,0,0,0,128,0, - 216,24,28,136,68,140,73,216,27,33,136,68,140,76,216,41, - 61,136,68,213,12,38,114,27,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,72,0,0,0,151,0,124,0,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,1,0,100,0,124, - 0,95,2,0,0,0,0,0,0,0,0,121,0,114,23,0, - 0,0,41,3,114,168,1,0,0,114,167,1,0,0,114,12, - 0,0,0,114,2,1,0,0,115,1,0,0,0,32,114,25, - 0,0,0,114,170,0,0,0,122,24,95,65,100,100,101,100, - 68,108,108,68,105,114,101,99,116,111,114,121,46,99,108,111, - 115,101,78,4,0,0,115,27,0,0,0,128,0,216,12,16, - 215,12,38,209,12,38,160,116,167,124,161,124,212,12,52,216, - 24,28,136,68,141,73,114,27,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, - 243,6,0,0,0,151,0,124,0,83,0,114,23,0,0,0, - 114,15,1,0,0,114,2,1,0,0,115,1,0,0,0,32, - 114,25,0,0,0,114,124,1,0,0,122,28,95,65,100,100, - 101,100,68,108,108,68,105,114,101,99,116,111,114,121,46,95, - 95,101,110,116,101,114,95,95,81,4,0,0,114,125,1,0, - 0,114,27,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,7,0,0,0,243,36,0,0,0, - 151,0,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 1,0,121,0,114,23,0,0,0,114,127,1,0,0,114,128, - 1,0,0,115,2,0,0,0,32,32,114,25,0,0,0,114, - 129,1,0,0,122,27,95,65,100,100,101,100,68,108,108,68, - 105,114,101,99,116,111,114,121,46,95,95,101,120,105,116,95, - 95,83,4,0,0,114,130,1,0,0,114,27,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,82,0,0,0,151,0,124,0,106,0,0, + 2,171,2,0,0,0,0,0,0,114,2,124,0,83,0,116, + 7,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, + 0,0,0,125,1,9,0,124,1,106,9,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, + 1,0,0,0,0,0,0,125,2,116,1,0,0,0,0,0, + 0,0,0,124,2,116,2,0,0,0,0,0,0,0,0,116, + 4,0,0,0,0,0,0,0,0,102,2,171,2,0,0,0, + 0,0,0,114,2,124,2,83,0,116,15,0,0,0,0,0, + 0,0,0,100,3,106,19,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,1,106,16,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, + 7,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, + 0,0,0,106,16,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,171, + 1,0,0,0,0,0,0,130,1,35,0,116,10,0,0,0, + 0,0,0,0,0,36,0,114,38,1,0,116,13,0,0,0, + 0,0,0,0,0,124,1,100,1,171,2,0,0,0,0,0, + 0,114,1,130,0,116,15,0,0,0,0,0,0,0,0,100, + 2,124,1,106,16,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,122,0,0,0,171,1,0,0,0, + 0,0,0,130,1,119,0,120,3,89,0,119,1,41,4,97, + 97,1,0,0,82,101,116,117,114,110,32,116,104,101,32,112, + 97,116,104,32,114,101,112,114,101,115,101,110,116,97,116,105, + 111,110,32,111,102,32,97,32,112,97,116,104,45,108,105,107, + 101,32,111,98,106,101,99,116,46,10,10,32,32,32,32,73, + 102,32,115,116,114,32,111,114,32,98,121,116,101,115,32,105, + 115,32,112,97,115,115,101,100,32,105,110,44,32,105,116,32, + 105,115,32,114,101,116,117,114,110,101,100,32,117,110,99,104, + 97,110,103,101,100,46,32,79,116,104,101,114,119,105,115,101, + 32,116,104,101,10,32,32,32,32,111,115,46,80,97,116,104, + 76,105,107,101,32,105,110,116,101,114,102,97,99,101,32,105, + 115,32,117,115,101,100,32,116,111,32,103,101,116,32,116,104, + 101,32,112,97,116,104,32,114,101,112,114,101,115,101,110,116, + 97,116,105,111,110,46,32,73,102,32,116,104,101,10,32,32, + 32,32,112,97,116,104,32,114,101,112,114,101,115,101,110,116, + 97,116,105,111,110,32,105,115,32,110,111,116,32,115,116,114, + 32,111,114,32,98,121,116,101,115,44,32,84,121,112,101,69, + 114,114,111,114,32,105,115,32,114,97,105,115,101,100,46,32, + 73,102,32,116,104,101,10,32,32,32,32,112,114,111,118,105, + 100,101,100,32,112,97,116,104,32,105,115,32,110,111,116,32, + 115,116,114,44,32,98,121,116,101,115,44,32,111,114,32,111, + 115,46,80,97,116,104,76,105,107,101,44,32,84,121,112,101, + 69,114,114,111,114,32,105,115,32,114,97,105,115,101,100,46, + 10,32,32,32,32,218,10,95,95,102,115,112,97,116,104,95, + 95,122,47,101,120,112,101,99,116,101,100,32,115,116,114,44, + 32,98,121,116,101,115,32,111,114,32,111,115,46,80,97,116, + 104,76,105,107,101,32,111,98,106,101,99,116,44,32,110,111, + 116,32,122,55,101,120,112,101,99,116,101,100,32,123,125,46, + 95,95,102,115,112,97,116,104,95,95,40,41,32,116,111,32, + 114,101,116,117,114,110,32,115,116,114,32,111,114,32,98,121, + 116,101,115,44,32,110,111,116,32,123,125,41,10,114,115,0, + 0,0,114,47,0,0,0,114,116,0,0,0,114,35,1,0, + 0,114,145,1,0,0,114,32,0,0,0,218,7,104,97,115, + 97,116,116,114,114,224,0,0,0,114,29,1,0,0,218,6, + 102,111,114,109,97,116,41,3,114,12,0,0,0,218,9,112, + 97,116,104,95,116,121,112,101,218,9,112,97,116,104,95,114, + 101,112,114,115,3,0,0,0,32,32,32,114,25,0,0,0, + 218,7,95,102,115,112,97,116,104,114,150,1,0,0,18,4, + 0,0,115,191,0,0,0,128,0,244,16,0,8,18,144,36, + 156,19,156,101,152,12,212,7,37,216,15,19,136,11,244,8, + 0,17,21,144,84,147,10,128,73,240,2,7,5,57,216,20, + 29,215,20,40,209,20,40,168,20,211,20,46,136,9,244,14, + 0,8,18,144,41,156,99,164,53,152,92,212,7,42,216,15, + 24,208,8,24,228,14,23,240,0,1,25,33,223,33,39,161, + 22,168,9,215,40,58,209,40,58,220,40,44,168,89,171,15, + 215,40,64,209,40,64,243,3,1,34,66,1,243,3,2,15, + 67,1,240,0,2,9,67,1,248,244,19,0,12,26,242,0, + 5,5,57,220,11,18,144,57,152,108,212,11,43,216,12,17, + 228,18,27,240,0,1,29,35,216,37,46,215,37,55,209,37, + 55,241,3,1,29,56,243,0,1,19,57,240,0,1,13,57, + 240,9,5,5,57,250,115,11,0,0,0,165,17,66,6,0, + 194,6,47,66,53,3,114,132,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, + 243,84,0,0,0,151,0,101,0,90,1,100,0,90,2,100, + 1,90,3,101,4,106,10,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,100,2,132,0,171,0,0, + 0,0,0,0,0,90,6,101,7,100,3,132,0,171,0,0, + 0,0,0,0,0,90,8,2,0,101,7,101,9,171,1,0, + 0,0,0,0,0,90,10,121,4,41,5,218,8,80,97,116, + 104,76,105,107,101,122,67,65,98,115,116,114,97,99,116,32, + 98,97,115,101,32,99,108,97,115,115,32,102,111,114,32,105, + 109,112,108,101,109,101,110,116,105,110,103,32,116,104,101,32, + 102,105,108,101,32,115,121,115,116,101,109,32,112,97,116,104, + 32,112,114,111,116,111,99,111,108,46,99,1,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, + 14,0,0,0,151,0,116,0,0,0,0,0,0,0,0,0, + 130,1,41,1,122,57,82,101,116,117,114,110,32,116,104,101, + 32,102,105,108,101,32,115,121,115,116,101,109,32,112,97,116, + 104,32,114,101,112,114,101,115,101,110,116,97,116,105,111,110, + 32,111,102,32,116,104,101,32,111,98,106,101,99,116,46,41, + 1,218,19,78,111,116,73,109,112,108,101,109,101,110,116,101, + 100,69,114,114,111,114,114,3,1,0,0,115,1,0,0,0, + 32,114,25,0,0,0,114,145,1,0,0,122,19,80,97,116, + 104,76,105,107,101,46,95,95,102,115,112,97,116,104,95,95, + 58,4,0,0,115,10,0,0,0,128,0,244,6,0,15,34, + 208,8,33,114,27,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,54,0, + 0,0,151,0,124,0,116,0,0,0,0,0,0,0,0,0, + 117,0,114,12,116,3,0,0,0,0,0,0,0,0,124,1, + 100,1,171,2,0,0,0,0,0,0,83,0,116,4,0,0, + 0,0,0,0,0,0,83,0,41,2,78,114,145,1,0,0, + 41,3,114,152,1,0,0,114,3,0,0,0,114,24,1,0, + 0,41,2,218,3,99,108,115,218,8,115,117,98,99,108,97, + 115,115,115,2,0,0,0,32,32,114,25,0,0,0,218,16, + 95,95,115,117,98,99,108,97,115,115,104,111,111,107,95,95, + 122,25,80,97,116,104,76,105,107,101,46,95,95,115,117,98, + 99,108,97,115,115,104,111,111,107,95,95,63,4,0,0,115, + 28,0,0,0,128,0,224,11,14,148,40,137,63,220,19,33, + 160,40,168,76,211,19,57,208,12,57,220,15,29,208,8,29, + 114,27,0,0,0,78,41,11,114,29,1,0,0,114,30,1, + 0,0,114,31,1,0,0,218,7,95,95,100,111,99,95,95, + 218,3,97,98,99,218,14,97,98,115,116,114,97,99,116,109, + 101,116,104,111,100,114,145,1,0,0,218,11,99,108,97,115, + 115,109,101,116,104,111,100,114,158,1,0,0,218,12,71,101, + 110,101,114,105,99,65,108,105,97,115,218,17,95,95,99,108, + 97,115,115,95,103,101,116,105,116,101,109,95,95,114,16,1, + 0,0,114,27,0,0,0,114,25,0,0,0,114,152,1,0, + 0,114,152,1,0,0,54,4,0,0,115,62,0,0,0,132, + 0,225,4,77,224,5,8,215,5,23,209,5,23,241,2,2, + 5,34,243,3,0,6,24,240,2,2,5,34,240,8,0,6, + 17,241,2,3,5,30,243,3,0,6,17,240,2,3,5,30, + 241,10,0,25,36,160,76,211,24,49,209,4,21,114,27,0, + 0,0,114,152,1,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,0,0,0,0,243,42,0,0, + 0,151,0,101,0,90,1,100,0,90,2,100,1,132,0,90, + 3,100,2,132,0,90,4,100,3,132,0,90,5,100,4,132, + 0,90,6,100,5,132,0,90,7,121,6,41,7,218,18,95, + 65,100,100,101,100,68,108,108,68,105,114,101,99,116,111,114, + 121,99,4,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,243,46,0,0,0,151,0,124,1,124, + 0,95,0,0,0,0,0,0,0,0,0,124,2,124,0,95, + 1,0,0,0,0,0,0,0,0,124,3,124,0,95,2,0, + 0,0,0,0,0,0,0,121,0,114,23,0,0,0,41,3, + 114,12,0,0,0,218,7,95,99,111,111,107,105,101,218,21, + 95,114,101,109,111,118,101,95,100,108,108,95,100,105,114,101, + 99,116,111,114,121,41,4,114,239,0,0,0,114,12,0,0, + 0,218,6,99,111,111,107,105,101,218,20,114,101,109,111,118, + 101,95,100,108,108,95,100,105,114,101,99,116,111,114,121,115, + 4,0,0,0,32,32,32,32,114,25,0,0,0,114,241,0, + 0,0,122,27,95,65,100,100,101,100,68,108,108,68,105,114, + 101,99,116,111,114,121,46,95,95,105,110,105,116,95,95,74, + 4,0,0,115,24,0,0,0,128,0,216,24,28,136,68,140, + 73,216,27,33,136,68,140,76,216,41,61,136,68,213,12,38, + 114,27,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,3,0,0,0,243,72,0,0,0,151, + 0,124,0,106,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,124,0,106,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,171,1,0, + 0,0,0,0,0,1,0,100,0,124,0,95,2,0,0,0, + 0,0,0,0,0,121,0,114,23,0,0,0,41,3,114,169, + 1,0,0,114,168,1,0,0,114,12,0,0,0,114,3,1, + 0,0,115,1,0,0,0,32,114,25,0,0,0,114,171,0, + 0,0,122,24,95,65,100,100,101,100,68,108,108,68,105,114, + 101,99,116,111,114,121,46,99,108,111,115,101,78,4,0,0, + 115,27,0,0,0,128,0,216,12,16,215,12,38,209,12,38, + 160,116,167,124,161,124,212,12,52,216,24,28,136,68,141,73, + 114,27,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,6,0,0,0,151, + 0,124,0,83,0,114,23,0,0,0,114,16,1,0,0,114, + 3,1,0,0,115,1,0,0,0,32,114,25,0,0,0,114, + 125,1,0,0,122,28,95,65,100,100,101,100,68,108,108,68, + 105,114,101,99,116,111,114,121,46,95,95,101,110,116,101,114, + 95,95,81,4,0,0,114,126,1,0,0,114,27,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,7,0,0,0,243,36,0,0,0,151,0,124,0,106,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,114,27,100,1,106,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,83,0,121,2,41,3,78,122,25, - 60,65,100,100,101,100,68,108,108,68,105,114,101,99,116,111, - 114,121,40,123,33,114,125,41,62,122,21,60,65,100,100,101, - 100,68,108,108,68,105,114,101,99,116,111,114,121,40,41,62, - 41,2,114,12,0,0,0,114,146,1,0,0,114,2,1,0, - 0,115,1,0,0,0,32,114,25,0,0,0,114,10,1,0, - 0,122,27,95,65,100,100,101,100,68,108,108,68,105,114,101, - 99,116,111,114,121,46,95,95,114,101,112,114,95,95,85,4, - 0,0,115,33,0,0,0,128,0,216,15,19,143,121,138,121, - 216,23,50,215,23,57,209,23,57,184,36,191,41,185,41,211, - 23,68,208,16,68,216,19,42,114,27,0,0,0,78,41,8, - 114,28,1,0,0,114,29,1,0,0,114,30,1,0,0,114, - 240,0,0,0,114,170,0,0,0,114,124,1,0,0,114,129, - 1,0,0,114,10,1,0,0,114,15,1,0,0,114,27,0, - 0,0,114,25,0,0,0,114,165,1,0,0,114,165,1,0, - 0,73,4,0,0,115,27,0,0,0,132,0,242,2,3,9, - 62,242,8,2,9,29,242,6,1,9,24,242,4,1,9,25, - 243,4,3,9,43,114,27,0,0,0,114,165,1,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,92,0,0,0,151,0,100,1,100,2,108, - 0,125,1,2,0,124,1,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,125,2,116,5,0,0,0,0,0,0,0, - 0,124,0,124,2,124,1,106,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,3,0,0,0, - 0,0,0,83,0,41,3,97,79,1,0,0,65,100,100,32, - 97,32,112,97,116,104,32,116,111,32,116,104,101,32,68,76, - 76,32,115,101,97,114,99,104,32,112,97,116,104,46,10,10, - 32,32,32,32,32,32,32,32,84,104,105,115,32,115,101,97, - 114,99,104,32,112,97,116,104,32,105,115,32,117,115,101,100, - 32,119,104,101,110,32,114,101,115,111,108,118,105,110,103,32, - 100,101,112,101,110,100,101,110,99,105,101,115,32,102,111,114, - 32,105,109,112,111,114,116,101,100,10,32,32,32,32,32,32, - 32,32,101,120,116,101,110,115,105,111,110,32,109,111,100,117, - 108,101,115,32,40,116,104,101,32,109,111,100,117,108,101,32, - 105,116,115,101,108,102,32,105,115,32,114,101,115,111,108,118, - 101,100,32,116,104,114,111,117,103,104,32,115,121,115,46,112, - 97,116,104,41,44,10,32,32,32,32,32,32,32,32,97,110, - 100,32,97,108,115,111,32,98,121,32,99,116,121,112,101,115, - 46,10,10,32,32,32,32,32,32,32,32,82,101,109,111,118, - 101,32,116,104,101,32,100,105,114,101,99,116,111,114,121,32, - 98,121,32,99,97,108,108,105,110,103,32,99,108,111,115,101, - 40,41,32,111,110,32,116,104,101,32,114,101,116,117,114,110, - 101,100,32,111,98,106,101,99,116,32,111,114,10,32,32,32, - 32,32,32,32,32,117,115,105,110,103,32,105,116,32,105,110, - 32,97,32,119,105,116,104,32,115,116,97,116,101,109,101,110, - 116,46,10,32,32,32,32,32,32,32,32,114,2,0,0,0, - 78,41,4,114,42,0,0,0,218,18,95,97,100,100,95,100, - 108,108,95,100,105,114,101,99,116,111,114,121,114,165,1,0, - 0,114,168,1,0,0,41,3,114,12,0,0,0,114,42,0, - 0,0,114,169,1,0,0,115,3,0,0,0,32,32,32,114, - 25,0,0,0,218,17,97,100,100,95,100,108,108,95,100,105, - 114,101,99,116,111,114,121,114,177,1,0,0,90,4,0,0, - 115,53,0,0,0,128,0,243,20,0,9,18,216,17,38,144, - 18,215,17,38,209,17,38,160,116,211,17,44,136,6,220,15, - 33,216,12,16,216,12,18,216,12,14,215,12,36,209,12,36, - 243,7,4,16,10,240,0,4,9,10,114,27,0,0,0,41, - 2,105,255,1,0,0,70,41,3,84,78,70,41,3,250,1, - 46,84,78,114,23,0,0,0,41,2,114,99,1,0,0,114, - 189,0,0,0,41,3,114,99,1,0,0,114,189,0,0,0, - 78,41,105,114,158,1,0,0,114,159,1,0,0,114,130,0, - 0,0,114,57,0,0,0,114,165,0,0,0,218,16,95,99, - 111,108,108,101,99,116,105,111,110,115,95,97,98,99,114,3, - 0,0,0,114,34,1,0,0,114,30,0,0,0,114,138,1, - 0,0,114,162,1,0,0,218,20,98,117,105,108,116,105,110, - 95,109,111,100,117,108,101,95,110,97,109,101,115,218,6,95, - 110,97,109,101,115,114,31,0,0,0,114,26,0,0,0,114, - 36,0,0,0,114,11,0,0,0,114,9,0,0,0,114,37, - 0,0,0,114,40,0,0,0,114,140,0,0,0,218,11,73, - 109,112,111,114,116,69,114,114,111,114,218,9,112,111,115,105, - 120,112,97,116,104,114,12,0,0,0,114,41,0,0,0,218, - 6,101,120,116,101,110,100,114,42,0,0,0,218,6,110,116, - 112,97,116,104,218,7,109,111,100,117,108,101,115,218,7,111, - 115,46,112,97,116,104,114,5,0,0,0,114,6,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,10,0,0,0,114, - 21,0,0,0,114,4,0,0,0,114,13,0,0,0,114,24, - 0,0,0,114,44,0,0,0,114,49,0,0,0,218,3,115, - 101,116,114,45,0,0,0,218,15,115,117,112,112,111,114,116, - 115,95,100,105,114,95,102,100,218,22,115,117,112,112,111,114, - 116,115,95,101,102,102,101,99,116,105,118,101,95,105,100,115, - 114,46,0,0,0,218,11,115,117,112,112,111,114,116,115,95, - 102,100,218,24,115,117,112,112,111,114,116,115,95,102,111,108, - 108,111,119,95,115,121,109,108,105,110,107,115,114,14,0,0, - 0,114,15,0,0,0,114,16,0,0,0,114,113,0,0,0, - 114,124,0,0,0,114,128,0,0,0,114,158,0,0,0,114, - 69,0,0,0,114,86,0,0,0,114,173,0,0,0,114,169, - 0,0,0,114,187,0,0,0,114,192,0,0,0,114,195,0, - 0,0,114,198,0,0,0,114,194,0,0,0,114,197,0,0, - 0,114,201,0,0,0,114,19,0,0,0,114,228,0,0,0, - 114,229,0,0,0,114,231,0,0,0,114,47,1,0,0,114, - 204,0,0,0,114,51,1,0,0,114,224,0,0,0,114,53, - 1,0,0,114,237,0,0,0,114,116,0,0,0,114,55,1, - 0,0,114,56,1,0,0,114,64,1,0,0,114,17,0,0, - 0,114,18,0,0,0,114,67,1,0,0,114,68,1,0,0, - 114,69,1,0,0,114,79,1,0,0,114,66,1,0,0,114, - 84,1,0,0,114,86,1,0,0,114,88,1,0,0,114,90, - 1,0,0,114,92,1,0,0,114,94,1,0,0,114,96,1, - 0,0,218,8,112,108,97,116,102,111,114,109,114,113,1,0, - 0,114,109,1,0,0,114,20,0,0,0,114,149,1,0,0, - 114,132,0,0,0,114,28,1,0,0,218,3,65,66,67,114, - 151,1,0,0,114,165,1,0,0,114,177,1,0,0,114,15, - 1,0,0,114,27,0,0,0,114,25,0,0,0,250,8,60, - 109,111,100,117,108,101,62,114,195,1,0,0,1,0,0,0, - 115,232,5,0,0,240,3,1,1,1,241,2,21,1,4,243, - 48,0,1,11,219,0,10,219,0,17,229,0,43,225,15,19, - 144,68,152,19,145,73,139,127,128,12,224,9,12,215,9,33, - 209,9,33,128,6,242,6,3,11,21,128,7,242,10,1,1, - 29,242,6,4,1,55,240,16,0,4,11,136,102,209,3,20, - 216,11,18,128,68,216,14,18,128,71,220,4,23,240,2,4, - 5,13,221,8,31,216,8,15,143,14,137,14,144,119,212,8, - 31,243,6,0,5,29,240,4,3,5,13,221,8,41,243,8, - 0,5,17,216,4,11,135,78,129,78,209,19,36,160,85,211, - 19,43,212,4,44,217,8,13,224,5,9,136,86,129,94,216, - 11,15,128,68,216,14,20,128,71,220,4,20,240,2,4,5, - 13,221,8,28,216,8,15,143,14,137,14,144,119,212,8,31, - 243,6,0,5,26,227,4,13,216,4,11,135,78,129,78,209, - 19,36,160,82,211,19,40,212,4,41,216,8,10,240,4,3, - 5,13,222,8,38,241,10,0,11,22,208,22,51,211,10,52, - 208,4,52,224,25,29,128,3,135,11,129,11,136,73,209,0, - 22,247,2,1,1,13,247,0,1,1,13,243,0,1,1,13, - 240,6,0,5,11,241,6,0,4,11,208,11,28,213,3,29, - 217,15,22,139,121,128,72,242,2,2,5,35,241,8,0,12, - 15,139,53,128,68,217,4,8,208,9,25,152,72,212,4,37, - 217,4,8,136,31,152,71,212,4,36,217,4,8,136,31,152, - 71,212,4,36,217,4,8,136,30,152,70,212,4,35,217,4, - 8,208,9,25,152,71,212,4,36,217,4,8,136,29,152,70, - 212,4,35,217,4,8,136,30,152,71,212,4,36,217,4,8, - 136,31,152,72,212,4,37,217,4,8,136,30,152,71,212,4, - 36,217,4,8,136,29,152,70,212,4,35,217,4,8,208,9, - 26,152,74,212,4,39,217,4,8,136,31,152,72,212,4,37, - 217,4,8,208,9,25,152,73,212,4,38,217,4,8,136,31, - 152,72,212,4,37,217,4,8,136,31,152,71,212,4,36,217, - 4,8,208,9,25,152,71,212,4,36,216,22,26,128,79,225, - 11,14,139,53,128,68,217,4,8,208,9,25,152,72,212,4, - 37,216,29,33,208,4,26,225,11,14,139,53,128,68,217,4, - 8,136,29,152,71,212,4,36,217,4,8,136,29,152,71,212, - 4,36,217,4,8,136,29,152,71,212,4,36,217,4,8,208, - 9,25,152,73,212,4,38,217,4,8,208,9,25,152,73,212, - 4,38,217,4,8,136,30,152,72,212,4,37,216,4,8,135, - 72,129,72,136,84,132,78,217,4,8,208,9,25,152,74,212, - 4,39,217,4,8,136,31,152,71,212,4,36,217,4,8,136, - 30,152,71,212,4,36,217,4,8,208,9,25,152,74,212,4, - 39,217,7,14,136,121,212,7,25,153,103,160,106,212,30,49, - 217,8,12,136,95,152,105,212,8,40,216,18,22,128,75,225, - 11,14,139,53,128,68,217,4,8,208,9,25,152,72,212,4, - 37,241,44,0,5,9,136,31,152,71,212,4,36,217,4,8, - 136,30,152,70,212,4,35,217,4,8,136,31,152,73,212,4, - 38,217,4,8,136,29,152,71,212,4,36,217,7,14,136,120, - 212,7,24,217,8,12,136,93,152,71,212,8,36,217,4,8, - 136,29,152,70,212,4,35,217,4,8,136,30,152,71,212,4, - 36,217,4,8,136,28,152,70,212,4,35,217,4,8,136,30, - 152,70,212,4,35,217,4,8,208,9,25,152,71,212,4,36, - 217,4,8,136,28,152,70,212,4,35,216,31,35,208,4,28, - 224,8,12,216,8,23,216,8,16,216,8,12,240,12,0,12, - 13,128,8,216,11,12,128,8,216,11,12,128,8,243,10,30, - 1,18,242,64,1,20,1,38,242,44,24,1,17,240,52,0, - 1,8,135,14,129,14,210,15,52,212,0,53,243,4,85,2, - 1,39,240,110,4,0,1,8,135,14,129,14,136,118,212,0, - 22,224,4,8,136,36,128,60,144,63,210,3,34,168,7,176, - 20,160,127,184,43,210,39,69,240,4,46,5,25,192,101,208, - 84,88,244,0,46,5,25,242,96,1,54,5,48,240,112,1, - 0,5,12,135,78,129,78,144,55,212,4,27,242,4,5,1, - 22,242,14,6,1,33,242,16,5,1,23,242,14,7,1,34, - 242,18,6,1,25,242,16,7,1,30,240,18,0,1,8,135, - 14,129,14,210,15,71,212,0,72,243,4,29,1,19,243,64, - 1,41,1,36,247,90,1,0,1,53,244,4,71,1,1,19, - 136,126,244,0,71,1,1,19,242,82,2,27,1,24,241,60, - 0,11,25,211,10,26,128,7,216,4,18,243,6,4,1,37, - 240,12,0,27,31,160,36,153,44,208,0,22,216,0,7,135, - 14,129,14,208,15,51,212,0,52,225,3,25,242,2,3,5, - 21,241,12,0,16,24,152,7,159,13,153,13,216,8,20,144, - 101,216,8,20,144,101,243,5,2,16,29,128,72,240,6,0, - 9,21,243,4,4,5,42,240,12,0,5,12,135,78,129,78, - 208,19,42,212,4,43,242,4,28,1,30,241,60,0,22,30, - 147,90,209,0,18,128,8,136,40,216,4,12,241,6,0,4, - 11,136,54,132,63,153,55,160,56,212,27,44,177,23,184,23, - 212,49,65,224,13,14,128,70,216,27,28,208,4,28,128,72, - 136,121,224,4,11,135,78,129,78,210,19,54,212,4,55,242, - 12,25,5,51,242,54,7,5,56,242,18,8,5,56,242,24, - 8,5,57,242,20,8,5,57,240,22,0,5,12,135,78,129, - 78,210,19,63,212,4,64,241,6,0,4,11,136,56,212,3, - 20,242,8,7,5,40,242,18,9,5,51,240,24,0,5,12, - 135,78,129,78,144,72,152,105,208,19,40,212,4,41,241,6, - 0,4,11,136,57,212,3,21,242,6,8,5,41,242,20,9, - 5,52,240,24,0,5,12,135,78,129,78,144,73,152,122,208, - 19,42,212,4,43,240,8,0,4,7,135,60,129,60,144,57, - 210,3,28,243,4,19,5,49,247,44,20,5,38,241,0,20, - 5,38,240,44,0,5,12,135,78,129,78,144,55,212,4,27, - 243,6,6,1,67,1,242,22,27,1,67,1,241,62,0,8, - 15,136,120,212,7,24,216,13,20,128,70,216,22,30,128,70, - 132,79,244,6,15,1,50,136,115,143,119,137,119,244,0,15, - 1,50,240,36,0,4,8,136,52,130,60,247,2,15,5,43, - 241,0,15,5,43,243,34,16,5,10,240,37,0,4,16,248, - 240,91,32,0,12,23,242,0,1,5,13,218,8,12,240,3, - 1,5,13,251,240,12,0,12,23,242,0,1,5,13,218,8, - 12,240,3,1,5,13,251,240,28,0,12,23,242,0,1,5, - 13,218,8,12,240,3,1,5,13,251,240,20,0,12,23,242, - 0,1,5,13,218,8,12,240,3,1,5,13,250,115,72,0, - 0,0,193,4,23,83,18,0,193,32,6,83,30,0,194,17, - 23,83,42,0,195,9,6,83,54,0,211,18,5,83,27,3, - 211,26,1,83,27,3,211,30,5,83,39,3,211,38,1,83, - 39,3,211,42,5,83,51,3,211,50,1,83,51,3,211,54, - 5,83,63,3,211,62,1,83,63,3, + 0,0,171,0,0,0,0,0,0,0,1,0,121,0,114,23, + 0,0,0,114,128,1,0,0,114,129,1,0,0,115,2,0, + 0,0,32,32,114,25,0,0,0,114,130,1,0,0,122,27, + 95,65,100,100,101,100,68,108,108,68,105,114,101,99,116,111, + 114,121,46,95,95,101,120,105,116,95,95,83,4,0,0,114, + 131,1,0,0,114,27,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,82, + 0,0,0,151,0,124,0,106,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,114,27,100,1,106, + 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,0,106,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, + 0,83,0,121,2,41,3,78,122,25,60,65,100,100,101,100, + 68,108,108,68,105,114,101,99,116,111,114,121,40,123,33,114, + 125,41,62,122,21,60,65,100,100,101,100,68,108,108,68,105, + 114,101,99,116,111,114,121,40,41,62,41,2,114,12,0,0, + 0,114,147,1,0,0,114,3,1,0,0,115,1,0,0,0, + 32,114,25,0,0,0,114,11,1,0,0,122,27,95,65,100, + 100,101,100,68,108,108,68,105,114,101,99,116,111,114,121,46, + 95,95,114,101,112,114,95,95,85,4,0,0,115,33,0,0, + 0,128,0,216,15,19,143,121,138,121,216,23,50,215,23,57, + 209,23,57,184,36,191,41,185,41,211,23,68,208,16,68,216, + 19,42,114,27,0,0,0,78,41,8,114,29,1,0,0,114, + 30,1,0,0,114,31,1,0,0,114,241,0,0,0,114,171, + 0,0,0,114,125,1,0,0,114,130,1,0,0,114,11,1, + 0,0,114,16,1,0,0,114,27,0,0,0,114,25,0,0, + 0,114,166,1,0,0,114,166,1,0,0,73,4,0,0,115, + 27,0,0,0,132,0,242,2,3,9,62,242,8,2,9,29, + 242,6,1,9,24,242,4,1,9,25,243,4,3,9,43,114, + 27,0,0,0,114,166,1,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,92, + 0,0,0,151,0,100,1,100,2,108,0,125,1,2,0,124, + 1,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,125, + 2,116,5,0,0,0,0,0,0,0,0,124,0,124,2,124, + 1,106,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,171,3,0,0,0,0,0,0,83,0,41, + 3,97,79,1,0,0,65,100,100,32,97,32,112,97,116,104, + 32,116,111,32,116,104,101,32,68,76,76,32,115,101,97,114, + 99,104,32,112,97,116,104,46,10,10,32,32,32,32,32,32, + 32,32,84,104,105,115,32,115,101,97,114,99,104,32,112,97, + 116,104,32,105,115,32,117,115,101,100,32,119,104,101,110,32, + 114,101,115,111,108,118,105,110,103,32,100,101,112,101,110,100, + 101,110,99,105,101,115,32,102,111,114,32,105,109,112,111,114, + 116,101,100,10,32,32,32,32,32,32,32,32,101,120,116,101, + 110,115,105,111,110,32,109,111,100,117,108,101,115,32,40,116, + 104,101,32,109,111,100,117,108,101,32,105,116,115,101,108,102, + 32,105,115,32,114,101,115,111,108,118,101,100,32,116,104,114, + 111,117,103,104,32,115,121,115,46,112,97,116,104,41,44,10, + 32,32,32,32,32,32,32,32,97,110,100,32,97,108,115,111, + 32,98,121,32,99,116,121,112,101,115,46,10,10,32,32,32, + 32,32,32,32,32,82,101,109,111,118,101,32,116,104,101,32, + 100,105,114,101,99,116,111,114,121,32,98,121,32,99,97,108, + 108,105,110,103,32,99,108,111,115,101,40,41,32,111,110,32, + 116,104,101,32,114,101,116,117,114,110,101,100,32,111,98,106, + 101,99,116,32,111,114,10,32,32,32,32,32,32,32,32,117, + 115,105,110,103,32,105,116,32,105,110,32,97,32,119,105,116, + 104,32,115,116,97,116,101,109,101,110,116,46,10,32,32,32, + 32,32,32,32,32,114,2,0,0,0,78,41,4,114,42,0, + 0,0,218,18,95,97,100,100,95,100,108,108,95,100,105,114, + 101,99,116,111,114,121,114,166,1,0,0,114,169,1,0,0, + 41,3,114,12,0,0,0,114,42,0,0,0,114,170,1,0, + 0,115,3,0,0,0,32,32,32,114,25,0,0,0,218,17, + 97,100,100,95,100,108,108,95,100,105,114,101,99,116,111,114, + 121,114,178,1,0,0,90,4,0,0,115,53,0,0,0,128, + 0,243,20,0,9,18,216,17,38,144,18,215,17,38,209,17, + 38,160,116,211,17,44,136,6,220,15,33,216,12,16,216,12, + 18,216,12,14,215,12,36,209,12,36,243,7,4,16,10,240, + 0,4,9,10,114,27,0,0,0,41,2,105,255,1,0,0, + 70,41,3,84,78,70,41,3,250,1,46,84,78,114,23,0, + 0,0,41,2,114,100,1,0,0,114,190,0,0,0,41,3, + 114,100,1,0,0,114,190,0,0,0,78,41,105,114,159,1, + 0,0,114,160,1,0,0,114,130,0,0,0,114,57,0,0, + 0,114,166,0,0,0,218,16,95,99,111,108,108,101,99,116, + 105,111,110,115,95,97,98,99,114,3,0,0,0,114,35,1, + 0,0,114,30,0,0,0,114,139,1,0,0,114,163,1,0, + 0,218,20,98,117,105,108,116,105,110,95,109,111,100,117,108, + 101,95,110,97,109,101,115,218,6,95,110,97,109,101,115,114, + 31,0,0,0,114,26,0,0,0,114,36,0,0,0,114,11, + 0,0,0,114,9,0,0,0,114,37,0,0,0,114,40,0, + 0,0,114,140,0,0,0,218,11,73,109,112,111,114,116,69, + 114,114,111,114,218,9,112,111,115,105,120,112,97,116,104,114, + 12,0,0,0,114,41,0,0,0,218,6,101,120,116,101,110, + 100,114,42,0,0,0,218,6,110,116,112,97,116,104,218,7, + 109,111,100,117,108,101,115,218,7,111,115,46,112,97,116,104, + 114,5,0,0,0,114,6,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,10,0,0,0,114,21,0,0,0,114,4, + 0,0,0,114,13,0,0,0,114,24,0,0,0,114,44,0, + 0,0,114,49,0,0,0,218,3,115,101,116,114,45,0,0, + 0,218,15,115,117,112,112,111,114,116,115,95,100,105,114,95, + 102,100,218,22,115,117,112,112,111,114,116,115,95,101,102,102, + 101,99,116,105,118,101,95,105,100,115,114,46,0,0,0,218, + 11,115,117,112,112,111,114,116,115,95,102,100,218,24,115,117, + 112,112,111,114,116,115,95,102,111,108,108,111,119,95,115,121, + 109,108,105,110,107,115,114,14,0,0,0,114,15,0,0,0, + 114,16,0,0,0,114,113,0,0,0,114,124,0,0,0,114, + 128,0,0,0,114,158,0,0,0,114,69,0,0,0,114,86, + 0,0,0,114,174,0,0,0,114,170,0,0,0,114,188,0, + 0,0,114,193,0,0,0,114,196,0,0,0,114,199,0,0, + 0,114,195,0,0,0,114,198,0,0,0,114,202,0,0,0, + 114,19,0,0,0,114,229,0,0,0,114,230,0,0,0,114, + 232,0,0,0,114,48,1,0,0,114,205,0,0,0,114,52, + 1,0,0,114,225,0,0,0,114,54,1,0,0,114,238,0, + 0,0,114,116,0,0,0,114,56,1,0,0,114,57,1,0, + 0,114,65,1,0,0,114,17,0,0,0,114,18,0,0,0, + 114,68,1,0,0,114,69,1,0,0,114,70,1,0,0,114, + 80,1,0,0,114,67,1,0,0,114,85,1,0,0,114,87, + 1,0,0,114,89,1,0,0,114,91,1,0,0,114,93,1, + 0,0,114,95,1,0,0,114,97,1,0,0,218,8,112,108, + 97,116,102,111,114,109,114,114,1,0,0,114,110,1,0,0, + 114,20,0,0,0,114,150,1,0,0,114,132,0,0,0,114, + 29,1,0,0,218,3,65,66,67,114,152,1,0,0,114,166, + 1,0,0,114,178,1,0,0,114,16,1,0,0,114,27,0, + 0,0,114,25,0,0,0,250,8,60,109,111,100,117,108,101, + 62,114,196,1,0,0,1,0,0,0,115,232,5,0,0,240, + 3,1,1,1,241,2,21,1,4,243,48,0,1,11,219,0, + 10,219,0,17,229,0,43,225,15,19,144,68,152,19,145,73, + 139,127,128,12,224,9,12,215,9,33,209,9,33,128,6,242, + 6,3,11,21,128,7,242,10,1,1,29,242,6,4,1,55, + 240,16,0,4,11,136,102,209,3,20,216,11,18,128,68,216, + 14,18,128,71,220,4,23,240,2,4,5,13,221,8,31,216, + 8,15,143,14,137,14,144,119,212,8,31,243,6,0,5,29, + 240,4,3,5,13,221,8,41,243,8,0,5,17,216,4,11, + 135,78,129,78,209,19,36,160,85,211,19,43,212,4,44,217, + 8,13,224,5,9,136,86,129,94,216,11,15,128,68,216,14, + 20,128,71,220,4,20,240,2,4,5,13,221,8,28,216,8, + 15,143,14,137,14,144,119,212,8,31,243,6,0,5,26,227, + 4,13,216,4,11,135,78,129,78,209,19,36,160,82,211,19, + 40,212,4,41,216,8,10,240,4,3,5,13,222,8,38,241, + 10,0,11,22,208,22,51,211,10,52,208,4,52,224,25,29, + 128,3,135,11,129,11,136,73,209,0,22,247,2,1,1,13, + 247,0,1,1,13,243,0,1,1,13,240,6,0,5,11,241, + 6,0,4,11,208,11,28,213,3,29,217,15,22,139,121,128, + 72,242,2,2,5,35,241,8,0,12,15,139,53,128,68,217, + 4,8,208,9,25,152,72,212,4,37,217,4,8,136,31,152, + 71,212,4,36,217,4,8,136,31,152,71,212,4,36,217,4, + 8,136,30,152,70,212,4,35,217,4,8,208,9,25,152,71, + 212,4,36,217,4,8,136,29,152,70,212,4,35,217,4,8, + 136,30,152,71,212,4,36,217,4,8,136,31,152,72,212,4, + 37,217,4,8,136,30,152,71,212,4,36,217,4,8,136,29, + 152,70,212,4,35,217,4,8,208,9,26,152,74,212,4,39, + 217,4,8,136,31,152,72,212,4,37,217,4,8,208,9,25, + 152,73,212,4,38,217,4,8,136,31,152,72,212,4,37,217, + 4,8,136,31,152,71,212,4,36,217,4,8,208,9,25,152, + 71,212,4,36,216,22,26,128,79,225,11,14,139,53,128,68, + 217,4,8,208,9,25,152,72,212,4,37,216,29,33,208,4, + 26,225,11,14,139,53,128,68,217,4,8,136,29,152,71,212, + 4,36,217,4,8,136,29,152,71,212,4,36,217,4,8,136, + 29,152,71,212,4,36,217,4,8,208,9,25,152,73,212,4, + 38,217,4,8,208,9,25,152,73,212,4,38,217,4,8,136, + 30,152,72,212,4,37,216,4,8,135,72,129,72,136,84,132, + 78,217,4,8,208,9,25,152,74,212,4,39,217,4,8,136, + 31,152,71,212,4,36,217,4,8,136,30,152,71,212,4,36, + 217,4,8,208,9,25,152,74,212,4,39,217,7,14,136,121, + 212,7,25,153,103,160,106,212,30,49,217,8,12,136,95,152, + 105,212,8,40,216,18,22,128,75,225,11,14,139,53,128,68, + 217,4,8,208,9,25,152,72,212,4,37,241,44,0,5,9, + 136,31,152,71,212,4,36,217,4,8,136,30,152,70,212,4, + 35,217,4,8,136,31,152,73,212,4,38,217,4,8,136,29, + 152,71,212,4,36,217,7,14,136,120,212,7,24,217,8,12, + 136,93,152,71,212,8,36,217,4,8,136,29,152,70,212,4, + 35,217,4,8,136,30,152,71,212,4,36,217,4,8,136,28, + 152,70,212,4,35,217,4,8,136,30,152,70,212,4,35,217, + 4,8,208,9,25,152,71,212,4,36,217,4,8,136,28,152, + 70,212,4,35,216,31,35,208,4,28,224,8,12,216,8,23, + 216,8,16,216,8,12,240,12,0,12,13,128,8,216,11,12, + 128,8,216,11,12,128,8,243,10,30,1,18,242,64,1,20, + 1,38,242,44,24,1,17,240,52,0,1,8,135,14,129,14, + 210,15,52,212,0,53,243,4,85,2,1,39,240,110,4,0, + 1,8,135,14,129,14,136,118,212,0,22,224,4,8,136,36, + 128,60,144,63,210,3,34,168,7,176,20,160,127,184,43,210, + 39,69,240,4,46,5,25,192,101,208,84,88,244,0,46,5, + 25,242,96,1,54,5,48,240,112,1,0,5,12,135,78,129, + 78,144,55,212,4,27,242,4,5,1,22,242,14,6,1,33, + 242,16,5,1,23,242,14,7,1,34,242,18,6,1,25,242, + 16,7,1,30,240,18,0,1,8,135,14,129,14,210,15,71, + 212,0,72,243,4,29,1,19,243,64,1,41,1,36,247,90, + 1,0,1,53,244,4,71,1,1,19,136,126,244,0,71,1, + 1,19,242,82,2,27,1,24,241,60,0,11,25,211,10,26, + 128,7,216,4,18,243,6,4,1,37,240,12,0,27,31,160, + 36,153,44,208,0,22,216,0,7,135,14,129,14,208,15,51, + 212,0,52,225,3,25,242,2,3,5,21,241,12,0,16,24, + 152,7,159,13,153,13,216,8,20,144,101,216,8,20,144,101, + 243,5,2,16,29,128,72,240,6,0,9,21,243,4,4,5, + 42,240,12,0,5,12,135,78,129,78,208,19,42,212,4,43, + 242,4,28,1,30,241,60,0,22,30,147,90,209,0,18,128, + 8,136,40,216,4,12,241,6,0,4,11,136,54,132,63,153, + 55,160,56,212,27,44,177,23,184,23,212,49,65,224,13,14, + 128,70,216,27,28,208,4,28,128,72,136,121,224,4,11,135, + 78,129,78,210,19,54,212,4,55,242,12,25,5,51,242,54, + 7,5,56,242,18,8,5,56,242,24,8,5,57,242,20,8, + 5,57,240,22,0,5,12,135,78,129,78,210,19,63,212,4, + 64,241,6,0,4,11,136,56,212,3,20,242,8,7,5,40, + 242,18,9,5,51,240,24,0,5,12,135,78,129,78,144,72, + 152,105,208,19,40,212,4,41,241,6,0,4,11,136,57,212, + 3,21,242,6,8,5,41,242,20,9,5,52,240,24,0,5, + 12,135,78,129,78,144,73,152,122,208,19,42,212,4,43,240, + 8,0,4,7,135,60,129,60,144,57,210,3,28,243,4,19, + 5,49,247,44,20,5,38,241,0,20,5,38,240,44,0,5, + 12,135,78,129,78,144,55,212,4,27,243,6,6,1,67,1, + 242,22,27,1,67,1,241,62,0,8,15,136,120,212,7,24, + 216,13,20,128,70,216,22,30,128,70,132,79,244,6,15,1, + 50,136,115,143,119,137,119,244,0,15,1,50,240,36,0,4, + 8,136,52,130,60,247,2,15,5,43,241,0,15,5,43,243, + 34,16,5,10,240,37,0,4,16,248,240,91,32,0,12,23, + 242,0,1,5,13,218,8,12,240,3,1,5,13,251,240,12, + 0,12,23,242,0,1,5,13,218,8,12,240,3,1,5,13, + 251,240,28,0,12,23,242,0,1,5,13,218,8,12,240,3, + 1,5,13,251,240,20,0,12,23,242,0,1,5,13,218,8, + 12,240,3,1,5,13,250,115,72,0,0,0,193,4,23,83, + 18,0,193,32,6,83,30,0,194,17,23,83,42,0,195,9, + 6,83,54,0,211,18,5,83,27,3,211,26,1,83,27,3, + 211,30,5,83,39,3,211,38,1,83,39,3,211,42,5,83, + 51,3,211,50,1,83,51,3,211,54,5,83,63,3,211,62, + 1,83,63,3, }; diff --git a/contrib/tools/python3/Python/frozen_modules/zipimport.h b/contrib/tools/python3/Python/frozen_modules/zipimport.h index 5f2f63046d..410568b301 100644 --- a/contrib/tools/python3/Python/frozen_modules/zipimport.h +++ b/contrib/tools/python3/Python/frozen_modules/zipimport.h @@ -1385,147 +1385,147 @@ const unsigned char _Py_M__zipimport[] = { 182,0,0,0,114,183,0,0,0,218,17,117,110,99,111,109, 112,114,101,115,115,101,100,95,115,105,122,101,115,6,0,0, 0,32,32,32,32,32,32,114,13,0,0,0,114,218,0,0, - 0,114,218,0,0,0,142,2,0,0,115,123,0,0,0,128, + 0,114,218,0,0,0,142,2,0,0,115,126,0,0,0,128, 0,240,2,12,5,20,224,15,19,144,66,144,67,136,121,152, - 74,209,15,38,209,8,38,216,15,19,144,67,144,82,136,121, - 136,4,216,20,24,151,75,145,75,160,4,209,20,37,136,9, - 240,6,0,16,25,152,17,137,124,136,4,216,15,24,152,17, - 137,124,136,4,216,28,37,160,97,153,76,208,8,25,220,15, - 29,152,100,160,68,211,15,41,208,43,60,208,15,60,208,8, - 60,248,220,12,20,148,106,164,41,208,11,44,242,0,1,5, - 20,217,15,19,240,3,1,5,20,250,115,15,0,0,0,130, - 57,60,0,188,20,65,19,3,193,18,1,65,19,3,99,2, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,136,0,0,0,151,0,124,1,100,1,100,0, - 26,0,100,2,118,0,115,2,74,0,130,1,124,1,100,0, - 100,1,26,0,125,1,9,0,124,0,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 25,0,0,0,125,2,116,3,0,0,0,0,0,0,0,0, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,171,2,0,0,0,0,0,0, - 83,0,35,0,116,6,0,0,0,0,0,0,0,0,36,0, - 114,3,1,0,89,0,121,0,119,0,120,3,89,0,119,1, - 41,3,78,114,19,0,0,0,114,249,0,0,0,41,4,114, - 37,0,0,0,114,75,0,0,0,114,38,0,0,0,114,35, - 0,0,0,41,3,114,41,0,0,0,114,18,0,0,0,114, - 78,0,0,0,115,3,0,0,0,32,32,32,114,13,0,0, - 0,114,214,0,0,0,114,214,0,0,0,161,2,0,0,115, - 88,0,0,0,128,0,224,11,15,144,2,144,3,136,57,152, - 10,209,11,34,209,4,34,216,11,15,144,3,144,18,136,57, - 128,68,240,4,5,5,50,216,20,24,151,75,145,75,160,4, - 209,20,37,136,9,244,8,0,16,25,152,20,159,28,153,28, - 160,121,211,15,49,208,8,49,248,244,7,0,12,20,242,0, - 1,5,20,217,15,19,240,3,1,5,20,250,115,15,0,0, - 0,144,15,53,0,181,9,65,1,3,193,0,1,65,1,3, - 99,2,0,0,0,0,0,0,0,0,0,0,0,8,0,0, - 0,3,0,0,0,243,226,1,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,124,1,171,2,0,0,0,0, - 0,0,125,2,100,0,125,3,116,2,0,0,0,0,0,0, - 0,0,68,0,93,141,0,0,92,3,0,0,125,4,125,5, - 125,6,124,2,124,4,122,0,0,0,125,7,116,5,0,0, - 0,0,0,0,0,0,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,1,124,0,106,8, + 74,209,15,38,208,8,38,208,15,38,216,15,19,144,67,144, + 82,136,121,136,4,216,20,24,151,75,145,75,160,4,209,20, + 37,136,9,240,6,0,16,25,152,17,137,124,136,4,216,15, + 24,152,17,137,124,136,4,216,28,37,160,97,153,76,208,8, + 25,220,15,29,152,100,160,68,211,15,41,208,43,60,208,15, + 60,208,8,60,248,220,12,20,148,106,164,41,208,11,44,242, + 0,1,5,20,217,15,19,240,3,1,5,20,250,115,15,0, + 0,0,130,57,60,0,188,20,65,19,3,193,18,1,65,19, + 3,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,136,0,0,0,151,0,124,1,100, + 1,100,0,26,0,100,2,118,0,115,2,74,0,130,1,124, + 1,100,0,100,1,26,0,125,1,9,0,124,0,106,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,124,1,25,0,0,0,125,2,116,3,0,0,0,0,0, + 0,0,0,124,0,106,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,124,2,171,2,0,0,0, + 0,0,0,83,0,35,0,116,6,0,0,0,0,0,0,0, + 0,36,0,114,3,1,0,89,0,121,0,119,0,120,3,89, + 0,119,1,41,3,78,114,19,0,0,0,114,249,0,0,0, + 41,4,114,37,0,0,0,114,75,0,0,0,114,38,0,0, + 0,114,35,0,0,0,41,3,114,41,0,0,0,114,18,0, + 0,0,114,78,0,0,0,115,3,0,0,0,32,32,32,114, + 13,0,0,0,114,214,0,0,0,114,214,0,0,0,161,2, + 0,0,115,91,0,0,0,128,0,224,11,15,144,2,144,3, + 136,57,152,10,209,11,34,208,4,34,208,11,34,216,11,15, + 144,3,144,18,136,57,128,68,240,4,5,5,50,216,20,24, + 151,75,145,75,160,4,209,20,37,136,9,244,8,0,16,25, + 152,20,159,28,153,28,160,121,211,15,49,208,8,49,248,244, + 7,0,12,20,242,0,1,5,20,217,15,19,240,3,1,5, + 20,250,115,15,0,0,0,144,15,53,0,181,9,65,1,3, + 193,0,1,65,1,3,99,2,0,0,0,0,0,0,0,0, + 0,0,0,8,0,0,0,3,0,0,0,243,226,1,0,0, + 151,0,116,1,0,0,0,0,0,0,0,0,124,0,124,1, + 171,2,0,0,0,0,0,0,125,2,100,0,125,3,116,2, + 0,0,0,0,0,0,0,0,68,0,93,141,0,0,92,3, + 0,0,125,4,125,5,125,6,124,2,124,4,122,0,0,0, + 125,7,116,5,0,0,0,0,0,0,0,0,106,6,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,10,0,0,0,0,0,0,0,0,124,7,100,2, - 172,3,171,5,0,0,0,0,0,0,1,0,9,0,124,0, - 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,7,25,0,0,0,125,8,124,8,100,4, - 25,0,0,0,125,9,116,15,0,0,0,0,0,0,0,0, - 124,0,106,8,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,8,171,2,0,0,0,0,0,0, - 125,10,100,0,125,11,124,5,114,17,9,0,116,17,0,0, - 0,0,0,0,0,0,124,0,124,9,124,7,124,1,124,10, - 171,5,0,0,0,0,0,0,125,11,110,12,116,21,0,0, - 0,0,0,0,0,0,124,9,124,10,171,2,0,0,0,0, - 0,0,125,11,124,11,128,1,140,131,124,8,100,4,25,0, - 0,0,125,9,124,11,124,6,124,9,102,3,99,2,1,0, - 83,0,4,0,124,3,114,19,100,5,124,3,155,0,157,2, - 125,13,116,25,0,0,0,0,0,0,0,0,124,13,124,1, - 172,6,171,2,0,0,0,0,0,0,124,3,130,2,116,25, - 0,0,0,0,0,0,0,0,100,7,124,1,155,2,157,2, - 124,1,172,6,171,2,0,0,0,0,0,0,130,1,35,0, - 116,18,0,0,0,0,0,0,0,0,36,0,114,12,125,12, - 124,12,125,3,89,0,100,0,125,12,126,12,140,69,100,0, - 125,12,126,12,119,1,119,0,120,3,89,0,119,1,35,0, - 116,22,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,140,216,119,0,120,3,89,0,119,1,41,8,78,122, - 13,116,114,121,105,110,103,32,123,125,123,125,123,125,114,126, - 0,0,0,41,1,218,9,118,101,114,98,111,115,105,116,121, - 114,1,0,0,0,122,20,109,111,100,117,108,101,32,108,111, - 97,100,32,102,97,105,108,101,100,58,32,114,84,0,0,0, - 114,83,0,0,0,41,13,114,54,0,0,0,114,131,0,0, - 0,114,52,0,0,0,114,108,0,0,0,114,38,0,0,0, - 114,26,0,0,0,114,37,0,0,0,114,75,0,0,0,114, - 228,0,0,0,114,107,0,0,0,114,237,0,0,0,114,35, - 0,0,0,114,4,0,0,0,41,14,114,41,0,0,0,114, - 58,0,0,0,114,18,0,0,0,218,12,105,109,112,111,114, - 116,95,101,114,114,111,114,114,132,0,0,0,114,133,0,0, - 0,114,69,0,0,0,114,89,0,0,0,114,78,0,0,0, - 114,61,0,0,0,114,174,0,0,0,114,68,0,0,0,218, - 3,101,120,99,114,109,0,0,0,115,14,0,0,0,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,114,13,0,0, - 0,114,66,0,0,0,114,66,0,0,0,176,2,0,0,115, - 41,1,0,0,128,0,220,11,27,152,68,160,40,211,11,43, - 128,68,216,19,23,128,76,220,41,57,242,0,29,5,83,1, - 209,8,37,136,6,144,10,152,73,216,19,23,152,38,145,61, - 136,8,220,8,18,215,8,35,209,8,35,160,79,176,84,183, - 92,177,92,196,56,200,88,208,97,98,213,8,99,240,2,20, - 9,44,216,24,28,159,11,153,11,160,72,209,24,45,136,73, - 240,8,0,23,32,160,1,145,108,136,71,220,19,28,152,84, - 159,92,153,92,168,57,211,19,53,136,68,216,19,23,136,68, - 217,15,25,240,2,3,17,39,220,27,42,168,52,176,23,184, - 40,192,72,200,100,211,27,83,145,68,244,8,0,24,39,160, - 119,176,4,211,23,53,144,4,216,15,19,136,124,240,6,0, - 17,25,216,22,31,160,1,145,108,136,71,216,19,23,152,25, - 160,71,208,19,43,210,12,43,240,47,29,5,83,1,241,50, - 0,12,24,216,20,40,168,28,168,14,208,18,55,136,67,220, - 18,32,160,19,168,56,212,18,52,184,44,208,12,70,228,18, - 32,208,35,53,176,104,176,92,208,33,66,200,24,212,18,82, - 208,12,82,248,244,31,0,24,35,242,0,1,17,39,216,35, - 38,149,76,251,240,3,1,17,39,251,244,19,0,16,24,242, - 0,1,9,17,217,12,16,240,3,1,9,17,250,115,42,0, - 0,0,193,10,15,67,34,2,193,57,15,67,10,2,195,10, - 9,67,31,5,195,19,2,67,26,5,195,26,5,67,31,5, - 195,34,9,67,46,5,195,45,1,67,46,5,41,46,114,123, - 0,0,0,218,26,95,102,114,111,122,101,110,95,105,109,112, - 111,114,116,108,105,98,95,101,120,116,101,114,110,97,108,114, - 27,0,0,0,114,2,0,0,0,114,3,0,0,0,218,17, - 95,102,114,111,122,101,110,95,105,109,112,111,114,116,108,105, - 98,114,52,0,0,0,114,212,0,0,0,114,154,0,0,0, - 114,219,0,0,0,114,97,0,0,0,114,182,0,0,0,114, - 94,0,0,0,218,7,95,95,97,108,108,95,95,114,26,0, - 0,0,218,15,112,97,116,104,95,115,101,112,97,114,97,116, - 111,114,115,114,24,0,0,0,114,107,0,0,0,114,4,0, - 0,0,114,34,0,0,0,114,23,0,0,0,114,100,0,0, - 0,114,158,0,0,0,114,160,0,0,0,114,162,0,0,0, - 218,13,95,76,111,97,100,101,114,66,97,115,105,99,115,114, - 5,0,0,0,114,131,0,0,0,114,54,0,0,0,114,55, - 0,0,0,114,51,0,0,0,114,36,0,0,0,114,167,0, - 0,0,114,195,0,0,0,114,198,0,0,0,114,75,0,0, - 0,114,207,0,0,0,114,228,0,0,0,218,8,95,95,99, - 111,100,101,95,95,114,221,0,0,0,114,233,0,0,0,114, - 237,0,0,0,114,247,0,0,0,114,218,0,0,0,114,214, - 0,0,0,114,66,0,0,0,114,11,0,0,0,114,12,0, - 0,0,114,13,0,0,0,250,8,60,109,111,100,117,108,101, - 62,114,11,1,0,0,1,0,0,0,115,51,1,0,0,240, - 3,1,1,1,241,2,12,1,4,243,32,0,1,57,223,0, - 69,219,0,38,219,0,11,219,0,10,219,0,14,219,0,10, - 219,0,11,219,0,16,224,11,27,152,93,208,10,43,128,7, - 240,6,0,12,31,215,11,39,209,11,39,128,8,216,15,34, - 215,15,50,209,15,50,176,49,176,50,208,15,54,128,12,244, - 6,1,1,9,144,91,244,0,1,1,9,240,8,0,24,26, - 208,0,20,225,15,19,144,67,139,121,128,12,224,23,25,208, - 0,20,216,21,34,208,0,18,216,18,31,128,15,244,4,108, - 3,1,79,1,208,18,37,215,18,51,209,18,51,244,0,108, - 3,1,79,1,240,106,7,0,6,14,144,14,209,5,30,160, - 4,160,100,208,4,43,216,5,13,144,13,209,5,29,152,117, - 160,100,208,4,43,216,4,25,216,4,25,240,9,5,20,2, - 208,0,16,242,18,1,1,53,242,8,6,1,34,242,18,6, - 1,16,242,62,123,1,1,17,240,74,4,24,5,47,240,5, - 0,1,12,240,58,0,19,24,128,15,242,10,18,1,22,242, - 42,40,1,37,242,92,1,2,1,29,242,16,38,1,16,241, - 80,1,0,14,18,144,47,215,18,42,209,18,42,211,13,43, - 128,10,242,10,3,1,18,242,14,2,1,64,1,242,12,8, - 1,21,242,26,13,1,20,242,38,10,1,50,243,30,32,1, - 83,1,114,12,0,0,0, + 100,1,124,0,106,8,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,116,10,0,0,0,0,0,0, + 0,0,124,7,100,2,172,3,171,5,0,0,0,0,0,0, + 1,0,9,0,124,0,106,12,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,124,7,25,0,0,0, + 125,8,124,8,100,4,25,0,0,0,125,9,116,15,0,0, + 0,0,0,0,0,0,124,0,106,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,124,8,171,2, + 0,0,0,0,0,0,125,10,100,0,125,11,124,5,114,17, + 9,0,116,17,0,0,0,0,0,0,0,0,124,0,124,9, + 124,7,124,1,124,10,171,5,0,0,0,0,0,0,125,11, + 110,12,116,21,0,0,0,0,0,0,0,0,124,9,124,10, + 171,2,0,0,0,0,0,0,125,11,124,11,128,1,140,131, + 124,8,100,4,25,0,0,0,125,9,124,11,124,6,124,9, + 102,3,99,2,1,0,83,0,4,0,124,3,114,19,100,5, + 124,3,155,0,157,2,125,13,116,25,0,0,0,0,0,0, + 0,0,124,13,124,1,172,6,171,2,0,0,0,0,0,0, + 124,3,130,2,116,25,0,0,0,0,0,0,0,0,100,7, + 124,1,155,2,157,2,124,1,172,6,171,2,0,0,0,0, + 0,0,130,1,35,0,116,18,0,0,0,0,0,0,0,0, + 36,0,114,12,125,12,124,12,125,3,89,0,100,0,125,12, + 126,12,140,69,100,0,125,12,126,12,119,1,119,0,120,3, + 89,0,119,1,35,0,116,22,0,0,0,0,0,0,0,0, + 36,0,114,3,1,0,89,0,140,216,119,0,120,3,89,0, + 119,1,41,8,78,122,13,116,114,121,105,110,103,32,123,125, + 123,125,123,125,114,126,0,0,0,41,1,218,9,118,101,114, + 98,111,115,105,116,121,114,1,0,0,0,122,20,109,111,100, + 117,108,101,32,108,111,97,100,32,102,97,105,108,101,100,58, + 32,114,84,0,0,0,114,83,0,0,0,41,13,114,54,0, + 0,0,114,131,0,0,0,114,52,0,0,0,114,108,0,0, + 0,114,38,0,0,0,114,26,0,0,0,114,37,0,0,0, + 114,75,0,0,0,114,228,0,0,0,114,107,0,0,0,114, + 237,0,0,0,114,35,0,0,0,114,4,0,0,0,41,14, + 114,41,0,0,0,114,58,0,0,0,114,18,0,0,0,218, + 12,105,109,112,111,114,116,95,101,114,114,111,114,114,132,0, + 0,0,114,133,0,0,0,114,69,0,0,0,114,89,0,0, + 0,114,78,0,0,0,114,61,0,0,0,114,174,0,0,0, + 114,68,0,0,0,218,3,101,120,99,114,109,0,0,0,115, + 14,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,114,13,0,0,0,114,66,0,0,0,114,66,0,0, + 0,176,2,0,0,115,41,1,0,0,128,0,220,11,27,152, + 68,160,40,211,11,43,128,68,216,19,23,128,76,220,41,57, + 242,0,29,5,83,1,209,8,37,136,6,144,10,152,73,216, + 19,23,152,38,145,61,136,8,220,8,18,215,8,35,209,8, + 35,160,79,176,84,183,92,177,92,196,56,200,88,208,97,98, + 213,8,99,240,2,20,9,44,216,24,28,159,11,153,11,160, + 72,209,24,45,136,73,240,8,0,23,32,160,1,145,108,136, + 71,220,19,28,152,84,159,92,153,92,168,57,211,19,53,136, + 68,216,19,23,136,68,217,15,25,240,2,3,17,39,220,27, + 42,168,52,176,23,184,40,192,72,200,100,211,27,83,145,68, + 244,8,0,24,39,160,119,176,4,211,23,53,144,4,216,15, + 19,136,124,240,6,0,17,25,216,22,31,160,1,145,108,136, + 71,216,19,23,152,25,160,71,208,19,43,210,12,43,240,47, + 29,5,83,1,241,50,0,12,24,216,20,40,168,28,168,14, + 208,18,55,136,67,220,18,32,160,19,168,56,212,18,52,184, + 44,208,12,70,228,18,32,208,35,53,176,104,176,92,208,33, + 66,200,24,212,18,82,208,12,82,248,244,31,0,24,35,242, + 0,1,17,39,216,35,38,149,76,251,240,3,1,17,39,251, + 244,19,0,16,24,242,0,1,9,17,217,12,16,240,3,1, + 9,17,250,115,42,0,0,0,193,10,15,67,34,2,193,57, + 15,67,10,2,195,10,9,67,31,5,195,19,2,67,26,5, + 195,26,5,67,31,5,195,34,9,67,46,5,195,45,1,67, + 46,5,41,46,114,123,0,0,0,218,26,95,102,114,111,122, + 101,110,95,105,109,112,111,114,116,108,105,98,95,101,120,116, + 101,114,110,97,108,114,27,0,0,0,114,2,0,0,0,114, + 3,0,0,0,218,17,95,102,114,111,122,101,110,95,105,109, + 112,111,114,116,108,105,98,114,52,0,0,0,114,212,0,0, + 0,114,154,0,0,0,114,219,0,0,0,114,97,0,0,0, + 114,182,0,0,0,114,94,0,0,0,218,7,95,95,97,108, + 108,95,95,114,26,0,0,0,218,15,112,97,116,104,95,115, + 101,112,97,114,97,116,111,114,115,114,24,0,0,0,114,107, + 0,0,0,114,4,0,0,0,114,34,0,0,0,114,23,0, + 0,0,114,100,0,0,0,114,158,0,0,0,114,160,0,0, + 0,114,162,0,0,0,218,13,95,76,111,97,100,101,114,66, + 97,115,105,99,115,114,5,0,0,0,114,131,0,0,0,114, + 54,0,0,0,114,55,0,0,0,114,51,0,0,0,114,36, + 0,0,0,114,167,0,0,0,114,195,0,0,0,114,198,0, + 0,0,114,75,0,0,0,114,207,0,0,0,114,228,0,0, + 0,218,8,95,95,99,111,100,101,95,95,114,221,0,0,0, + 114,233,0,0,0,114,237,0,0,0,114,247,0,0,0,114, + 218,0,0,0,114,214,0,0,0,114,66,0,0,0,114,11, + 0,0,0,114,12,0,0,0,114,13,0,0,0,250,8,60, + 109,111,100,117,108,101,62,114,11,1,0,0,1,0,0,0, + 115,51,1,0,0,240,3,1,1,1,241,2,12,1,4,243, + 32,0,1,57,223,0,69,219,0,38,219,0,11,219,0,10, + 219,0,14,219,0,10,219,0,11,219,0,16,224,11,27,152, + 93,208,10,43,128,7,240,6,0,12,31,215,11,39,209,11, + 39,128,8,216,15,34,215,15,50,209,15,50,176,49,176,50, + 208,15,54,128,12,244,6,1,1,9,144,91,244,0,1,1, + 9,240,8,0,24,26,208,0,20,225,15,19,144,67,139,121, + 128,12,224,23,25,208,0,20,216,21,34,208,0,18,216,18, + 31,128,15,244,4,108,3,1,79,1,208,18,37,215,18,51, + 209,18,51,244,0,108,3,1,79,1,240,106,7,0,6,14, + 144,14,209,5,30,160,4,160,100,208,4,43,216,5,13,144, + 13,209,5,29,152,117,160,100,208,4,43,216,4,25,216,4, + 25,240,9,5,20,2,208,0,16,242,18,1,1,53,242,8, + 6,1,34,242,18,6,1,16,242,62,123,1,1,17,240,74, + 4,24,5,47,240,5,0,1,12,240,58,0,19,24,128,15, + 242,10,18,1,22,242,42,40,1,37,242,92,1,2,1,29, + 242,16,38,1,16,241,80,1,0,14,18,144,47,215,18,42, + 209,18,42,211,13,43,128,10,242,10,3,1,18,242,14,2, + 1,64,1,242,12,8,1,21,242,26,13,1,20,242,38,10, + 1,50,243,30,32,1,83,1,114,12,0,0,0, }; diff --git a/contrib/tools/python3/Python/generated_cases.c.h b/contrib/tools/python3/Python/generated_cases.c.h index ea17c0410b..d5e3ce28ce 100644 --- a/contrib/tools/python3/Python/generated_cases.c.h +++ b/contrib/tools/python3/Python/generated_cases.c.h @@ -4433,27 +4433,27 @@ } assert(PyTuple_CheckExact(callargs)); EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_FUNCTION_EX, func); - if (opcode == INSTRUMENTED_CALL_FUNCTION_EX && - !PyFunction_Check(func) && !PyMethod_Check(func) - ) { + if (opcode == INSTRUMENTED_CALL_FUNCTION_EX) { PyObject *arg = PyTuple_GET_SIZE(callargs) > 0 ? - PyTuple_GET_ITEM(callargs, 0) : Py_None; + PyTuple_GET_ITEM(callargs, 0) : &_PyInstrumentation_MISSING; int err = _Py_call_instrumentation_2args( tstate, PY_MONITORING_EVENT_CALL, frame, next_instr-1, func, arg); if (err) goto error; result = PyObject_Call(func, callargs, kwargs); - if (result == NULL) { - _Py_call_instrumentation_exc2( - tstate, PY_MONITORING_EVENT_C_RAISE, - frame, next_instr-1, func, arg); - } - else { - int err = _Py_call_instrumentation_2args( - tstate, PY_MONITORING_EVENT_C_RETURN, - frame, next_instr-1, func, arg); - if (err < 0) { - Py_CLEAR(result); + if (!PyFunction_Check(func) && !PyMethod_Check(func)) { + if (result == NULL) { + _Py_call_instrumentation_exc2( + tstate, PY_MONITORING_EVENT_C_RAISE, + frame, next_instr-1, func, arg); + } + else { + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_C_RETURN, + frame, next_instr-1, func, arg); + if (err < 0) { + Py_CLEAR(result); + } } } } diff --git a/contrib/tools/python3/Python/getargs.c b/contrib/tools/python3/Python/getargs.c index 066739f21f..5e731cdc23 100644 --- a/contrib/tools/python3/Python/getargs.c +++ b/contrib/tools/python3/Python/getargs.c @@ -672,7 +672,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, switch (c) { case 'b': { /* unsigned byte -- very short int */ - char *p = va_arg(*p_va, char *); + unsigned char *p = va_arg(*p_va, unsigned char *); long ival = PyLong_AsLong(arg); if (ival == -1 && PyErr_Occurred()) RETURN_ERR_OCCURRED; @@ -693,7 +693,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, case 'B': {/* byte sized bitfield - both signed and unsigned values allowed */ - char *p = va_arg(*p_va, char *); + unsigned char *p = va_arg(*p_va, unsigned char *); unsigned long ival = PyLong_AsUnsignedLongMask(arg); if (ival == (unsigned long)-1 && PyErr_Occurred()) RETURN_ERR_OCCURRED; diff --git a/contrib/tools/python3/Python/initconfig.c b/contrib/tools/python3/Python/initconfig.c index a1256a542a..4cf56864fe 100644 --- a/contrib/tools/python3/Python/initconfig.c +++ b/contrib/tools/python3/Python/initconfig.c @@ -33,8 +33,8 @@ static const char usage_line[] = /* Lines sorted by option name; keep in sync with usage_envvars* below */ static const char usage_help[] = "\ Options (and corresponding environment variables):\n\ --b : issue warnings about str(bytes_instance), str(bytearray_instance)\n\ - and comparing bytes/bytearray with str. (-bb: issue errors)\n\ +-b : issue warnings about converting bytes/bytearray to str and comparing\n\ + bytes/bytearray with str or bytes with int. (-bb: issue errors)\n\ -B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\ -c cmd : program passed in as string (terminates option list)\n\ -d : turn on parser debugging output (for experts only, only works on\n\ @@ -49,9 +49,10 @@ Options (and corresponding environment variables):\n\ .pyc extension; also PYTHONOPTIMIZE=x\n\ -OO : do -O changes and also discard docstrings; add .opt-2 before\n\ .pyc extension\n\ --P : don't prepend a potentially unsafe path to sys.path; also PYTHONSAFEPATH\n\ +-P : don't prepend a potentially unsafe path to sys.path; also\n\ + PYTHONSAFEPATH\n\ -q : don't print version and copyright messages on interactive startup\n\ --s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\ +-s : don't add user site directory to sys.path; also PYTHONNOUSERSITE=x\n\ -S : don't imply 'import site' on initialization\n\ -u : force the stdout and stderr streams to be unbuffered;\n\ this option has no effect on stdin; also PYTHONUNBUFFERED=x\n\ @@ -65,9 +66,10 @@ Options (and corresponding environment variables):\n\ -X opt : set implementation-specific option\n\ --check-hash-based-pycs always|default|never:\n\ control how Python invalidates hash-based .pyc files\n\ ---help-env : print help about Python environment variables and exit\n\ ---help-xoptions : print help about implementation-specific -X options and exit\n\ ---help-all : print complete help information and exit\n\ +--help-env: print help about Python environment variables and exit\n\ +--help-xoptions: print help about implementation-specific -X options and exit\n\ +--help-all: print complete help information and exit\n\ +\n\ Arguments:\n\ file : program read from script file\n\ - : program read from stdin (default; interactive mode if a tty)\n\ @@ -76,117 +78,90 @@ arg ...: arguments passed to program in sys.argv[1:]\n\ static const char usage_xoptions[] = "\ The following implementation-specific options are available:\n\ -\n\ --X faulthandler: enable faulthandler\n\ -\n\ --X showrefcount: output the total reference count and number of used\n\ - memory blocks when the program finishes or after each statement in the\n\ - interactive interpreter. This only works on debug builds\n\ -\n\ --X tracemalloc: start tracing Python memory allocations using the\n\ - tracemalloc module. By default, only the most recent frame is stored in a\n\ - traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\ - traceback limit of NFRAME frames\n\ -\n\ --X importtime: show how long each import takes. It shows module name,\n\ - cumulative time (including nested imports) and self time (excluding\n\ - nested imports). Note that its output may be broken in multi-threaded\n\ - application. Typical usage is python3 -X importtime -c 'import asyncio'\n\ -\n\ --X dev: enable CPython's \"development mode\", introducing additional runtime\n\ - checks which are too expensive to be enabled by default. Effect of the\n\ - developer mode:\n\ - * Add default warning filter, as -W default\n\ - * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks()\n\ - C function\n\ - * Enable the faulthandler module to dump the Python traceback on a crash\n\ - * Enable asyncio debug mode\n\ - * Set the dev_mode attribute of sys.flags to True\n\ - * io.IOBase destructor logs close() exceptions\n\ -\n\ --X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\ - locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\ - otherwise activate automatically)\n\ -\n\ --X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\ - given directory instead of to the code tree\n\ -\n\ --X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None'\n\ -\n\ --X no_debug_ranges: disable the inclusion of the tables mapping extra location \n\ - information (end line, start column offset and end column offset) to every \n\ - instruction in code objects. This is useful when smaller code objects and pyc \n\ - files are desired as well as suppressing the extra visual location indicators \n\ - when the interpreter displays tracebacks.\n\ -\n\ --X perf: activate support for the Linux \"perf\" profiler by activating the \"perf\"\n\ - trampoline. When this option is activated, the Linux \"perf\" profiler will be \n\ - able to report Python calls. This option is only available on some platforms and will \n\ - do nothing if is not supported on the current system. The default value is \"off\".\n\ -\n\ --X frozen_modules=[on|off]: whether or not frozen modules should be used.\n\ - The default is \"on\" (or \"off\" if you are running a local build).\n\ -\n\ --X int_max_str_digits=number: limit the size of int<->str conversions.\n\ - This helps avoid denial of service attacks when parsing untrusted data.\n\ - The default is sys.int_info.default_max_str_digits. 0 disables." - +-X dev : enable Python Development Mode; also PYTHONDEVMODE\n\ +-X faulthandler: dump the Python traceback on fatal errors;\n\ + also PYTHONFAULTHANDLER\n\ +-X frozen_modules=[on|off]: whether to use frozen modules; the default is \"on\"\n\ + for installed Python and \"off\" for a local build\n\ +-X importtime: show how long each import takes; also PYTHONPROFILEIMPORTTIME\n\ +-X int_max_str_digits=N: limit the size of int<->str conversions;\n\ + 0 disables the limit; also PYTHONINTMAXSTRDIGITS\n\ +-X no_debug_ranges: don't include extra location information in code objects;\n\ + also PYTHONNODEBUGRANGES\n\ +-X perf: support the Linux \"perf\" profiler; also PYTHONPERFSUPPORT=1\n\ +" +#ifdef Py_DEBUG +"-X presite=MOD: import this module before site; also PYTHON_PRESITE\n" +#endif +"\ +-X pycache_prefix=PATH: write .pyc files to a parallel tree instead of to the\n\ + code tree; also PYTHONPYCACHEPREFIX\n\ +" #ifdef Py_STATS -"\n\ -\n\ --X pystats: Enable pystats collection at startup." +"-X pystats: enable pystats collection at startup; also PYTHONSTATS\n" #endif -; +"\ +-X showrefcount: output the total reference count and number of used\n\ + memory blocks when the program finishes or after each statement in\n\ + the interactive interpreter; only works on debug builds\n\ +-X tracemalloc[=N]: trace Python memory allocations; N sets a traceback limit\n\ + of N frames (default: 1); also PYTHONTRACEMALLOC=N\n\ +-X utf8[=0|1]: enable (1) or disable (0) UTF-8 mode; also PYTHONUTF8\n\ +-X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None';\n\ + also PYTHONWARNDEFAULTENCODING\ +"; /* Envvars that don't have equivalent command-line options are listed first */ static const char usage_envvars[] = "Environment variables that change behavior:\n" -"PYTHONSTARTUP: file executed on interactive startup (no default)\n" -"PYTHONPATH : '%lc'-separated list of directories prefixed to the\n" -" default module search path. The result is sys.path.\n" -"PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n" -" The default module search path uses %s.\n" -"PYTHONPLATLIBDIR : override sys.platlibdir.\n" -"PYTHONCASEOK : ignore case in 'import' statements (Windows).\n" -"PYTHONUTF8: if set to 1, enable the UTF-8 mode.\n" -"PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.\n" -"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.\n" -"PYTHONHASHSEED: if this variable is set to 'random', a random value is used\n" -" to seed the hashes of str and bytes objects. It can also be set to an\n" -" integer in the range [0,4294967295] to get hash values with a\n" -" predictable seed.\n" -"PYTHONINTMAXSTRDIGITS: limits the maximum digit characters in an int value\n" -" when converting from a string and when converting an int back to a str.\n" -" A value of 0 disables the limit. Conversions to or from bases 2, 4, 8,\n" -" 16, and 32 are never limited.\n" -"PYTHONMALLOC: set the Python memory allocators and/or install debug hooks\n" -" on Python memory allocators. Use PYTHONMALLOC=debug to install debug\n" -" hooks.\n" +"PYTHONSTARTUP : file executed on interactive startup (no default)\n" +"PYTHONPATH : '%lc'-separated list of directories prefixed to the\n" +" default module search path. The result is sys.path.\n" +"PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n" +" The default module search path uses %s.\n" +"PYTHONPLATLIBDIR: override sys.platlibdir\n" +"PYTHONCASEOK : ignore case in 'import' statements (Windows)\n" +"PYTHONIOENCODING: encoding[:errors] used for stdin/stdout/stderr\n" +"PYTHONHASHSEED : if this variable is set to 'random', a random value is used\n" +" to seed the hashes of str and bytes objects. It can also be\n" +" set to an integer in the range [0,4294967295] to get hash\n" +" values with a predictable seed.\n" +"PYTHONMALLOC : set the Python memory allocators and/or install debug hooks\n" +" on Python memory allocators. Use PYTHONMALLOC=debug to\n" +" install debug hooks.\n" "PYTHONCOERCECLOCALE: if this variable is set to 0, it disables the locale\n" -" coercion behavior. Use PYTHONCOERCECLOCALE=warn to request display of\n" -" locale coercion and locale compatibility warnings on stderr.\n" +" coercion behavior. Use PYTHONCOERCECLOCALE=warn to request\n" +" display of locale coercion and locale compatibility warnings\n" +" on stderr.\n" "PYTHONBREAKPOINT: if this variable is set to 0, it disables the default\n" -" debugger. It can be set to the callable of your debugger of choice.\n" -"PYTHONDEVMODE: enable the development mode.\n" -"PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files.\n" -"PYTHONWARNDEFAULTENCODING: enable opt-in EncodingWarning for 'encoding=None'.\n" -"PYTHONNODEBUGRANGES: If this variable is set, it disables the inclusion of the \n" -" tables mapping extra location information (end line, start column offset \n" -" and end column offset) to every instruction in code objects. This is useful \n" -" when smaller code objects and pyc files are desired as well as suppressing the \n" -" extra visual location indicators when the interpreter displays tracebacks.\n" -"These variables have equivalent command-line parameters (see --help for details):\n" -"PYTHONDEBUG : enable parser debug mode (-d)\n" -"PYTHONDONTWRITEBYTECODE : don't write .pyc files (-B)\n" -"PYTHONINSPECT : inspect interactively after running script (-i)\n" -"PYTHONINTMAXSTRDIGITS : limit max digit characters in an int value\n" -" (-X int_max_str_digits=number)\n" -"PYTHONNOUSERSITE : disable user site directory (-s)\n" -"PYTHONOPTIMIZE : enable level 1 optimizations (-O)\n" -"PYTHONSAFEPATH : don't prepend a potentially unsafe path to sys.path (-P)\n" -"PYTHONUNBUFFERED : disable stdout/stderr buffering (-u)\n" -"PYTHONVERBOSE : trace import statements (-v)\n" -"PYTHONWARNINGS=arg : warning control (-W arg)\n"; +" debugger. It can be set to the callable of your debugger of\n" +" choice.\n" +"\n" +"These variables have equivalent command-line options (see --help for details):\n" +"PYTHONDEBUG : enable parser debug mode (-d)\n" +"PYTHONDEVMODE : enable Python Development Mode (-X dev)\n" +"PYTHONDONTWRITEBYTECODE: don't write .pyc files (-B)\n" +"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors (-X faulthandler)\n" +"PYTHONINSPECT : inspect interactively after running script (-i)\n" +"PYTHONINTMAXSTRDIGITS: limit the size of int<->str conversions;\n" +" 0 disables the limit (-X int_max_str_digits=N)\n" +"PYTHONNODEBUGRANGES: don't include extra location information in code objects\n" +" (-X no_debug_ranges)\n" +"PYTHONNOUSERSITE: disable user site directory (-s)\n" +"PYTHONOPTIMIZE : enable level 1 optimizations (-O)\n" +"PYTHONPERFSUPPORT: support the Linux \"perf\" profiler (-X perf)\n" +"PYTHONPROFILEIMPORTTIME: show how long each import takes (-X importtime)\n" +"PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files\n" +" (-X pycache_prefix)\n" +"PYTHONSAFEPATH : don't prepend a potentially unsafe path to sys.path.\n" +"PYTHONTRACEMALLOC: trace Python memory allocations (-X tracemalloc)\n" +"PYTHONUNBUFFERED: disable stdout/stderr buffering (-u)\n" +"PYTHONUTF8 : control the UTF-8 mode (-X utf8)\n" +"PYTHONVERBOSE : trace import statements (-v)\n" +"PYTHONWARNDEFAULTENCODING: enable opt-in EncodingWarning for 'encoding=None'\n" +" (-X warn_default_encoding)\n" +"PYTHONWARNINGS : warning control (-W)\n" +; #if defined(MS_WINDOWS) # define PYTHONHOMEHELP "<prefix>\\python{major}{minor}" @@ -2370,9 +2345,9 @@ static void config_complete_usage(const wchar_t* program) { config_usage(0, program); - puts("\n"); + putchar('\n'); config_envvars_usage(); - puts("\n"); + putchar('\n'); config_xoptions_usage(); } diff --git a/contrib/tools/python3/Python/structmember.c b/contrib/tools/python3/Python/structmember.c index ebebaa0a03..f4de0cb9ea 100644 --- a/contrib/tools/python3/Python/structmember.c +++ b/contrib/tools/python3/Python/structmember.c @@ -3,6 +3,9 @@ #include "Python.h" #include "structmember.h" // PyMemberDef +#include "pycore_abstract.h" // _PyNumber_Index() +#include "pycore_long.h" // _PyLong_IsNegative() + PyObject * PyMember_GetOne(const char *obj_addr, PyMemberDef *l) @@ -200,27 +203,22 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) case T_UINT: { /* XXX: For compatibility, accept negative int values as well. */ - int overflow; - long long_val = PyLong_AsLongAndOverflow(v, &overflow); - if (long_val == -1 && PyErr_Occurred()) { - return -1; - } - if (overflow < 0) { - PyErr_SetString(PyExc_OverflowError, - "Python int too large to convert to C long"); + v = _PyNumber_Index(v); + if (v == NULL) { return -1; } - else if (!overflow) { - *(unsigned int *)addr = (unsigned int)(unsigned long)long_val; - if (long_val < 0) { - WARN("Writing negative value into unsigned field"); - } - else if ((unsigned long)long_val > UINT_MAX) { - WARN("Truncation of value to unsigned short"); + if (_PyLong_IsNegative((PyLongObject *)v)) { + long long_val = PyLong_AsLong(v); + Py_DECREF(v); + if (long_val == -1 && PyErr_Occurred()) { + return -1; } + *(unsigned int *)addr = (unsigned int)(unsigned long)long_val; + WARN("Writing negative value into unsigned field"); } else { unsigned long ulong_val = PyLong_AsUnsignedLong(v); + Py_DECREF(v); if (ulong_val == (unsigned long)-1 && PyErr_Occurred()) { return -1; } @@ -240,24 +238,22 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) case T_ULONG: { /* XXX: For compatibility, accept negative int values as well. */ - int overflow; - long long_val = PyLong_AsLongAndOverflow(v, &overflow); - if (long_val == -1 && PyErr_Occurred()) { - return -1; - } - if (overflow < 0) { - PyErr_SetString(PyExc_OverflowError, - "Python int too large to convert to C long"); + v = _PyNumber_Index(v); + if (v == NULL) { return -1; } - else if (!overflow) { - *(unsigned long *)addr = (unsigned long)long_val; - if (long_val < 0) { - WARN("Writing negative value into unsigned field"); + if (_PyLong_IsNegative((PyLongObject *)v)) { + long long_val = PyLong_AsLong(v); + Py_DECREF(v); + if (long_val == -1 && PyErr_Occurred()) { + return -1; } + *(unsigned long *)addr = (unsigned long)long_val; + WARN("Writing negative value into unsigned field"); } else { unsigned long ulong_val = PyLong_AsUnsignedLong(v); + Py_DECREF(v); if (ulong_val == (unsigned long)-1 && PyErr_Occurred()) { return -1; } @@ -313,18 +309,30 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) return -1; break; } - case T_ULONGLONG:{ - unsigned long long value; - /* ??? PyLong_AsLongLong accepts an int, but PyLong_AsUnsignedLongLong - doesn't ??? */ - if (PyLong_Check(v)) - *(unsigned long long*)addr = value = PyLong_AsUnsignedLongLong(v); - else - *(unsigned long long*)addr = value = PyLong_AsLong(v); - if ((value == (unsigned long long)-1) && PyErr_Occurred()) + case Py_T_ULONGLONG: { + v = _PyNumber_Index(v); + if (v == NULL) { return -1; - break; } + if (_PyLong_IsNegative((PyLongObject *)v)) { + long long_val = PyLong_AsLong(v); + Py_DECREF(v); + if (long_val == -1 && PyErr_Occurred()) { + return -1; + } + *(unsigned long long *)addr = (unsigned long long)(long long)long_val; + WARN("Writing negative value into unsigned field"); + } + else { + unsigned long long ulonglong_val = PyLong_AsUnsignedLongLong(v); + Py_DECREF(v); + if (ulonglong_val == (unsigned long long)-1 && PyErr_Occurred()) { + return -1; + } + *(unsigned long long*)addr = ulonglong_val; + } + break; + } default: PyErr_Format(PyExc_SystemError, "bad memberdescr type for %s", l->name); diff --git a/contrib/tools/python3/Python/symtable.c b/contrib/tools/python3/Python/symtable.c index a5c6b465b7..65ebdee0d7 100644 --- a/contrib/tools/python3/Python/symtable.c +++ b/contrib/tools/python3/Python/symtable.c @@ -281,11 +281,6 @@ symtable_new(void) return NULL; } -/* Using a scaling factor means this should automatically adjust when - the recursion limit is adjusted for small or large C stack allocations. -*/ -#define COMPILER_STACK_FRAME_SCALE 2 - struct symtable * _PySymtable_Build(mod_ty mod, PyObject *filename, PyFutureFeatures *future) { @@ -312,9 +307,9 @@ _PySymtable_Build(mod_ty mod, PyObject *filename, PyFutureFeatures *future) } /* Be careful here to prevent overflow. */ int recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; - starting_recursion_depth = recursion_depth * COMPILER_STACK_FRAME_SCALE; + starting_recursion_depth = recursion_depth; st->recursion_depth = starting_recursion_depth; - st->recursion_limit = C_RECURSION_LIMIT * COMPILER_STACK_FRAME_SCALE; + st->recursion_limit = C_RECURSION_LIMIT; /* Make the initial symbol information gathering pass */ if (!symtable_enter_block(st, &_Py_ID(top), ModuleBlock, (void *)mod, 0, 0, 0, 0)) { @@ -658,6 +653,8 @@ inline_comprehension(PySTEntryObject *ste, PySTEntryObject *comp, { PyObject *k, *v; Py_ssize_t pos = 0; + int remove_dunder_class = 0; + while (PyDict_Next(comp->ste_symbols, &pos, &k, &v)) { // skip comprehension parameter long comp_flags = PyLong_AS_LONG(v); @@ -679,6 +676,19 @@ inline_comprehension(PySTEntryObject *ste, PySTEntryObject *comp, if (!existing) { // name does not exist in scope, copy from comprehension assert(scope != FREE || PySet_Contains(comp_free, k) == 1); + if (scope == FREE && ste->ste_type == ClassBlock && + _PyUnicode_EqualToASCIIString(k, "__class__")) { + // if __class__ is unbound in the enclosing class scope and free + // in the comprehension scope, it needs special handling; just + // letting it be marked as free in class scope will break due to + // drop_class_free + scope = GLOBAL_IMPLICIT; + only_flags &= ~DEF_FREE; + if (PySet_Discard(comp_free, k) < 0) { + return 0; + } + remove_dunder_class = 1; + } PyObject *v_flags = PyLong_FromLong(only_flags); if (v_flags == NULL) { return 0; @@ -703,6 +713,10 @@ inline_comprehension(PySTEntryObject *ste, PySTEntryObject *comp, } } } + comp->ste_free = PySet_Size(comp_free) > 0; + if (remove_dunder_class && PyDict_DelItemString(comp->ste_symbols, "__class__") < 0) { + return 0; + } return 1; } @@ -1240,16 +1254,22 @@ symtable_enter_block(struct symtable *st, identifier name, _Py_block_ty block, } static long -symtable_lookup(struct symtable *st, PyObject *name) +symtable_lookup_entry(struct symtable *st, PySTEntryObject *ste, PyObject *name) { PyObject *mangled = _Py_Mangle(st->st_private, name); if (!mangled) return 0; - long ret = _PyST_GetSymbol(st->st_cur, mangled); + long ret = _PyST_GetSymbol(ste, mangled); Py_DECREF(mangled); return ret; } +static long +symtable_lookup(struct symtable *st, PyObject *name) +{ + return symtable_lookup_entry(st, st->st_cur, name); +} + static int symtable_add_def_helper(struct symtable *st, PyObject *name, int flag, struct _symtable_entry *ste, int lineno, int col_offset, int end_lineno, int end_col_offset) @@ -1890,7 +1910,7 @@ symtable_extend_namedexpr_scope(struct symtable *st, expr_ty e) * binding conflict with iteration variables, otherwise skip it */ if (ste->ste_comprehension) { - long target_in_scope = _PyST_GetSymbol(ste, target_name); + long target_in_scope = symtable_lookup_entry(st, ste, target_name); if ((target_in_scope & DEF_COMP_ITER) && (target_in_scope & DEF_LOCAL)) { PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_CONFLICT, target_name); @@ -1906,7 +1926,7 @@ symtable_extend_namedexpr_scope(struct symtable *st, expr_ty e) /* If we find a FunctionBlock entry, add as GLOBAL/LOCAL or NONLOCAL/LOCAL */ if (ste->ste_type == FunctionBlock) { - long target_in_scope = _PyST_GetSymbol(ste, target_name); + long target_in_scope = symtable_lookup_entry(st, ste, target_name); if (target_in_scope & DEF_GLOBAL) { if (!symtable_add_def(st, target_name, DEF_GLOBAL, LOCATION(e))) VISIT_QUIT(st, 0); diff --git a/contrib/tools/python3/Python/sysmodule.c b/contrib/tools/python3/Python/sysmodule.c index 3146f2a943..edc66cc69e 100644 --- a/contrib/tools/python3/Python/sysmodule.c +++ b/contrib/tools/python3/Python/sysmodule.c @@ -1439,31 +1439,33 @@ get_hash_info(PyThreadState *tstate) int field = 0; PyHash_FuncDef *hashfunc; hash_info = PyStructSequence_New(&Hash_InfoType); - if (hash_info == NULL) - return NULL; - hashfunc = PyHash_GetFuncDef(); - PyStructSequence_SET_ITEM(hash_info, field++, - PyLong_FromLong(8*sizeof(Py_hash_t))); - PyStructSequence_SET_ITEM(hash_info, field++, - PyLong_FromSsize_t(_PyHASH_MODULUS)); - PyStructSequence_SET_ITEM(hash_info, field++, - PyLong_FromLong(_PyHASH_INF)); - PyStructSequence_SET_ITEM(hash_info, field++, - PyLong_FromLong(0)); // This is no longer used - PyStructSequence_SET_ITEM(hash_info, field++, - PyLong_FromLong(_PyHASH_IMAG)); - PyStructSequence_SET_ITEM(hash_info, field++, - PyUnicode_FromString(hashfunc->name)); - PyStructSequence_SET_ITEM(hash_info, field++, - PyLong_FromLong(hashfunc->hash_bits)); - PyStructSequence_SET_ITEM(hash_info, field++, - PyLong_FromLong(hashfunc->seed_bits)); - PyStructSequence_SET_ITEM(hash_info, field++, - PyLong_FromLong(Py_HASH_CUTOFF)); - if (_PyErr_Occurred(tstate)) { - Py_CLEAR(hash_info); + if (hash_info == NULL) { return NULL; } + hashfunc = PyHash_GetFuncDef(); + +#define SET_HASH_INFO_ITEM(CALL) \ + do { \ + PyObject *item = (CALL); \ + if (item == NULL) { \ + Py_CLEAR(hash_info); \ + return NULL; \ + } \ + PyStructSequence_SET_ITEM(hash_info, field++, item); \ + } while(0) + + SET_HASH_INFO_ITEM(PyLong_FromLong(8 * sizeof(Py_hash_t))); + SET_HASH_INFO_ITEM(PyLong_FromSsize_t(_PyHASH_MODULUS)); + SET_HASH_INFO_ITEM(PyLong_FromLong(_PyHASH_INF)); + SET_HASH_INFO_ITEM(PyLong_FromLong(0)); // This is no longer used + SET_HASH_INFO_ITEM(PyLong_FromLong(_PyHASH_IMAG)); + SET_HASH_INFO_ITEM(PyUnicode_FromString(hashfunc->name)); + SET_HASH_INFO_ITEM(PyLong_FromLong(hashfunc->hash_bits)); + SET_HASH_INFO_ITEM(PyLong_FromLong(hashfunc->seed_bits)); + SET_HASH_INFO_ITEM(PyLong_FromLong(Py_HASH_CUTOFF)); + +#undef SET_HASH_INFO_ITEM + return hash_info; } /*[clinic input] @@ -1586,6 +1588,9 @@ sys_getwindowsversion_impl(PyObject *module) if (version && PyObject_TypeCheck(version, &WindowsVersionType)) { return version; } + if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { + return NULL; + } Py_XDECREF(version); PyErr_Clear(); @@ -1597,15 +1602,24 @@ sys_getwindowsversion_impl(PyObject *module) if (version == NULL) return NULL; - PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwMajorVersion)); - PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwMinorVersion)); - PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwBuildNumber)); - PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwPlatformId)); - PyStructSequence_SET_ITEM(version, pos++, PyUnicode_FromWideChar(ver.szCSDVersion, -1)); - PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wServicePackMajor)); - PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wServicePackMinor)); - PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wSuiteMask)); - PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wProductType)); +#define SET_VERSION_INFO(CALL) \ + do { \ + PyObject *item = (CALL); \ + if (item == NULL) { \ + goto error; \ + } \ + PyStructSequence_SET_ITEM(version, pos++, item); \ + } while(0) + + SET_VERSION_INFO(PyLong_FromLong(ver.dwMajorVersion)); + SET_VERSION_INFO(PyLong_FromLong(ver.dwMinorVersion)); + SET_VERSION_INFO(PyLong_FromLong(ver.dwBuildNumber)); + SET_VERSION_INFO(PyLong_FromLong(ver.dwPlatformId)); + SET_VERSION_INFO(PyUnicode_FromWideChar(ver.szCSDVersion, -1)); + SET_VERSION_INFO(PyLong_FromLong(ver.wServicePackMajor)); + SET_VERSION_INFO(PyLong_FromLong(ver.wServicePackMinor)); + SET_VERSION_INFO(PyLong_FromLong(ver.wSuiteMask)); + SET_VERSION_INFO(PyLong_FromLong(ver.wProductType)); // GetVersion will lie if we are running in a compatibility mode. // We need to read the version info from a system file resource @@ -1613,6 +1627,10 @@ sys_getwindowsversion_impl(PyObject *module) // just return whatever GetVersion said. PyObject *realVersion = _sys_getwindowsversion_from_kernel32(); if (!realVersion) { + if (!PyErr_ExceptionMatches(PyExc_WindowsError)) { + return NULL; + } + PyErr_Clear(); realVersion = Py_BuildValue("(kkk)", ver.dwMajorVersion, @@ -1621,21 +1639,19 @@ sys_getwindowsversion_impl(PyObject *module) ); } - if (realVersion) { - PyStructSequence_SET_ITEM(version, pos++, realVersion); - } + SET_VERSION_INFO(realVersion); - if (PyErr_Occurred()) { - Py_DECREF(version); - return NULL; - } +#undef SET_VERSION_INFO if (PyObject_SetAttrString(module, "_cached_windows_version", version) < 0) { - Py_DECREF(version); - return NULL; + goto error; } return version; + +error: + Py_DECREF(version); + return NULL; } #pragma warning(pop) diff --git a/contrib/tools/python3/Python/thread_pthread.h b/contrib/tools/python3/Python/thread_pthread.h index e5535a945e..d843d8d7fe 100644 --- a/contrib/tools/python3/Python/thread_pthread.h +++ b/contrib/tools/python3/Python/thread_pthread.h @@ -91,6 +91,10 @@ #endif #endif +/* Thread sanitizer doesn't currently support sem_clockwait */ +#ifdef _Py_THREAD_SANITIZER +#undef HAVE_SEM_CLOCKWAIT +#endif /* Whether or not to use semaphores directly rather than emulating them with * mutexes and condition variables: diff --git a/contrib/tools/python3/README.rst b/contrib/tools/python3/README.rst index a5321cf3e2..442a03b2d0 100644 --- a/contrib/tools/python3/README.rst +++ b/contrib/tools/python3/README.rst @@ -1,4 +1,4 @@ -This is Python version 3.12.2 +This is Python version 3.12.3 ============================= .. image:: https://github.com/python/cpython/workflows/Tests/badge.svg @@ -158,15 +158,6 @@ For information about building Python's documentation, refer to `Doc/README.rst <https://github.com/python/cpython/blob/main/Doc/README.rst>`_. -Converting From Python 2.x to 3.x ---------------------------------- - -Significant backward incompatible changes were made for the release of Python -3.0, which may cause programs written for Python 2 to fail when run with Python -3. For more information about porting your code from Python 2 to Python 3, see -the `Porting HOWTO <https://docs.python.org/3/howto/pyporting.html>`_. - - Testing ------- diff --git a/contrib/tools/python3/bin/ya.make b/contrib/tools/python3/bin/ya.make index 45f1dde162..9736a86d38 100644 --- a/contrib/tools/python3/bin/ya.make +++ b/contrib/tools/python3/bin/ya.make @@ -2,9 +2,9 @@ PROGRAM(python3) -VERSION(3.12.2) +VERSION(3.12.3) -ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.2.tar.gz) +ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.3.tar.gz) LICENSE(Python-2.0) diff --git a/contrib/tools/python3/ya.make b/contrib/tools/python3/ya.make index 24173194fc..2134e2436f 100644 --- a/contrib/tools/python3/ya.make +++ b/contrib/tools/python3/ya.make @@ -2,9 +2,9 @@ LIBRARY() -VERSION(3.12.2) +VERSION(3.12.3) -ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.2.tar.gz) +ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.3.tar.gz) LICENSE(Python-2.0) |