summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/Python-ast.c276
-rw-r--r--Python/_warnings.c53
-rw-r--r--Python/ast.c122
-rw-r--r--Python/bltinmodule.c87
-rw-r--r--Python/ceval.c2227
-rw-r--r--Python/codecs.c8
-rw-r--r--Python/compile.c133
-rw-r--r--Python/condvar.h2
-rw-r--r--Python/dynload_os2.c42
-rw-r--r--Python/dynload_shlib.c36
-rw-r--r--Python/errors.c57
-rw-r--r--Python/fileutils.c39
-rw-r--r--Python/formatter_unicode.c19
-rw-r--r--Python/frozen.c4
-rw-r--r--Python/future.c26
-rw-r--r--Python/getargs.c65
-rw-r--r--Python/import.c152
-rw-r--r--Python/importdl.c2
-rw-r--r--Python/importdl.h5
-rw-r--r--Python/importlib.h7821
-rw-r--r--Python/marshal.c361
-rw-r--r--Python/opcode_targets.h4
-rw-r--r--Python/peephole.c54
-rw-r--r--Python/pyarena.c12
-rw-r--r--Python/pystate.c96
-rw-r--r--Python/pystrtod.c4
-rw-r--r--Python/pythonrun.c93
-rw-r--r--Python/random.c33
-rw-r--r--Python/symtable.c138
-rw-r--r--Python/sysmodule.c113
-rw-r--r--Python/thread.c18
-rw-r--r--Python/thread_nt.h10
-rw-r--r--Python/thread_os2.h267
-rw-r--r--Python/thread_pthread.h12
-rw-r--r--Python/traceback.c6
35 files changed, 5979 insertions, 6418 deletions
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index d78657c..49d19da 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -271,6 +271,10 @@ static PyTypeObject *Bytes_type;
static char *Bytes_fields[]={
"s",
};
+static PyTypeObject *NameConstant_type;
+static char *NameConstant_fields[]={
+ "value",
+};
static PyTypeObject *Ellipsis_type;
static PyTypeObject *Attribute_type;
_Py_IDENTIFIER(attr);
@@ -408,24 +412,24 @@ static char *ExceptHandler_fields[]={
static PyTypeObject *arguments_type;
static PyObject* ast2obj_arguments(void*);
_Py_IDENTIFIER(vararg);
-_Py_IDENTIFIER(varargannotation);
_Py_IDENTIFIER(kwonlyargs);
+_Py_IDENTIFIER(kw_defaults);
_Py_IDENTIFIER(kwarg);
-_Py_IDENTIFIER(kwargannotation);
_Py_IDENTIFIER(defaults);
-_Py_IDENTIFIER(kw_defaults);
static char *arguments_fields[]={
"args",
"vararg",
- "varargannotation",
"kwonlyargs",
+ "kw_defaults",
"kwarg",
- "kwargannotation",
"defaults",
- "kw_defaults",
};
static PyTypeObject *arg_type;
static PyObject* ast2obj_arg(void*);
+static char *arg_attributes[] = {
+ "lineno",
+ "col_offset",
+};
_Py_IDENTIFIER(arg);
_Py_IDENTIFIER(annotation);
static char *arg_fields[]={
@@ -673,6 +677,7 @@ static PyObject* ast2obj_object(void *o)
Py_INCREF((PyObject*)o);
return (PyObject*)o;
}
+#define ast2obj_singleton ast2obj_object
#define ast2obj_identifier ast2obj_object
#define ast2obj_string ast2obj_object
#define ast2obj_bytes ast2obj_object
@@ -684,6 +689,17 @@ static PyObject* ast2obj_int(long b)
/* Conversion Python -> AST */
+static int obj2ast_singleton(PyObject *obj, PyObject** out, PyArena* arena)
+{
+ if (obj != Py_None && obj != Py_True && obj != Py_False) {
+ PyErr_SetString(PyExc_ValueError,
+ "AST singleton must be True, False, or None");
+ return 1;
+ }
+ *out = obj;
+ return 0;
+}
+
static int obj2ast_object(PyObject* obj, PyObject** out, PyArena* arena)
{
if (obj == Py_None)
@@ -754,6 +770,19 @@ static int add_ast_fields(void)
return 0;
}
+static int exists_not_none(PyObject *obj, _Py_Identifier *id)
+{
+ int isnone;
+ PyObject *attr = _PyObject_GetAttrId(obj, id);
+ if (!attr) {
+ PyErr_Clear();
+ return 0;
+ }
+ isnone = attr == Py_None;
+ Py_DECREF(attr);
+ return !isnone;
+}
+
static int init_types(void)
{
@@ -858,6 +887,9 @@ static int init_types(void)
if (!Str_type) return 0;
Bytes_type = make_type("Bytes", expr_type, Bytes_fields, 1);
if (!Bytes_type) return 0;
+ NameConstant_type = make_type("NameConstant", expr_type,
+ NameConstant_fields, 1);
+ if (!NameConstant_type) return 0;
Ellipsis_type = make_type("Ellipsis", expr_type, NULL, 0);
if (!Ellipsis_type) return 0;
Attribute_type = make_type("Attribute", expr_type, Attribute_fields, 3);
@@ -1035,6 +1067,7 @@ static int init_types(void)
comprehension_type = make_type("comprehension", &AST_type,
comprehension_fields, 3);
if (!comprehension_type) return 0;
+ if (!add_attributes(comprehension_type, NULL, 0)) return 0;
excepthandler_type = make_type("excepthandler", &AST_type, NULL, 0);
if (!excepthandler_type) return 0;
if (!add_attributes(excepthandler_type, excepthandler_attributes, 2))
@@ -1042,16 +1075,21 @@ static int init_types(void)
ExceptHandler_type = make_type("ExceptHandler", excepthandler_type,
ExceptHandler_fields, 3);
if (!ExceptHandler_type) return 0;
- arguments_type = make_type("arguments", &AST_type, arguments_fields, 8);
+ arguments_type = make_type("arguments", &AST_type, arguments_fields, 6);
if (!arguments_type) return 0;
+ if (!add_attributes(arguments_type, NULL, 0)) return 0;
arg_type = make_type("arg", &AST_type, arg_fields, 2);
if (!arg_type) return 0;
+ if (!add_attributes(arg_type, arg_attributes, 2)) return 0;
keyword_type = make_type("keyword", &AST_type, keyword_fields, 2);
if (!keyword_type) return 0;
+ if (!add_attributes(keyword_type, NULL, 0)) return 0;
alias_type = make_type("alias", &AST_type, alias_fields, 2);
if (!alias_type) return 0;
+ if (!add_attributes(alias_type, NULL, 0)) return 0;
withitem_type = make_type("withitem", &AST_type, withitem_fields, 2);
if (!withitem_type) return 0;
+ if (!add_attributes(withitem_type, NULL, 0)) return 0;
initialized = 1;
return 1;
}
@@ -1919,6 +1957,25 @@ Bytes(bytes s, int lineno, int col_offset, PyArena *arena)
}
expr_ty
+NameConstant(singleton value, int lineno, int col_offset, PyArena *arena)
+{
+ expr_ty p;
+ if (!value) {
+ PyErr_SetString(PyExc_ValueError,
+ "field value is required for NameConstant");
+ return NULL;
+ }
+ p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
+ if (!p)
+ return NULL;
+ p->kind = NameConstant_kind;
+ p->v.NameConstant.value = value;
+ p->lineno = lineno;
+ p->col_offset = col_offset;
+ return p;
+}
+
+expr_ty
Ellipsis(int lineno, int col_offset, PyArena *arena)
{
expr_ty p;
@@ -2173,9 +2230,8 @@ ExceptHandler(expr_ty type, identifier name, asdl_seq * body, int lineno, int
}
arguments_ty
-arguments(asdl_seq * args, identifier vararg, expr_ty varargannotation,
- asdl_seq * kwonlyargs, identifier kwarg, expr_ty kwargannotation,
- asdl_seq * defaults, asdl_seq * kw_defaults, PyArena *arena)
+arguments(asdl_seq * args, arg_ty vararg, asdl_seq * kwonlyargs, asdl_seq *
+ kw_defaults, arg_ty kwarg, asdl_seq * defaults, PyArena *arena)
{
arguments_ty p;
p = (arguments_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2183,12 +2239,10 @@ arguments(asdl_seq * args, identifier vararg, expr_ty varargannotation,
return NULL;
p->args = args;
p->vararg = vararg;
- p->varargannotation = varargannotation;
p->kwonlyargs = kwonlyargs;
+ p->kw_defaults = kw_defaults;
p->kwarg = kwarg;
- p->kwargannotation = kwargannotation;
p->defaults = defaults;
- p->kw_defaults = kw_defaults;
return p;
}
@@ -2939,6 +2993,15 @@ ast2obj_expr(void* _o)
goto failed;
Py_DECREF(value);
break;
+ case NameConstant_kind:
+ result = PyType_GenericNew(NameConstant_type, NULL, NULL);
+ if (!result) goto failed;
+ value = ast2obj_singleton(o->v.NameConstant.value);
+ if (!value) goto failed;
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ break;
case Ellipsis_kind:
result = PyType_GenericNew(Ellipsis_type, NULL, NULL);
if (!result) goto failed;
@@ -3357,29 +3420,24 @@ ast2obj_arguments(void* _o)
if (_PyObject_SetAttrId(result, &PyId_args, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_identifier(o->vararg);
+ value = ast2obj_arg(o->vararg);
if (!value) goto failed;
if (_PyObject_SetAttrId(result, &PyId_vararg, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(o->varargannotation);
- if (!value) goto failed;
- if (_PyObject_SetAttrId(result, &PyId_varargannotation, value) == -1)
- goto failed;
- Py_DECREF(value);
value = ast2obj_list(o->kwonlyargs, ast2obj_arg);
if (!value) goto failed;
if (_PyObject_SetAttrId(result, &PyId_kwonlyargs, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_identifier(o->kwarg);
+ value = ast2obj_list(o->kw_defaults, ast2obj_expr);
if (!value) goto failed;
- if (_PyObject_SetAttrId(result, &PyId_kwarg, value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_kw_defaults, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(o->kwargannotation);
+ value = ast2obj_arg(o->kwarg);
if (!value) goto failed;
- if (_PyObject_SetAttrId(result, &PyId_kwargannotation, value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_kwarg, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->defaults, ast2obj_expr);
@@ -3387,11 +3445,6 @@ ast2obj_arguments(void* _o)
if (_PyObject_SetAttrId(result, &PyId_defaults, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(o->kw_defaults, ast2obj_expr);
- if (!value) goto failed;
- if (_PyObject_SetAttrId(result, &PyId_kw_defaults, value) == -1)
- goto failed;
- Py_DECREF(value);
return result;
failed:
Py_XDECREF(value);
@@ -3421,6 +3474,16 @@ ast2obj_arg(void* _o)
if (_PyObject_SetAttrId(result, &PyId_annotation, value) == -1)
goto failed;
Py_DECREF(value);
+ value = ast2obj_int(o->lineno);
+ if (!value) goto failed;
+ if (_PyObject_SetAttrId(result, &PyId_lineno, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(o->col_offset);
+ if (!value) goto failed;
+ if (_PyObject_SetAttrId(result, &PyId_col_offset, value) < 0)
+ goto failed;
+ Py_DECREF(value);
return result;
failed:
Py_XDECREF(value);
@@ -3777,7 +3840,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"decorator_list\" missing from FunctionDef");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_returns)) {
+ if (exists_not_none(obj, &PyId_returns)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_returns);
if (tmp == NULL) goto failed;
@@ -3864,7 +3927,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"keywords\" missing from ClassDef");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_starargs)) {
+ if (exists_not_none(obj, &PyId_starargs)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_starargs);
if (tmp == NULL) goto failed;
@@ -3874,7 +3937,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
} else {
starargs = NULL;
}
- if (_PyObject_HasAttrId(obj, &PyId_kwargs)) {
+ if (exists_not_none(obj, &PyId_kwargs)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_kwargs);
if (tmp == NULL) goto failed;
@@ -3944,7 +4007,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
if (isinstance) {
expr_ty value;
- if (_PyObject_HasAttrId(obj, &PyId_value)) {
+ if (exists_not_none(obj, &PyId_value)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
@@ -4382,7 +4445,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
expr_ty exc;
expr_ty cause;
- if (_PyObject_HasAttrId(obj, &PyId_exc)) {
+ if (exists_not_none(obj, &PyId_exc)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_exc);
if (tmp == NULL) goto failed;
@@ -4392,7 +4455,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
} else {
exc = NULL;
}
- if (_PyObject_HasAttrId(obj, &PyId_cause)) {
+ if (exists_not_none(obj, &PyId_cause)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_cause);
if (tmp == NULL) goto failed;
@@ -4536,7 +4599,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from Assert");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_msg)) {
+ if (exists_not_none(obj, &PyId_msg)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_msg);
if (tmp == NULL) goto failed;
@@ -4594,7 +4657,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* names;
int level;
- if (_PyObject_HasAttrId(obj, &PyId_module)) {
+ if (exists_not_none(obj, &PyId_module)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_module);
if (tmp == NULL) goto failed;
@@ -4628,7 +4691,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"names\" missing from ImportFrom");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_level)) {
+ if (exists_not_none(obj, &PyId_level)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_level);
if (tmp == NULL) goto failed;
@@ -5315,7 +5378,7 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
if (isinstance) {
expr_ty value;
- if (_PyObject_HasAttrId(obj, &PyId_value)) {
+ if (exists_not_none(obj, &PyId_value)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
@@ -5493,7 +5556,7 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"keywords\" missing from Call");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_starargs)) {
+ if (exists_not_none(obj, &PyId_starargs)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_starargs);
if (tmp == NULL) goto failed;
@@ -5503,7 +5566,7 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
} else {
starargs = NULL;
}
- if (_PyObject_HasAttrId(obj, &PyId_kwargs)) {
+ if (exists_not_none(obj, &PyId_kwargs)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_kwargs);
if (tmp == NULL) goto failed;
@@ -5584,6 +5647,28 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
if (*out == NULL) goto failed;
return 0;
}
+ isinstance = PyObject_IsInstance(obj, (PyObject*)NameConstant_type);
+ if (isinstance == -1) {
+ return 1;
+ }
+ if (isinstance) {
+ singleton value;
+
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
+ int res;
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
+ if (tmp == NULL) goto failed;
+ res = obj2ast_singleton(tmp, &value, arena);
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ } else {
+ PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from NameConstant");
+ return 1;
+ }
+ *out = NameConstant(value, lineno, col_offset, arena);
+ if (*out == NULL) goto failed;
+ return 0;
+ }
isinstance = PyObject_IsInstance(obj, (PyObject*)Ellipsis_type);
if (isinstance == -1) {
return 1;
@@ -5933,7 +6018,7 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
expr_ty upper;
expr_ty step;
- if (_PyObject_HasAttrId(obj, &PyId_lower)) {
+ if (exists_not_none(obj, &PyId_lower)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_lower);
if (tmp == NULL) goto failed;
@@ -5943,7 +6028,7 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
} else {
lower = NULL;
}
- if (_PyObject_HasAttrId(obj, &PyId_upper)) {
+ if (exists_not_none(obj, &PyId_upper)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_upper);
if (tmp == NULL) goto failed;
@@ -5953,7 +6038,7 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
} else {
upper = NULL;
}
- if (_PyObject_HasAttrId(obj, &PyId_step)) {
+ if (exists_not_none(obj, &PyId_step)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_step);
if (tmp == NULL) goto failed;
@@ -6400,7 +6485,7 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
identifier name;
asdl_seq* body;
- if (_PyObject_HasAttrId(obj, &PyId_type)) {
+ if (exists_not_none(obj, &PyId_type)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_type);
if (tmp == NULL) goto failed;
@@ -6410,7 +6495,7 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
} else {
type = NULL;
}
- if (_PyObject_HasAttrId(obj, &PyId_name)) {
+ if (exists_not_none(obj, &PyId_name)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_name);
if (tmp == NULL) goto failed;
@@ -6460,13 +6545,11 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
{
PyObject* tmp = NULL;
asdl_seq* args;
- identifier vararg;
- expr_ty varargannotation;
+ arg_ty vararg;
asdl_seq* kwonlyargs;
- identifier kwarg;
- expr_ty kwargannotation;
- asdl_seq* defaults;
asdl_seq* kw_defaults;
+ arg_ty kwarg;
+ asdl_seq* defaults;
if (_PyObject_HasAttrId(obj, &PyId_args)) {
int res;
@@ -6492,26 +6575,16 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from arguments");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_vararg)) {
+ if (exists_not_none(obj, &PyId_vararg)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_vararg);
if (tmp == NULL) goto failed;
- res = obj2ast_identifier(tmp, &vararg, arena);
+ res = obj2ast_arg(tmp, &vararg, arena);
if (res != 0) goto failed;
Py_CLEAR(tmp);
} else {
vararg = NULL;
}
- if (_PyObject_HasAttrId(obj, &PyId_varargannotation)) {
- int res;
- tmp = _PyObject_GetAttrId(obj, &PyId_varargannotation);
- if (tmp == NULL) goto failed;
- res = obj2ast_expr(tmp, &varargannotation, arena);
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- } else {
- varargannotation = NULL;
- }
if (_PyObject_HasAttrId(obj, &PyId_kwonlyargs)) {
int res;
Py_ssize_t len;
@@ -6536,25 +6609,39 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"kwonlyargs\" missing from arguments");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_kwarg)) {
+ if (_PyObject_HasAttrId(obj, &PyId_kw_defaults)) {
int res;
- tmp = _PyObject_GetAttrId(obj, &PyId_kwarg);
+ Py_ssize_t len;
+ Py_ssize_t i;
+ tmp = _PyObject_GetAttrId(obj, &PyId_kw_defaults);
if (tmp == NULL) goto failed;
- res = obj2ast_identifier(tmp, &kwarg, arena);
- if (res != 0) goto failed;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "arguments field \"kw_defaults\" must be a list, not a %.200s", tmp->ob_type->tp_name);
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ kw_defaults = asdl_seq_new(len, arena);
+ if (kw_defaults == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ expr_ty value;
+ res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena);
+ if (res != 0) goto failed;
+ asdl_seq_SET(kw_defaults, i, value);
+ }
Py_CLEAR(tmp);
} else {
- kwarg = NULL;
+ PyErr_SetString(PyExc_TypeError, "required field \"kw_defaults\" missing from arguments");
+ return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_kwargannotation)) {
+ if (exists_not_none(obj, &PyId_kwarg)) {
int res;
- tmp = _PyObject_GetAttrId(obj, &PyId_kwargannotation);
+ tmp = _PyObject_GetAttrId(obj, &PyId_kwarg);
if (tmp == NULL) goto failed;
- res = obj2ast_expr(tmp, &kwargannotation, arena);
+ res = obj2ast_arg(tmp, &kwarg, arena);
if (res != 0) goto failed;
Py_CLEAR(tmp);
} else {
- kwargannotation = NULL;
+ kwarg = NULL;
}
if (_PyObject_HasAttrId(obj, &PyId_defaults)) {
int res;
@@ -6580,32 +6667,8 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"defaults\" missing from arguments");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_kw_defaults)) {
- int res;
- Py_ssize_t len;
- Py_ssize_t i;
- tmp = _PyObject_GetAttrId(obj, &PyId_kw_defaults);
- if (tmp == NULL) goto failed;
- if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "arguments field \"kw_defaults\" must be a list, not a %.200s", tmp->ob_type->tp_name);
- goto failed;
- }
- len = PyList_GET_SIZE(tmp);
- kw_defaults = asdl_seq_new(len, arena);
- if (kw_defaults == NULL) goto failed;
- for (i = 0; i < len; i++) {
- expr_ty value;
- res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena);
- if (res != 0) goto failed;
- asdl_seq_SET(kw_defaults, i, value);
- }
- Py_CLEAR(tmp);
- } else {
- PyErr_SetString(PyExc_TypeError, "required field \"kw_defaults\" missing from arguments");
- return 1;
- }
- *out = arguments(args, vararg, varargannotation, kwonlyargs, kwarg,
- kwargannotation, defaults, kw_defaults, arena);
+ *out = arguments(args, vararg, kwonlyargs, kw_defaults, kwarg, defaults,
+ arena);
return 0;
failed:
Py_XDECREF(tmp);
@@ -6630,7 +6693,7 @@ obj2ast_arg(PyObject* obj, arg_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"arg\" missing from arg");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_annotation)) {
+ if (exists_not_none(obj, &PyId_annotation)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_annotation);
if (tmp == NULL) goto failed;
@@ -6701,7 +6764,7 @@ obj2ast_alias(PyObject* obj, alias_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from alias");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_asname)) {
+ if (exists_not_none(obj, &PyId_asname)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_asname);
if (tmp == NULL) goto failed;
@@ -6736,7 +6799,7 @@ obj2ast_withitem(PyObject* obj, withitem_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"context_expr\" missing from withitem");
return 1;
}
- if (_PyObject_HasAttrId(obj, &PyId_optional_vars)) {
+ if (exists_not_none(obj, &PyId_optional_vars)) {
int res;
tmp = _PyObject_GetAttrId(obj, &PyId_optional_vars);
if (tmp == NULL) goto failed;
@@ -6766,7 +6829,7 @@ PyInit__ast(void)
if (!m) return NULL;
d = PyModule_GetDict(m);
if (PyDict_SetItemString(d, "AST", (PyObject*)&AST_type) < 0) return NULL;
- if (PyModule_AddIntConstant(m, "PyCF_ONLY_AST", PyCF_ONLY_AST) < 0)
+ if (PyModule_AddIntMacro(m, PyCF_ONLY_AST) < 0)
return NULL;
if (PyDict_SetItemString(d, "mod", (PyObject*)mod_type) < 0) return NULL;
if (PyDict_SetItemString(d, "Module", (PyObject*)Module_type) < 0) return
@@ -6846,6 +6909,8 @@ PyInit__ast(void)
if (PyDict_SetItemString(d, "Str", (PyObject*)Str_type) < 0) return NULL;
if (PyDict_SetItemString(d, "Bytes", (PyObject*)Bytes_type) < 0) return
NULL;
+ if (PyDict_SetItemString(d, "NameConstant", (PyObject*)NameConstant_type) <
+ 0) return NULL;
if (PyDict_SetItemString(d, "Ellipsis", (PyObject*)Ellipsis_type) < 0)
return NULL;
if (PyDict_SetItemString(d, "Attribute", (PyObject*)Attribute_type) < 0)
@@ -6945,7 +7010,8 @@ PyInit__ast(void)
PyObject* PyAST_mod2obj(mod_ty t)
{
- init_types();
+ if (!init_types())
+ return NULL;
return ast2obj_mod(t);
}
@@ -6959,7 +7025,8 @@ mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
int isinstance;
assert(0 <= mode && mode <= 2);
- init_types();
+ if (!init_types())
+ return NULL;
isinstance = PyObject_IsInstance(ast, req_type[mode]);
if (isinstance == -1)
@@ -6977,7 +7044,8 @@ mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
int PyAST_Check(PyObject* obj)
{
- init_types();
+ if (!init_types())
+ return -1;
return PyObject_IsInstance(obj, (PyObject*)&AST_type);
}
diff --git a/Python/_warnings.c b/Python/_warnings.c
index f33e477..f93ede2 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -283,9 +283,9 @@ show_warning(PyObject *filename, int lineno, PyObject *text, PyObject
PyFile_WriteString(source_line_str, f_stderr);
PyFile_WriteString("\n", f_stderr);
}
- else
- if (_Py_DisplaySourceLine(f_stderr, filename, lineno, 2) < 0)
- return;
+ else {
+ _Py_DisplaySourceLine(f_stderr, filename, lineno, 2);
+ }
PyErr_Clear();
}
@@ -800,8 +800,8 @@ PyErr_WarnExplicit(PyObject *category, const char *text,
goto exit;
if (module_str != NULL) {
module = PyUnicode_FromString(module_str);
- if (module == NULL)
- goto exit;
+ if (module == NULL)
+ goto exit;
}
if (category == NULL)
@@ -820,6 +820,49 @@ PyErr_WarnExplicit(PyObject *category, const char *text,
return ret;
}
+int
+PyErr_WarnExplicitFormat(PyObject *category,
+ const char *filename_str, int lineno,
+ const char *module_str, PyObject *registry,
+ const char *format, ...)
+{
+ PyObject *message;
+ PyObject *module = NULL;
+ PyObject *filename = PyUnicode_DecodeFSDefault(filename_str);
+ int ret = -1;
+ va_list vargs;
+
+ if (filename == NULL)
+ goto exit;
+ if (module_str != NULL) {
+ module = PyUnicode_FromString(module_str);
+ if (module == NULL)
+ goto exit;
+ }
+
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, format);
+#else
+ va_start(vargs);
+#endif
+ message = PyUnicode_FromFormatV(format, vargs);
+ if (message != NULL) {
+ PyObject *res;
+ res = warn_explicit(category, message, filename, lineno,
+ module, registry, NULL);
+ Py_DECREF(message);
+ if (res != NULL) {
+ Py_DECREF(res);
+ ret = 0;
+ }
+ }
+ va_end(vargs);
+exit:
+ Py_XDECREF(module);
+ Py_XDECREF(filename);
+ return ret;
+}
+
PyDoc_STRVAR(warn_doc,
"Issue a warning, or maybe ignore it or raise an exception.");
diff --git a/Python/ast.c b/Python/ast.c
index 9a0b064..a72ba20 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -109,22 +109,14 @@ validate_arguments(arguments_ty args)
{
if (!validate_args(args->args))
return 0;
- if (args->varargannotation) {
- if (!args->vararg) {
- PyErr_SetString(PyExc_ValueError, "varargannotation but no vararg on arguments");
- return 0;
- }
- if (!validate_expr(args->varargannotation, Load))
+ if (args->vararg && args->vararg->annotation
+ && !validate_expr(args->vararg->annotation, Load)) {
return 0;
}
if (!validate_args(args->kwonlyargs))
return 0;
- if (args->kwargannotation) {
- if (!args->kwarg) {
- PyErr_SetString(PyExc_ValueError, "kwargannotation but no kwarg on arguments");
- return 0;
- }
- if (!validate_expr(args->kwargannotation, Load))
+ if (args->kwarg && args->kwarg->annotation
+ && !validate_expr(args->kwarg->annotation, Load)) {
return 0;
}
if (asdl_seq_LEN(args->defaults) > asdl_seq_LEN(args->args)) {
@@ -282,6 +274,7 @@ validate_expr(expr_ty exp, expr_context_ty ctx)
return validate_exprs(exp->v.Tuple.elts, ctx, 0);
/* These last cases don't have any checking. */
case Name_kind:
+ case NameConstant_kind:
case Ellipsis_kind:
return 1;
default:
@@ -567,7 +560,10 @@ new_identifier(const char *n, struct compiling *c)
id = id2;
}
PyUnicode_InternInPlace(&id);
- PyArena_AddPyObject(c->c_arena, id);
+ if (PyArena_AddPyObject(c->c_arena, id) < 0) {
+ Py_DECREF(id);
+ return NULL;
+ }
return id;
}
@@ -903,7 +899,7 @@ set_context(struct compiling *c, expr_ty e, expr_context_ty ctx, const node *n)
break;
case Name_kind:
if (ctx == Store) {
- if (forbidden_name(c, e->v.Name.id, n, 1))
+ if (forbidden_name(c, e->v.Name.id, n, 0))
return 0; /* forbidden_name() calls ast_error() */
}
e->v.Name.ctx = ctx;
@@ -955,6 +951,9 @@ set_context(struct compiling *c, expr_ty e, expr_context_ty ctx, const node *n)
case Bytes_kind:
expr_name = "literal";
break;
+ case NameConstant_kind:
+ expr_name = "keyword";
+ break;
case Ellipsis_kind:
expr_name = "Ellipsis";
break;
@@ -1119,6 +1118,7 @@ ast_for_arg(struct compiling *c, const node *n)
identifier name;
expr_ty annotation = NULL;
node *ch;
+ arg_ty tmp;
assert(TYPE(n) == tfpdef || TYPE(n) == vfpdef);
ch = CHILD(n, 0);
@@ -1134,7 +1134,13 @@ ast_for_arg(struct compiling *c, const node *n)
return NULL;
}
- return arg(name, annotation, c->c_arena);
+ tmp = arg(name, annotation, c->c_arena);
+ if (!tmp)
+ return NULL;
+
+ tmp->lineno = LINENO(n);
+ tmp->col_offset = n->n_col_offset;
+ return tmp;
}
/* returns -1 if failed to handle keyword only arguments
@@ -1230,15 +1236,13 @@ ast_for_arguments(struct compiling *c, const node *n)
int i, j, k, nposargs = 0, nkwonlyargs = 0;
int nposdefaults = 0, found_default = 0;
asdl_seq *posargs, *posdefaults, *kwonlyargs, *kwdefaults;
- identifier vararg = NULL, kwarg = NULL;
+ arg_ty vararg = NULL, kwarg = NULL;
arg_ty arg;
- expr_ty varargannotation = NULL, kwargannotation = NULL;
node *ch;
if (TYPE(n) == parameters) {
if (NCH(n) == 2) /* () as argument list */
- return arguments(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, c->c_arena);
+ return arguments(NULL, NULL, NULL, NULL, NULL, NULL, c->c_arena);
n = CHILD(n, 1);
}
assert(TYPE(n) == typedargslist || TYPE(n) == varargslist);
@@ -1344,17 +1348,10 @@ ast_for_arguments(struct compiling *c, const node *n)
i = res; /* res has new position to process */
}
else {
- vararg = NEW_IDENTIFIER(CHILD(ch, 0));
+ vararg = ast_for_arg(c, ch);
if (!vararg)
return NULL;
- if (forbidden_name(c, vararg, CHILD(ch, 0), 0))
- return NULL;
- if (NCH(ch) > 1) {
- /* there is an annotation on the vararg */
- varargannotation = ast_for_expr(c, CHILD(ch, 2));
- if (!varargannotation)
- return NULL;
- }
+
i += 3;
if (i < NCH(n) && (TYPE(CHILD(n, i)) == tfpdef
|| TYPE(CHILD(n, i)) == vfpdef)) {
@@ -1369,17 +1366,9 @@ ast_for_arguments(struct compiling *c, const node *n)
case DOUBLESTAR:
ch = CHILD(n, i+1); /* tfpdef */
assert(TYPE(ch) == tfpdef || TYPE(ch) == vfpdef);
- kwarg = NEW_IDENTIFIER(CHILD(ch, 0));
+ kwarg = ast_for_arg(c, ch);
if (!kwarg)
return NULL;
- if (NCH(ch) > 1) {
- /* there is an annotation on the kwarg */
- kwargannotation = ast_for_expr(c, CHILD(ch, 2));
- if (!kwargannotation)
- return NULL;
- }
- if (forbidden_name(c, kwarg, CHILD(ch, 0), 0))
- return NULL;
i += 3;
break;
default:
@@ -1389,8 +1378,7 @@ ast_for_arguments(struct compiling *c, const node *n)
return NULL;
}
}
- return arguments(posargs, vararg, varargannotation, kwonlyargs, kwarg,
- kwargannotation, posdefaults, kwdefaults, c->c_arena);
+ return arguments(posargs, vararg, kwonlyargs, kwdefaults, kwarg, posdefaults, c->c_arena);
}
static expr_ty
@@ -1555,8 +1543,7 @@ ast_for_lambdef(struct compiling *c, const node *n)
expr_ty expression;
if (NCH(n) == 3) {
- args = arguments(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, c->c_arena);
+ args = arguments(NULL, NULL, NULL, NULL, NULL, NULL, c->c_arena);
if (!args)
return NULL;
expression = ast_for_expr(c, CHILD(n, 2));
@@ -1819,11 +1806,21 @@ ast_for_atom(struct compiling *c, const node *n)
switch (TYPE(ch)) {
case NAME: {
- /* All names start in Load context, but may later be
- changed. */
- PyObject *name = NEW_IDENTIFIER(ch);
+ PyObject *name;
+ const char *s = STR(ch);
+ size_t len = strlen(s);
+ if (len >= 4 && len <= 5) {
+ if (!strcmp(s, "None"))
+ return NameConstant(Py_None, LINENO(n), n->n_col_offset, c->c_arena);
+ if (!strcmp(s, "True"))
+ return NameConstant(Py_True, LINENO(n), n->n_col_offset, c->c_arena);
+ if (!strcmp(s, "False"))
+ return NameConstant(Py_False, LINENO(n), n->n_col_offset, c->c_arena);
+ }
+ name = new_identifier(s, c);
if (!name)
return NULL;
+ /* All names start in Load context, but may later be changed. */
return Name(name, Load, LINENO(n), n->n_col_offset, c->c_arena);
}
case STRING: {
@@ -1848,12 +1845,15 @@ ast_for_atom(struct compiling *c, const node *n)
}
ast_error(c, n, buf);
Py_DECREF(type);
- Py_DECREF(value);
+ Py_XDECREF(value);
Py_XDECREF(tback);
}
return NULL;
}
- PyArena_AddPyObject(c->c_arena, str);
+ if (PyArena_AddPyObject(c->c_arena, str) < 0) {
+ Py_DECREF(str);
+ return NULL;
+ }
if (bytesmode)
return Bytes(str, LINENO(n), n->n_col_offset, c->c_arena);
else
@@ -1864,7 +1864,10 @@ ast_for_atom(struct compiling *c, const node *n)
if (!pynum)
return NULL;
- PyArena_AddPyObject(c->c_arena, pynum);
+ if (PyArena_AddPyObject(c->c_arena, pynum) < 0) {
+ Py_DECREF(pynum);
+ return NULL;
+ }
return Num(pynum, LINENO(n), n->n_col_offset, c->c_arena);
}
case ELLIPSIS: /* Ellipsis */
@@ -2093,15 +2096,22 @@ ast_for_trailer(struct compiling *c, const node *n, expr_ty left_expr)
if (NCH(n) == 2)
return Call(left_expr, NULL, NULL, NULL, NULL, LINENO(n),
n->n_col_offset, c->c_arena);
- else
- return ast_for_call(c, CHILD(n, 1), left_expr);
+ else {
+ expr_ty tmp = ast_for_call(c, CHILD(n, 1), left_expr);
+ if (!tmp)
+ return NULL;
+
+ tmp->lineno = LINENO(n);
+ tmp->col_offset = n->n_col_offset;
+ return tmp;
+ }
}
else if (TYPE(CHILD(n, 0)) == DOT ) {
PyObject *attr_id = NEW_IDENTIFIER(CHILD(n, 1));
if (!attr_id)
return NULL;
return Attribute(left_expr, attr_id, Load,
- LINENO(n), n->n_col_offset, c->c_arena);
+ LINENO(CHILD(n, 1)), CHILD(n, 1)->n_col_offset, c->c_arena);
}
else {
REQ(CHILD(n, 0), LSQB);
@@ -2202,8 +2212,6 @@ ast_for_power(struct compiling *c, const node *n)
tmp = ast_for_trailer(c, ch, e);
if (!tmp)
return NULL;
- tmp->lineno = e->lineno;
- tmp->col_offset = e->col_offset;
e = tmp;
}
if (TYPE(CHILD(n, NCH(n) - 1)) == factor) {
@@ -2846,13 +2854,19 @@ alias_for_import_name(struct compiling *c, const node *n, int store)
return NULL;
str = uni;
PyUnicode_InternInPlace(&str);
- PyArena_AddPyObject(c->c_arena, str);
+ if (PyArena_AddPyObject(c->c_arena, str) < 0) {
+ Py_DECREF(str);
+ return NULL;
+ }
return alias(str, NULL, c->c_arena);
}
break;
case STAR:
str = PyUnicode_InternFromString("*");
- PyArena_AddPyObject(c->c_arena, str);
+ if (PyArena_AddPyObject(c->c_arena, str) < 0) {
+ Py_DECREF(str);
+ return NULL;
+ }
return alias(str, NULL, c->c_arena);
default:
PyErr_Format(PyExc_SystemError,
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index b07ee8e..fb3abae 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -57,6 +57,11 @@ builtin___build_class__(PyObject *self, PyObject *args, PyObject *kwds)
return NULL;
}
func = PyTuple_GET_ITEM(args, 0); /* Better be callable */
+ if (!PyFunction_Check(func)) {
+ PyErr_SetString(PyExc_TypeError,
+ "__build__class__: func must be a function");
+ return NULL;
+ }
name = PyTuple_GET_ITEM(args, 1);
if (!PyUnicode_Check(name)) {
PyErr_SetString(PyExc_TypeError,
@@ -155,7 +160,9 @@ builtin___build_class__(PyObject *self, PyObject *args, PyObject *kwds)
Py_DECREF(bases);
return NULL;
}
- cell = PyObject_CallFunctionObjArgs(func, ns, NULL);
+ cell = PyEval_EvalCodeEx(PyFunction_GET_CODE(func), PyFunction_GET_GLOBALS(func), ns,
+ NULL, 0, NULL, 0, NULL, 0, NULL,
+ PyFunction_GET_CLOSURE(func));
if (cell != NULL) {
PyObject *margs;
margs = PyTuple_Pack(3, name, bases, ns);
@@ -659,7 +666,7 @@ builtin_compile(PyObject *self, PyObject *args, PyObject *kwds)
goto finally;
}
- str = source_as_string(cmd, "compile", "string, bytes, AST or code", &cf);
+ str = source_as_string(cmd, "compile", "string, bytes or AST", &cf);
if (str == NULL)
goto error;
@@ -1322,26 +1329,35 @@ static PyObject *
min_max(PyObject *args, PyObject *kwds, int op)
{
PyObject *v, *it, *item, *val, *maxitem, *maxval, *keyfunc=NULL;
+ PyObject *emptytuple, *defaultval = NULL;
+ static char *kwlist[] = {"key", "default", NULL};
const char *name = op == Py_LT ? "min" : "max";
+ const int positional = PyTuple_Size(args) > 1;
+ int ret;
- if (PyTuple_Size(args) > 1)
+ if (positional)
v = args;
else if (!PyArg_UnpackTuple(args, (char *)name, 1, 1, &v))
return NULL;
- if (kwds != NULL && PyDict_Check(kwds) && PyDict_Size(kwds)) {
- keyfunc = PyDict_GetItemString(kwds, "key");
- if (PyDict_Size(kwds)!=1 || keyfunc == NULL) {
- PyErr_Format(PyExc_TypeError,
- "%s() got an unexpected keyword argument", name);
- return NULL;
- }
- Py_INCREF(keyfunc);
+ emptytuple = PyTuple_New(0);
+ if (emptytuple == NULL)
+ return NULL;
+ ret = PyArg_ParseTupleAndKeywords(emptytuple, kwds, "|$OO", kwlist,
+ &keyfunc, &defaultval);
+ Py_DECREF(emptytuple);
+ if (!ret)
+ return NULL;
+
+ if (positional && defaultval != NULL) {
+ PyErr_Format(PyExc_TypeError,
+ "Cannot specify a default for %s() with multiple "
+ "positional arguments", name);
+ return NULL;
}
it = PyObject_GetIter(v);
if (it == NULL) {
- Py_XDECREF(keyfunc);
return NULL;
}
@@ -1385,14 +1401,18 @@ min_max(PyObject *args, PyObject *kwds, int op)
if (PyErr_Occurred())
goto Fail_it;
if (maxval == NULL) {
- PyErr_Format(PyExc_ValueError,
- "%s() arg is an empty sequence", name);
assert(maxitem == NULL);
+ if (defaultval != NULL) {
+ Py_INCREF(defaultval);
+ maxitem = defaultval;
+ } else {
+ PyErr_Format(PyExc_ValueError,
+ "%s() arg is an empty sequence", name);
+ }
}
else
Py_DECREF(maxval);
Py_DECREF(it);
- Py_XDECREF(keyfunc);
return maxitem;
Fail_it_item_and_val:
@@ -1403,7 +1423,6 @@ Fail_it:
Py_XDECREF(maxval);
Py_XDECREF(maxitem);
Py_DECREF(it);
- Py_XDECREF(keyfunc);
return NULL;
}
@@ -1531,6 +1550,11 @@ builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
return NULL;
if (file == NULL || file == Py_None) {
file = PySys_GetObject("stdout");
+ if (file == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout");
+ return NULL;
+ }
+
/* sys.stdout may be None when FILE* stdout isn't connected */
if (file == Py_None)
Py_RETURN_NONE;
@@ -1810,10 +1834,10 @@ For most object types, eval(repr(object)) == object.");
static PyObject *
builtin_round(PyObject *self, PyObject *args, PyObject *kwds)
{
- static PyObject *round_str = NULL;
PyObject *ndigits = NULL;
static char *kwlist[] = {"number", "ndigits", 0};
- PyObject *number, *round;
+ PyObject *number, *round, *result;
+ _Py_IDENTIFIER(__round__);
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:round",
kwlist, &number, &ndigits))
@@ -1824,24 +1848,21 @@ builtin_round(PyObject *self, PyObject *args, PyObject *kwds)
return NULL;
}
- if (round_str == NULL) {
- round_str = PyUnicode_InternFromString("__round__");
- if (round_str == NULL)
- return NULL;
- }
-
- round = _PyType_Lookup(Py_TYPE(number), round_str);
+ round = _PyObject_LookupSpecial(number, &PyId___round__);
if (round == NULL) {
- PyErr_Format(PyExc_TypeError,
- "type %.100s doesn't define __round__ method",
- Py_TYPE(number)->tp_name);
+ if (!PyErr_Occurred())
+ PyErr_Format(PyExc_TypeError,
+ "type %.100s doesn't define __round__ method",
+ Py_TYPE(number)->tp_name);
return NULL;
}
if (ndigits == NULL)
- return PyObject_CallFunction(round, "O", number);
+ result = PyObject_CallFunctionObjArgs(round, NULL);
else
- return PyObject_CallFunction(round, "OO", number, ndigits);
+ result = PyObject_CallFunctionObjArgs(round, ndigits, NULL);
+ Py_DECREF(round);
+ return result;
}
PyDoc_STRVAR(round_doc,
@@ -2413,6 +2434,12 @@ PyObject *
_PyBuiltin_Init(void)
{
PyObject *mod, *dict, *debug;
+
+ if (PyType_Ready(&PyFilter_Type) < 0 ||
+ PyType_Ready(&PyMap_Type) < 0 ||
+ PyType_Ready(&PyZip_Type) < 0)
+ return NULL;
+
mod = PyModule_Create(&builtinsmodule);
if (mod == NULL)
return NULL;
diff --git a/Python/ceval.c b/Python/ceval.c
index d28ae2b..837b7c1 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -142,8 +142,6 @@ static PyObject * special_lookup(PyObject *, _Py_Identifier *);
#define NAME_ERROR_MSG \
"name '%.200s' is not defined"
-#define GLOBAL_NAME_ERROR_MSG \
- "global name '%.200s' is not defined"
#define UNBOUNDLOCAL_ERROR_MSG \
"local variable '%.200s' referenced before assignment"
#define UNBOUNDFREE_ERROR_MSG \
@@ -364,29 +362,28 @@ PyEval_ReleaseThread(PyThreadState *tstate)
drop_gil(tstate);
}
-/* This function is called from PyOS_AfterFork to ensure that newly
- created child processes don't hold locks referring to threads which
- are not running in the child process. (This could also be done using
- pthread_atfork mechanism, at least for the pthreads implementation.) */
+/* This function is called from PyOS_AfterFork to destroy all threads which are
+ * not running in the child process, and clear internal locks which might be
+ * held by those threads. (This could also be done using pthread_atfork
+ * mechanism, at least for the pthreads implementation.) */
void
PyEval_ReInitThreads(void)
{
_Py_IDENTIFIER(_after_fork);
PyObject *threading, *result;
- PyThreadState *tstate = PyThreadState_GET();
+ PyThreadState *current_tstate = PyThreadState_GET();
if (!gil_created())
return;
recreate_gil();
pending_lock = PyThread_allocate_lock();
- take_gil(tstate);
+ take_gil(current_tstate);
main_thread = PyThread_get_thread_ident();
/* Update the threading module with the new state.
*/
- tstate = PyThreadState_GET();
- threading = PyMapping_GetItemString(tstate->interp->modules,
+ threading = PyMapping_GetItemString(current_tstate->interp->modules,
"threading");
if (threading == NULL) {
/* threading not imported */
@@ -399,6 +396,9 @@ PyEval_ReInitThreads(void)
else
Py_DECREF(result);
Py_DECREF(threading);
+
+ /* Destroy all threads except the current one */
+ _PyThreadState_DeleteExcept(current_tstate);
}
#else
@@ -742,7 +742,6 @@ _Py_CheckRecursiveCall(char *where)
enum why_code {
WHY_NOT = 0x0001, /* No error */
WHY_EXCEPTION = 0x0002, /* Exception occurred */
- WHY_RERAISE = 0x0004, /* Exception re-raised by 'finally' */
WHY_RETURN = 0x0008, /* 'return' statement */
WHY_BREAK = 0x0010, /* 'break' statement */
WHY_CONTINUE = 0x0020, /* 'continue' statement */
@@ -753,7 +752,7 @@ enum why_code {
static void save_exc_state(PyThreadState *, PyFrameObject *);
static void swap_exc_state(PyThreadState *, PyFrameObject *);
static void restore_and_clear_exc_state(PyThreadState *, PyFrameObject *);
-static enum why_code do_raise(PyObject *, PyObject *);
+static int do_raise(PyObject *, PyObject *);
static int unpack_iterable(PyObject *, int, int, PyObject **);
/* Records whether tracing is on for any thread. Counts the number of
@@ -798,12 +797,6 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
register int opcode; /* Current opcode */
register int oparg; /* Current opcode argument, if any */
register enum why_code why; /* Reason for block stack unwind */
- register int err; /* Error status -- nonzero if error */
- register PyObject *x; /* Result object -- NULL if error */
- register PyObject *v; /* Temporary objects popped off stack */
- register PyObject *w;
- register PyObject *u;
- register PyObject *t;
register PyObject **fastlocals, **freevars;
PyObject *retval = NULL; /* Return value */
PyThreadState *tstate = PyThreadState_GET();
@@ -1206,14 +1199,16 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
#endif
why = WHY_NOT;
- err = 0;
- x = Py_None; /* Not a reference, just anything non-NULL */
- w = NULL;
- if (throwflag) { /* support for generator.throw() */
- why = WHY_EXCEPTION;
- goto on_error;
- }
+ if (throwflag) /* support for generator.throw() */
+ goto error;
+
+#ifdef Py_DEBUG
+ /* PyEval_EvalFrameEx() must not be called with an exception set,
+ because it may clear it (directly or indirectly) and so the
+ caller looses its exception */
+ assert(!PyErr_Occurred());
+#endif
for (;;) {
#ifdef WITH_TSC
@@ -1235,6 +1230,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
#endif
assert(stack_pointer >= f->f_valuestack); /* else underflow */
assert(STACK_LEVEL() <= co->co_stacksize); /* else overflow */
+ assert(!PyErr_Occurred());
/* Do periodic things. Doing this every time through
the loop would add too much overhead, so we do it
@@ -1255,10 +1251,8 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
ticked = 1;
#endif
if (_Py_atomic_load_relaxed(&pendingcalls_to_do)) {
- if (Py_MakePendingCalls() < 0) {
- why = WHY_EXCEPTION;
- goto on_error;
- }
+ if (Py_MakePendingCalls() < 0)
+ goto error;
}
#ifdef WITH_THREAD
if (_Py_atomic_load_relaxed(&gil_drop_request)) {
@@ -1276,13 +1270,12 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
#endif
/* Check for asynchronous exceptions. */
if (tstate->async_exc != NULL) {
- x = tstate->async_exc;
+ PyObject *exc = tstate->async_exc;
tstate->async_exc = NULL;
UNSIGNAL_ASYNC_EXC();
- PyErr_SetNone(x);
- Py_DECREF(x);
- why = WHY_EXCEPTION;
- goto on_error;
+ PyErr_SetNone(exc);
+ Py_DECREF(exc);
+ goto error;
}
}
@@ -1293,6 +1286,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
if (_Py_TracingPossible &&
tstate->c_tracefunc != NULL && !tstate->tracing) {
+ int err;
/* see maybe_call_line_trace
for expository comments */
f->f_stacktop = stack_pointer;
@@ -1307,10 +1301,9 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
stack_pointer = f->f_stacktop;
f->f_stacktop = NULL;
}
- if (err) {
+ if (err)
/* trace function raised an exception */
- goto on_error;
- }
+ goto error;
}
/* Extract opcode and argument */
@@ -1357,87 +1350,99 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
TARGET(NOP)
FAST_DISPATCH();
- TARGET(LOAD_FAST)
- x = GETLOCAL(oparg);
- if (x != NULL) {
- Py_INCREF(x);
- PUSH(x);
- FAST_DISPATCH();
+ TARGET(LOAD_FAST) {
+ PyObject *value = GETLOCAL(oparg);
+ if (value == NULL) {
+ format_exc_check_arg(PyExc_UnboundLocalError,
+ UNBOUNDLOCAL_ERROR_MSG,
+ PyTuple_GetItem(co->co_varnames, oparg));
+ goto error;
}
- format_exc_check_arg(PyExc_UnboundLocalError,
- UNBOUNDLOCAL_ERROR_MSG,
- PyTuple_GetItem(co->co_varnames, oparg));
- break;
+ Py_INCREF(value);
+ PUSH(value);
+ FAST_DISPATCH();
+ }
- TARGET(LOAD_CONST)
- x = GETITEM(consts, oparg);
- Py_INCREF(x);
- PUSH(x);
+ TARGET(LOAD_CONST) {
+ PyObject *value = GETITEM(consts, oparg);
+ Py_INCREF(value);
+ PUSH(value);
FAST_DISPATCH();
+ }
PREDICTED_WITH_ARG(STORE_FAST);
- TARGET(STORE_FAST)
- v = POP();
- SETLOCAL(oparg, v);
+ TARGET(STORE_FAST) {
+ PyObject *value = POP();
+ SETLOCAL(oparg, value);
FAST_DISPATCH();
+ }
- TARGET(POP_TOP)
- v = POP();
- Py_DECREF(v);
+ TARGET(POP_TOP) {
+ PyObject *value = POP();
+ Py_DECREF(value);
FAST_DISPATCH();
+ }
- TARGET(ROT_TWO)
- v = TOP();
- w = SECOND();
- SET_TOP(w);
- SET_SECOND(v);
+ TARGET(ROT_TWO) {
+ PyObject *top = TOP();
+ PyObject *second = SECOND();
+ SET_TOP(second);
+ SET_SECOND(top);
FAST_DISPATCH();
+ }
- TARGET(ROT_THREE)
- v = TOP();
- w = SECOND();
- x = THIRD();
- SET_TOP(w);
- SET_SECOND(x);
- SET_THIRD(v);
+ TARGET(ROT_THREE) {
+ PyObject *top = TOP();
+ PyObject *second = SECOND();
+ PyObject *third = THIRD();
+ SET_TOP(second);
+ SET_SECOND(third);
+ SET_THIRD(top);
FAST_DISPATCH();
+ }
- TARGET(DUP_TOP)
- v = TOP();
- Py_INCREF(v);
- PUSH(v);
+ TARGET(DUP_TOP) {
+ PyObject *top = TOP();
+ Py_INCREF(top);
+ PUSH(top);
FAST_DISPATCH();
+ }
- TARGET(DUP_TOP_TWO)
- x = TOP();
- Py_INCREF(x);
- w = SECOND();
- Py_INCREF(w);
+ TARGET(DUP_TOP_TWO) {
+ PyObject *top = TOP();
+ PyObject *second = SECOND();
+ Py_INCREF(top);
+ Py_INCREF(second);
STACKADJ(2);
- SET_TOP(x);
- SET_SECOND(w);
+ SET_TOP(top);
+ SET_SECOND(second);
FAST_DISPATCH();
+ }
- TARGET(UNARY_POSITIVE)
- v = TOP();
- x = PyNumber_Positive(v);
- Py_DECREF(v);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(UNARY_POSITIVE) {
+ PyObject *value = TOP();
+ PyObject *res = PyNumber_Positive(value);
+ Py_DECREF(value);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(UNARY_NEGATIVE)
- v = TOP();
- x = PyNumber_Negative(v);
- Py_DECREF(v);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(UNARY_NEGATIVE) {
+ PyObject *value = TOP();
+ PyObject *res = PyNumber_Negative(value);
+ Py_DECREF(value);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(UNARY_NOT)
- v = TOP();
- err = PyObject_IsTrue(v);
- Py_DECREF(v);
+ TARGET(UNARY_NOT) {
+ PyObject *value = TOP();
+ int err = PyObject_IsTrue(value);
+ Py_DECREF(value);
if (err == 0) {
Py_INCREF(Py_True);
SET_TOP(Py_True);
@@ -1450,416 +1455,460 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
DISPATCH();
}
STACKADJ(-1);
- break;
+ goto error;
+ }
- TARGET(UNARY_INVERT)
- v = TOP();
- x = PyNumber_Invert(v);
- Py_DECREF(v);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(UNARY_INVERT) {
+ PyObject *value = TOP();
+ PyObject *res = PyNumber_Invert(value);
+ Py_DECREF(value);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_POWER)
- w = POP();
- v = TOP();
- x = PyNumber_Power(v, w, Py_None);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_POWER) {
+ PyObject *exp = POP();
+ PyObject *base = TOP();
+ PyObject *res = PyNumber_Power(base, exp, Py_None);
+ Py_DECREF(base);
+ Py_DECREF(exp);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_MULTIPLY)
- w = POP();
- v = TOP();
- x = PyNumber_Multiply(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_MULTIPLY) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_Multiply(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_TRUE_DIVIDE)
- w = POP();
- v = TOP();
- x = PyNumber_TrueDivide(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_TRUE_DIVIDE) {
+ PyObject *divisor = POP();
+ PyObject *dividend = TOP();
+ PyObject *quotient = PyNumber_TrueDivide(dividend, divisor);
+ Py_DECREF(dividend);
+ Py_DECREF(divisor);
+ SET_TOP(quotient);
+ if (quotient == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_FLOOR_DIVIDE)
- w = POP();
- v = TOP();
- x = PyNumber_FloorDivide(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_FLOOR_DIVIDE) {
+ PyObject *divisor = POP();
+ PyObject *dividend = TOP();
+ PyObject *quotient = PyNumber_FloorDivide(dividend, divisor);
+ Py_DECREF(dividend);
+ Py_DECREF(divisor);
+ SET_TOP(quotient);
+ if (quotient == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_MODULO)
- w = POP();
- v = TOP();
- if (PyUnicode_CheckExact(v))
- x = PyUnicode_Format(v, w);
- else
- x = PyNumber_Remainder(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_MODULO) {
+ PyObject *divisor = POP();
+ PyObject *dividend = TOP();
+ PyObject *res = PyUnicode_CheckExact(dividend) ?
+ PyUnicode_Format(dividend, divisor) :
+ PyNumber_Remainder(dividend, divisor);
+ Py_DECREF(divisor);
+ Py_DECREF(dividend);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_ADD)
- w = POP();
- v = TOP();
- if (PyUnicode_CheckExact(v) &&
- PyUnicode_CheckExact(w)) {
- x = unicode_concatenate(v, w, f, next_instr);
+ TARGET(BINARY_ADD) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *sum;
+ if (PyUnicode_CheckExact(left) &&
+ PyUnicode_CheckExact(right)) {
+ sum = unicode_concatenate(left, right, f, next_instr);
/* unicode_concatenate consumed the ref to v */
- goto skip_decref_vx;
}
else {
- x = PyNumber_Add(v, w);
+ sum = PyNumber_Add(left, right);
+ Py_DECREF(left);
}
- Py_DECREF(v);
- skip_decref_vx:
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
-
- TARGET(BINARY_SUBTRACT)
- w = POP();
- v = TOP();
- x = PyNumber_Subtract(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
-
- TARGET(BINARY_SUBSCR)
- w = POP();
- v = TOP();
- x = PyObject_GetItem(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ Py_DECREF(right);
+ SET_TOP(sum);
+ if (sum == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_LSHIFT)
- w = POP();
- v = TOP();
- x = PyNumber_Lshift(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_SUBTRACT) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *diff = PyNumber_Subtract(left, right);
+ Py_DECREF(right);
+ Py_DECREF(left);
+ SET_TOP(diff);
+ if (diff == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_RSHIFT)
- w = POP();
- v = TOP();
- x = PyNumber_Rshift(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_SUBSCR) {
+ PyObject *sub = POP();
+ PyObject *container = TOP();
+ PyObject *res = PyObject_GetItem(container, sub);
+ Py_DECREF(container);
+ Py_DECREF(sub);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_AND)
- w = POP();
- v = TOP();
- x = PyNumber_And(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_LSHIFT) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_Lshift(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_XOR)
- w = POP();
- v = TOP();
- x = PyNumber_Xor(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_RSHIFT) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_Rshift(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(BINARY_OR)
- w = POP();
- v = TOP();
- x = PyNumber_Or(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BINARY_AND) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_And(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(LIST_APPEND)
- w = POP();
- v = PEEK(oparg);
- err = PyList_Append(v, w);
- Py_DECREF(w);
- if (err == 0) {
- PREDICT(JUMP_ABSOLUTE);
- DISPATCH();
- }
- break;
+ TARGET(BINARY_XOR) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_Xor(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(SET_ADD)
- w = POP();
- v = stack_pointer[-oparg];
- err = PySet_Add(v, w);
- Py_DECREF(w);
- if (err == 0) {
- PREDICT(JUMP_ABSOLUTE);
- DISPATCH();
- }
- break;
+ TARGET(BINARY_OR) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_Or(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_POWER)
- w = POP();
- v = TOP();
- x = PyNumber_InPlacePower(v, w, Py_None);
+ TARGET(LIST_APPEND) {
+ PyObject *v = POP();
+ PyObject *list = PEEK(oparg);
+ int err;
+ err = PyList_Append(list, v);
Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ if (err != 0)
+ goto error;
+ PREDICT(JUMP_ABSOLUTE);
+ DISPATCH();
+ }
- TARGET(INPLACE_MULTIPLY)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceMultiply(v, w);
+ TARGET(SET_ADD) {
+ PyObject *v = POP();
+ PyObject *set = stack_pointer[-oparg];
+ int err;
+ err = PySet_Add(set, v);
Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ if (err != 0)
+ goto error;
+ PREDICT(JUMP_ABSOLUTE);
+ DISPATCH();
+ }
- TARGET(INPLACE_TRUE_DIVIDE)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceTrueDivide(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_POWER) {
+ PyObject *exp = POP();
+ PyObject *base = TOP();
+ PyObject *res = PyNumber_InPlacePower(base, exp, Py_None);
+ Py_DECREF(base);
+ Py_DECREF(exp);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_FLOOR_DIVIDE)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceFloorDivide(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_MULTIPLY) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_InPlaceMultiply(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_MODULO)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceRemainder(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_TRUE_DIVIDE) {
+ PyObject *divisor = POP();
+ PyObject *dividend = TOP();
+ PyObject *quotient = PyNumber_InPlaceTrueDivide(dividend, divisor);
+ Py_DECREF(dividend);
+ Py_DECREF(divisor);
+ SET_TOP(quotient);
+ if (quotient == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_ADD)
- w = POP();
- v = TOP();
- if (PyUnicode_CheckExact(v) &&
- PyUnicode_CheckExact(w)) {
- x = unicode_concatenate(v, w, f, next_instr);
+ TARGET(INPLACE_FLOOR_DIVIDE) {
+ PyObject *divisor = POP();
+ PyObject *dividend = TOP();
+ PyObject *quotient = PyNumber_InPlaceFloorDivide(dividend, divisor);
+ Py_DECREF(dividend);
+ Py_DECREF(divisor);
+ SET_TOP(quotient);
+ if (quotient == NULL)
+ goto error;
+ DISPATCH();
+ }
+
+ TARGET(INPLACE_MODULO) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *mod = PyNumber_InPlaceRemainder(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(mod);
+ if (mod == NULL)
+ goto error;
+ DISPATCH();
+ }
+
+ TARGET(INPLACE_ADD) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *sum;
+ if (PyUnicode_CheckExact(left) && PyUnicode_CheckExact(right)) {
+ sum = unicode_concatenate(left, right, f, next_instr);
/* unicode_concatenate consumed the ref to v */
- goto skip_decref_v;
}
else {
- x = PyNumber_InPlaceAdd(v, w);
+ sum = PyNumber_InPlaceAdd(left, right);
+ Py_DECREF(left);
}
- Py_DECREF(v);
- skip_decref_v:
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ Py_DECREF(right);
+ SET_TOP(sum);
+ if (sum == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_SUBTRACT)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceSubtract(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_SUBTRACT) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *diff = PyNumber_InPlaceSubtract(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(diff);
+ if (diff == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_LSHIFT)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceLshift(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_LSHIFT) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_InPlaceLshift(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_RSHIFT)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceRshift(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_RSHIFT) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_InPlaceRshift(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_AND)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceAnd(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_AND) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_InPlaceAnd(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_XOR)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceXor(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_XOR) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_InPlaceXor(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(INPLACE_OR)
- w = POP();
- v = TOP();
- x = PyNumber_InPlaceOr(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(INPLACE_OR) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = PyNumber_InPlaceOr(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(STORE_SUBSCR)
- w = TOP();
- v = SECOND();
- u = THIRD();
+ TARGET(STORE_SUBSCR) {
+ PyObject *sub = TOP();
+ PyObject *container = SECOND();
+ PyObject *v = THIRD();
+ int err;
STACKADJ(-3);
/* v[w] = u */
- err = PyObject_SetItem(v, w, u);
- Py_DECREF(u);
+ err = PyObject_SetItem(container, sub, v);
Py_DECREF(v);
- Py_DECREF(w);
- if (err == 0) DISPATCH();
- break;
+ Py_DECREF(container);
+ Py_DECREF(sub);
+ if (err != 0)
+ goto error;
+ DISPATCH();
+ }
- TARGET(DELETE_SUBSCR)
- w = TOP();
- v = SECOND();
+ TARGET(DELETE_SUBSCR) {
+ PyObject *sub = TOP();
+ PyObject *container = SECOND();
+ int err;
STACKADJ(-2);
/* del v[w] */
- err = PyObject_DelItem(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- if (err == 0) DISPATCH();
- break;
+ err = PyObject_DelItem(container, sub);
+ Py_DECREF(container);
+ Py_DECREF(sub);
+ if (err != 0)
+ goto error;
+ DISPATCH();
+ }
- TARGET(PRINT_EXPR)
- v = POP();
- w = PySys_GetObject("displayhook");
- if (w == NULL) {
+ TARGET(PRINT_EXPR) {
+ PyObject *value = POP();
+ PyObject *hook = PySys_GetObject("displayhook");
+ PyObject *res;
+ if (hook == NULL) {
PyErr_SetString(PyExc_RuntimeError,
"lost sys.displayhook");
- err = -1;
- x = NULL;
- }
- if (err == 0) {
- x = PyTuple_Pack(1, v);
- if (x == NULL)
- err = -1;
+ Py_DECREF(value);
+ goto error;
}
- if (err == 0) {
- w = PyEval_CallObject(w, x);
- Py_XDECREF(w);
- if (w == NULL)
- err = -1;
- }
- Py_DECREF(v);
- Py_XDECREF(x);
- break;
+ res = PyObject_CallFunctionObjArgs(hook, value, NULL);
+ Py_DECREF(value);
+ if (res == NULL)
+ goto error;
+ Py_DECREF(res);
+ DISPATCH();
+ }
#ifdef CASE_TOO_BIG
default: switch (opcode) {
#endif
- TARGET(RAISE_VARARGS)
- v = w = NULL;
+ TARGET(RAISE_VARARGS) {
+ PyObject *cause = NULL, *exc = NULL;
switch (oparg) {
case 2:
- v = POP(); /* cause */
+ cause = POP(); /* cause */
case 1:
- w = POP(); /* exc */
+ exc = POP(); /* exc */
case 0: /* Fallthrough */
- why = do_raise(w, v);
+ if (do_raise(exc, cause)) {
+ why = WHY_EXCEPTION;
+ goto fast_block_end;
+ }
break;
default:
PyErr_SetString(PyExc_SystemError,
"bad RAISE_VARARGS oparg");
- why = WHY_EXCEPTION;
break;
}
- break;
-
- TARGET(STORE_LOCALS)
- x = POP();
- v = f->f_locals;
- Py_XDECREF(v);
- f->f_locals = x;
- DISPATCH();
+ goto error;
+ }
- TARGET(RETURN_VALUE)
+ TARGET(RETURN_VALUE) {
retval = POP();
why = WHY_RETURN;
goto fast_block_end;
+ }
- TARGET(YIELD_FROM)
- u = POP();
- x = TOP();
- /* send u to x */
- if (PyGen_CheckExact(x)) {
- retval = _PyGen_Send((PyGenObject *)x, u);
+ TARGET(YIELD_FROM) {
+ PyObject *v = POP();
+ PyObject *reciever = TOP();
+ int err;
+ if (PyGen_CheckExact(reciever)) {
+ retval = _PyGen_Send((PyGenObject *)reciever, v);
} else {
_Py_IDENTIFIER(send);
- if (u == Py_None)
- retval = Py_TYPE(x)->tp_iternext(x);
+ if (v == Py_None)
+ retval = Py_TYPE(reciever)->tp_iternext(reciever);
else
- retval = _PyObject_CallMethodId(x, &PyId_send, "O", u);
+ retval = _PyObject_CallMethodId(reciever, &PyId_send, "O", v);
}
- Py_DECREF(u);
- if (!retval) {
+ Py_DECREF(v);
+ if (retval == NULL) {
PyObject *val;
- x = POP(); /* Remove iter from stack */
- Py_DECREF(x);
err = _PyGen_FetchStopIterationValue(&val);
- if (err < 0) {
- x = NULL;
- break;
- }
- x = val;
- PUSH(x);
- continue;
+ if (err < 0)
+ goto error;
+ Py_DECREF(reciever);
+ SET_TOP(val);
+ DISPATCH();
}
/* x remains on stack, retval is value to be yielded */
f->f_stacktop = stack_pointer;
@@ -1867,39 +1916,38 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
/* and repeat... */
f->f_lasti--;
goto fast_yield;
+ }
- TARGET(YIELD_VALUE)
+ TARGET(YIELD_VALUE) {
retval = POP();
f->f_stacktop = stack_pointer;
why = WHY_YIELD;
goto fast_yield;
+ }
- TARGET(POP_EXCEPT)
- {
- PyTryBlock *b = PyFrame_BlockPop(f);
- if (b->b_type != EXCEPT_HANDLER) {
- PyErr_SetString(PyExc_SystemError,
- "popped block is not an except handler");
- why = WHY_EXCEPTION;
- break;
- }
- UNWIND_EXCEPT_HANDLER(b);
+ TARGET(POP_EXCEPT) {
+ PyTryBlock *b = PyFrame_BlockPop(f);
+ if (b->b_type != EXCEPT_HANDLER) {
+ PyErr_SetString(PyExc_SystemError,
+ "popped block is not an except handler");
+ goto error;
}
+ UNWIND_EXCEPT_HANDLER(b);
DISPATCH();
+ }
- TARGET(POP_BLOCK)
- {
- PyTryBlock *b = PyFrame_BlockPop(f);
- UNWIND_BLOCK(b);
- }
+ TARGET(POP_BLOCK) {
+ PyTryBlock *b = PyFrame_BlockPop(f);
+ UNWIND_BLOCK(b);
DISPATCH();
+ }
PREDICTED(END_FINALLY);
- TARGET(END_FINALLY)
- v = POP();
- if (PyLong_Check(v)) {
- why = (enum why_code) PyLong_AS_LONG(v);
- assert(why != WHY_YIELD);
+ TARGET(END_FINALLY) {
+ PyObject *status = POP();
+ if (PyLong_Check(status)) {
+ why = (enum why_code) PyLong_AS_LONG(status);
+ assert(why != WHY_YIELD && why != WHY_EXCEPTION);
if (why == WHY_RETURN ||
why == WHY_CONTINUE)
retval = POP();
@@ -1912,248 +1960,280 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
assert(b->b_type == EXCEPT_HANDLER);
UNWIND_EXCEPT_HANDLER(b);
why = WHY_NOT;
+ Py_DECREF(status);
+ DISPATCH();
}
+ Py_DECREF(status);
+ goto fast_block_end;
}
- else if (PyExceptionClass_Check(v)) {
- w = POP();
- u = POP();
- PyErr_Restore(v, w, u);
- why = WHY_RERAISE;
- break;
+ else if (PyExceptionClass_Check(status)) {
+ PyObject *exc = POP();
+ PyObject *tb = POP();
+ PyErr_Restore(status, exc, tb);
+ why = WHY_EXCEPTION;
+ goto fast_block_end;
}
- else if (v != Py_None) {
+ else if (status != Py_None) {
PyErr_SetString(PyExc_SystemError,
"'finally' pops bad exception");
- why = WHY_EXCEPTION;
+ Py_DECREF(status);
+ goto error;
}
- Py_DECREF(v);
- break;
+ Py_DECREF(status);
+ DISPATCH();
+ }
- TARGET(LOAD_BUILD_CLASS)
- {
+ TARGET(LOAD_BUILD_CLASS) {
_Py_IDENTIFIER(__build_class__);
+ PyObject *bc;
if (PyDict_CheckExact(f->f_builtins)) {
- x = _PyDict_GetItemId(f->f_builtins, &PyId___build_class__);
- if (x == NULL) {
+ bc = _PyDict_GetItemId(f->f_builtins, &PyId___build_class__);
+ if (bc == NULL) {
PyErr_SetString(PyExc_NameError,
"__build_class__ not found");
- break;
+ goto error;
}
- Py_INCREF(x);
+ Py_INCREF(bc);
}
else {
PyObject *build_class_str = _PyUnicode_FromId(&PyId___build_class__);
if (build_class_str == NULL)
break;
- x = PyObject_GetItem(f->f_builtins, build_class_str);
- if (x == NULL) {
+ bc = PyObject_GetItem(f->f_builtins, build_class_str);
+ if (bc == NULL) {
if (PyErr_ExceptionMatches(PyExc_KeyError))
PyErr_SetString(PyExc_NameError,
"__build_class__ not found");
- break;
+ goto error;
}
}
- PUSH(x);
- break;
+ PUSH(bc);
+ DISPATCH();
}
- TARGET(STORE_NAME)
- w = GETITEM(names, oparg);
- v = POP();
- if ((x = f->f_locals) != NULL) {
- if (PyDict_CheckExact(x))
- err = PyDict_SetItem(x, w, v);
- else
- err = PyObject_SetItem(x, w, v);
+ TARGET(STORE_NAME) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *v = POP();
+ PyObject *ns = f->f_locals;
+ int err;
+ if (ns == NULL) {
+ PyErr_Format(PyExc_SystemError,
+ "no locals found when storing %R", name);
Py_DECREF(v);
- if (err == 0) DISPATCH();
- break;
+ goto error;
}
- PyErr_Format(PyExc_SystemError,
- "no locals found when storing %R", w);
- break;
+ if (PyDict_CheckExact(ns))
+ err = PyDict_SetItem(ns, name, v);
+ else
+ err = PyObject_SetItem(ns, name, v);
+ Py_DECREF(v);
+ if (err != 0)
+ goto error;
+ DISPATCH();
+ }
- TARGET(DELETE_NAME)
- w = GETITEM(names, oparg);
- if ((x = f->f_locals) != NULL) {
- if ((err = PyObject_DelItem(x, w)) != 0)
- format_exc_check_arg(PyExc_NameError,
- NAME_ERROR_MSG,
- w);
- break;
+ TARGET(DELETE_NAME) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *ns = f->f_locals;
+ int err;
+ if (ns == NULL) {
+ PyErr_Format(PyExc_SystemError,
+ "no locals when deleting %R", name);
+ goto error;
}
- PyErr_Format(PyExc_SystemError,
- "no locals when deleting %R", w);
- break;
+ err = PyObject_DelItem(ns, name);
+ if (err != 0) {
+ format_exc_check_arg(PyExc_NameError,
+ NAME_ERROR_MSG,
+ name);
+ goto error;
+ }
+ DISPATCH();
+ }
PREDICTED_WITH_ARG(UNPACK_SEQUENCE);
- TARGET(UNPACK_SEQUENCE)
- v = POP();
- if (PyTuple_CheckExact(v) &&
- PyTuple_GET_SIZE(v) == oparg) {
- PyObject **items = \
- ((PyTupleObject *)v)->ob_item;
+ TARGET(UNPACK_SEQUENCE) {
+ PyObject *seq = POP(), *item, **items;
+ if (PyTuple_CheckExact(seq) &&
+ PyTuple_GET_SIZE(seq) == oparg) {
+ items = ((PyTupleObject *)seq)->ob_item;
while (oparg--) {
- w = items[oparg];
- Py_INCREF(w);
- PUSH(w);
+ item = items[oparg];
+ Py_INCREF(item);
+ PUSH(item);
}
- Py_DECREF(v);
- DISPATCH();
- } else if (PyList_CheckExact(v) &&
- PyList_GET_SIZE(v) == oparg) {
- PyObject **items = \
- ((PyListObject *)v)->ob_item;
+ } else if (PyList_CheckExact(seq) &&
+ PyList_GET_SIZE(seq) == oparg) {
+ items = ((PyListObject *)seq)->ob_item;
while (oparg--) {
- w = items[oparg];
- Py_INCREF(w);
- PUSH(w);
+ item = items[oparg];
+ Py_INCREF(item);
+ PUSH(item);
}
- } else if (unpack_iterable(v, oparg, -1,
+ } else if (unpack_iterable(seq, oparg, -1,
stack_pointer + oparg)) {
STACKADJ(oparg);
} else {
/* unpack_iterable() raised an exception */
- why = WHY_EXCEPTION;
+ Py_DECREF(seq);
+ goto error;
}
- Py_DECREF(v);
- break;
+ Py_DECREF(seq);
+ DISPATCH();
+ }
- TARGET(UNPACK_EX)
- {
+ TARGET(UNPACK_EX) {
int totalargs = 1 + (oparg & 0xFF) + (oparg >> 8);
- v = POP();
+ PyObject *seq = POP();
- if (unpack_iterable(v, oparg & 0xFF, oparg >> 8,
+ if (unpack_iterable(seq, oparg & 0xFF, oparg >> 8,
stack_pointer + totalargs)) {
stack_pointer += totalargs;
} else {
- why = WHY_EXCEPTION;
+ Py_DECREF(seq);
+ goto error;
}
- Py_DECREF(v);
- break;
+ Py_DECREF(seq);
+ DISPATCH();
}
- TARGET(STORE_ATTR)
- w = GETITEM(names, oparg);
- v = TOP();
- u = SECOND();
+ TARGET(STORE_ATTR) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *owner = TOP();
+ PyObject *v = SECOND();
+ int err;
STACKADJ(-2);
- err = PyObject_SetAttr(v, w, u); /* v.w = u */
+ err = PyObject_SetAttr(owner, name, v);
Py_DECREF(v);
- Py_DECREF(u);
- if (err == 0) DISPATCH();
- break;
+ Py_DECREF(owner);
+ if (err != 0)
+ goto error;
+ DISPATCH();
+ }
- TARGET(DELETE_ATTR)
- w = GETITEM(names, oparg);
- v = POP();
- err = PyObject_SetAttr(v, w, (PyObject *)NULL);
- /* del v.w */
- Py_DECREF(v);
- break;
+ TARGET(DELETE_ATTR) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *owner = POP();
+ int err;
+ err = PyObject_SetAttr(owner, name, (PyObject *)NULL);
+ Py_DECREF(owner);
+ if (err != 0)
+ goto error;
+ DISPATCH();
+ }
- TARGET(STORE_GLOBAL)
- w = GETITEM(names, oparg);
- v = POP();
- err = PyDict_SetItem(f->f_globals, w, v);
+ TARGET(STORE_GLOBAL) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *v = POP();
+ int err;
+ err = PyDict_SetItem(f->f_globals, name, v);
Py_DECREF(v);
- if (err == 0) DISPATCH();
- break;
+ if (err != 0)
+ goto error;
+ DISPATCH();
+ }
- TARGET(DELETE_GLOBAL)
- w = GETITEM(names, oparg);
- if ((err = PyDict_DelItem(f->f_globals, w)) != 0)
+ TARGET(DELETE_GLOBAL) {
+ PyObject *name = GETITEM(names, oparg);
+ int err;
+ err = PyDict_DelItem(f->f_globals, name);
+ if (err != 0) {
format_exc_check_arg(
- PyExc_NameError, GLOBAL_NAME_ERROR_MSG, w);
- break;
+ PyExc_NameError, NAME_ERROR_MSG, name);
+ goto error;
+ }
+ DISPATCH();
+ }
- TARGET(LOAD_NAME)
- w = GETITEM(names, oparg);
- if ((v = f->f_locals) == NULL) {
+ TARGET(LOAD_NAME) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *locals = f->f_locals;
+ PyObject *v;
+ if (locals == NULL) {
PyErr_Format(PyExc_SystemError,
- "no locals when loading %R", w);
- why = WHY_EXCEPTION;
- break;
+ "no locals when loading %R", name);
+ goto error;
}
- if (PyDict_CheckExact(v)) {
- x = PyDict_GetItem(v, w);
- Py_XINCREF(x);
+ if (PyDict_CheckExact(locals)) {
+ v = PyDict_GetItem(locals, name);
+ Py_XINCREF(v);
}
else {
- x = PyObject_GetItem(v, w);
- if (x == NULL && PyErr_Occurred()) {
- if (!PyErr_ExceptionMatches(
- PyExc_KeyError))
- break;
+ v = PyObject_GetItem(locals, name);
+ if (v == NULL && PyErr_Occurred()) {
+ if (!PyErr_ExceptionMatches(PyExc_KeyError))
+ goto error;
PyErr_Clear();
}
}
- if (x == NULL) {
- x = PyDict_GetItem(f->f_globals, w);
- Py_XINCREF(x);
- if (x == NULL) {
+ if (v == NULL) {
+ v = PyDict_GetItem(f->f_globals, name);
+ Py_XINCREF(v);
+ if (v == NULL) {
if (PyDict_CheckExact(f->f_builtins)) {
- x = PyDict_GetItem(f->f_builtins, w);
- if (x == NULL) {
+ v = PyDict_GetItem(f->f_builtins, name);
+ if (v == NULL) {
format_exc_check_arg(
PyExc_NameError,
- NAME_ERROR_MSG, w);
- break;
+ NAME_ERROR_MSG, name);
+ goto error;
}
- Py_INCREF(x);
+ Py_INCREF(v);
}
else {
- x = PyObject_GetItem(f->f_builtins, w);
- if (x == NULL) {
+ v = PyObject_GetItem(f->f_builtins, name);
+ if (v == NULL) {
if (PyErr_ExceptionMatches(PyExc_KeyError))
format_exc_check_arg(
PyExc_NameError,
- NAME_ERROR_MSG, w);
- break;
+ NAME_ERROR_MSG, name);
+ goto error;
}
}
}
}
- PUSH(x);
+ PUSH(v);
DISPATCH();
+ }
- TARGET(LOAD_GLOBAL)
- w = GETITEM(names, oparg);
+ TARGET(LOAD_GLOBAL) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *v;
if (PyDict_CheckExact(f->f_globals)
&& PyDict_CheckExact(f->f_builtins)) {
- x = _PyDict_LoadGlobal((PyDictObject *)f->f_globals,
+ v = _PyDict_LoadGlobal((PyDictObject *)f->f_globals,
(PyDictObject *)f->f_builtins,
- w);
- if (x == NULL) {
+ name);
+ if (v == NULL) {
if (!PyErr_Occurred())
format_exc_check_arg(PyExc_NameError,
- GLOBAL_NAME_ERROR_MSG, w);
- break;
+ NAME_ERROR_MSG, name);
+ goto error;
}
- Py_INCREF(x);
+ Py_INCREF(v);
}
else {
/* Slow-path if globals or builtins is not a dict */
- x = PyObject_GetItem(f->f_globals, w);
- if (x == NULL) {
- x = PyObject_GetItem(f->f_builtins, w);
- if (x == NULL) {
+ v = PyObject_GetItem(f->f_globals, name);
+ if (v == NULL) {
+ v = PyObject_GetItem(f->f_builtins, name);
+ if (v == NULL) {
if (PyErr_ExceptionMatches(PyExc_KeyError))
format_exc_check_arg(
PyExc_NameError,
- GLOBAL_NAME_ERROR_MSG, w);
- break;
+ NAME_ERROR_MSG, name);
+ goto error;
}
}
}
- PUSH(x);
+ PUSH(v);
DISPATCH();
+ }
- TARGET(DELETE_FAST)
- x = GETLOCAL(oparg);
- if (x != NULL) {
+ TARGET(DELETE_FAST) {
+ PyObject *v = GETLOCAL(oparg);
+ if (v != NULL) {
SETLOCAL(oparg, NULL);
DISPATCH();
}
@@ -2162,252 +2242,310 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
UNBOUNDLOCAL_ERROR_MSG,
PyTuple_GetItem(co->co_varnames, oparg)
);
- break;
+ goto error;
+ }
- TARGET(DELETE_DEREF)
- x = freevars[oparg];
- if (PyCell_GET(x) != NULL) {
- PyCell_Set(x, NULL);
+ TARGET(DELETE_DEREF) {
+ PyObject *cell = freevars[oparg];
+ if (PyCell_GET(cell) != NULL) {
+ PyCell_Set(cell, NULL);
DISPATCH();
}
- err = -1;
format_exc_unbound(co, oparg);
- break;
+ goto error;
+ }
- TARGET(LOAD_CLOSURE)
- x = freevars[oparg];
- Py_INCREF(x);
- PUSH(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(LOAD_CLOSURE) {
+ PyObject *cell = freevars[oparg];
+ Py_INCREF(cell);
+ PUSH(cell);
+ DISPATCH();
+ }
- TARGET(LOAD_DEREF)
- x = freevars[oparg];
- w = PyCell_Get(x);
- if (w != NULL) {
- PUSH(w);
- DISPATCH();
+ TARGET(LOAD_CLASSDEREF) {
+ PyObject *name, *value, *locals = f->f_locals;
+ Py_ssize_t idx;
+ assert(locals);
+ assert(oparg >= PyTuple_GET_SIZE(co->co_cellvars));
+ idx = oparg - PyTuple_GET_SIZE(co->co_cellvars);
+ assert(idx >= 0 && idx < PyTuple_GET_SIZE(co->co_freevars));
+ name = PyTuple_GET_ITEM(co->co_freevars, idx);
+ if (PyDict_CheckExact(locals)) {
+ value = PyDict_GetItem(locals, name);
+ Py_XINCREF(value);
}
- err = -1;
- format_exc_unbound(co, oparg);
- break;
+ else {
+ value = PyObject_GetItem(locals, name);
+ if (value == NULL && PyErr_Occurred()) {
+ if (!PyErr_ExceptionMatches(PyExc_KeyError))
+ goto error;
+ PyErr_Clear();
+ }
+ }
+ if (!value) {
+ PyObject *cell = freevars[oparg];
+ value = PyCell_GET(cell);
+ if (value == NULL) {
+ format_exc_unbound(co, oparg);
+ goto error;
+ }
+ Py_INCREF(value);
+ }
+ PUSH(value);
+ DISPATCH();
+ }
- TARGET(STORE_DEREF)
- w = POP();
- x = freevars[oparg];
- PyCell_Set(x, w);
- Py_DECREF(w);
+ TARGET(LOAD_DEREF) {
+ PyObject *cell = freevars[oparg];
+ PyObject *value = PyCell_GET(cell);
+ if (value == NULL) {
+ format_exc_unbound(co, oparg);
+ goto error;
+ }
+ Py_INCREF(value);
+ PUSH(value);
DISPATCH();
+ }
- TARGET(BUILD_TUPLE)
- x = PyTuple_New(oparg);
- if (x != NULL) {
- for (; --oparg >= 0;) {
- w = POP();
- PyTuple_SET_ITEM(x, oparg, w);
- }
- PUSH(x);
- DISPATCH();
+ TARGET(STORE_DEREF) {
+ PyObject *v = POP();
+ PyObject *cell = freevars[oparg];
+ PyCell_Set(cell, v);
+ Py_DECREF(v);
+ DISPATCH();
+ }
+
+ TARGET(BUILD_TUPLE) {
+ PyObject *tup = PyTuple_New(oparg);
+ if (tup == NULL)
+ goto error;
+ while (--oparg >= 0) {
+ PyObject *item = POP();
+ PyTuple_SET_ITEM(tup, oparg, item);
}
- break;
+ PUSH(tup);
+ DISPATCH();
+ }
- TARGET(BUILD_LIST)
- x = PyList_New(oparg);
- if (x != NULL) {
- for (; --oparg >= 0;) {
- w = POP();
- PyList_SET_ITEM(x, oparg, w);
- }
- PUSH(x);
- DISPATCH();
+ TARGET(BUILD_LIST) {
+ PyObject *list = PyList_New(oparg);
+ if (list == NULL)
+ goto error;
+ while (--oparg >= 0) {
+ PyObject *item = POP();
+ PyList_SET_ITEM(list, oparg, item);
}
- break;
+ PUSH(list);
+ DISPATCH();
+ }
- TARGET(BUILD_SET)
- x = PySet_New(NULL);
- if (x != NULL) {
- for (; --oparg >= 0;) {
- w = POP();
- if (err == 0)
- err = PySet_Add(x, w);
- Py_DECREF(w);
- }
- if (err != 0) {
- Py_DECREF(x);
- break;
- }
- PUSH(x);
- DISPATCH();
+ TARGET(BUILD_SET) {
+ PyObject *set = PySet_New(NULL);
+ int err = 0;
+ if (set == NULL)
+ goto error;
+ while (--oparg >= 0) {
+ PyObject *item = POP();
+ if (err == 0)
+ err = PySet_Add(set, item);
+ Py_DECREF(item);
}
- break;
+ if (err != 0) {
+ Py_DECREF(set);
+ goto error;
+ }
+ PUSH(set);
+ DISPATCH();
+ }
- TARGET(BUILD_MAP)
- x = _PyDict_NewPresized((Py_ssize_t)oparg);
- PUSH(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(BUILD_MAP) {
+ PyObject *map = _PyDict_NewPresized((Py_ssize_t)oparg);
+ if (map == NULL)
+ goto error;
+ PUSH(map);
+ DISPATCH();
+ }
- TARGET(STORE_MAP)
- w = TOP(); /* key */
- u = SECOND(); /* value */
- v = THIRD(); /* dict */
+ TARGET(STORE_MAP) {
+ PyObject *key = TOP();
+ PyObject *value = SECOND();
+ PyObject *map = THIRD();
+ int err;
STACKADJ(-2);
- assert (PyDict_CheckExact(v));
- err = PyDict_SetItem(v, w, u); /* v[w] = u */
- Py_DECREF(u);
- Py_DECREF(w);
- if (err == 0) DISPATCH();
- break;
+ assert(PyDict_CheckExact(map));
+ err = PyDict_SetItem(map, key, value);
+ Py_DECREF(value);
+ Py_DECREF(key);
+ if (err != 0)
+ goto error;
+ DISPATCH();
+ }
- TARGET(MAP_ADD)
- w = TOP(); /* key */
- u = SECOND(); /* value */
+ TARGET(MAP_ADD) {
+ PyObject *key = TOP();
+ PyObject *value = SECOND();
+ PyObject *map;
+ int err;
STACKADJ(-2);
- v = stack_pointer[-oparg]; /* dict */
- assert (PyDict_CheckExact(v));
- err = PyDict_SetItem(v, w, u); /* v[w] = u */
- Py_DECREF(u);
- Py_DECREF(w);
- if (err == 0) {
- PREDICT(JUMP_ABSOLUTE);
- DISPATCH();
- }
- break;
+ map = stack_pointer[-oparg]; /* dict */
+ assert(PyDict_CheckExact(map));
+ err = PyDict_SetItem(map, key, value); /* v[w] = u */
+ Py_DECREF(value);
+ Py_DECREF(key);
+ if (err != 0)
+ goto error;
+ PREDICT(JUMP_ABSOLUTE);
+ DISPATCH();
+ }
- TARGET(LOAD_ATTR)
- w = GETITEM(names, oparg);
- v = TOP();
- x = PyObject_GetAttr(v, w);
- Py_DECREF(v);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ TARGET(LOAD_ATTR) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *owner = TOP();
+ PyObject *res = PyObject_GetAttr(owner, name);
+ Py_DECREF(owner);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(COMPARE_OP)
- w = POP();
- v = TOP();
- x = cmp_outcome(oparg, v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- SET_TOP(x);
- if (x == NULL) break;
+ TARGET(COMPARE_OP) {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ PyObject *res = cmp_outcome(oparg, left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
PREDICT(POP_JUMP_IF_FALSE);
PREDICT(POP_JUMP_IF_TRUE);
DISPATCH();
+ }
- TARGET(IMPORT_NAME)
- {
+ TARGET(IMPORT_NAME) {
_Py_IDENTIFIER(__import__);
- w = GETITEM(names, oparg);
- x = _PyDict_GetItemId(f->f_builtins, &PyId___import__);
- if (x == NULL) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *func = _PyDict_GetItemId(f->f_builtins, &PyId___import__);
+ PyObject *from, *level, *args, *res;
+ if (func == NULL) {
PyErr_SetString(PyExc_ImportError,
"__import__ not found");
- break;
+ goto error;
}
- Py_INCREF(x);
- v = POP();
- u = TOP();
- if (PyLong_AsLong(u) != -1 || PyErr_Occurred())
- w = PyTuple_Pack(5,
- w,
+ Py_INCREF(func);
+ from = POP();
+ level = TOP();
+ if (PyLong_AsLong(level) != -1 || PyErr_Occurred())
+ args = PyTuple_Pack(5,
+ name,
f->f_globals,
f->f_locals == NULL ?
Py_None : f->f_locals,
- v,
- u);
+ from,
+ level);
else
- w = PyTuple_Pack(4,
- w,
+ args = PyTuple_Pack(4,
+ name,
f->f_globals,
f->f_locals == NULL ?
Py_None : f->f_locals,
- v);
- Py_DECREF(v);
- Py_DECREF(u);
- if (w == NULL) {
- u = POP();
- Py_DECREF(x);
- x = NULL;
- break;
+ from);
+ Py_DECREF(level);
+ Py_DECREF(from);
+ if (args == NULL) {
+ Py_DECREF(func);
+ STACKADJ(-1);
+ goto error;
}
READ_TIMESTAMP(intr0);
- v = x;
- x = PyEval_CallObject(v, w);
- Py_DECREF(v);
+ res = PyEval_CallObject(func, args);
READ_TIMESTAMP(intr1);
- Py_DECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ Py_DECREF(args);
+ Py_DECREF(func);
+ SET_TOP(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
}
- TARGET(IMPORT_STAR)
- v = POP();
+ TARGET(IMPORT_STAR) {
+ PyObject *from = POP(), *locals;
+ int err;
PyFrame_FastToLocals(f);
- if ((x = f->f_locals) == NULL) {
+ locals = f->f_locals;
+ if (locals == NULL) {
PyErr_SetString(PyExc_SystemError,
"no locals found during 'import *'");
- break;
+ goto error;
}
READ_TIMESTAMP(intr0);
- err = import_all_from(x, v);
+ err = import_all_from(locals, from);
READ_TIMESTAMP(intr1);
PyFrame_LocalsToFast(f, 0);
- Py_DECREF(v);
- if (err == 0) DISPATCH();
- break;
+ Py_DECREF(from);
+ if (err != 0)
+ goto error;
+ DISPATCH();
+ }
- TARGET(IMPORT_FROM)
- w = GETITEM(names, oparg);
- v = TOP();
+ TARGET(IMPORT_FROM) {
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *from = TOP();
+ PyObject *res;
READ_TIMESTAMP(intr0);
- x = import_from(v, w);
+ res = import_from(from, name);
READ_TIMESTAMP(intr1);
- PUSH(x);
- if (x != NULL) DISPATCH();
- break;
+ PUSH(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(JUMP_FORWARD)
+ TARGET(JUMP_FORWARD) {
JUMPBY(oparg);
FAST_DISPATCH();
+ }
PREDICTED_WITH_ARG(POP_JUMP_IF_FALSE);
- TARGET(POP_JUMP_IF_FALSE)
- w = POP();
- if (w == Py_True) {
- Py_DECREF(w);
+ TARGET(POP_JUMP_IF_FALSE) {
+ PyObject *cond = POP();
+ int err;
+ if (cond == Py_True) {
+ Py_DECREF(cond);
FAST_DISPATCH();
}
- if (w == Py_False) {
- Py_DECREF(w);
+ if (cond == Py_False) {
+ Py_DECREF(cond);
JUMPTO(oparg);
FAST_DISPATCH();
}
- err = PyObject_IsTrue(w);
- Py_DECREF(w);
+ err = PyObject_IsTrue(cond);
+ Py_DECREF(cond);
if (err > 0)
err = 0;
else if (err == 0)
JUMPTO(oparg);
else
- break;
+ goto error;
DISPATCH();
+ }
PREDICTED_WITH_ARG(POP_JUMP_IF_TRUE);
- TARGET(POP_JUMP_IF_TRUE)
- w = POP();
- if (w == Py_False) {
- Py_DECREF(w);
+ TARGET(POP_JUMP_IF_TRUE) {
+ PyObject *cond = POP();
+ int err;
+ if (cond == Py_False) {
+ Py_DECREF(cond);
FAST_DISPATCH();
}
- if (w == Py_True) {
- Py_DECREF(w);
+ if (cond == Py_True) {
+ Py_DECREF(cond);
JUMPTO(oparg);
FAST_DISPATCH();
}
- err = PyObject_IsTrue(w);
- Py_DECREF(w);
+ err = PyObject_IsTrue(cond);
+ Py_DECREF(cond);
if (err > 0) {
err = 0;
JUMPTO(oparg);
@@ -2415,58 +2553,63 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
else if (err == 0)
;
else
- break;
+ goto error;
DISPATCH();
+ }
- TARGET(JUMP_IF_FALSE_OR_POP)
- w = TOP();
- if (w == Py_True) {
+ TARGET(JUMP_IF_FALSE_OR_POP) {
+ PyObject *cond = TOP();
+ int err;
+ if (cond == Py_True) {
STACKADJ(-1);
- Py_DECREF(w);
+ Py_DECREF(cond);
FAST_DISPATCH();
}
- if (w == Py_False) {
+ if (cond == Py_False) {
JUMPTO(oparg);
FAST_DISPATCH();
}
- err = PyObject_IsTrue(w);
+ err = PyObject_IsTrue(cond);
if (err > 0) {
STACKADJ(-1);
- Py_DECREF(w);
+ Py_DECREF(cond);
err = 0;
}
else if (err == 0)
JUMPTO(oparg);
else
- break;
+ goto error;
DISPATCH();
+ }
- TARGET(JUMP_IF_TRUE_OR_POP)
- w = TOP();
- if (w == Py_False) {
+ TARGET(JUMP_IF_TRUE_OR_POP) {
+ PyObject *cond = TOP();
+ int err;
+ if (cond == Py_False) {
STACKADJ(-1);
- Py_DECREF(w);
+ Py_DECREF(cond);
FAST_DISPATCH();
}
- if (w == Py_True) {
+ if (cond == Py_True) {
JUMPTO(oparg);
FAST_DISPATCH();
}
- err = PyObject_IsTrue(w);
+ err = PyObject_IsTrue(cond);
if (err > 0) {
err = 0;
JUMPTO(oparg);
}
else if (err == 0) {
STACKADJ(-1);
- Py_DECREF(w);
+ Py_DECREF(cond);
}
else
- break;
+ goto error;
DISPATCH();
+ }
PREDICTED_WITH_ARG(JUMP_ABSOLUTE);
- TARGET(JUMP_ABSOLUTE)
+ TARGET(JUMP_ABSOLUTE) {
JUMPTO(oparg);
#if FAST_LOOPS
/* Enabling this path speeds-up all while and for-loops by bypassing
@@ -2480,60 +2623,60 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
#else
DISPATCH();
#endif
+ }
- TARGET(GET_ITER)
+ TARGET(GET_ITER) {
/* before: [obj]; after [getiter(obj)] */
- v = TOP();
- x = PyObject_GetIter(v);
- Py_DECREF(v);
- if (x != NULL) {
- SET_TOP(x);
- PREDICT(FOR_ITER);
- DISPATCH();
- }
- STACKADJ(-1);
- break;
+ PyObject *iterable = TOP();
+ PyObject *iter = PyObject_GetIter(iterable);
+ Py_DECREF(iterable);
+ SET_TOP(iter);
+ if (iter == NULL)
+ goto error;
+ PREDICT(FOR_ITER);
+ DISPATCH();
+ }
PREDICTED_WITH_ARG(FOR_ITER);
- TARGET(FOR_ITER)
+ TARGET(FOR_ITER) {
/* before: [iter]; after: [iter, iter()] *or* [] */
- v = TOP();
- x = (*v->ob_type->tp_iternext)(v);
- if (x != NULL) {
- PUSH(x);
+ PyObject *iter = TOP();
+ PyObject *next = (*iter->ob_type->tp_iternext)(iter);
+ if (next != NULL) {
+ PUSH(next);
PREDICT(STORE_FAST);
PREDICT(UNPACK_SEQUENCE);
DISPATCH();
}
if (PyErr_Occurred()) {
- if (!PyErr_ExceptionMatches(
- PyExc_StopIteration))
- break;
+ if (!PyErr_ExceptionMatches(PyExc_StopIteration))
+ goto error;
PyErr_Clear();
}
/* iterator ended normally */
- x = v = POP();
- Py_DECREF(v);
+ STACKADJ(-1);
+ Py_DECREF(iter);
JUMPBY(oparg);
DISPATCH();
+ }
- TARGET(BREAK_LOOP)
+ TARGET(BREAK_LOOP) {
why = WHY_BREAK;
goto fast_block_end;
+ }
- TARGET(CONTINUE_LOOP)
+ TARGET(CONTINUE_LOOP) {
retval = PyLong_FromLong(oparg);
- if (!retval) {
- x = NULL;
- break;
- }
+ if (retval == NULL)
+ goto error;
why = WHY_CONTINUE;
goto fast_block_end;
+ }
TARGET_WITH_IMPL(SETUP_LOOP, _setup_finally)
TARGET_WITH_IMPL(SETUP_EXCEPT, _setup_finally)
TARGET(SETUP_FINALLY)
- _setup_finally:
+ _setup_finally: {
/* NOTE: If you add any new block-setup opcodes that
are not try/except/finally handlers, you may need
to update the PyGen_NeedsFinalizing() function.
@@ -2542,37 +2685,35 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
PyFrame_BlockSetup(f, opcode, INSTR_OFFSET() + oparg,
STACK_LEVEL());
DISPATCH();
+ }
- TARGET(SETUP_WITH)
- {
+ TARGET(SETUP_WITH) {
_Py_IDENTIFIER(__exit__);
_Py_IDENTIFIER(__enter__);
- w = TOP();
- x = special_lookup(w, &PyId___exit__);
- if (!x)
- break;
- SET_TOP(x);
- u = special_lookup(w, &PyId___enter__);
- Py_DECREF(w);
- if (!u) {
- x = NULL;
- break;
- }
- x = PyObject_CallFunctionObjArgs(u, NULL);
- Py_DECREF(u);
- if (!x)
- break;
+ PyObject *mgr = TOP();
+ PyObject *exit = special_lookup(mgr, &PyId___exit__), *enter;
+ PyObject *res;
+ if (exit == NULL)
+ goto error;
+ SET_TOP(exit);
+ enter = special_lookup(mgr, &PyId___enter__);
+ Py_DECREF(mgr);
+ if (enter == NULL)
+ goto error;
+ res = PyObject_CallFunctionObjArgs(enter, NULL);
+ Py_DECREF(enter);
+ if (res == NULL)
+ goto error;
/* Setup the finally block before pushing the result
of __enter__ on the stack. */
PyFrame_BlockSetup(f, SETUP_FINALLY, INSTR_OFFSET() + oparg,
STACK_LEVEL());
- PUSH(x);
+ PUSH(res);
DISPATCH();
}
- TARGET(WITH_CLEANUP)
- {
+ TARGET(WITH_CLEANUP) {
/* At the top of the stack are 1-3 values indicating
how/why we entered the finally clause:
- TOP = None
@@ -2599,42 +2740,42 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
*/
PyObject *exit_func;
- u = TOP();
- if (u == Py_None) {
+ PyObject *exc = TOP(), *val = Py_None, *tb = Py_None, *res;
+ int err;
+ if (exc == Py_None) {
(void)POP();
exit_func = TOP();
- SET_TOP(u);
- v = w = Py_None;
+ SET_TOP(exc);
}
- else if (PyLong_Check(u)) {
- (void)POP();
- switch(PyLong_AsLong(u)) {
+ else if (PyLong_Check(exc)) {
+ STACKADJ(-1);
+ switch (PyLong_AsLong(exc)) {
case WHY_RETURN:
case WHY_CONTINUE:
/* Retval in TOP. */
exit_func = SECOND();
SET_SECOND(TOP());
- SET_TOP(u);
+ SET_TOP(exc);
break;
default:
exit_func = TOP();
- SET_TOP(u);
+ SET_TOP(exc);
break;
}
- u = v = w = Py_None;
+ exc = Py_None;
}
else {
- PyObject *tp, *exc, *tb;
+ PyObject *tp2, *exc2, *tb2;
PyTryBlock *block;
- v = SECOND();
- w = THIRD();
- tp = FOURTH();
- exc = PEEK(5);
- tb = PEEK(6);
+ val = SECOND();
+ tb = THIRD();
+ tp2 = FOURTH();
+ exc2 = PEEK(5);
+ tb2 = PEEK(6);
exit_func = PEEK(7);
- SET_VALUE(7, tb);
- SET_VALUE(6, exc);
- SET_VALUE(5, tp);
+ SET_VALUE(7, tb2);
+ SET_VALUE(6, exc2);
+ SET_VALUE(5, tp2);
/* UNWIND_EXCEPT_HANDLER will pop this off. */
SET_FOURTH(NULL);
/* We just shifted the stack down, so we have
@@ -2645,56 +2786,53 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
block->b_level--;
}
/* XXX Not the fastest way to call it... */
- x = PyObject_CallFunctionObjArgs(exit_func, u, v, w,
- NULL);
+ res = PyObject_CallFunctionObjArgs(exit_func, exc, val, tb, NULL);
Py_DECREF(exit_func);
- if (x == NULL)
- break; /* Go to error exit */
+ if (res == NULL)
+ goto error;
- if (u != Py_None)
- err = PyObject_IsTrue(x);
+ if (exc != Py_None)
+ err = PyObject_IsTrue(res);
else
err = 0;
- Py_DECREF(x);
+ Py_DECREF(res);
if (err < 0)
- break; /* Go to error exit */
+ goto error;
else if (err > 0) {
err = 0;
/* There was an exception and a True return */
PUSH(PyLong_FromLong((long) WHY_SILENCED));
}
PREDICT(END_FINALLY);
- break;
+ DISPATCH();
}
- TARGET(CALL_FUNCTION)
- {
- PyObject **sp;
+ TARGET(CALL_FUNCTION) {
+ PyObject **sp, *res;
PCALL(PCALL_ALL);
sp = stack_pointer;
#ifdef WITH_TSC
- x = call_function(&sp, oparg, &intr0, &intr1);
+ res = call_function(&sp, oparg, &intr0, &intr1);
#else
- x = call_function(&sp, oparg);
+ res = call_function(&sp, oparg);
#endif
stack_pointer = sp;
- PUSH(x);
- if (x != NULL)
- DISPATCH();
- break;
+ PUSH(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
}
TARGET_WITH_IMPL(CALL_FUNCTION_VAR, _call_function_var_kw)
TARGET_WITH_IMPL(CALL_FUNCTION_KW, _call_function_var_kw)
TARGET(CALL_FUNCTION_VAR_KW)
- _call_function_var_kw:
- {
+ _call_function_var_kw: {
int na = oparg & 0xff;
int nk = (oparg>>8) & 0xff;
int flags = (opcode - CALL_FUNCTION) & 3;
int n = na + 2 * nk;
- PyObject **pfunc, *func, **sp;
+ PyObject **pfunc, *func, **sp, *res;
PCALL(PCALL_ALL);
if (flags & CALL_FLAG_VAR)
n++;
@@ -2717,137 +2855,156 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
Py_INCREF(func);
sp = stack_pointer;
READ_TIMESTAMP(intr0);
- x = ext_do_call(func, &sp, flags, na, nk);
+ res = ext_do_call(func, &sp, flags, na, nk);
READ_TIMESTAMP(intr1);
stack_pointer = sp;
Py_DECREF(func);
while (stack_pointer > pfunc) {
- w = POP();
- Py_DECREF(w);
+ PyObject *o = POP();
+ Py_DECREF(o);
}
- PUSH(x);
- if (x != NULL)
- DISPATCH();
- break;
+ PUSH(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
}
TARGET_WITH_IMPL(MAKE_CLOSURE, _make_function)
TARGET(MAKE_FUNCTION)
- _make_function:
- {
+ _make_function: {
int posdefaults = oparg & 0xff;
int kwdefaults = (oparg>>8) & 0xff;
int num_annotations = (oparg >> 16) & 0x7fff;
- w = POP(); /* qualname */
- v = POP(); /* code object */
- x = PyFunction_NewWithQualName(v, f->f_globals, w);
- Py_DECREF(v);
- Py_DECREF(w);
+ PyObject *qualname = POP(); /* qualname */
+ PyObject *code = POP(); /* code object */
+ PyObject *func = PyFunction_NewWithQualName(code, f->f_globals, qualname);
+ Py_DECREF(code);
+ Py_DECREF(qualname);
- if (x != NULL && opcode == MAKE_CLOSURE) {
- v = POP();
- if (PyFunction_SetClosure(x, v) != 0) {
+ if (func == NULL)
+ goto error;
+
+ if (opcode == MAKE_CLOSURE) {
+ PyObject *closure = POP();
+ if (PyFunction_SetClosure(func, closure) != 0) {
/* Can't happen unless bytecode is corrupt. */
- why = WHY_EXCEPTION;
+ Py_DECREF(func);
+ Py_DECREF(closure);
+ goto error;
}
- Py_DECREF(v);
+ Py_DECREF(closure);
}
- if (x != NULL && num_annotations > 0) {
+ if (num_annotations > 0) {
Py_ssize_t name_ix;
- u = POP(); /* names of args with annotations */
- v = PyDict_New();
- if (v == NULL) {
- Py_DECREF(x);
- x = NULL;
- break;
+ PyObject *names = POP(); /* names of args with annotations */
+ PyObject *anns = PyDict_New();
+ if (anns == NULL) {
+ Py_DECREF(func);
+ goto error;
}
- name_ix = PyTuple_Size(u);
+ name_ix = PyTuple_Size(names);
assert(num_annotations == name_ix+1);
while (name_ix > 0) {
+ PyObject *name, *value;
+ int err;
--name_ix;
- t = PyTuple_GET_ITEM(u, name_ix);
- w = POP();
- /* XXX(nnorwitz): check for errors */
- PyDict_SetItem(v, t, w);
- Py_DECREF(w);
+ name = PyTuple_GET_ITEM(names, name_ix);
+ value = POP();
+ err = PyDict_SetItem(anns, name, value);
+ Py_DECREF(value);
+ if (err != 0) {
+ Py_DECREF(anns);
+ Py_DECREF(func);
+ goto error;
+ }
}
- if (PyFunction_SetAnnotations(x, v) != 0) {
+ if (PyFunction_SetAnnotations(func, anns) != 0) {
/* Can't happen unless
PyFunction_SetAnnotations changes. */
- why = WHY_EXCEPTION;
+ Py_DECREF(anns);
+ Py_DECREF(func);
+ goto error;
}
- Py_DECREF(v);
- Py_DECREF(u);
+ Py_DECREF(anns);
+ Py_DECREF(names);
}
/* XXX Maybe this should be a separate opcode? */
- if (x != NULL && posdefaults > 0) {
- v = PyTuple_New(posdefaults);
- if (v == NULL) {
- Py_DECREF(x);
- x = NULL;
- break;
+ if (kwdefaults > 0) {
+ PyObject *defs = PyDict_New();
+ if (defs == NULL) {
+ Py_DECREF(func);
+ goto error;
}
- while (--posdefaults >= 0) {
- w = POP();
- PyTuple_SET_ITEM(v, posdefaults, w);
+ while (--kwdefaults >= 0) {
+ PyObject *v = POP(); /* default value */
+ PyObject *key = POP(); /* kw only arg name */
+ int err = PyDict_SetItem(defs, key, v);
+ Py_DECREF(v);
+ Py_DECREF(key);
+ if (err != 0) {
+ Py_DECREF(defs);
+ Py_DECREF(func);
+ goto error;
+ }
}
- if (PyFunction_SetDefaults(x, v) != 0) {
+ if (PyFunction_SetKwDefaults(func, defs) != 0) {
/* Can't happen unless
- PyFunction_SetDefaults changes. */
- why = WHY_EXCEPTION;
+ PyFunction_SetKwDefaults changes. */
+ Py_DECREF(func);
+ Py_DECREF(defs);
+ goto error;
}
- Py_DECREF(v);
+ Py_DECREF(defs);
}
- if (x != NULL && kwdefaults > 0) {
- v = PyDict_New();
- if (v == NULL) {
- Py_DECREF(x);
- x = NULL;
- break;
+ if (posdefaults > 0) {
+ PyObject *defs = PyTuple_New(posdefaults);
+ if (defs == NULL) {
+ Py_DECREF(func);
+ goto error;
}
- while (--kwdefaults >= 0) {
- w = POP(); /* default value */
- u = POP(); /* kw only arg name */
- /* XXX(nnorwitz): check for errors */
- PyDict_SetItem(v, u, w);
- Py_DECREF(w);
- Py_DECREF(u);
- }
- if (PyFunction_SetKwDefaults(x, v) != 0) {
+ while (--posdefaults >= 0)
+ PyTuple_SET_ITEM(defs, posdefaults, POP());
+ if (PyFunction_SetDefaults(func, defs) != 0) {
/* Can't happen unless
- PyFunction_SetKwDefaults changes. */
- why = WHY_EXCEPTION;
+ PyFunction_SetDefaults changes. */
+ Py_DECREF(defs);
+ Py_DECREF(func);
+ goto error;
}
- Py_DECREF(v);
+ Py_DECREF(defs);
}
- PUSH(x);
- break;
+ PUSH(func);
+ DISPATCH();
}
- TARGET(BUILD_SLICE)
+ TARGET(BUILD_SLICE) {
+ PyObject *start, *stop, *step, *slice;
if (oparg == 3)
- w = POP();
+ step = POP();
else
- w = NULL;
- v = POP();
- u = TOP();
- x = PySlice_New(u, v, w);
- Py_DECREF(u);
- Py_DECREF(v);
- Py_XDECREF(w);
- SET_TOP(x);
- if (x != NULL) DISPATCH();
- break;
+ step = NULL;
+ stop = POP();
+ start = TOP();
+ slice = PySlice_New(start, stop, step);
+ Py_DECREF(start);
+ Py_DECREF(stop);
+ Py_XDECREF(step);
+ SET_TOP(slice);
+ if (slice == NULL)
+ goto error;
+ DISPATCH();
+ }
- TARGET(EXTENDED_ARG)
+ TARGET(EXTENDED_ARG) {
opcode = NEXTOP();
oparg = oparg<<16 | NEXTARG();
goto dispatch_opcode;
+ }
#if USE_COMPUTED_GOTOS
_unknown_opcode:
@@ -2858,8 +3015,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
PyFrame_GetLineNumber(f),
opcode);
PyErr_SetString(PyExc_SystemError, "unknown opcode");
- why = WHY_EXCEPTION;
- break;
+ goto error;
#ifdef CASE_TOO_BIG
}
@@ -2867,71 +3023,35 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
} /* switch */
- on_error:
+ /* This should never be reached. Every opcode should end with DISPATCH()
+ or goto error. */
+ assert(0);
+error:
READ_TIMESTAMP(inst1);
- /* Quickly continue if no error occurred */
-
- if (why == WHY_NOT) {
- if (err == 0 && x != NULL) {
-#ifdef CHECKEXC
- /* This check is expensive! */
- if (PyErr_Occurred())
- fprintf(stderr,
- "XXX undetected error\n");
- else {
-#endif
- READ_TIMESTAMP(loop1);
- continue; /* Normal, fast path */
-#ifdef CHECKEXC
- }
-#endif
- }
- why = WHY_EXCEPTION;
- x = Py_None;
- err = 0;
- }
-
- /* Double-check exception status */
+ assert(why == WHY_NOT);
+ why = WHY_EXCEPTION;
- if (why == WHY_EXCEPTION || why == WHY_RERAISE) {
- if (!PyErr_Occurred()) {
- PyErr_SetString(PyExc_SystemError,
- "error return without exception set");
- why = WHY_EXCEPTION;
- }
- }
-#ifdef CHECKEXC
- else {
- /* This check is expensive! */
- if (PyErr_Occurred()) {
- char buf[128];
- sprintf(buf, "Stack unwind with exception "
- "set and why=%d", why);
- Py_FatalError(buf);
- }
- }
+ /* Double-check exception status. */
+#ifdef NDEBUG
+ if (!PyErr_Occurred())
+ PyErr_SetString(PyExc_SystemError,
+ "error return without exception set");
+#else
+ assert(PyErr_Occurred());
#endif
- /* Log traceback info if this is a real exception */
-
- if (why == WHY_EXCEPTION) {
- PyTraceBack_Here(f);
+ /* Log traceback info. */
+ PyTraceBack_Here(f);
- if (tstate->c_tracefunc != NULL)
- call_exc_trace(tstate->c_tracefunc,
- tstate->c_traceobj, f);
- }
-
- /* For the rest, treat WHY_RERAISE as WHY_EXCEPTION */
+ if (tstate->c_tracefunc != NULL)
+ call_exc_trace(tstate->c_tracefunc, tstate->c_traceobj, f);
- if (why == WHY_RERAISE)
- why = WHY_EXCEPTION;
+fast_block_end:
+ assert(why != WHY_NOT);
/* Unwind stacks if a (pseudo) exception occurred */
-
-fast_block_end:
while (why != WHY_NOT && f->f_iblock > 0) {
/* Peek at the current block. */
PyTryBlock *b = &f->f_blockstack[f->f_iblock - 1];
@@ -2978,7 +3098,10 @@ fast_block_end:
Python main loop. */
PyErr_NormalizeException(
&exc, &val, &tb);
- PyException_SetTraceback(val, tb);
+ if (tb != NULL)
+ PyException_SetTraceback(val, tb);
+ else
+ PyException_SetTraceback(val, Py_None);
Py_INCREF(exc);
tstate->exc_type = exc;
Py_INCREF(val);
@@ -3010,18 +3133,23 @@ fast_block_end:
break;
READ_TIMESTAMP(loop1);
+ assert(!PyErr_Occurred());
+
} /* main loop */
assert(why != WHY_YIELD);
/* Pop remaining stack entries. */
while (!EMPTY()) {
- v = POP();
- Py_XDECREF(v);
+ PyObject *o = POP();
+ Py_XDECREF(o);
}
if (why != WHY_RETURN)
retval = NULL;
+ assert((retval != NULL && !PyErr_Occurred())
+ || (retval == NULL && PyErr_Occurred()));
+
fast_yield:
if (co->co_flags & CO_GENERATOR && (why == WHY_YIELD || why == WHY_RETURN)) {
/* The purpose of this block is to put aside the generator's exception
@@ -3522,7 +3650,7 @@ restore_and_clear_exc_state(PyThreadState *tstate, PyFrameObject *f)
/* Logic for the raise statement (too complicated for inlining).
This *consumes* a reference count to each of its arguments. */
-static enum why_code
+static int
do_raise(PyObject *exc, PyObject *cause)
{
PyObject *type = NULL, *value = NULL;
@@ -3537,13 +3665,13 @@ do_raise(PyObject *exc, PyObject *cause)
if (type == Py_None) {
PyErr_SetString(PyExc_RuntimeError,
"No active exception to reraise");
- return WHY_EXCEPTION;
- }
+ return 0;
+ }
Py_XINCREF(type);
Py_XINCREF(value);
Py_XINCREF(tb);
PyErr_Restore(type, value, tb);
- return WHY_RERAISE;
+ return 1;
}
/* We support the following forms of raise:
@@ -3606,13 +3734,13 @@ do_raise(PyObject *exc, PyObject *cause)
/* PyErr_SetObject incref's its arguments */
Py_XDECREF(value);
Py_XDECREF(type);
- return WHY_EXCEPTION;
+ return 0;
raise_error:
Py_XDECREF(value);
Py_XDECREF(type);
Py_XDECREF(cause);
- return WHY_EXCEPTION;
+ return 0;
}
/* Iterate v argcnt times and store the results on the stack (via decreasing
@@ -3711,7 +3839,7 @@ prtrace(PyObject *v, char *str)
static void
call_exc_trace(Py_tracefunc func, PyObject *self, PyFrameObject *f)
{
- PyObject *type, *value, *traceback, *arg;
+ PyObject *type, *value, *traceback, *orig_traceback, *arg;
int err;
PyErr_Fetch(&type, &value, &traceback);
if (value == NULL) {
@@ -3719,6 +3847,11 @@ call_exc_trace(Py_tracefunc func, PyObject *self, PyFrameObject *f)
Py_INCREF(value);
}
PyErr_NormalizeException(&type, &value, &traceback);
+ orig_traceback = traceback;
+ if (traceback == NULL) {
+ Py_INCREF(Py_None);
+ traceback = Py_None;
+ }
arg = PyTuple_Pack(3, type, value, traceback);
if (arg == NULL) {
PyErr_Restore(type, value, traceback);
@@ -3727,11 +3860,11 @@ call_exc_trace(Py_tracefunc func, PyObject *self, PyFrameObject *f)
err = call_trace(func, self, f, PyTrace_EXCEPTION, arg);
Py_DECREF(arg);
if (err == 0)
- PyErr_Restore(type, value, traceback);
+ PyErr_Restore(type, value, orig_traceback);
else {
Py_XDECREF(type);
Py_XDECREF(value);
- Py_XDECREF(traceback);
+ Py_XDECREF(orig_traceback);
}
}
@@ -3926,6 +4059,13 @@ PyEval_CallObjectWithKeywords(PyObject *func, PyObject *arg, PyObject *kw)
{
PyObject *result;
+#ifdef Py_DEBUG
+ /* PyEval_CallObjectWithKeywords() must not be called with an exception
+ set, because it may clear it (directly or indirectly)
+ and so the caller looses its exception */
+ assert(!PyErr_Occurred());
+#endif
+
if (arg == NULL) {
arg = PyTuple_New(0);
if (arg == NULL)
@@ -3948,6 +4088,9 @@ PyEval_CallObjectWithKeywords(PyObject *func, PyObject *arg, PyObject *kw)
result = PyObject_Call(func, arg, kw);
Py_DECREF(arg);
+
+ assert((result != NULL && !PyErr_Occurred())
+ || (result == NULL && PyErr_Occurred()));
return result;
}
@@ -4065,10 +4208,15 @@ call_function(PyObject ***pp_stack, int oparg
else {
PyObject *callargs;
callargs = load_args(pp_stack, na);
- READ_TIMESTAMP(*pintr0);
- C_TRACE(x, PyCFunction_Call(func,callargs,NULL));
- READ_TIMESTAMP(*pintr1);
- Py_XDECREF(callargs);
+ if (callargs != NULL) {
+ READ_TIMESTAMP(*pintr0);
+ C_TRACE(x, PyCFunction_Call(func,callargs,NULL));
+ READ_TIMESTAMP(*pintr1);
+ Py_XDECREF(callargs);
+ }
+ else {
+ x = NULL;
+ }
}
} else {
if (PyMethod_Check(func) && PyMethod_GET_SELF(func) != NULL) {
@@ -4093,6 +4241,8 @@ call_function(PyObject ***pp_stack, int oparg
READ_TIMESTAMP(*pintr1);
Py_DECREF(func);
}
+ assert((x != NULL && !PyErr_Occurred())
+ || (x == NULL && PyErr_Occurred()));
/* Clear the stack of the function object. Also removes
the arguments in case they weren't consumed already
@@ -4103,6 +4253,9 @@ call_function(PyObject ***pp_stack, int oparg
Py_DECREF(w);
PCALL(PCALL_POP);
}
+
+ assert((x != NULL && !PyErr_Occurred())
+ || (x == NULL && PyErr_Occurred()));
return x;
}
@@ -4386,6 +4539,8 @@ ext_call_fail:
Py_XDECREF(callargs);
Py_XDECREF(kwdict);
Py_XDECREF(stararg);
+ assert((result != NULL && !PyErr_Occurred())
+ || (result == NULL && PyErr_Occurred()));
return result;
}
@@ -4482,7 +4637,7 @@ import_from(PyObject *v, PyObject *name)
x = PyObject_GetAttr(v, name);
if (x == NULL && PyErr_ExceptionMatches(PyExc_AttributeError)) {
- PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
+ PyErr_Format(PyExc_ImportError, "cannot import name %R", name);
}
return x;
}
diff --git a/Python/codecs.c b/Python/codecs.c
index fd67d1b..899f0aa 100644
--- a/Python/codecs.c
+++ b/Python/codecs.c
@@ -65,7 +65,7 @@ PyObject *normalizestring(const char *string)
p = PyMem_Malloc(len + 1);
if (p == NULL)
- return NULL;
+ return PyErr_NoMemory();
for (i = 0; i < len; i++) {
register char ch = string[i];
if (ch == ' ')
@@ -761,7 +761,7 @@ PyCodec_SurrogatePassErrors(PyObject *exc)
for (i = start; i < end; i++) {
/* object is guaranteed to be "ready" */
Py_UCS4 ch = PyUnicode_READ_CHAR(object, i);
- if (ch < 0xd800 || ch > 0xdfff) {
+ if (!Py_UNICODE_IS_SURROGATE(ch)) {
/* Not a surrogate, fail with original exception */
PyErr_SetObject(PyExceptionInstance_Class(exc), exc);
Py_DECREF(res);
@@ -797,7 +797,7 @@ PyCodec_SurrogatePassErrors(PyObject *exc)
(p[2] & 0xc0) == 0x80) {
/* it's a three-byte code */
ch = ((p[0] & 0x0f) << 12) + ((p[1] & 0x3f) << 6) + (p[2] & 0x3f);
- if (ch < 0xd800 || ch > 0xdfff)
+ if (!Py_UNICODE_IS_SURROGATE(ch))
/* it's not a surrogate - fail */
ch = 0;
}
@@ -1026,7 +1026,7 @@ static int _PyCodecRegistry_Init(void)
if (interp->codec_error_registry) {
for (i = 0; i < Py_ARRAY_LENGTH(methods); ++i) {
- PyObject *func = PyCFunction_New(&methods[i].def, NULL);
+ PyObject *func = PyCFunction_NewEx(&methods[i].def, NULL, NULL);
int res;
if (!func)
Py_FatalError("can't initialize codec error registry");
diff --git a/Python/compile.c b/Python/compile.c
index dd4262c..d11e3ab 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -535,6 +535,37 @@ compiler_enter_scope(struct compiler *c, identifier name,
compiler_unit_free(u);
return 0;
}
+ if (u->u_ste->ste_needs_class_closure) {
+ /* Cook up a implicit __class__ cell. */
+ _Py_IDENTIFIER(__class__);
+ PyObject *tuple, *name, *zero;
+ int res;
+ assert(u->u_scope_type == COMPILER_SCOPE_CLASS);
+ assert(PyDict_Size(u->u_cellvars) == 0);
+ name = _PyUnicode_FromId(&PyId___class__);
+ if (!name) {
+ compiler_unit_free(u);
+ return 0;
+ }
+ tuple = PyTuple_Pack(2, name, Py_TYPE(name));
+ if (!tuple) {
+ compiler_unit_free(u);
+ return 0;
+ }
+ zero = PyLong_FromLong(0);
+ if (!zero) {
+ Py_DECREF(tuple);
+ compiler_unit_free(u);
+ return 0;
+ }
+ res = PyDict_SetItem(u->u_cellvars, tuple, zero);
+ Py_DECREF(tuple);
+ Py_DECREF(zero);
+ if (res < 0) {
+ compiler_unit_free(u);
+ return 0;
+ }
+ }
u->u_freevars = dictbytype(u->u_ste->ste_symbols, FREE, DEF_FREE_CLASS,
PyDict_Size(u->u_cellvars));
@@ -862,8 +893,6 @@ opcode_stack_effect(int opcode, int oparg)
return 7;
case WITH_CLEANUP:
return -1; /* XXX Sometimes more */
- case STORE_LOCALS:
- return -1;
case RETURN_VALUE:
return -1;
case IMPORT_STAR:
@@ -970,6 +999,7 @@ opcode_stack_effect(int opcode, int oparg)
case LOAD_CLOSURE:
return 1;
case LOAD_DEREF:
+ case LOAD_CLASSDEREF:
return 1;
case STORE_DEREF:
return -1;
@@ -1330,7 +1360,11 @@ compiler_mod(struct compiler *c, mod_ty mod)
static int
get_ref_type(struct compiler *c, PyObject *name)
{
- int scope = PyST_GetScope(c->u->u_ste, name);
+ int scope;
+ if (c->u->u_scope_type == COMPILER_SCOPE_CLASS &&
+ !PyUnicode_CompareWithASCIIString(name, "__class__"))
+ return CELL;
+ scope = PyST_GetScope(c->u->u_ste, name);
if (scope == 0) {
char buf[350];
PyOS_snprintf(buf, sizeof(buf),
@@ -1501,15 +1535,15 @@ compiler_visit_annotations(struct compiler *c, arguments_ty args,
if (compiler_visit_argannotations(c, args->args, names))
goto error;
- if (args->varargannotation &&
- compiler_visit_argannotation(c, args->vararg,
- args->varargannotation, names))
+ if (args->vararg && args->vararg->annotation &&
+ compiler_visit_argannotation(c, args->vararg->arg,
+ args->vararg->annotation, names))
goto error;
if (compiler_visit_argannotations(c, args->kwonlyargs, names))
goto error;
- if (args->kwargannotation &&
- compiler_visit_argannotation(c, args->kwarg,
- args->kwargannotation, names))
+ if (args->kwarg && args->kwarg->annotation &&
+ compiler_visit_argannotation(c, args->kwarg->arg,
+ args->kwarg->annotation, names))
goto error;
if (!return_str) {
@@ -1568,6 +1602,8 @@ compiler_function(struct compiler *c, stmt_ty s)
if (!compiler_decorators(c, decos))
return 0;
+ if (args->defaults)
+ VISIT_SEQ(c, expr, args->defaults);
if (args->kwonlyargs) {
int res = compiler_visit_kwonlydefaults(c, args->kwonlyargs,
args->kw_defaults);
@@ -1575,8 +1611,6 @@ compiler_function(struct compiler *c, stmt_ty s)
return 0;
kw_default_count = res;
}
- if (args->defaults)
- VISIT_SEQ(c, expr, args->defaults);
num_annotations = compiler_visit_annotations(c, args, returns);
if (num_annotations < 0)
return 0;
@@ -1661,12 +1695,6 @@ compiler_class(struct compiler *c, stmt_ty s)
Py_INCREF(s->v.ClassDef.name);
Py_XDECREF(c->u->u_private);
c->u->u_private = s->v.ClassDef.name;
- /* force it to have one mandatory argument */
- c->u->u_argcount = 1;
- /* load the first argument (__locals__) ... */
- ADDOP_I(c, LOAD_FAST, 0);
- /* ... and store it into f_locals */
- ADDOP_IN_SCOPE(c, STORE_LOCALS);
/* load (global) __name__ ... */
str = PyUnicode_InternFromString("__name__");
if (!str || !compiler_nameop(c, str, Load)) {
@@ -1703,24 +1731,24 @@ compiler_class(struct compiler *c, stmt_ty s)
compiler_exit_scope(c);
return 0;
}
- /* return the (empty) __class__ cell */
- str = PyUnicode_InternFromString("__class__");
- if (str == NULL) {
- compiler_exit_scope(c);
- return 0;
- }
- i = compiler_lookup_arg(c->u->u_cellvars, str);
- Py_DECREF(str);
- if (i == -1) {
- /* This happens when nobody references the cell */
- PyErr_Clear();
- /* Return None */
- ADDOP_O(c, LOAD_CONST, Py_None, consts);
- }
- else {
+ if (c->u->u_ste->ste_needs_class_closure) {
+ /* return the (empty) __class__ cell */
+ str = PyUnicode_InternFromString("__class__");
+ if (str == NULL) {
+ compiler_exit_scope(c);
+ return 0;
+ }
+ i = compiler_lookup_arg(c->u->u_cellvars, str);
+ Py_DECREF(str);
+ assert(i == 0);
/* Return the cell where to store __class__ */
ADDOP_I(c, LOAD_CLOSURE, i);
}
+ else {
+ assert(PyDict_Size(c->u->u_cellvars) == 0);
+ /* This happens when nobody references the cell. Return None. */
+ ADDOP_O(c, LOAD_CONST, Py_None, consts);
+ }
ADDOP_IN_SCOPE(c, RETURN_VALUE);
/* create the code object */
co = assemble(c, 1);
@@ -1797,14 +1825,14 @@ compiler_lambda(struct compiler *c, expr_ty e)
return 0;
}
+ if (args->defaults)
+ VISIT_SEQ(c, expr, args->defaults);
if (args->kwonlyargs) {
int res = compiler_visit_kwonlydefaults(c, args->kwonlyargs,
args->kw_defaults);
if (res < 0) return 0;
kw_default_count = res;
}
- if (args->defaults)
- VISIT_SEQ(c, expr, args->defaults);
if (!compiler_enter_scope(c, name, COMPILER_SCOPE_FUNCTION,
(void *)e, e->lineno))
return 0;
@@ -2288,8 +2316,11 @@ compiler_import(struct compiler *c, stmt_ty s)
identifier tmp = alias->name;
Py_ssize_t dot = PyUnicode_FindChar(
alias->name, '.', 0, PyUnicode_GET_LENGTH(alias->name), 1);
- if (dot != -1)
+ if (dot != -1) {
tmp = PyUnicode_Substring(alias->name, 0, dot);
+ if (tmp == NULL)
+ return 0;
+ }
r = compiler_nameop(c, tmp, Store);
if (dot != -1) {
Py_DECREF(tmp);
@@ -2638,6 +2669,10 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx)
if (!mangled)
return 0;
+ assert(PyUnicode_CompareWithASCIIString(name, "None") &&
+ PyUnicode_CompareWithASCIIString(name, "True") &&
+ PyUnicode_CompareWithASCIIString(name, "False"));
+
op = 0;
optype = OP_NAME;
scope = PyST_GetScope(c->u->u_ste, mangled);
@@ -2673,7 +2708,9 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx)
switch (optype) {
case OP_DEREF:
switch (ctx) {
- case Load: op = LOAD_DEREF; break;
+ case Load:
+ op = (c->u->u_ste->ste_type == ClassBlock) ? LOAD_CLASSDEREF : LOAD_DEREF;
+ break;
case Store: op = STORE_DEREF; break;
case AugLoad:
case AugStore:
@@ -3197,12 +3234,18 @@ expr_constant(struct compiler *c, expr_ty e)
case Name_kind:
/* optimize away names that can't be reassigned */
id = PyUnicode_AsUTF8(e->v.Name.id);
- if (strcmp(id, "True") == 0) return 1;
- if (strcmp(id, "False") == 0) return 0;
- if (strcmp(id, "None") == 0) return 0;
- if (strcmp(id, "__debug__") == 0)
- return ! c->c_optimize;
- /* fall through */
+ if (id && strcmp(id, "__debug__") == 0)
+ return !c->c_optimize;
+ return -1;
+ case NameConstant_kind: {
+ PyObject *o = e->v.NameConstant.value;
+ if (o == Py_None)
+ return 0;
+ else if (o == Py_True)
+ return 1;
+ else if (o == Py_False)
+ return 0;
+ }
default:
return -1;
}
@@ -3378,6 +3421,9 @@ compiler_visit_expr(struct compiler *c, expr_ty e)
case Ellipsis_kind:
ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts);
break;
+ case NameConstant_kind:
+ ADDOP_O(c, LOAD_CONST, e->v.NameConstant.value, consts);
+ break;
/* The following exprs can be assignment targets. */
case Attribute_kind:
if (e->v.Attribute.ctx != AugStore)
@@ -4060,9 +4106,8 @@ compute_code_flags(struct compiler *c)
{
PySTEntryObject *ste = c->u->u_ste;
int flags = 0, n;
- if (ste->ste_type != ModuleBlock)
- flags |= CO_NEWLOCALS;
if (ste->ste_type == FunctionBlock) {
+ flags |= CO_NEWLOCALS;
if (!ste->ste_unoptimized)
flags |= CO_OPTIMIZED;
if (ste->ste_nested)
diff --git a/Python/condvar.h b/Python/condvar.h
index bbb40ba..e022dc7 100644
--- a/Python/condvar.h
+++ b/Python/condvar.h
@@ -241,7 +241,7 @@ _PyCOND_WAIT_MS(PyCOND_T *cv, PyMUTEX_T *cs, DWORD ms)
* but we are safe because we are using a semaphore wich has an internal
* count.
*/
- wait = WaitForSingleObject(cv->sem, ms);
+ wait = WaitForSingleObjectEx(cv->sem, ms, FALSE);
PyMUTEX_LOCK(cs);
if (wait != WAIT_OBJECT_0)
--cv->waiting;
diff --git a/Python/dynload_os2.c b/Python/dynload_os2.c
deleted file mode 100644
index 0e1b907..0000000
--- a/Python/dynload_os2.c
+++ /dev/null
@@ -1,42 +0,0 @@
-
-/* Support for dynamic loading of extension modules */
-
-#define INCL_DOSERRORS
-#define INCL_DOSMODULEMGR
-#include <os2.h>
-
-#include "Python.h"
-#include "importdl.h"
-
-
-const char *_PyImport_DynLoadFiletab[] = {".pyd", ".dll", NULL};
-
-dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname,
- const char *pathname, FILE *fp)
-{
- dl_funcptr p;
- APIRET rc;
- HMODULE hDLL;
- char failreason[256];
- char funcname[258];
-
- rc = DosLoadModule(failreason,
- sizeof(failreason),
- pathname,
- &hDLL);
-
- if (rc != NO_ERROR) {
- char errBuf[256];
- PyOS_snprintf(errBuf, sizeof(errBuf),
- "DLL load failed, rc = %d: %.200s",
- rc, failreason);
- PyErr_SetString(PyExc_ImportError, errBuf);
- return NULL;
- }
-
- PyOS_snprintf(funcname, sizeof(funcname), "PyInit_%.200s", shortname);
- rc = DosQueryProcAddr(hDLL, 0L, funcname, &p);
- if (rc != NO_ERROR)
- p = NULL; /* Signify Failure to Acquire Entrypoint */
- return p;
-}
diff --git a/Python/dynload_shlib.c b/Python/dynload_shlib.c
index 75544ed..888fbfc 100644
--- a/Python/dynload_shlib.c
+++ b/Python/dynload_shlib.c
@@ -18,10 +18,6 @@
#ifdef HAVE_DLFCN_H
#include <dlfcn.h>
-#else
-#if defined(PYOS_OS2) && defined(PYCC_GCC)
-#include "dlfcn.h"
-#endif
#endif
#if (defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ELF__)
@@ -40,10 +36,6 @@ const char *_PyImport_DynLoadFiletab[] = {
#ifdef __CYGWIN__
".dll",
#else /* !__CYGWIN__ */
-#if defined(PYOS_OS2) && defined(PYCC_GCC)
- ".pyd",
- ".dll",
-#else /* !(defined(PYOS_OS2) && defined(PYCC_GCC)) */
#ifdef __VMS
".exe",
".EXE",
@@ -52,7 +44,6 @@ const char *_PyImport_DynLoadFiletab[] = {
".abi" PYTHON_ABI_STRING ".so",
".so",
#endif /* __VMS */
-#endif /* defined(PYOS_OS2) && defined(PYCC_GCC) */
#endif /* __CYGWIN__ */
NULL,
};
@@ -114,9 +105,7 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname,
}
}
-#if !(defined(PYOS_OS2) && defined(PYCC_GCC))
dlopenflags = PyThreadState_GET()->interp->dlopenflags;
-#endif
#ifdef __VMS
/* VMS currently don't allow a pathname, use a logical name instead */
@@ -132,19 +121,30 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname,
handle = dlopen(pathname, dlopenflags);
if (handle == NULL) {
- PyObject *mod_name = NULL;
- PyObject *path = NULL;
- PyObject *error_ob = NULL;
+ PyObject *mod_name;
+ PyObject *path;
+ PyObject *error_ob;
const char *error = dlerror();
if (error == NULL)
error = "unknown dlopen() error";
error_ob = PyUnicode_FromString(error);
- path = PyUnicode_FromString(pathname);
+ if (error_ob == NULL)
+ return NULL;
mod_name = PyUnicode_FromString(shortname);
+ if (mod_name == NULL) {
+ Py_DECREF(error_ob);
+ return NULL;
+ }
+ path = PyUnicode_FromString(pathname);
+ if (path == NULL) {
+ Py_DECREF(error_ob);
+ Py_DECREF(mod_name);
+ return NULL;
+ }
PyErr_SetImportError(error_ob, mod_name, path);
- Py_XDECREF(error_ob);
- Py_XDECREF(path);
- Py_XDECREF(mod_name);
+ Py_DECREF(error_ob);
+ Py_DECREF(mod_name);
+ Py_DECREF(path);
return NULL;
}
if (fp != NULL && nhandles < 128)
diff --git a/Python/errors.c b/Python/errors.c
index 626b16e..8c0c018 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -71,6 +71,11 @@ PyErr_SetObject(PyObject *exception, PyObject *value)
if (value == NULL || !PyExceptionInstance_Check(value)) {
/* We must normalize the value right now */
PyObject *args, *fixed_value;
+#ifdef Py_DEBUG
+ /* in debug mode, PyEval_EvalFrameEx() fails with an assertion
+ error if an exception is set when it is called */
+ PyErr_Clear();
+#endif
if (value == NULL || value == Py_None)
args = PyTuple_New(0);
else if (PyTuple_Check(value)) {
@@ -227,12 +232,21 @@ PyErr_NormalizeException(PyObject **exc, PyObject **val, PyObject **tb)
value will be an instance.
*/
if (PyExceptionClass_Check(type)) {
+ int is_subclass;
+ if (inclass) {
+ is_subclass = PyObject_IsSubclass(inclass, type);
+ if (is_subclass < 0)
+ goto finally;
+ }
+ else
+ is_subclass = 0;
+
/* if the value was not an instance, or is not an instance
whose class is (or is derived from) type, then use the
value as an argument to instantiation of the type
class.
*/
- if (!inclass || !PyObject_IsSubclass(inclass, type)) {
+ if (!inclass || !is_subclass) {
PyObject *args, *res;
if (value == Py_None)
@@ -366,6 +380,12 @@ PyErr_BadArgument(void)
PyObject *
PyErr_NoMemory(void)
{
+ if (Py_TYPE(PyExc_MemoryError) == NULL) {
+ /* PyErr_NoMemory() has been called before PyExc_MemoryError has been
+ initialized by _PyExc_Init() */
+ Py_FatalError("Out of memory and PyExc_MemoryError is not "
+ "initialized yet");
+ }
PyErr_SetNone(PyExc_MemoryError);
return NULL;
}
@@ -588,7 +608,7 @@ PyObject *PyErr_SetExcFromWindowsErr(PyObject *exc, int ierr)
PyObject *PyErr_SetFromWindowsErr(int ierr)
{
- return PyErr_SetExcFromWindowsErrWithFilename(PyExc_WindowsError,
+ return PyErr_SetExcFromWindowsErrWithFilename(PyExc_OSError,
ierr, NULL);
}
PyObject *PyErr_SetFromWindowsErrWithFilename(
@@ -597,7 +617,7 @@ PyObject *PyErr_SetFromWindowsErrWithFilename(
{
PyObject *name = filename ? PyUnicode_DecodeFSDefault(filename) : NULL;
PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject(
- PyExc_WindowsError,
+ PyExc_OSError,
ierr, name);
Py_XDECREF(name);
return result;
@@ -611,7 +631,7 @@ PyObject *PyErr_SetFromWindowsErrWithUnicodeFilename(
PyUnicode_FromUnicode(filename, wcslen(filename)) :
NULL;
PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject(
- PyExc_WindowsError,
+ PyExc_OSError,
ierr, name);
Py_XDECREF(name);
return result;
@@ -646,8 +666,11 @@ PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)
Py_INCREF(msg);
PyTuple_SET_ITEM(args, 0, msg);
- PyDict_SetItemString(kwargs, "name", name);
- PyDict_SetItemString(kwargs, "path", path);
+
+ if (PyDict_SetItemString(kwargs, "name", name) < 0)
+ return NULL;
+ if (PyDict_SetItemString(kwargs, "path", path) < 0)
+ return NULL;
error = PyObject_Call(PyExc_ImportError, args, kwargs);
if (error != NULL) {
@@ -675,6 +698,7 @@ _PyErr_BadInternalCall(const char *filename, int lineno)
void
PyErr_BadInternalCall(void)
{
+ assert(0 && "bad argument to internal function");
PyErr_Format(PyExc_SystemError,
"bad argument to internal function");
}
@@ -694,6 +718,12 @@ PyErr_Format(PyObject *exception, const char *format, ...)
va_start(vargs);
#endif
+#ifdef Py_DEBUG
+ /* in debug mode, PyEval_EvalFrameEx() fails with an assertion error
+ if an exception is set when it is called */
+ PyErr_Clear();
+#endif
+
string = PyUnicode_FromFormatV(format, vargs);
PyErr_SetObject(exception, string);
Py_XDECREF(string);
@@ -798,7 +828,12 @@ PyErr_WriteUnraisable(PyObject *obj)
PyErr_Fetch(&t, &v, &tb);
f = PySys_GetObject("stderr");
if (f != NULL && f != Py_None) {
- PyFile_WriteString("Exception ", f);
+ if (obj) {
+ PyFile_WriteString("Exception ignored in: ", f);
+ PyFile_WriteObject(obj, f, 0);
+ PyFile_WriteString("\n", f);
+ }
+ PyTraceBack_Print(tb, f);
if (t) {
PyObject* moduleName;
char* className;
@@ -828,15 +863,11 @@ PyErr_WriteUnraisable(PyObject *obj)
PyFile_WriteString(className, f);
if (v && v != Py_None) {
PyFile_WriteString(": ", f);
- PyFile_WriteObject(v, f, 0);
+ PyFile_WriteObject(v, f, Py_PRINT_RAW);
}
+ PyFile_WriteString("\n", f);
Py_XDECREF(moduleName);
}
- if (obj) {
- PyFile_WriteString(" in ", f);
- PyFile_WriteObject(obj, f, 0);
- }
- PyFile_WriteString(" ignored\n", f);
PyErr_Clear(); /* Just in case */
}
Py_XDECREF(t);
diff --git a/Python/fileutils.c b/Python/fileutils.c
index b7c42e8..6983855 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -16,13 +16,13 @@ extern wchar_t* _Py_DecodeUTF8_surrogateescape(const char *s, Py_ssize_t size);
PyObject *
_Py_device_encoding(int fd)
{
-#if defined(MS_WINDOWS) || defined(MS_WIN64)
+#if defined(MS_WINDOWS)
UINT cp;
#endif
if (!_PyVerify_fd(fd) || !isatty(fd)) {
Py_RETURN_NONE;
}
-#if defined(MS_WINDOWS) || defined(MS_WIN64)
+#if defined(MS_WINDOWS)
if (fd == 0)
cp = GetConsoleCP();
else if (fd == 1 || fd == 2)
@@ -60,7 +60,7 @@ extern int _Py_normalize_encoding(const char *, char *, size_t);
workaround is also enabled on error, for example if getting the locale
failed.
- Values of locale_is_ascii:
+ Values of force_ascii:
1: the workaround is used: _Py_wchar2char() uses
encode_ascii_surrogateescape() and _Py_char2wchar() uses
@@ -201,7 +201,7 @@ decode_ascii_surrogateescape(const char *arg, size_t *size)
unsigned char *in;
wchar_t *out;
- res = PyMem_Malloc((strlen(arg)+1)*sizeof(wchar_t));
+ res = PyMem_RawMalloc((strlen(arg)+1)*sizeof(wchar_t));
if (!res)
return NULL;
@@ -229,7 +229,7 @@ decode_ascii_surrogateescape(const char *arg, size_t *size)
Use _Py_wchar2char() to encode the character string back to a byte string.
Return a pointer to a newly allocated wide character string (use
- PyMem_Free() to free the memory) and write the number of written wide
+ PyMem_RawFree() to free the memory) and write the number of written wide
characters excluding the null character into *size if size is not NULL, or
NULL on error (decoding or memory allocation error). If size is not NULL,
*size is set to (size_t)-1 on memory error and (size_t)-2 on decoding
@@ -254,9 +254,9 @@ _Py_char2wchar(const char* arg, size_t *size)
wchar_t *res;
size_t argsize;
size_t count;
+#ifdef HAVE_MBRTOWC
unsigned char *in;
wchar_t *out;
-#ifdef HAVE_MBRTOWC
mbstate_t mbs;
#endif
@@ -283,7 +283,7 @@ _Py_char2wchar(const char* arg, size_t *size)
argsize = mbstowcs(NULL, arg, 0);
#endif
if (argsize != (size_t)-1) {
- res = (wchar_t *)PyMem_Malloc((argsize+1)*sizeof(wchar_t));
+ res = (wchar_t *)PyMem_RawMalloc((argsize+1)*sizeof(wchar_t));
if (!res)
goto oom;
count = mbstowcs(res, arg, argsize+1);
@@ -292,7 +292,7 @@ _Py_char2wchar(const char* arg, size_t *size)
/* Only use the result if it contains no
surrogate characters. */
for (tmp = res; *tmp != 0 &&
- (*tmp < 0xd800 || *tmp > 0xdfff); tmp++)
+ !Py_UNICODE_IS_SURROGATE(*tmp); tmp++)
;
if (*tmp == 0) {
if (size != NULL)
@@ -300,7 +300,7 @@ _Py_char2wchar(const char* arg, size_t *size)
return res;
}
}
- PyMem_Free(res);
+ PyMem_RawFree(res);
}
/* Conversion failed. Fall back to escaping with surrogateescape. */
#ifdef HAVE_MBRTOWC
@@ -309,7 +309,7 @@ _Py_char2wchar(const char* arg, size_t *size)
/* Overallocate; as multi-byte characters are in the argument, the
actual output could use less memory. */
argsize = strlen(arg) + 1;
- res = (wchar_t*)PyMem_Malloc(argsize*sizeof(wchar_t));
+ res = (wchar_t*)PyMem_RawMalloc(argsize*sizeof(wchar_t));
if (!res)
goto oom;
in = (unsigned char*)arg;
@@ -325,7 +325,7 @@ _Py_char2wchar(const char* arg, size_t *size)
since we provide everything that we have -
unless there is a bug in the C library, or I
misunderstood how mbrtowc works. */
- PyMem_Free(res);
+ PyMem_RawFree(res);
if (size != NULL)
*size = (size_t)-2;
return NULL;
@@ -338,7 +338,7 @@ _Py_char2wchar(const char* arg, size_t *size)
memset(&mbs, 0, sizeof mbs);
continue;
}
- if (*out >= 0xd800 && *out <= 0xdfff) {
+ if (Py_UNICODE_IS_SURROGATE(*out)) {
/* Surrogate character. Escape the original
byte sequence with surrogateescape. */
argsize -= converted;
@@ -648,12 +648,12 @@ _Py_wreadlink(const wchar_t *path, wchar_t *buf, size_t bufsiz)
return -1;
}
if (bufsiz <= r1) {
- PyMem_Free(wbuf);
+ PyMem_RawFree(wbuf);
errno = EINVAL;
return -1;
}
wcsncpy(buf, wbuf, bufsiz);
- PyMem_Free(wbuf);
+ PyMem_RawFree(wbuf);
return (int)r1;
}
#endif
@@ -689,12 +689,12 @@ _Py_wrealpath(const wchar_t *path,
return NULL;
}
if (resolved_path_size <= r) {
- PyMem_Free(wresolved_path);
+ PyMem_RawFree(wresolved_path);
errno = EINVAL;
return NULL;
}
wcsncpy(resolved_path, wresolved_path, resolved_path_size);
- PyMem_Free(wresolved_path);
+ PyMem_RawFree(wresolved_path);
return resolved_path;
}
#endif
@@ -707,7 +707,8 @@ wchar_t*
_Py_wgetcwd(wchar_t *buf, size_t size)
{
#ifdef MS_WINDOWS
- return _wgetcwd(buf, size);
+ int isize = (int)Py_MIN(size, INT_MAX);
+ return _wgetcwd(buf, isize);
#else
char fname[PATH_MAX];
wchar_t *wname;
@@ -719,11 +720,11 @@ _Py_wgetcwd(wchar_t *buf, size_t size)
if (wname == NULL)
return NULL;
if (size <= len) {
- PyMem_Free(wname);
+ PyMem_RawFree(wname);
return NULL;
}
wcsncpy(buf, wname, size);
- PyMem_Free(wname);
+ PyMem_RawFree(wname);
return buf;
#endif
}
diff --git a/Python/formatter_unicode.c b/Python/formatter_unicode.c
index 2fe446a..9b5aff5 100644
--- a/Python/formatter_unicode.c
+++ b/Python/formatter_unicode.c
@@ -315,7 +315,7 @@ calc_padding(Py_ssize_t nchars, Py_ssize_t width, Py_UCS4 align,
/* Do the padding, and return a pointer to where the caller-supplied
content goes. */
-static Py_ssize_t
+static int
fill_padding(_PyUnicodeWriter *writer,
Py_ssize_t nchars,
Py_UCS4 fill_char, Py_ssize_t n_lpadding,
@@ -556,7 +556,7 @@ fill_number(_PyUnicodeWriter *writer, const NumberFieldWidths *spec,
{
/* Used to keep track of digits, decimal, and remainder. */
Py_ssize_t d_pos = d_start;
- const enum PyUnicode_Kind kind = writer->kind;
+ const unsigned int kind = writer->kind;
const void *data = writer->data;
Py_ssize_t r;
@@ -757,7 +757,8 @@ format_string_internal(PyObject *value, const InternalFormatSpec *format,
goto done;
}
- if (format->width == -1 && format->precision == -1) {
+ if ((format->width == -1 || format->width <= len)
+ && (format->precision == -1 || format->precision >= len)) {
/* Fast path */
return _PyUnicodeWriter_WriteStr(writer, value);
}
@@ -770,9 +771,13 @@ format_string_internal(PyObject *value, const InternalFormatSpec *format,
calc_padding(len, format->width, format->align, &lpad, &rpad, &total);
- maxchar = _PyUnicode_FindMaxChar(value, 0, len);
+ maxchar = writer->maxchar;
if (lpad != 0 || rpad != 0)
maxchar = Py_MAX(maxchar, format->fill_char);
+ if (PyUnicode_MAX_CHAR_VALUE(value) > maxchar) {
+ Py_UCS4 valmaxchar = _PyUnicode_FindMaxChar(value, 0, len);
+ maxchar = Py_MAX(maxchar, valmaxchar);
+ }
/* allocate the resulting string */
if (_PyUnicodeWriter_Prepare(writer, total, maxchar) == -1)
@@ -977,8 +982,7 @@ format_float_internal(PyObject *value,
Py_ssize_t n_total;
int has_decimal;
double val;
- Py_ssize_t precision;
- Py_ssize_t default_precision = 6;
+ int precision, default_precision = 6;
Py_UCS4 type = format->type;
int add_pct = 0;
Py_ssize_t index;
@@ -1133,8 +1137,7 @@ format_complex_internal(PyObject *value,
Py_ssize_t n_im_total;
int re_has_decimal;
int im_has_decimal;
- int precision;
- Py_ssize_t default_precision = 6;
+ int precision, default_precision = 6;
Py_UCS4 type = format->type;
Py_ssize_t i_re;
Py_ssize_t i_im;
diff --git a/Python/frozen.c b/Python/frozen.c
index 25fdc17..9bc662b 100644
--- a/Python/frozen.c
+++ b/Python/frozen.c
@@ -28,7 +28,7 @@ static unsigned char M___hello__[] = {
#define SIZE (int)sizeof(M___hello__)
-static struct _frozen _PyImport_FrozenModules[] = {
+static const struct _frozen _PyImport_FrozenModules[] = {
/* importlib */
{"_frozen_importlib", _Py_M__importlib, (int)sizeof(_Py_M__importlib)},
/* Test module */
@@ -42,4 +42,4 @@ static struct _frozen _PyImport_FrozenModules[] = {
/* Embedding apps may change this pointer to point to their favorite
collection of frozen modules: */
-struct _frozen *PyImport_FrozenModules = _PyImport_FrozenModules;
+const struct _frozen *PyImport_FrozenModules = _PyImport_FrozenModules;
diff --git a/Python/future.c b/Python/future.c
index d24ae41..8097814 100644
--- a/Python/future.c
+++ b/Python/future.c
@@ -58,11 +58,15 @@ future_check_features(PyFutureFeatures *ff, stmt_ty s, const char *filename)
static int
future_parse(PyFutureFeatures *ff, mod_ty mod, const char *filename)
{
- int i, found_docstring = 0, done = 0, prev_line = 0;
+ int i, done = 0, prev_line = 0;
+ stmt_ty first;
if (!(mod->kind == Module_kind || mod->kind == Interactive_kind))
return 1;
+ if (asdl_seq_LEN(mod->v.Module.body) == 0)
+ return 1;
+
/* A subsequent pass will detect future imports that don't
appear at the beginning of the file. There's one case,
however, that is easier to handle here: A series of imports
@@ -71,8 +75,13 @@ future_parse(PyFutureFeatures *ff, mod_ty mod, const char *filename)
but is preceded by a regular import.
*/
+ i = 0;
+ first = (stmt_ty)asdl_seq_GET(mod->v.Module.body, i);
+ if (first->kind == Expr_kind && first->v.Expr.value->kind == Str_kind)
+ i++;
- for (i = 0; i < asdl_seq_LEN(mod->v.Module.body); i++) {
+
+ for (; i < asdl_seq_LEN(mod->v.Module.body); i++) {
stmt_ty s = (stmt_ty)asdl_seq_GET(mod->v.Module.body, i);
if (done && s->lineno > prev_line)
@@ -99,18 +108,13 @@ future_parse(PyFutureFeatures *ff, mod_ty mod, const char *filename)
return 0;
ff->ff_lineno = s->lineno;
}
- else
+ else {
done = 1;
+ }
}
- else if (s->kind == Expr_kind && !found_docstring) {
- expr_ty e = s->v.Expr.value;
- if (e->kind != Str_kind)
- done = 1;
- else
- found_docstring = 1;
- }
- else
+ else {
done = 1;
+ }
}
return 1;
}
diff --git a/Python/getargs.c b/Python/getargs.c
index ae931b9..2c2628f 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -46,14 +46,16 @@ typedef struct {
} freelistentry_t;
typedef struct {
- int first_available;
freelistentry_t *entries;
+ int first_available;
+ int entries_malloced;
} freelist_t;
+#define STATIC_FREELIST_ENTRIES 8
/* Forward */
static int vgetargs1(PyObject *, const char *, va_list *, int);
-static void seterror(int, const char *, int *, const char *, const char *);
+static void seterror(Py_ssize_t, const char *, int *, const char *, const char *);
static char *convertitem(PyObject *, const char **, va_list *, int, int *,
char *, size_t, freelist_t *);
static char *converttuple(PyObject *, const char **, va_list *, int,
@@ -187,7 +189,8 @@ cleanreturn(int retval, freelist_t *freelist)
freelist->entries[index].item);
}
}
- PyMem_FREE(freelist->entries);
+ if (freelist->entries_malloced)
+ PyMem_FREE(freelist->entries);
return retval;
}
@@ -197,6 +200,8 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
{
char msgbuf[256];
int levels[32];
+ freelistentry_t static_entries[STATIC_FREELIST_ENTRIES];
+ freelist_t freelist = {static_entries, 0, 0};
const char *fname = NULL;
const char *message = NULL;
int min = -1;
@@ -206,7 +211,6 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
const char *formatsave = format;
Py_ssize_t i, len;
char *msg;
- freelist_t freelist = {0, NULL};
int compat = flags & FLAG_COMPAT;
assert(compat || (args != (PyObject*)NULL));
@@ -240,15 +244,15 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
message = format;
endfmt = 1;
break;
+ case '|':
+ if (level == 0)
+ min = max;
+ break;
default:
if (level == 0) {
- if (c == 'O')
- max++;
- else if (Py_ISALPHA(Py_CHARMASK(c))) {
+ if (Py_ISALPHA(Py_CHARMASK(c)))
if (c != 'e') /* skip encoded */
max++;
- } else if (c == '|')
- min = max;
}
break;
}
@@ -262,10 +266,13 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
format = formatsave;
- freelist.entries = PyMem_NEW(freelistentry_t, max);
- if (freelist.entries == NULL) {
- PyErr_NoMemory();
- return 0;
+ if (max > STATIC_FREELIST_ENTRIES) {
+ freelist.entries = PyMem_NEW(freelistentry_t, max);
+ if (freelist.entries == NULL) {
+ PyErr_NoMemory();
+ return 0;
+ }
+ freelist.entries_malloced = 1;
}
if (compat) {
@@ -350,7 +357,7 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
static void
-seterror(int iarg, const char *msg, int *levels, const char *fname,
+seterror(Py_ssize_t iarg, const char *msg, int *levels, const char *fname,
const char *message)
{
char buf[512];
@@ -366,7 +373,7 @@ seterror(int iarg, const char *msg, int *levels, const char *fname,
}
if (iarg != 0) {
PyOS_snprintf(p, sizeof(buf) - (p - buf),
- "argument %d", iarg);
+ "argument %" PY_FORMAT_SIZE_T "d", iarg);
i = 0;
p += strlen(p);
while (levels[i] > 0 && i < 32 && (int)(p-buf) < 220) {
@@ -563,7 +570,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
"size does not fit in an int"); \
return converterr("", arg, msgbuf, bufsize); \
} \
- *q=s; \
+ *q = (int)s; \
}
#define BUFFER_LEN ((flags & FLAG_SIZE_T) ? *q2:*q)
#define RETURN_ERR_OCCURRED return msgbuf
@@ -1421,7 +1428,8 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
int max = INT_MAX;
int i, len, nargs, nkeywords;
PyObject *current_arg;
- freelist_t freelist = {0, NULL};
+ freelistentry_t static_entries[STATIC_FREELIST_ENTRIES];
+ freelist_t freelist = {static_entries, 0, 0};
assert(args != NULL && PyTuple_Check(args));
assert(keywords == NULL || PyDict_Check(keywords));
@@ -1445,10 +1453,13 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
for (len=0; kwlist[len]; len++)
continue;
- freelist.entries = PyMem_NEW(freelistentry_t, len);
- if (freelist.entries == NULL) {
- PyErr_NoMemory();
- return 0;
+ if (len > STATIC_FREELIST_ENTRIES) {
+ freelist.entries = PyMem_NEW(freelistentry_t, len);
+ if (freelist.entries == NULL) {
+ PyErr_NoMemory();
+ return 0;
+ }
+ freelist.entries_malloced = 1;
}
nargs = PyTuple_GET_SIZE(args);
@@ -1574,20 +1585,16 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
Py_ssize_t pos = 0;
while (PyDict_Next(keywords, &pos, &key, &value)) {
int match = 0;
- char *ks;
if (!PyUnicode_Check(key)) {
PyErr_SetString(PyExc_TypeError,
"keywords must be strings");
return cleanreturn(0, &freelist);
}
/* check that _PyUnicode_AsString() result is not NULL */
- ks = _PyUnicode_AsString(key);
- if (ks != NULL) {
- for (i = 0; i < len; i++) {
- if (!strcmp(ks, kwlist[i])) {
- match = 1;
- break;
- }
+ for (i = 0; i < len; i++) {
+ if (!PyUnicode_CompareWithASCIIString(key, kwlist[i])) {
+ match = 1;
+ break;
}
}
if (!match) {
diff --git a/Python/import.c b/Python/import.c
index e91cef8..c6222ec 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -19,14 +19,6 @@
extern "C" {
#endif
-#ifdef MS_WINDOWS
-/* for stat.st_mode */
-typedef unsigned short mode_t;
-/* for _mkdir */
-#include <direct.h>
-#endif
-
-
#define CACHEDIR "__pycache__"
/* See _PyImport_FixupExtensionObject() below */
@@ -93,8 +85,10 @@ _PyImportZip_Init(void)
int err = 0;
path_hooks = PySys_GetObject("path_hooks");
- if (path_hooks == NULL)
+ if (path_hooks == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "unable to get sys.path_hooks");
goto error;
+ }
if (Py_VerboseFlag)
PySys_WriteStderr("# installing zipimport hook\n");
@@ -204,8 +198,11 @@ _PyImport_ReInitLock(void)
if (import_lock_level > 1) {
/* Forked as a side effect of import */
long me = PyThread_get_thread_ident();
- PyThread_acquire_lock(import_lock, 0);
- /* XXX: can the previous line fail? */
+ /* The following could fail if the lock is already held, but forking as
+ a side-effect of an import is a) rare, b) nuts, and c) difficult to
+ do thanks to the lock only being held when doing individual module
+ locks per import. */
+ PyThread_acquire_lock(import_lock, NOWAIT_LOCK);
import_lock_thread = me;
import_lock_level--;
} else {
@@ -292,6 +289,30 @@ static char* sys_files[] = {
NULL
};
+static int
+is_essential_module(PyObject *name)
+{
+ Py_ssize_t name_len;
+ char *name_str = PyUnicode_AsUTF8AndSize(name, &name_len);
+
+ if (name_str == NULL) {
+ PyErr_Clear();
+ return 0;
+ }
+ if (strcmp(name_str, "builtins") == 0)
+ return 1;
+ if (strcmp(name_str, "sys") == 0)
+ return 1;
+ /* These are all needed for stderr to still function */
+ if (strcmp(name_str, "codecs") == 0)
+ return 1;
+ if (strcmp(name_str, "_codecs") == 0)
+ return 1;
+ if (strncmp(name_str, "encodings.", 10) == 0)
+ return 1;
+ return 0;
+}
+
/* Un-initialize things, as good as we can */
@@ -371,9 +392,7 @@ PyImport_Cleanup(void)
if (value->ob_refcnt != 1)
continue;
if (PyUnicode_Check(key) && PyModule_Check(value)) {
- if (PyUnicode_CompareWithASCIIString(key, "builtins") == 0)
- continue;
- if (PyUnicode_CompareWithASCIIString(key, "sys") == 0)
+ if (is_essential_module(key))
continue;
if (Py_VerboseFlag)
PySys_FormatStderr(
@@ -389,9 +408,7 @@ PyImport_Cleanup(void)
pos = 0;
while (PyDict_Next(modules, &pos, &key, &value)) {
if (PyUnicode_Check(key) && PyModule_Check(value)) {
- if (PyUnicode_CompareWithASCIIString(key, "builtins") == 0)
- continue;
- if (PyUnicode_CompareWithASCIIString(key, "sys") == 0)
+ if (is_essential_module(key))
continue;
if (Py_VerboseFlag)
PySys_FormatStderr("# cleanup[2] %U\n", key);
@@ -400,24 +417,28 @@ PyImport_Cleanup(void)
}
}
- /* Next, delete sys and builtins (in that order) */
- value = PyDict_GetItemString(modules, "sys");
- if (value != NULL && PyModule_Check(value)) {
- if (Py_VerboseFlag)
- PySys_WriteStderr("# cleanup sys\n");
- _PyModule_Clear(value);
- PyDict_SetItemString(modules, "sys", Py_None);
- }
- value = PyDict_GetItemString(modules, "builtins");
- if (value != NULL && PyModule_Check(value)) {
- if (Py_VerboseFlag)
- PySys_WriteStderr("# cleanup builtins\n");
- _PyModule_Clear(value);
- PyDict_SetItemString(modules, "builtins", Py_None);
+ /* Collect garbage remaining after deleting the modules. Mostly
+ reference cycles created by classes. */
+ PyGC_Collect();
+
+ /* Dump GC stats before it's too late, since it uses the warnings
+ machinery. */
+ _PyGC_DumpShutdownStats();
+
+ /* Next, delete all remaining modules */
+ pos = 0;
+ while (PyDict_Next(modules, &pos, &key, &value)) {
+ if (PyUnicode_Check(key) && PyModule_Check(value)) {
+ if (Py_VerboseFlag)
+ PySys_FormatStderr("# cleanup[3] %U\n", key);
+ _PyModule_Clear(value);
+ PyDict_SetItem(modules, key, Py_None);
+ }
}
/* Finally, clear and delete the modules directory */
PyDict_Clear(modules);
+ _PyGC_CollectNoFail();
interp->modules = NULL;
Py_DECREF(modules);
}
@@ -451,12 +472,12 @@ PyImport_GetMagicTag(void)
/* Magic for extension modules (built-in as well as dynamically
loaded). To prevent initializing an extension module more than
- once, we keep a static dictionary 'extensions' keyed by module name
- (for built-in modules) or by filename (for dynamically loaded
- modules), containing these modules. A copy of the module's
- dictionary is stored by calling _PyImport_FixupExtensionObject()
- immediately after the module initialization function succeeds. A
- copy can be retrieved from there by calling
+ once, we keep a static dictionary 'extensions' keyed by the tuple
+ (module name, module name) (for built-in modules) or by
+ (filename, module name) (for dynamically loaded modules), containing these
+ modules. A copy of the module's dictionary is stored by calling
+ _PyImport_FixupExtensionObject() immediately after the module initialization
+ function succeeds. A copy can be retrieved from there by calling
_PyImport_FindExtensionObject().
Modules which do support multiple initialization set their m_size
@@ -469,8 +490,9 @@ int
_PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
PyObject *filename)
{
- PyObject *modules, *dict;
+ PyObject *modules, *dict, *key;
struct PyModuleDef *def;
+ int res;
if (extensions == NULL) {
extensions = PyDict_New();
if (extensions == NULL)
@@ -507,7 +529,13 @@ _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
if (def->m_base.m_copy == NULL)
return -1;
}
- PyDict_SetItem(extensions, filename, (PyObject*)def);
+ key = PyTuple_Pack(2, filename, name);
+ if (key == NULL)
+ return -1;
+ res = PyDict_SetItem(extensions, key, (PyObject *)def);
+ Py_DECREF(key);
+ if (res < 0)
+ return -1;
return 0;
}
@@ -527,11 +555,15 @@ _PyImport_FixupBuiltin(PyObject *mod, char *name)
PyObject *
_PyImport_FindExtensionObject(PyObject *name, PyObject *filename)
{
- PyObject *mod, *mdict;
+ PyObject *mod, *mdict, *key;
PyModuleDef* def;
if (extensions == NULL)
return NULL;
- def = (PyModuleDef*)PyDict_GetItem(extensions, filename);
+ key = PyTuple_Pack(2, filename, name);
+ if (key == NULL)
+ return NULL;
+ def = (PyModuleDef *)PyDict_GetItem(extensions, key);
+ Py_DECREF(key);
if (def == NULL)
return NULL;
if (def->m_size == -1) {
@@ -693,7 +725,7 @@ PyImport_ExecCodeModuleWithPathnames(char *name, PyObject *co, char *pathname,
"no interpreter!");
}
- pathobj = _PyObject_CallMethodObjIdArgs(interp->importlib,
+ pathobj = _PyObject_CallMethodIdObjArgs(interp->importlib,
&PyId__get_sourcefile, cpathobj,
NULL);
if (pathobj == NULL)
@@ -835,7 +867,7 @@ imp_fix_co_filename(PyObject *self, PyObject *args)
/* Forward */
-static struct _frozen * find_frozen(PyObject *);
+static const struct _frozen * find_frozen(PyObject *);
/* Helper to test for built-in module */
@@ -917,11 +949,11 @@ PyAPI_FUNC(PyObject *)
PyImport_GetImporter(PyObject *path) {
PyObject *importer=NULL, *path_importer_cache=NULL, *path_hooks=NULL;
- if ((path_importer_cache = PySys_GetObject("path_importer_cache"))) {
- if ((path_hooks = PySys_GetObject("path_hooks"))) {
- importer = get_path_importer(path_importer_cache,
- path_hooks, path);
- }
+ path_importer_cache = PySys_GetObject("path_importer_cache");
+ path_hooks = PySys_GetObject("path_hooks");
+ if (path_importer_cache != NULL && path_hooks != NULL) {
+ importer = get_path_importer(path_importer_cache,
+ path_hooks, path);
}
Py_XINCREF(importer); /* get_path_importer returns a borrowed reference */
return importer;
@@ -972,10 +1004,10 @@ init_builtin(PyObject *name)
/* Frozen modules */
-static struct _frozen *
+static const struct _frozen *
find_frozen(PyObject *name)
{
- struct _frozen *p;
+ const struct _frozen *p;
if (name == NULL)
return NULL;
@@ -992,7 +1024,7 @@ find_frozen(PyObject *name)
static PyObject *
get_frozen_object(PyObject *name)
{
- struct _frozen *p = find_frozen(name);
+ const struct _frozen *p = find_frozen(name);
int size;
if (p == NULL) {
@@ -1016,7 +1048,7 @@ get_frozen_object(PyObject *name)
static PyObject *
is_frozen_package(PyObject *name)
{
- struct _frozen *p = find_frozen(name);
+ const struct _frozen *p = find_frozen(name);
int size;
if (p == NULL) {
@@ -1043,7 +1075,7 @@ is_frozen_package(PyObject *name)
int
PyImport_ImportFrozenModuleObject(PyObject *name)
{
- struct _frozen *p;
+ const struct _frozen *p;
PyObject *co, *m, *path;
int ispackage;
int size;
@@ -1072,19 +1104,17 @@ PyImport_ImportFrozenModuleObject(PyObject *name)
goto err_return;
}
if (ispackage) {
- /* Set __path__ to the package name */
+ /* Set __path__ to the empty list */
PyObject *d, *l;
int err;
m = PyImport_AddModuleObject(name);
if (m == NULL)
goto err_return;
d = PyModule_GetDict(m);
- l = PyList_New(1);
+ l = PyList_New(0);
if (l == NULL) {
goto err_return;
}
- Py_INCREF(name);
- PyList_SET_ITEM(l, 0, name);
err = PyDict_SetItemString(d, "__path__", l);
Py_DECREF(l);
if (err != 0)
@@ -1430,7 +1460,7 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals,
}
if (initializing > 0) {
/* _bootstrap._lock_unlock_module() releases the import lock */
- value = _PyObject_CallMethodObjIdArgs(interp->importlib,
+ value = _PyObject_CallMethodIdObjArgs(interp->importlib,
&PyId__lock_unlock_module, abs_name,
NULL);
if (value == NULL)
@@ -1448,7 +1478,7 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals,
}
else {
/* _bootstrap._find_and_load() releases the import lock */
- mod = _PyObject_CallMethodObjIdArgs(interp->importlib,
+ mod = _PyObject_CallMethodIdObjArgs(interp->importlib,
&PyId__find_and_load, abs_name,
builtins_import, NULL);
if (mod == NULL) {
@@ -1517,7 +1547,7 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals,
}
}
else {
- final_mod = _PyObject_CallMethodObjIdArgs(interp->importlib,
+ final_mod = _PyObject_CallMethodIdObjArgs(interp->importlib,
&PyId__handle_fromlist, mod,
fromlist, builtins_import,
NULL);
@@ -1771,7 +1801,7 @@ static PyObject *
imp_is_frozen(PyObject *self, PyObject *args)
{
PyObject *name;
- struct _frozen *p;
+ const struct _frozen *p;
if (!PyArg_ParseTuple(args, "U:is_frozen", &name))
return NULL;
p = find_frozen(name);
diff --git a/Python/importdl.c b/Python/importdl.c
index 0ea954c..b60f1c7 100644
--- a/Python/importdl.c
+++ b/Python/importdl.c
@@ -77,6 +77,8 @@ _PyImport_LoadDynamicModule(PyObject *name, PyObject *path, FILE *fp)
PyObject *msg = PyUnicode_FromFormat("dynamic module does not define "
"init function (PyInit_%s)",
shortname);
+ if (msg == NULL)
+ goto error;
PyErr_SetImportError(msg, name, path);
Py_DECREF(msg);
goto error;
diff --git a/Python/importdl.h b/Python/importdl.h
index 6b9cf75..6a51a91 100644
--- a/Python/importdl.h
+++ b/Python/importdl.h
@@ -18,13 +18,8 @@ extern PyObject *_PyImport_LoadDynamicModule(PyObject *name, PyObject *pathname,
#include <windows.h>
typedef FARPROC dl_funcptr;
#else
-#if defined(PYOS_OS2) && !defined(PYCC_GCC)
-#include <os2def.h>
-typedef int (* APIENTRY dl_funcptr)();
-#else
typedef void (*dl_funcptr)(void);
#endif
-#endif
#ifdef __cplusplus
diff --git a/Python/importlib.h b/Python/importlib.h
index 8f8c6c6..51aae7e 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -1,8 +1,8 @@
/* Auto-generated by Modules/_freeze_importlib.c */
-unsigned char _Py_M__importlib[] = {
+const unsigned char _Py_M__importlib[] = {
99,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
- 0,64,0,0,0,115,206,3,0,0,100,0,0,90,0,0,
- 100,131,0,90,1,0,100,4,0,100,5,0,132,0,0,90,
+ 0,64,0,0,0,115,72,4,0,0,100,0,0,90,0,0,
+ 100,145,0,90,1,0,100,4,0,100,5,0,132,0,0,90,
2,0,100,6,0,100,7,0,132,0,0,90,3,0,100,8,
0,100,9,0,132,0,0,90,4,0,100,10,0,100,11,0,
132,0,0,90,5,0,100,12,0,100,13,0,132,0,0,90,
@@ -11,416 +11,350 @@ unsigned char _Py_M__importlib[] = {
132,0,0,90,9,0,100,20,0,100,21,0,100,22,0,132,
1,0,90,10,0,100,23,0,100,24,0,132,0,0,90,11,
0,101,12,0,101,11,0,106,13,0,131,1,0,90,14,0,
- 100,25,0,100,26,0,132,0,0,90,15,0,105,0,0,90,
- 16,0,105,0,0,90,17,0,71,100,27,0,100,28,0,132,
- 0,0,100,28,0,101,18,0,131,3,0,90,19,0,71,100,
- 29,0,100,30,0,132,0,0,100,30,0,131,2,0,90,20,
- 0,71,100,31,0,100,32,0,132,0,0,100,32,0,131,2,
+ 105,0,0,90,15,0,105,0,0,90,16,0,71,100,25,0,
+ 100,26,0,132,0,0,100,26,0,101,17,0,131,3,0,90,
+ 18,0,71,100,27,0,100,28,0,132,0,0,100,28,0,131,
+ 2,0,90,19,0,71,100,29,0,100,30,0,132,0,0,100,
+ 30,0,131,2,0,90,20,0,100,31,0,100,32,0,132,0,
0,90,21,0,100,33,0,100,34,0,132,0,0,90,22,0,
- 100,35,0,100,36,0,132,0,0,90,23,0,100,37,0,100,
- 38,0,132,0,0,90,24,0,100,39,0,101,25,0,100,40,
- 0,131,1,0,100,41,0,62,66,101,25,0,100,42,0,131,
- 1,0,100,43,0,62,66,90,26,0,101,27,0,100,44,0,
- 100,45,0,132,0,0,101,28,0,100,46,0,100,47,0,100,
- 48,0,131,3,0,68,131,1,0,131,1,0,90,29,0,100,
- 49,0,90,30,0,100,50,0,103,1,0,90,31,0,100,51,
- 0,103,1,0,90,32,0,100,52,0,103,1,0,90,33,0,
- 100,130,0,100,53,0,100,54,0,132,1,0,90,35,0,100,
- 55,0,100,56,0,132,0,0,90,36,0,100,57,0,100,58,
- 0,132,0,0,90,37,0,100,59,0,100,60,0,100,61,0,
- 100,62,0,132,0,1,90,38,0,100,63,0,100,64,0,132,
- 0,0,90,39,0,100,65,0,100,66,0,132,0,0,90,40,
- 0,100,67,0,100,68,0,132,0,0,90,41,0,100,69,0,
- 100,70,0,132,0,0,90,42,0,100,71,0,100,72,0,132,
- 0,0,90,43,0,100,73,0,100,74,0,132,0,0,90,44,
- 0,100,75,0,100,76,0,132,0,0,90,45,0,71,100,77,
- 0,100,78,0,132,0,0,100,78,0,131,2,0,90,46,0,
- 71,100,79,0,100,80,0,132,0,0,100,80,0,131,2,0,
- 90,47,0,71,100,81,0,100,82,0,132,0,0,100,82,0,
- 131,2,0,90,48,0,71,100,83,0,100,84,0,132,0,0,
- 100,84,0,131,2,0,90,49,0,71,100,85,0,100,86,0,
- 132,0,0,100,86,0,101,49,0,131,3,0,90,50,0,71,
- 100,87,0,100,88,0,132,0,0,100,88,0,131,2,0,90,
- 51,0,71,100,89,0,100,90,0,132,0,0,100,90,0,101,
- 51,0,101,50,0,131,4,0,90,52,0,71,100,91,0,100,
- 92,0,132,0,0,100,92,0,101,51,0,101,49,0,131,4,
- 0,90,53,0,103,0,0,90,54,0,71,100,93,0,100,94,
- 0,132,0,0,100,94,0,131,2,0,90,55,0,71,100,95,
- 0,100,96,0,132,0,0,100,96,0,131,2,0,90,56,0,
- 71,100,97,0,100,98,0,132,0,0,100,98,0,131,2,0,
- 90,57,0,71,100,99,0,100,100,0,132,0,0,100,100,0,
- 131,2,0,90,58,0,71,100,101,0,100,102,0,132,0,0,
- 100,102,0,131,2,0,90,59,0,71,100,103,0,100,104,0,
- 132,0,0,100,104,0,131,2,0,90,60,0,100,105,0,100,
- 106,0,132,0,0,90,61,0,100,107,0,100,108,0,132,0,
- 0,90,62,0,100,109,0,100,110,0,132,0,0,90,63,0,
- 100,111,0,90,64,0,100,112,0,100,113,0,132,0,0,90,
- 65,0,100,114,0,100,115,0,132,0,0,90,66,0,100,130,
- 0,100,46,0,100,116,0,100,117,0,132,2,0,90,67,0,
- 100,118,0,100,119,0,132,0,0,90,68,0,100,120,0,100,
- 121,0,132,0,0,90,69,0,100,122,0,100,123,0,132,0,
- 0,90,70,0,100,130,0,100,130,0,102,0,0,100,46,0,
- 100,124,0,100,125,0,132,4,0,90,71,0,100,126,0,100,
- 127,0,132,0,0,90,72,0,100,128,0,100,129,0,132,0,
- 0,90,73,0,100,130,0,83,40,132,0,0,0,117,83,1,
- 0,0,67,111,114,101,32,105,109,112,108,101,109,101,110,116,
+ 100,35,0,100,36,0,132,0,0,90,23,0,100,37,0,106,
+ 24,0,100,38,0,100,39,0,131,2,0,100,40,0,23,90,
+ 25,0,101,26,0,106,27,0,101,25,0,100,39,0,131,2,
+ 0,90,28,0,100,41,0,90,29,0,100,42,0,103,1,0,
+ 90,30,0,100,43,0,103,1,0,90,31,0,100,44,0,103,
+ 1,0,90,32,0,100,45,0,100,46,0,100,47,0,132,1,
+ 0,90,33,0,100,48,0,100,49,0,132,0,0,90,34,0,
+ 100,50,0,100,51,0,132,0,0,90,35,0,100,52,0,100,
+ 53,0,132,0,0,90,36,0,100,54,0,100,55,0,100,56,
+ 0,100,57,0,132,0,1,90,37,0,71,100,58,0,100,59,
+ 0,132,0,0,100,59,0,131,2,0,90,38,0,71,100,60,
+ 0,100,61,0,132,0,0,100,61,0,101,38,0,131,3,0,
+ 90,39,0,100,62,0,100,63,0,100,64,0,100,65,0,132,
+ 0,1,90,40,0,100,66,0,100,67,0,132,0,0,90,41,
+ 0,100,68,0,100,69,0,132,0,0,90,42,0,100,70,0,
+ 100,71,0,132,0,0,90,43,0,100,72,0,100,73,0,132,
+ 0,0,90,44,0,100,74,0,100,75,0,132,0,0,90,45,
+ 0,100,76,0,100,77,0,132,0,0,90,46,0,100,78,0,
+ 100,79,0,132,0,0,90,47,0,100,80,0,100,81,0,132,
+ 0,0,90,48,0,100,45,0,100,45,0,100,45,0,100,82,
+ 0,100,83,0,132,3,0,90,49,0,100,45,0,100,45,0,
+ 100,45,0,100,84,0,100,85,0,132,3,0,90,50,0,100,
+ 86,0,100,86,0,100,87,0,100,88,0,132,2,0,90,51,
+ 0,100,89,0,100,90,0,132,0,0,90,52,0,71,100,91,
+ 0,100,92,0,132,0,0,100,92,0,131,2,0,90,53,0,
+ 71,100,93,0,100,94,0,132,0,0,100,94,0,131,2,0,
+ 90,54,0,71,100,95,0,100,96,0,132,0,0,100,96,0,
+ 131,2,0,90,55,0,71,100,97,0,100,98,0,132,0,0,
+ 100,98,0,131,2,0,90,56,0,71,100,99,0,100,100,0,
+ 132,0,0,100,100,0,101,56,0,131,3,0,90,57,0,71,
+ 100,101,0,100,102,0,132,0,0,100,102,0,131,2,0,90,
+ 58,0,71,100,103,0,100,104,0,132,0,0,100,104,0,101,
+ 58,0,101,57,0,131,4,0,90,59,0,71,100,105,0,100,
+ 106,0,132,0,0,100,106,0,101,58,0,101,56,0,131,4,
+ 0,90,60,0,103,0,0,90,61,0,71,100,107,0,100,108,
+ 0,132,0,0,100,108,0,131,2,0,90,62,0,71,100,109,
+ 0,100,110,0,132,0,0,100,110,0,131,2,0,90,63,0,
+ 71,100,111,0,100,112,0,132,0,0,100,112,0,131,2,0,
+ 90,64,0,71,100,113,0,100,114,0,132,0,0,100,114,0,
+ 131,2,0,90,65,0,71,100,115,0,100,116,0,132,0,0,
+ 100,116,0,131,2,0,90,66,0,71,100,117,0,100,118,0,
+ 132,0,0,100,118,0,131,2,0,90,67,0,100,119,0,100,
+ 120,0,132,0,0,90,68,0,100,121,0,100,122,0,132,0,
+ 0,90,69,0,100,123,0,100,124,0,132,0,0,90,70,0,
+ 100,125,0,90,71,0,101,71,0,100,126,0,23,90,72,0,
+ 100,127,0,100,128,0,132,0,0,90,73,0,100,129,0,100,
+ 130,0,132,0,0,90,74,0,100,45,0,100,86,0,100,131,
+ 0,100,132,0,132,2,0,90,75,0,100,133,0,100,134,0,
+ 132,0,0,90,76,0,100,135,0,100,136,0,132,0,0,90,
+ 77,0,100,137,0,100,138,0,132,0,0,90,78,0,100,45,
+ 0,100,45,0,102,0,0,100,86,0,100,139,0,100,140,0,
+ 132,4,0,90,79,0,100,141,0,100,142,0,132,0,0,90,
+ 80,0,100,143,0,100,144,0,132,0,0,90,81,0,100,45,
+ 0,83,40,146,0,0,0,117,83,1,0,0,67,111,114,101,
+ 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,
+ 111,102,32,105,109,112,111,114,116,46,10,10,84,104,105,115,
+ 32,109,111,100,117,108,101,32,105,115,32,78,79,84,32,109,
+ 101,97,110,116,32,116,111,32,98,101,32,100,105,114,101,99,
+ 116,108,121,32,105,109,112,111,114,116,101,100,33,32,73,116,
+ 32,104,97,115,32,98,101,101,110,32,100,101,115,105,103,110,
+ 101,100,32,115,117,99,104,10,116,104,97,116,32,105,116,32,
+ 99,97,110,32,98,101,32,98,111,111,116,115,116,114,97,112,
+ 112,101,100,32,105,110,116,111,32,80,121,116,104,111,110,32,
+ 97,115,32,116,104,101,32,105,109,112,108,101,109,101,110,116,
97,116,105,111,110,32,111,102,32,105,109,112,111,114,116,46,
- 10,10,84,104,105,115,32,109,111,100,117,108,101,32,105,115,
- 32,78,79,84,32,109,101,97,110,116,32,116,111,32,98,101,
- 32,100,105,114,101,99,116,108,121,32,105,109,112,111,114,116,
- 101,100,33,32,73,116,32,104,97,115,32,98,101,101,110,32,
- 100,101,115,105,103,110,101,100,32,115,117,99,104,10,116,104,
- 97,116,32,105,116,32,99,97,110,32,98,101,32,98,111,111,
- 116,115,116,114,97,112,112,101,100,32,105,110,116,111,32,80,
- 121,116,104,111,110,32,97,115,32,116,104,101,32,105,109,112,
- 108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,105,
- 109,112,111,114,116,46,32,65,115,10,115,117,99,104,32,105,
- 116,32,114,101,113,117,105,114,101,115,32,116,104,101,32,105,
- 110,106,101,99,116,105,111,110,32,111,102,32,115,112,101,99,
- 105,102,105,99,32,109,111,100,117,108,101,115,32,97,110,100,
- 32,97,116,116,114,105,98,117,116,101,115,32,105,110,32,111,
- 114,100,101,114,32,116,111,10,119,111,114,107,46,32,79,110,
- 101,32,115,104,111,117,108,100,32,117,115,101,32,105,109,112,
- 111,114,116,108,105,98,32,97,115,32,116,104,101,32,112,117,
- 98,108,105,99,45,102,97,99,105,110,103,32,118,101,114,115,
- 105,111,110,32,111,102,32,116,104,105,115,32,109,111,100,117,
- 108,101,46,10,10,117,3,0,0,0,119,105,110,117,6,0,
- 0,0,99,121,103,119,105,110,117,6,0,0,0,100,97,114,
- 119,105,110,99,0,0,0,0,0,0,0,0,1,0,0,0,
- 2,0,0,0,67,0,0,0,115,49,0,0,0,116,0,0,
- 106,1,0,106,2,0,116,3,0,131,1,0,114,33,0,100,
- 1,0,100,2,0,132,0,0,125,0,0,110,12,0,100,3,
- 0,100,2,0,132,0,0,125,0,0,124,0,0,83,40,4,
- 0,0,0,78,99,0,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,83,0,0,0,115,13,0,0,0,100,1,
- 0,116,0,0,106,1,0,107,6,0,83,40,2,0,0,0,
- 117,53,0,0,0,84,114,117,101,32,105,102,32,102,105,108,
- 101,110,97,109,101,115,32,109,117,115,116,32,98,101,32,99,
- 104,101,99,107,101,100,32,99,97,115,101,45,105,110,115,101,
- 110,115,105,116,105,118,101,108,121,46,115,12,0,0,0,80,
- 89,84,72,79,78,67,65,83,69,79,75,40,2,0,0,0,
- 117,3,0,0,0,95,111,115,117,7,0,0,0,101,110,118,
- 105,114,111,110,40,0,0,0,0,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,11,0,0,0,95,114,101,108,97,120,
- 95,99,97,115,101,34,0,0,0,115,2,0,0,0,0,2,
- 117,37,0,0,0,95,109,97,107,101,95,114,101,108,97,120,
- 95,99,97,115,101,46,60,108,111,99,97,108,115,62,46,95,
- 114,101,108,97,120,95,99,97,115,101,99,0,0,0,0,0,
- 0,0,0,0,0,0,0,1,0,0,0,83,0,0,0,115,
- 4,0,0,0,100,1,0,83,40,2,0,0,0,117,53,0,
- 0,0,84,114,117,101,32,105,102,32,102,105,108,101,110,97,
- 109,101,115,32,109,117,115,116,32,98,101,32,99,104,101,99,
- 107,101,100,32,99,97,115,101,45,105,110,115,101,110,115,105,
- 116,105,118,101,108,121,46,70,40,1,0,0,0,117,5,0,
- 0,0,70,97,108,115,101,40,0,0,0,0,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,11,0,0,0,95,114,101,
- 108,97,120,95,99,97,115,101,38,0,0,0,115,2,0,0,
- 0,0,2,40,4,0,0,0,117,3,0,0,0,115,121,115,
- 117,8,0,0,0,112,108,97,116,102,111,114,109,117,10,0,
- 0,0,115,116,97,114,116,115,119,105,116,104,117,27,0,0,
- 0,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,40,1,0,0,
- 0,117,11,0,0,0,95,114,101,108,97,120,95,99,97,115,
- 101,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,16,0,
+ 32,65,115,10,115,117,99,104,32,105,116,32,114,101,113,117,
+ 105,114,101,115,32,116,104,101,32,105,110,106,101,99,116,105,
+ 111,110,32,111,102,32,115,112,101,99,105,102,105,99,32,109,
+ 111,100,117,108,101,115,32,97,110,100,32,97,116,116,114,105,
+ 98,117,116,101,115,32,105,110,32,111,114,100,101,114,32,116,
+ 111,10,119,111,114,107,46,32,79,110,101,32,115,104,111,117,
+ 108,100,32,117,115,101,32,105,109,112,111,114,116,108,105,98,
+ 32,97,115,32,116,104,101,32,112,117,98,108,105,99,45,102,
+ 97,99,105,110,103,32,118,101,114,115,105,111,110,32,111,102,
+ 32,116,104,105,115,32,109,111,100,117,108,101,46,10,10,244,
+ 3,0,0,0,119,105,110,244,6,0,0,0,99,121,103,119,
+ 105,110,244,6,0,0,0,100,97,114,119,105,110,99,0,0,
+ 0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,
+ 0,0,115,49,0,0,0,116,0,0,106,1,0,106,2,0,
+ 116,3,0,131,1,0,114,33,0,100,1,0,100,2,0,132,
+ 0,0,125,0,0,110,12,0,100,3,0,100,2,0,132,0,
+ 0,125,0,0,124,0,0,83,40,4,0,0,0,78,99,0,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,83,
+ 0,0,0,115,13,0,0,0,100,1,0,116,0,0,106,1,
+ 0,107,6,0,83,40,2,0,0,0,117,53,0,0,0,84,
+ 114,117,101,32,105,102,32,102,105,108,101,110,97,109,101,115,
+ 32,109,117,115,116,32,98,101,32,99,104,101,99,107,101,100,
+ 32,99,97,115,101,45,105,110,115,101,110,115,105,116,105,118,
+ 101,108,121,46,115,12,0,0,0,80,89,84,72,79,78,67,
+ 65,83,69,79,75,40,2,0,0,0,244,3,0,0,0,95,
+ 111,115,116,7,0,0,0,101,110,118,105,114,111,110,168,0,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,245,29,0,
+ 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
+ 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,244,
+ 11,0,0,0,95,114,101,108,97,120,95,99,97,115,101,30,
+ 0,0,0,115,2,0,0,0,0,2,117,37,0,0,0,95,
+ 109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,46,
+ 60,108,111,99,97,108,115,62,46,95,114,101,108,97,120,95,
+ 99,97,115,101,99,0,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,83,0,0,0,115,4,0,0,0,100,1,
+ 0,83,40,2,0,0,0,117,53,0,0,0,84,114,117,101,
+ 32,105,102,32,102,105,108,101,110,97,109,101,115,32,109,117,
+ 115,116,32,98,101,32,99,104,101,99,107,101,100,32,99,97,
+ 115,101,45,105,110,115,101,110,115,105,116,105,118,101,108,121,
+ 46,70,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,114,6,0,0,0,
+ 34,0,0,0,115,2,0,0,0,0,2,40,4,0,0,0,
+ 244,3,0,0,0,115,121,115,244,8,0,0,0,112,108,97,
+ 116,102,111,114,109,244,10,0,0,0,115,116,97,114,116,115,
+ 119,105,116,104,244,27,0,0,0,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,40,1,0,0,0,114,6,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,244,16,0,
0,0,95,109,97,107,101,95,114,101,108,97,120,95,99,97,
- 115,101,32,0,0,0,115,8,0,0,0,0,1,18,1,15,
- 4,12,3,117,16,0,0,0,95,109,97,107,101,95,114,101,
- 108,97,120,95,99,97,115,101,99,1,0,0,0,0,0,0,
- 0,2,0,0,0,3,0,0,0,67,0,0,0,115,108,0,
- 0,0,116,0,0,124,0,0,131,1,0,125,0,0,103,0,
- 0,125,1,0,124,1,0,106,1,0,124,0,0,100,1,0,
- 64,131,1,0,1,124,1,0,106,1,0,124,0,0,100,2,
- 0,63,100,1,0,64,131,1,0,1,124,1,0,106,1,0,
- 124,0,0,100,3,0,63,100,1,0,64,131,1,0,1,124,
- 1,0,106,1,0,124,0,0,100,4,0,63,100,1,0,64,
- 131,1,0,1,116,2,0,124,1,0,131,1,0,83,40,5,
- 0,0,0,117,111,0,0,0,67,111,110,118,101,114,116,32,
- 97,32,51,50,45,98,105,116,32,105,110,116,101,103,101,114,
- 32,116,111,32,108,105,116,116,108,101,45,101,110,100,105,97,
- 110,46,10,10,32,32,32,32,88,88,88,32,84,101,109,112,
- 111,114,97,114,121,32,117,110,116,105,108,32,109,97,114,115,
- 104,97,108,39,115,32,108,111,110,103,32,102,117,110,99,116,
- 105,111,110,115,32,97,114,101,32,101,120,112,111,115,101,100,
- 46,10,10,32,32,32,32,105,255,0,0,0,105,8,0,0,
- 0,105,16,0,0,0,105,24,0,0,0,40,3,0,0,0,
- 117,3,0,0,0,105,110,116,117,6,0,0,0,97,112,112,
- 101,110,100,117,9,0,0,0,98,121,116,101,97,114,114,97,
- 121,40,2,0,0,0,117,1,0,0,0,120,117,9,0,0,
- 0,105,110,116,95,98,121,116,101,115,40,0,0,0,0,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,7,0,0,0,95,119,95,108,111,
- 110,103,45,0,0,0,115,14,0,0,0,0,6,12,1,6,
- 1,17,1,21,1,21,1,21,1,117,7,0,0,0,95,119,
- 95,108,111,110,103,99,1,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,67,0,0,0,115,68,0,0,0,124,
- 0,0,100,1,0,25,125,1,0,124,1,0,124,0,0,100,
- 2,0,25,100,3,0,62,79,125,1,0,124,1,0,124,0,
- 0,100,4,0,25,100,5,0,62,79,125,1,0,124,1,0,
- 124,0,0,100,6,0,25,100,7,0,62,79,125,1,0,124,
- 1,0,83,40,8,0,0,0,117,115,0,0,0,67,111,110,
- 118,101,114,116,32,52,32,98,121,116,101,115,32,105,110,32,
- 108,105,116,116,108,101,45,101,110,100,105,97,110,32,116,111,
- 32,97,110,32,105,110,116,101,103,101,114,46,10,10,32,32,
- 32,32,88,88,88,32,84,101,109,112,111,114,97,114,121,32,
- 117,110,116,105,108,32,109,97,114,115,104,97,108,39,115,32,
- 108,111,110,103,32,102,117,110,99,116,105,111,110,32,97,114,
- 101,32,101,120,112,111,115,101,100,46,10,10,32,32,32,32,
- 105,0,0,0,0,105,1,0,0,0,105,8,0,0,0,105,
- 2,0,0,0,105,16,0,0,0,105,3,0,0,0,105,24,
- 0,0,0,40,0,0,0,0,40,2,0,0,0,117,9,0,
- 0,0,105,110,116,95,98,121,116,101,115,117,1,0,0,0,
- 120,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,7,0,
- 0,0,95,114,95,108,111,110,103,61,0,0,0,115,10,0,
- 0,0,0,6,10,1,18,1,18,1,18,1,117,7,0,0,
- 0,95,114,95,108,111,110,103,99,0,0,0,0,0,0,0,
- 0,3,0,0,0,4,0,0,0,71,0,0,0,115,103,0,
- 0,0,103,0,0,125,1,0,120,71,0,124,0,0,68,93,
- 63,0,125,2,0,124,2,0,115,31,0,113,13,0,110,0,
- 0,124,1,0,106,0,0,124,2,0,131,1,0,1,124,2,
- 0,100,4,0,25,116,1,0,107,7,0,114,13,0,124,1,
- 0,106,0,0,116,2,0,131,1,0,1,113,13,0,113,13,
- 0,87,100,2,0,106,3,0,124,1,0,100,3,0,100,5,
- 0,133,2,0,25,131,1,0,83,40,6,0,0,0,117,31,
- 0,0,0,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,105,1,0,0,0,117,0,0,0,0,78,105,255,255,
- 255,255,105,255,255,255,255,40,4,0,0,0,117,6,0,0,
- 0,97,112,112,101,110,100,117,15,0,0,0,112,97,116,104,
- 95,115,101,112,97,114,97,116,111,114,115,117,8,0,0,0,
- 112,97,116,104,95,115,101,112,117,4,0,0,0,106,111,105,
- 110,40,3,0,0,0,117,10,0,0,0,112,97,116,104,95,
- 112,97,114,116,115,117,9,0,0,0,110,101,119,95,112,97,
- 114,116,115,117,4,0,0,0,112,97,114,116,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,10,0,0,0,95,112,97,
- 116,104,95,106,111,105,110,74,0,0,0,115,16,0,0,0,
- 0,2,6,1,13,1,6,1,6,1,13,1,16,1,20,1,
- 117,10,0,0,0,95,112,97,116,104,95,106,111,105,110,99,
- 1,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,
- 67,0,0,0,115,85,0,0,0,120,48,0,116,0,0,124,
- 0,0,131,1,0,68,93,28,0,125,1,0,124,1,0,116,
- 1,0,107,6,0,114,13,0,124,1,0,125,2,0,80,113,
- 13,0,113,13,0,87,116,2,0,125,2,0,124,0,0,106,
- 3,0,124,2,0,131,1,0,92,3,0,125,3,0,125,4,
- 0,125,5,0,124,3,0,124,5,0,102,2,0,83,40,1,
- 0,0,0,117,32,0,0,0,82,101,112,108,97,99,101,109,
+ 115,101,28,0,0,0,115,8,0,0,0,0,1,18,1,15,
+ 4,12,3,114,11,0,0,0,99,1,0,0,0,0,0,0,
+ 0,1,0,0,0,3,0,0,0,67,0,0,0,115,26,0,
+ 0,0,116,0,0,124,0,0,131,1,0,100,1,0,64,106,
+ 1,0,100,2,0,100,3,0,131,2,0,83,40,4,0,0,
+ 0,117,42,0,0,0,67,111,110,118,101,114,116,32,97,32,
+ 51,50,45,98,105,116,32,105,110,116,101,103,101,114,32,116,
+ 111,32,108,105,116,116,108,101,45,101,110,100,105,97,110,46,
+ 108,3,0,0,0,255,127,255,127,3,0,233,4,0,0,0,
+ 244,6,0,0,0,108,105,116,116,108,101,40,2,0,0,0,
+ 244,3,0,0,0,105,110,116,244,8,0,0,0,116,111,95,
+ 98,121,116,101,115,40,1,0,0,0,244,1,0,0,0,120,
+ 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,
+ 7,0,0,0,95,119,95,108,111,110,103,40,0,0,0,115,
+ 2,0,0,0,0,2,114,17,0,0,0,99,1,0,0,0,
+ 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+ 115,16,0,0,0,116,0,0,106,1,0,124,0,0,100,1,
+ 0,131,2,0,83,40,2,0,0,0,117,47,0,0,0,67,
+ 111,110,118,101,114,116,32,52,32,98,121,116,101,115,32,105,
+ 110,32,108,105,116,116,108,101,45,101,110,100,105,97,110,32,
+ 116,111,32,97,110,32,105,110,116,101,103,101,114,46,114,13,
+ 0,0,0,40,2,0,0,0,114,14,0,0,0,244,10,0,
+ 0,0,102,114,111,109,95,98,121,116,101,115,40,1,0,0,
+ 0,116,9,0,0,0,105,110,116,95,98,121,116,101,115,114,
+ 4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,7,
+ 0,0,0,95,114,95,108,111,110,103,45,0,0,0,115,2,
+ 0,0,0,0,2,114,19,0,0,0,99,0,0,0,0,0,
+ 0,0,0,1,0,0,0,3,0,0,0,71,0,0,0,115,
+ 26,0,0,0,116,0,0,106,1,0,100,1,0,100,2,0,
+ 132,0,0,124,0,0,68,131,1,0,131,1,0,83,40,3,
+ 0,0,0,117,31,0,0,0,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,40,4,0,0,0,117,8,0,
- 0,0,114,101,118,101,114,115,101,100,117,15,0,0,0,112,
- 97,116,104,95,115,101,112,97,114,97,116,111,114,115,117,8,
- 0,0,0,112,97,116,104,95,115,101,112,117,10,0,0,0,
- 114,112,97,114,116,105,116,105,111,110,40,6,0,0,0,117,
- 4,0,0,0,112,97,116,104,117,1,0,0,0,120,117,3,
- 0,0,0,115,101,112,117,5,0,0,0,102,114,111,110,116,
- 117,1,0,0,0,95,117,4,0,0,0,116,97,105,108,40,
- 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
- 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
- 95,98,111,111,116,115,116,114,97,112,62,117,11,0,0,0,
- 95,112,97,116,104,95,115,112,108,105,116,86,0,0,0,115,
- 14,0,0,0,0,2,19,1,12,1,6,1,8,2,6,1,
- 24,1,117,11,0,0,0,95,112,97,116,104,95,115,112,108,
- 105,116,99,2,0,0,0,0,0,0,0,3,0,0,0,11,
- 0,0,0,67,0,0,0,115,61,0,0,0,121,19,0,116,
- 0,0,106,1,0,124,0,0,131,1,0,125,2,0,87,110,
- 22,0,4,116,2,0,107,10,0,114,43,0,1,1,1,100,
- 2,0,83,89,110,1,0,88,124,2,0,106,4,0,100,1,
- 0,64,124,1,0,107,2,0,83,40,3,0,0,0,117,49,
- 0,0,0,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,105,0,240,0,0,70,40,5,0,0,0,117,
- 3,0,0,0,95,111,115,117,4,0,0,0,115,116,97,116,
- 117,7,0,0,0,79,83,69,114,114,111,114,117,5,0,0,
- 0,70,97,108,115,101,117,7,0,0,0,115,116,95,109,111,
- 100,101,40,3,0,0,0,117,4,0,0,0,112,97,116,104,
- 117,4,0,0,0,109,111,100,101,117,9,0,0,0,115,116,
- 97,116,95,105,110,102,111,40,0,0,0,0,40,0,0,0,
- 0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
- 112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
- 97,112,62,117,18,0,0,0,95,112,97,116,104,95,105,115,
- 95,109,111,100,101,95,116,121,112,101,98,0,0,0,115,10,
- 0,0,0,0,2,3,1,19,1,13,1,9,1,117,18,0,
- 0,0,95,112,97,116,104,95,105,115,95,109,111,100,101,95,
- 116,121,112,101,99,1,0,0,0,0,0,0,0,1,0,0,
- 0,3,0,0,0,67,0,0,0,115,13,0,0,0,116,0,
- 0,124,0,0,100,1,0,131,2,0,83,40,2,0,0,0,
- 117,31,0,0,0,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,40,1,0,0,0,117,18,
- 0,0,0,95,112,97,116,104,95,105,115,95,109,111,100,101,
- 95,116,121,112,101,40,1,0,0,0,117,4,0,0,0,112,
- 97,116,104,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 12,0,0,0,95,112,97,116,104,95,105,115,102,105,108,101,
- 108,0,0,0,115,2,0,0,0,0,2,117,12,0,0,0,
- 95,112,97,116,104,95,105,115,102,105,108,101,99,1,0,0,
- 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
- 0,115,34,0,0,0,124,0,0,115,21,0,116,0,0,106,
- 1,0,131,0,0,125,0,0,110,0,0,116,2,0,124,0,
- 0,100,1,0,131,2,0,83,40,2,0,0,0,117,30,0,
- 0,0,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,40,3,0,0,0,117,3,0,0,0,95,
- 111,115,117,6,0,0,0,103,101,116,99,119,100,117,18,0,
- 0,0,95,112,97,116,104,95,105,115,95,109,111,100,101,95,
- 116,121,112,101,40,1,0,0,0,117,4,0,0,0,112,97,
- 116,104,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,11,
- 0,0,0,95,112,97,116,104,95,105,115,100,105,114,114,0,
- 0,0,115,6,0,0,0,0,2,6,1,15,1,117,11,0,
- 0,0,95,112,97,116,104,95,105,115,100,105,114,105,182,1,
- 0,0,99,3,0,0,0,0,0,0,0,6,0,0,0,17,
- 0,0,0,67,0,0,0,115,192,0,0,0,100,1,0,106,
- 0,0,124,0,0,116,1,0,124,0,0,131,1,0,131,2,
- 0,125,3,0,116,2,0,106,3,0,124,3,0,116,2,0,
- 106,4,0,116,2,0,106,5,0,66,116,2,0,106,6,0,
- 66,124,2,0,100,2,0,64,131,3,0,125,4,0,121,60,
- 0,116,7,0,106,8,0,124,4,0,100,3,0,131,2,0,
- 143,20,0,125,5,0,124,5,0,106,9,0,124,1,0,131,
- 1,0,1,87,100,4,0,81,88,116,2,0,106,10,0,124,
- 3,0,124,0,0,131,2,0,1,87,110,59,0,4,116,11,
- 0,107,10,0,114,187,0,1,1,1,121,17,0,116,2,0,
- 106,12,0,124,3,0,131,1,0,1,87,110,18,0,4,116,
- 11,0,107,10,0,114,179,0,1,1,1,89,110,1,0,88,
- 130,0,0,89,110,1,0,88,100,4,0,83,40,5,0,0,
- 0,117,162,0,0,0,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,117,5,0,0,0,123,125,46,
- 123,125,105,182,1,0,0,117,2,0,0,0,119,98,78,40,
- 13,0,0,0,117,6,0,0,0,102,111,114,109,97,116,117,
- 2,0,0,0,105,100,117,3,0,0,0,95,111,115,117,4,
- 0,0,0,111,112,101,110,117,6,0,0,0,79,95,69,88,
- 67,76,117,7,0,0,0,79,95,67,82,69,65,84,117,8,
- 0,0,0,79,95,87,82,79,78,76,89,117,3,0,0,0,
- 95,105,111,117,6,0,0,0,70,105,108,101,73,79,117,5,
- 0,0,0,119,114,105,116,101,117,7,0,0,0,114,101,112,
- 108,97,99,101,117,7,0,0,0,79,83,69,114,114,111,114,
- 117,6,0,0,0,117,110,108,105,110,107,40,6,0,0,0,
- 117,4,0,0,0,112,97,116,104,117,4,0,0,0,100,97,
- 116,97,117,4,0,0,0,109,111,100,101,117,8,0,0,0,
- 112,97,116,104,95,116,109,112,117,2,0,0,0,102,100,117,
- 4,0,0,0,102,105,108,101,40,0,0,0,0,40,0,0,
- 0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
- 109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
- 114,97,112,62,117,13,0,0,0,95,119,114,105,116,101,95,
- 97,116,111,109,105,99,121,0,0,0,115,26,0,0,0,0,
- 5,24,1,9,1,33,1,3,3,21,1,19,1,20,1,13,
- 1,3,1,17,1,13,1,5,1,117,13,0,0,0,95,119,
- 114,105,116,101,95,97,116,111,109,105,99,99,2,0,0,0,
- 0,0,0,0,3,0,0,0,7,0,0,0,67,0,0,0,
- 115,95,0,0,0,120,69,0,100,1,0,100,2,0,100,3,
- 0,100,4,0,103,4,0,68,93,49,0,125,2,0,116,0,
- 0,124,1,0,124,2,0,131,2,0,114,19,0,116,1,0,
- 124,0,0,124,2,0,116,2,0,124,1,0,124,2,0,131,
- 2,0,131,3,0,1,113,19,0,113,19,0,87,124,0,0,
- 106,3,0,106,4,0,124,1,0,106,3,0,131,1,0,1,
- 100,5,0,83,40,6,0,0,0,117,47,0,0,0,83,105,
- 109,112,108,101,32,115,117,98,115,116,105,116,117,116,101,32,
- 102,111,114,32,102,117,110,99,116,111,111,108,115,46,117,112,
- 100,97,116,101,95,119,114,97,112,112,101,114,46,117,10,0,
- 0,0,95,95,109,111,100,117,108,101,95,95,117,8,0,0,
- 0,95,95,110,97,109,101,95,95,117,12,0,0,0,95,95,
- 113,117,97,108,110,97,109,101,95,95,117,7,0,0,0,95,
- 95,100,111,99,95,95,78,40,5,0,0,0,117,7,0,0,
- 0,104,97,115,97,116,116,114,117,7,0,0,0,115,101,116,
- 97,116,116,114,117,7,0,0,0,103,101,116,97,116,116,114,
- 117,8,0,0,0,95,95,100,105,99,116,95,95,117,6,0,
- 0,0,117,112,100,97,116,101,40,3,0,0,0,117,3,0,
- 0,0,110,101,119,117,3,0,0,0,111,108,100,117,7,0,
- 0,0,114,101,112,108,97,99,101,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,5,0,0,0,95,119,114,97,112,143,
- 0,0,0,115,8,0,0,0,0,2,25,1,15,1,32,1,
- 117,5,0,0,0,95,119,114,97,112,99,1,0,0,0,0,
- 0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,
- 16,0,0,0,116,0,0,116,1,0,131,1,0,124,0,0,
- 131,1,0,83,40,1,0,0,0,117,75,0,0,0,67,114,
- 101,97,116,101,32,97,32,110,101,119,32,109,111,100,117,108,
- 101,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,101,110,116,101,114,101,
- 100,32,105,110,116,111,32,115,121,115,46,109,111,100,117,108,
- 101,115,46,10,10,32,32,32,32,40,2,0,0,0,117,4,
- 0,0,0,116,121,112,101,117,3,0,0,0,95,105,111,40,
- 1,0,0,0,117,4,0,0,0,110,97,109,101,40,0,0,
- 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
- 111,111,116,115,116,114,97,112,62,117,10,0,0,0,110,101,
- 119,95,109,111,100,117,108,101,154,0,0,0,115,2,0,0,
- 0,0,6,117,10,0,0,0,110,101,119,95,109,111,100,117,
- 108,101,99,1,0,0,0,0,0,0,0,1,0,0,0,1,
- 0,0,0,66,0,0,0,115,20,0,0,0,124,0,0,69,
- 101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,83,
- 40,2,0,0,0,117,14,0,0,0,95,68,101,97,100,108,
- 111,99,107,69,114,114,111,114,78,40,3,0,0,0,117,8,
- 0,0,0,95,95,110,97,109,101,95,95,117,10,0,0,0,
- 95,95,109,111,100,117,108,101,95,95,117,12,0,0,0,95,
- 95,113,117,97,108,110,97,109,101,95,95,40,1,0,0,0,
- 117,10,0,0,0,95,95,108,111,99,97,108,115,95,95,40,
- 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
- 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
- 95,98,111,111,116,115,116,114,97,112,62,117,14,0,0,0,
- 95,68,101,97,100,108,111,99,107,69,114,114,111,114,171,0,
- 0,0,115,2,0,0,0,16,1,117,14,0,0,0,95,68,
- 101,97,100,108,111,99,107,69,114,114,111,114,99,1,0,0,
- 0,0,0,0,0,1,0,0,0,2,0,0,0,66,0,0,
- 0,115,86,0,0,0,124,0,0,69,101,0,0,90,1,0,
- 100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,100,
- 3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,0,
- 0,90,5,0,100,6,0,100,7,0,132,0,0,90,6,0,
- 100,8,0,100,9,0,132,0,0,90,7,0,100,10,0,100,
- 11,0,132,0,0,90,8,0,100,12,0,83,40,13,0,0,
- 0,117,11,0,0,0,95,77,111,100,117,108,101,76,111,99,
- 107,117,169,0,0,0,65,32,114,101,99,117,114,115,105,118,
- 101,32,108,111,99,107,32,105,109,112,108,101,109,101,110,116,
- 97,116,105,111,110,32,119,104,105,99,104,32,105,115,32,97,
- 98,108,101,32,116,111,32,100,101,116,101,99,116,32,100,101,
- 97,100,108,111,99,107,115,10,32,32,32,32,40,101,46,103,
- 46,32,116,104,114,101,97,100,32,49,32,116,114,121,105,110,
- 103,32,116,111,32,116,97,107,101,32,108,111,99,107,115,32,
- 65,32,116,104,101,110,32,66,44,32,97,110,100,32,116,104,
- 114,101,97,100,32,50,32,116,114,121,105,110,103,32,116,111,
- 10,32,32,32,32,116,97,107,101,32,108,111,99,107,115,32,
- 66,32,116,104,101,110,32,65,41,46,10,32,32,32,32,99,
- 2,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,
- 67,0,0,0,115,70,0,0,0,116,0,0,106,1,0,131,
- 0,0,124,0,0,95,2,0,116,0,0,106,1,0,131,0,
- 0,124,0,0,95,3,0,124,1,0,124,0,0,95,4,0,
- 100,0,0,124,0,0,95,6,0,100,1,0,124,0,0,95,
- 7,0,100,1,0,124,0,0,95,8,0,100,0,0,83,40,
- 2,0,0,0,78,105,0,0,0,0,40,9,0,0,0,117,
- 7,0,0,0,95,116,104,114,101,97,100,117,13,0,0,0,
- 97,108,108,111,99,97,116,101,95,108,111,99,107,117,4,0,
- 0,0,108,111,99,107,117,6,0,0,0,119,97,107,101,117,
- 112,117,4,0,0,0,110,97,109,101,117,4,0,0,0,78,
- 111,110,101,117,5,0,0,0,111,119,110,101,114,117,5,0,
- 0,0,99,111,117,110,116,117,7,0,0,0,119,97,105,116,
- 101,114,115,40,2,0,0,0,117,4,0,0,0,115,101,108,
- 102,117,4,0,0,0,110,97,109,101,40,0,0,0,0,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,8,0,0,0,95,95,105,110,105,
- 116,95,95,181,0,0,0,115,12,0,0,0,0,1,15,1,
+ 106,111,105,110,40,41,46,99,1,0,0,0,0,0,0,0,
+ 2,0,0,0,4,0,0,0,83,0,0,0,115,37,0,0,
+ 0,103,0,0,124,0,0,93,27,0,125,1,0,124,1,0,
+ 114,6,0,124,1,0,106,0,0,116,1,0,131,1,0,145,
+ 2,0,113,6,0,83,114,4,0,0,0,40,2,0,0,0,
+ 244,6,0,0,0,114,115,116,114,105,112,244,15,0,0,0,
+ 112,97,116,104,95,115,101,112,97,114,97,116,111,114,115,40,
+ 2,0,0,0,244,2,0,0,0,46,48,244,4,0,0,0,
+ 112,97,114,116,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,245,10,0,0,0,60,108,105,115,116,99,111,109,
+ 112,62,52,0,0,0,115,2,0,0,0,9,1,117,30,0,
+ 0,0,95,112,97,116,104,95,106,111,105,110,46,60,108,111,
+ 99,97,108,115,62,46,60,108,105,115,116,99,111,109,112,62,
+ 40,2,0,0,0,244,8,0,0,0,112,97,116,104,95,115,
+ 101,112,244,4,0,0,0,106,111,105,110,40,1,0,0,0,
+ 244,10,0,0,0,112,97,116,104,95,112,97,114,116,115,114,
+ 4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,10,
+ 0,0,0,95,112,97,116,104,95,106,111,105,110,50,0,0,
+ 0,115,4,0,0,0,0,2,15,1,114,28,0,0,0,99,
+ 1,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,
+ 67,0,0,0,115,134,0,0,0,116,0,0,116,1,0,131,
+ 1,0,100,1,0,107,2,0,114,52,0,124,0,0,106,2,
+ 0,116,3,0,131,1,0,92,3,0,125,1,0,125,2,0,
+ 125,3,0,124,1,0,124,3,0,102,2,0,83,120,69,0,
+ 116,4,0,124,0,0,131,1,0,68,93,55,0,125,4,0,
+ 124,4,0,116,1,0,107,6,0,114,65,0,124,0,0,106,
+ 5,0,124,4,0,100,2,0,100,1,0,131,1,1,92,2,
+ 0,125,1,0,125,3,0,124,1,0,124,3,0,102,2,0,
+ 83,113,65,0,87,100,3,0,124,0,0,102,2,0,83,40,
+ 4,0,0,0,117,32,0,0,0,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,233,1,0,0,0,116,8,
+ 0,0,0,109,97,120,115,112,108,105,116,244,0,0,0,0,
+ 40,6,0,0,0,244,3,0,0,0,108,101,110,114,21,0,
+ 0,0,244,10,0,0,0,114,112,97,114,116,105,116,105,111,
+ 110,114,25,0,0,0,244,8,0,0,0,114,101,118,101,114,
+ 115,101,100,244,6,0,0,0,114,115,112,108,105,116,40,5,
+ 0,0,0,244,4,0,0,0,112,97,116,104,116,5,0,0,
+ 0,102,114,111,110,116,244,1,0,0,0,95,244,4,0,0,
+ 0,116,97,105,108,114,16,0,0,0,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,244,11,0,0,0,95,112,
+ 97,116,104,95,115,112,108,105,116,56,0,0,0,115,16,0,
+ 0,0,0,2,18,1,24,1,10,1,19,1,12,1,27,1,
+ 14,1,114,38,0,0,0,99,2,0,0,0,0,0,0,0,
+ 3,0,0,0,11,0,0,0,67,0,0,0,115,61,0,0,
+ 0,121,19,0,116,0,0,106,1,0,124,0,0,131,1,0,
+ 125,2,0,87,110,22,0,4,116,2,0,107,10,0,114,43,
+ 0,1,1,1,100,1,0,83,89,110,1,0,88,124,2,0,
+ 106,3,0,100,2,0,64,124,1,0,107,2,0,83,40,3,
+ 0,0,0,117,49,0,0,0,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,40,
+ 4,0,0,0,114,3,0,0,0,244,4,0,0,0,115,116,
+ 97,116,244,7,0,0,0,79,83,69,114,114,111,114,244,7,
+ 0,0,0,115,116,95,109,111,100,101,40,3,0,0,0,114,
+ 35,0,0,0,244,4,0,0,0,109,111,100,101,116,9,0,
+ 0,0,115,116,97,116,95,105,110,102,111,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,244,18,0,0,0,95,
+ 112,97,116,104,95,105,115,95,109,111,100,101,95,116,121,112,
+ 101,68,0,0,0,115,10,0,0,0,0,2,3,1,19,1,
+ 13,1,9,1,114,43,0,0,0,99,1,0,0,0,0,0,
+ 0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,13,
+ 0,0,0,116,0,0,124,0,0,100,1,0,131,2,0,83,
+ 40,2,0,0,0,117,31,0,0,0,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,40,1,
+ 0,0,0,114,43,0,0,0,40,1,0,0,0,114,35,0,
+ 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,
+ 0,244,12,0,0,0,95,112,97,116,104,95,105,115,102,105,
+ 108,101,78,0,0,0,115,2,0,0,0,0,2,114,44,0,
+ 0,0,99,1,0,0,0,0,0,0,0,1,0,0,0,3,
+ 0,0,0,67,0,0,0,115,34,0,0,0,124,0,0,115,
+ 21,0,116,0,0,106,1,0,131,0,0,125,0,0,110,0,
+ 0,116,2,0,124,0,0,100,1,0,131,2,0,83,40,2,
+ 0,0,0,117,30,0,0,0,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,40,3,0,0,0,
+ 114,3,0,0,0,116,6,0,0,0,103,101,116,99,119,100,
+ 114,43,0,0,0,40,1,0,0,0,114,35,0,0,0,114,
+ 4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,11,
+ 0,0,0,95,112,97,116,104,95,105,115,100,105,114,84,0,
+ 0,0,115,6,0,0,0,0,2,6,1,15,1,114,45,0,
+ 0,0,105,182,1,0,0,99,3,0,0,0,0,0,0,0,
+ 6,0,0,0,17,0,0,0,67,0,0,0,115,192,0,0,
+ 0,100,1,0,106,0,0,124,0,0,116,1,0,124,0,0,
+ 131,1,0,131,2,0,125,3,0,116,2,0,106,3,0,124,
+ 3,0,116,2,0,106,4,0,116,2,0,106,5,0,66,116,
+ 2,0,106,6,0,66,124,2,0,100,2,0,64,131,3,0,
+ 125,4,0,121,60,0,116,7,0,106,8,0,124,4,0,100,
+ 3,0,131,2,0,143,20,0,125,5,0,124,5,0,106,9,
+ 0,124,1,0,131,1,0,1,87,100,4,0,81,88,116,2,
+ 0,106,10,0,124,3,0,124,0,0,131,2,0,1,87,110,
+ 59,0,4,116,11,0,107,10,0,114,187,0,1,1,1,121,
+ 17,0,116,2,0,106,12,0,124,3,0,131,1,0,1,87,
+ 110,18,0,4,116,11,0,107,10,0,114,179,0,1,1,1,
+ 89,110,1,0,88,130,0,0,89,110,1,0,88,100,4,0,
+ 83,40,5,0,0,0,117,162,0,0,0,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,117,5,0,
+ 0,0,123,125,46,123,125,105,182,1,0,0,116,2,0,0,
+ 0,119,98,78,40,13,0,0,0,244,6,0,0,0,102,111,
+ 114,109,97,116,244,2,0,0,0,105,100,114,3,0,0,0,
+ 116,4,0,0,0,111,112,101,110,116,6,0,0,0,79,95,
+ 69,88,67,76,116,7,0,0,0,79,95,67,82,69,65,84,
+ 116,8,0,0,0,79,95,87,82,79,78,76,89,244,3,0,
+ 0,0,95,105,111,244,6,0,0,0,70,105,108,101,73,79,
+ 244,5,0,0,0,119,114,105,116,101,244,7,0,0,0,114,
+ 101,112,108,97,99,101,114,40,0,0,0,116,6,0,0,0,
+ 117,110,108,105,110,107,40,6,0,0,0,114,35,0,0,0,
+ 244,4,0,0,0,100,97,116,97,114,42,0,0,0,116,8,
+ 0,0,0,112,97,116,104,95,116,109,112,116,2,0,0,0,
+ 102,100,244,4,0,0,0,102,105,108,101,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,244,13,0,0,0,95,
+ 119,114,105,116,101,95,97,116,111,109,105,99,91,0,0,0,
+ 115,26,0,0,0,0,5,24,1,9,1,33,1,3,3,21,
+ 1,19,1,20,1,13,1,3,1,17,1,13,1,5,1,114,
+ 54,0,0,0,99,2,0,0,0,0,0,0,0,3,0,0,
+ 0,7,0,0,0,67,0,0,0,115,95,0,0,0,120,69,
+ 0,100,1,0,100,2,0,100,3,0,100,4,0,103,4,0,
+ 68,93,49,0,125,2,0,116,0,0,124,1,0,124,2,0,
+ 131,2,0,114,19,0,116,1,0,124,0,0,124,2,0,116,
+ 2,0,124,1,0,124,2,0,131,2,0,131,3,0,1,113,
+ 19,0,113,19,0,87,124,0,0,106,3,0,106,4,0,124,
+ 1,0,106,3,0,131,1,0,1,100,5,0,83,40,6,0,
+ 0,0,117,47,0,0,0,83,105,109,112,108,101,32,115,117,
+ 98,115,116,105,116,117,116,101,32,102,111,114,32,102,117,110,
+ 99,116,111,111,108,115,46,117,112,100,97,116,101,95,119,114,
+ 97,112,112,101,114,46,244,10,0,0,0,95,95,109,111,100,
+ 117,108,101,95,95,244,8,0,0,0,95,95,110,97,109,101,
+ 95,95,244,12,0,0,0,95,95,113,117,97,108,110,97,109,
+ 101,95,95,244,7,0,0,0,95,95,100,111,99,95,95,78,
+ 40,5,0,0,0,244,7,0,0,0,104,97,115,97,116,116,
+ 114,244,7,0,0,0,115,101,116,97,116,116,114,244,7,0,
+ 0,0,103,101,116,97,116,116,114,244,8,0,0,0,95,95,
+ 100,105,99,116,95,95,244,6,0,0,0,117,112,100,97,116,
+ 101,40,3,0,0,0,116,3,0,0,0,110,101,119,116,3,
+ 0,0,0,111,108,100,114,51,0,0,0,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,244,5,0,0,0,95,
+ 119,114,97,112,113,0,0,0,115,8,0,0,0,0,2,25,
+ 1,15,1,32,1,114,64,0,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,115,
+ 16,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,
+ 100,1,0,83,40,2,0,0,0,244,14,0,0,0,95,68,
+ 101,97,100,108,111,99,107,69,114,114,111,114,78,40,3,0,
+ 0,0,114,56,0,0,0,114,55,0,0,0,114,57,0,0,
+ 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,114,65,0,0,0,132,0,0,0,115,2,
+ 0,0,0,12,1,114,65,0,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,
+ 82,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,
+ 100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,90,
+ 4,0,100,4,0,100,5,0,132,0,0,90,5,0,100,6,
+ 0,100,7,0,132,0,0,90,6,0,100,8,0,100,9,0,
+ 132,0,0,90,7,0,100,10,0,100,11,0,132,0,0,90,
+ 8,0,100,12,0,83,40,13,0,0,0,244,11,0,0,0,
+ 95,77,111,100,117,108,101,76,111,99,107,117,169,0,0,0,
+ 65,32,114,101,99,117,114,115,105,118,101,32,108,111,99,107,
+ 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,
+ 119,104,105,99,104,32,105,115,32,97,98,108,101,32,116,111,
+ 32,100,101,116,101,99,116,32,100,101,97,100,108,111,99,107,
+ 115,10,32,32,32,32,40,101,46,103,46,32,116,104,114,101,
+ 97,100,32,49,32,116,114,121,105,110,103,32,116,111,32,116,
+ 97,107,101,32,108,111,99,107,115,32,65,32,116,104,101,110,
+ 32,66,44,32,97,110,100,32,116,104,114,101,97,100,32,50,
+ 32,116,114,121,105,110,103,32,116,111,10,32,32,32,32,116,
+ 97,107,101,32,108,111,99,107,115,32,66,32,116,104,101,110,
+ 32,65,41,46,10,32,32,32,32,99,2,0,0,0,0,0,
+ 0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,70,
+ 0,0,0,116,0,0,106,1,0,131,0,0,124,0,0,95,
+ 2,0,116,0,0,106,1,0,131,0,0,124,0,0,95,3,
+ 0,124,1,0,124,0,0,95,4,0,100,0,0,124,0,0,
+ 95,5,0,100,1,0,124,0,0,95,6,0,100,1,0,124,
+ 0,0,95,7,0,100,0,0,83,40,2,0,0,0,78,233,
+ 0,0,0,0,40,8,0,0,0,244,7,0,0,0,95,116,
+ 104,114,101,97,100,116,13,0,0,0,97,108,108,111,99,97,
+ 116,101,95,108,111,99,107,244,4,0,0,0,108,111,99,107,
+ 244,6,0,0,0,119,97,107,101,117,112,244,4,0,0,0,
+ 110,97,109,101,244,5,0,0,0,111,119,110,101,114,244,5,
+ 0,0,0,99,111,117,110,116,244,7,0,0,0,119,97,105,
+ 116,101,114,115,40,2,0,0,0,244,4,0,0,0,115,101,
+ 108,102,114,71,0,0,0,114,4,0,0,0,114,4,0,0,
+ 0,114,5,0,0,0,244,8,0,0,0,95,95,105,110,105,
+ 116,95,95,142,0,0,0,115,12,0,0,0,0,1,15,1,
15,1,9,1,9,1,9,1,117,20,0,0,0,95,77,111,
100,117,108,101,76,111,99,107,46,95,95,105,110,105,116,95,
95,99,1,0,0,0,0,0,0,0,4,0,0,0,2,0,
@@ -430,1182 +364,1232 @@ unsigned char _Py_M__importlib[] = {
3,0,124,3,0,100,0,0,107,8,0,114,55,0,100,1,
0,83,124,3,0,106,2,0,125,2,0,124,2,0,124,1,
0,107,2,0,114,24,0,100,2,0,83,113,24,0,100,0,
- 0,83,40,3,0,0,0,78,70,84,40,8,0,0,0,117,
- 7,0,0,0,95,116,104,114,101,97,100,117,9,0,0,0,
- 103,101,116,95,105,100,101,110,116,117,5,0,0,0,111,119,
- 110,101,114,117,12,0,0,0,95,98,108,111,99,107,105,110,
- 103,95,111,110,117,3,0,0,0,103,101,116,117,4,0,0,
- 0,78,111,110,101,117,5,0,0,0,70,97,108,115,101,117,
- 4,0,0,0,84,114,117,101,40,4,0,0,0,117,4,0,
- 0,0,115,101,108,102,117,2,0,0,0,109,101,117,3,0,
- 0,0,116,105,100,117,4,0,0,0,108,111,99,107,40,0,
- 0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,
- 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
- 98,111,111,116,115,116,114,97,112,62,117,12,0,0,0,104,
- 97,115,95,100,101,97,100,108,111,99,107,189,0,0,0,115,
- 18,0,0,0,0,2,12,1,9,1,3,1,15,1,12,1,
- 4,1,9,1,12,1,117,24,0,0,0,95,77,111,100,117,
- 108,101,76,111,99,107,46,104,97,115,95,100,101,97,100,108,
- 111,99,107,99,1,0,0,0,0,0,0,0,2,0,0,0,
- 17,0,0,0,67,0,0,0,115,214,0,0,0,116,0,0,
- 106,1,0,131,0,0,125,1,0,124,0,0,116,2,0,124,
- 1,0,60,122,177,0,120,170,0,124,0,0,106,3,0,143,
- 130,0,1,124,0,0,106,4,0,100,1,0,107,2,0,115,
- 68,0,124,0,0,106,5,0,124,1,0,107,2,0,114,96,
- 0,124,1,0,124,0,0,95,5,0,124,0,0,4,106,4,
- 0,100,2,0,55,2,95,4,0,100,5,0,83,124,0,0,
- 106,7,0,131,0,0,114,127,0,116,8,0,100,3,0,124,
- 0,0,22,131,1,0,130,1,0,110,0,0,124,0,0,106,
- 9,0,106,10,0,100,6,0,131,1,0,114,163,0,124,0,
- 0,4,106,12,0,100,2,0,55,2,95,12,0,110,0,0,
- 87,100,4,0,81,88,124,0,0,106,9,0,106,10,0,131,
- 0,0,1,124,0,0,106,9,0,106,13,0,131,0,0,1,
- 113,28,0,87,100,4,0,116,2,0,124,1,0,61,88,100,
- 4,0,83,40,7,0,0,0,117,185,0,0,0,10,32,32,
- 32,32,32,32,32,32,65,99,113,117,105,114,101,32,116,104,
- 101,32,109,111,100,117,108,101,32,108,111,99,107,46,32,32,
- 73,102,32,97,32,112,111,116,101,110,116,105,97,108,32,100,
- 101,97,100,108,111,99,107,32,105,115,32,100,101,116,101,99,
- 116,101,100,44,10,32,32,32,32,32,32,32,32,97,32,95,
- 68,101,97,100,108,111,99,107,69,114,114,111,114,32,105,115,
- 32,114,97,105,115,101,100,46,10,32,32,32,32,32,32,32,
- 32,79,116,104,101,114,119,105,115,101,44,32,116,104,101,32,
- 108,111,99,107,32,105,115,32,97,108,119,97,121,115,32,97,
- 99,113,117,105,114,101,100,32,97,110,100,32,84,114,117,101,
- 32,105,115,32,114,101,116,117,114,110,101,100,46,10,32,32,
- 32,32,32,32,32,32,105,0,0,0,0,105,1,0,0,0,
- 117,23,0,0,0,100,101,97,100,108,111,99,107,32,100,101,
- 116,101,99,116,101,100,32,98,121,32,37,114,78,84,70,40,
- 14,0,0,0,117,7,0,0,0,95,116,104,114,101,97,100,
- 117,9,0,0,0,103,101,116,95,105,100,101,110,116,117,12,
- 0,0,0,95,98,108,111,99,107,105,110,103,95,111,110,117,
- 4,0,0,0,108,111,99,107,117,5,0,0,0,99,111,117,
- 110,116,117,5,0,0,0,111,119,110,101,114,117,4,0,0,
- 0,84,114,117,101,117,12,0,0,0,104,97,115,95,100,101,
- 97,100,108,111,99,107,117,14,0,0,0,95,68,101,97,100,
- 108,111,99,107,69,114,114,111,114,117,6,0,0,0,119,97,
- 107,101,117,112,117,7,0,0,0,97,99,113,117,105,114,101,
- 117,5,0,0,0,70,97,108,115,101,117,7,0,0,0,119,
- 97,105,116,101,114,115,117,7,0,0,0,114,101,108,101,97,
- 115,101,40,2,0,0,0,117,4,0,0,0,115,101,108,102,
- 117,3,0,0,0,116,105,100,40,0,0,0,0,40,0,0,
- 0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
- 109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
- 114,97,112,62,117,7,0,0,0,97,99,113,117,105,114,101,
- 201,0,0,0,115,32,0,0,0,0,6,12,1,10,1,3,
- 1,3,1,10,1,30,1,9,1,15,1,4,1,12,1,19,
- 1,18,1,24,2,13,1,20,2,117,19,0,0,0,95,77,
- 111,100,117,108,101,76,111,99,107,46,97,99,113,117,105,114,
- 101,99,1,0,0,0,0,0,0,0,2,0,0,0,10,0,
- 0,0,67,0,0,0,115,165,0,0,0,116,0,0,106,1,
- 0,131,0,0,125,1,0,124,0,0,106,2,0,143,138,0,
- 1,124,0,0,106,3,0,124,1,0,107,3,0,114,52,0,
- 116,4,0,100,1,0,131,1,0,130,1,0,110,0,0,124,
- 0,0,106,5,0,100,2,0,107,4,0,115,73,0,116,6,
- 0,130,1,0,124,0,0,4,106,5,0,100,3,0,56,2,
- 95,5,0,124,0,0,106,5,0,100,2,0,107,2,0,114,
- 155,0,100,0,0,124,0,0,95,3,0,124,0,0,106,8,
- 0,114,155,0,124,0,0,4,106,8,0,100,3,0,56,2,
- 95,8,0,124,0,0,106,9,0,106,10,0,131,0,0,1,
- 113,155,0,110,0,0,87,100,0,0,81,88,100,0,0,83,
- 40,4,0,0,0,78,117,31,0,0,0,99,97,110,110,111,
- 116,32,114,101,108,101,97,115,101,32,117,110,45,97,99,113,
- 117,105,114,101,100,32,108,111,99,107,105,0,0,0,0,105,
- 1,0,0,0,40,11,0,0,0,117,7,0,0,0,95,116,
- 104,114,101,97,100,117,9,0,0,0,103,101,116,95,105,100,
- 101,110,116,117,4,0,0,0,108,111,99,107,117,5,0,0,
- 0,111,119,110,101,114,117,12,0,0,0,82,117,110,116,105,
- 109,101,69,114,114,111,114,117,5,0,0,0,99,111,117,110,
- 116,117,14,0,0,0,65,115,115,101,114,116,105,111,110,69,
- 114,114,111,114,117,4,0,0,0,78,111,110,101,117,7,0,
- 0,0,119,97,105,116,101,114,115,117,6,0,0,0,119,97,
- 107,101,117,112,117,7,0,0,0,114,101,108,101,97,115,101,
- 40,2,0,0,0,117,4,0,0,0,115,101,108,102,117,3,
- 0,0,0,116,105,100,40,0,0,0,0,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,7,0,0,0,114,101,108,101,97,115,101,226,0,
- 0,0,115,22,0,0,0,0,1,12,1,10,1,15,1,15,
- 1,21,1,15,1,15,1,9,1,9,1,15,1,117,19,0,
- 0,0,95,77,111,100,117,108,101,76,111,99,107,46,114,101,
- 108,101,97,115,101,99,1,0,0,0,0,0,0,0,1,0,
- 0,0,4,0,0,0,67,0,0,0,115,23,0,0,0,100,
- 1,0,124,0,0,106,0,0,116,1,0,124,0,0,131,1,
- 0,102,2,0,22,83,40,2,0,0,0,78,117,21,0,0,
- 0,95,77,111,100,117,108,101,76,111,99,107,40,37,114,41,
- 32,97,116,32,37,100,40,2,0,0,0,117,4,0,0,0,
- 110,97,109,101,117,2,0,0,0,105,100,40,1,0,0,0,
- 117,4,0,0,0,115,101,108,102,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,8,0,0,0,95,95,114,101,112,114,
- 95,95,239,0,0,0,115,2,0,0,0,0,1,117,20,0,
+ 0,83,40,3,0,0,0,78,70,84,40,5,0,0,0,114,
+ 68,0,0,0,244,9,0,0,0,103,101,116,95,105,100,101,
+ 110,116,114,72,0,0,0,244,12,0,0,0,95,98,108,111,
+ 99,107,105,110,103,95,111,110,244,3,0,0,0,103,101,116,
+ 40,4,0,0,0,114,75,0,0,0,244,2,0,0,0,109,
+ 101,244,3,0,0,0,116,105,100,114,69,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,244,12,0,
+ 0,0,104,97,115,95,100,101,97,100,108,111,99,107,150,0,
+ 0,0,115,18,0,0,0,0,2,12,1,9,1,3,1,15,
+ 1,12,1,4,1,9,1,12,1,117,24,0,0,0,95,77,
+ 111,100,117,108,101,76,111,99,107,46,104,97,115,95,100,101,
+ 97,100,108,111,99,107,99,1,0,0,0,0,0,0,0,2,
+ 0,0,0,17,0,0,0,67,0,0,0,115,214,0,0,0,
+ 116,0,0,106,1,0,131,0,0,125,1,0,124,0,0,116,
+ 2,0,124,1,0,60,122,177,0,120,170,0,124,0,0,106,
+ 3,0,143,130,0,1,124,0,0,106,4,0,100,1,0,107,
+ 2,0,115,68,0,124,0,0,106,5,0,124,1,0,107,2,
+ 0,114,96,0,124,1,0,124,0,0,95,5,0,124,0,0,
+ 4,106,4,0,100,2,0,55,2,95,4,0,100,3,0,83,
+ 124,0,0,106,6,0,131,0,0,114,127,0,116,7,0,100,
+ 4,0,124,0,0,22,131,1,0,130,1,0,110,0,0,124,
+ 0,0,106,8,0,106,9,0,100,5,0,131,1,0,114,163,
+ 0,124,0,0,4,106,10,0,100,2,0,55,2,95,10,0,
+ 110,0,0,87,100,6,0,81,88,124,0,0,106,8,0,106,
+ 9,0,131,0,0,1,124,0,0,106,8,0,106,11,0,131,
+ 0,0,1,113,28,0,87,100,6,0,116,2,0,124,1,0,
+ 61,88,100,6,0,83,40,7,0,0,0,117,185,0,0,0,
+ 10,32,32,32,32,32,32,32,32,65,99,113,117,105,114,101,
+ 32,116,104,101,32,109,111,100,117,108,101,32,108,111,99,107,
+ 46,32,32,73,102,32,97,32,112,111,116,101,110,116,105,97,
+ 108,32,100,101,97,100,108,111,99,107,32,105,115,32,100,101,
+ 116,101,99,116,101,100,44,10,32,32,32,32,32,32,32,32,
+ 97,32,95,68,101,97,100,108,111,99,107,69,114,114,111,114,
+ 32,105,115,32,114,97,105,115,101,100,46,10,32,32,32,32,
+ 32,32,32,32,79,116,104,101,114,119,105,115,101,44,32,116,
+ 104,101,32,108,111,99,107,32,105,115,32,97,108,119,97,121,
+ 115,32,97,99,113,117,105,114,101,100,32,97,110,100,32,84,
+ 114,117,101,32,105,115,32,114,101,116,117,114,110,101,100,46,
+ 10,32,32,32,32,32,32,32,32,114,67,0,0,0,114,29,
+ 0,0,0,84,117,23,0,0,0,100,101,97,100,108,111,99,
+ 107,32,100,101,116,101,99,116,101,100,32,98,121,32,37,114,
+ 70,78,40,12,0,0,0,114,68,0,0,0,114,77,0,0,
+ 0,114,78,0,0,0,114,69,0,0,0,114,73,0,0,0,
+ 114,72,0,0,0,114,82,0,0,0,114,65,0,0,0,114,
+ 70,0,0,0,244,7,0,0,0,97,99,113,117,105,114,101,
+ 114,74,0,0,0,244,7,0,0,0,114,101,108,101,97,115,
+ 101,40,2,0,0,0,114,75,0,0,0,114,81,0,0,0,
+ 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,
+ 83,0,0,0,162,0,0,0,115,32,0,0,0,0,6,12,
+ 1,10,1,3,1,3,1,10,1,30,1,9,1,15,1,4,
+ 1,12,1,19,1,18,1,24,2,13,1,20,2,117,19,0,
+ 0,0,95,77,111,100,117,108,101,76,111,99,107,46,97,99,
+ 113,117,105,114,101,99,1,0,0,0,0,0,0,0,2,0,
+ 0,0,10,0,0,0,67,0,0,0,115,165,0,0,0,116,
+ 0,0,106,1,0,131,0,0,125,1,0,124,0,0,106,2,
+ 0,143,138,0,1,124,0,0,106,3,0,124,1,0,107,3,
+ 0,114,52,0,116,4,0,100,1,0,131,1,0,130,1,0,
+ 110,0,0,124,0,0,106,5,0,100,2,0,107,4,0,115,
+ 73,0,116,6,0,130,1,0,124,0,0,4,106,5,0,100,
+ 3,0,56,2,95,5,0,124,0,0,106,5,0,100,2,0,
+ 107,2,0,114,155,0,100,0,0,124,0,0,95,3,0,124,
+ 0,0,106,7,0,114,155,0,124,0,0,4,106,7,0,100,
+ 3,0,56,2,95,7,0,124,0,0,106,8,0,106,9,0,
+ 131,0,0,1,113,155,0,110,0,0,87,100,0,0,81,88,
+ 100,0,0,83,40,4,0,0,0,78,117,31,0,0,0,99,
+ 97,110,110,111,116,32,114,101,108,101,97,115,101,32,117,110,
+ 45,97,99,113,117,105,114,101,100,32,108,111,99,107,114,67,
+ 0,0,0,114,29,0,0,0,40,10,0,0,0,114,68,0,
+ 0,0,114,77,0,0,0,114,69,0,0,0,114,72,0,0,
+ 0,244,12,0,0,0,82,117,110,116,105,109,101,69,114,114,
+ 111,114,114,73,0,0,0,244,14,0,0,0,65,115,115,101,
+ 114,116,105,111,110,69,114,114,111,114,114,74,0,0,0,114,
+ 70,0,0,0,114,84,0,0,0,40,2,0,0,0,114,75,
+ 0,0,0,114,81,0,0,0,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,114,84,0,0,0,187,0,0,0,
+ 115,22,0,0,0,0,1,12,1,10,1,15,1,15,1,21,
+ 1,15,1,15,1,9,1,9,1,15,1,117,19,0,0,0,
+ 95,77,111,100,117,108,101,76,111,99,107,46,114,101,108,101,
+ 97,115,101,99,1,0,0,0,0,0,0,0,1,0,0,0,
+ 4,0,0,0,67,0,0,0,115,25,0,0,0,100,1,0,
+ 106,0,0,124,0,0,106,1,0,116,2,0,124,0,0,131,
+ 1,0,131,2,0,83,40,2,0,0,0,78,117,23,0,0,
+ 0,95,77,111,100,117,108,101,76,111,99,107,40,123,33,114,
+ 125,41,32,97,116,32,123,125,40,3,0,0,0,114,46,0,
+ 0,0,114,71,0,0,0,114,47,0,0,0,40,1,0,0,
+ 0,114,75,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,244,8,0,0,0,95,95,114,101,112,114,
+ 95,95,200,0,0,0,115,2,0,0,0,0,1,117,20,0,
0,0,95,77,111,100,117,108,101,76,111,99,107,46,95,95,
- 114,101,112,114,95,95,78,40,9,0,0,0,117,8,0,0,
- 0,95,95,110,97,109,101,95,95,117,10,0,0,0,95,95,
- 109,111,100,117,108,101,95,95,117,12,0,0,0,95,95,113,
- 117,97,108,110,97,109,101,95,95,117,7,0,0,0,95,95,
- 100,111,99,95,95,117,8,0,0,0,95,95,105,110,105,116,
- 95,95,117,12,0,0,0,104,97,115,95,100,101,97,100,108,
- 111,99,107,117,7,0,0,0,97,99,113,117,105,114,101,117,
- 7,0,0,0,114,101,108,101,97,115,101,117,8,0,0,0,
- 95,95,114,101,112,114,95,95,40,1,0,0,0,117,10,0,
- 0,0,95,95,108,111,99,97,108,115,95,95,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,11,0,0,0,95,77,111,
- 100,117,108,101,76,111,99,107,175,0,0,0,115,12,0,0,
- 0,16,4,6,2,12,8,12,12,12,25,12,13,117,11,0,
- 0,0,95,77,111,100,117,108,101,76,111,99,107,99,1,0,
- 0,0,0,0,0,0,1,0,0,0,2,0,0,0,66,0,
- 0,0,115,74,0,0,0,124,0,0,69,101,0,0,90,1,
- 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,
- 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,
- 0,0,90,5,0,100,6,0,100,7,0,132,0,0,90,6,
- 0,100,8,0,100,9,0,132,0,0,90,7,0,100,10,0,
- 83,40,11,0,0,0,117,16,0,0,0,95,68,117,109,109,
- 121,77,111,100,117,108,101,76,111,99,107,117,86,0,0,0,
- 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,2,
- 0,0,0,2,0,0,0,67,0,0,0,115,22,0,0,0,
- 124,1,0,124,0,0,95,0,0,100,1,0,124,0,0,95,
- 1,0,100,0,0,83,40,2,0,0,0,78,105,0,0,0,
- 0,40,2,0,0,0,117,4,0,0,0,110,97,109,101,117,
- 5,0,0,0,99,111,117,110,116,40,2,0,0,0,117,4,
- 0,0,0,115,101,108,102,117,4,0,0,0,110,97,109,101,
- 40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,8,0,0,
- 0,95,95,105,110,105,116,95,95,247,0,0,0,115,4,0,
- 0,0,0,1,9,1,117,25,0,0,0,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,99,1,0,0,0,0,0,0,0,1,0,0,
- 0,3,0,0,0,67,0,0,0,115,19,0,0,0,124,0,
- 0,4,106,0,0,100,1,0,55,2,95,0,0,100,2,0,
- 83,40,3,0,0,0,78,105,1,0,0,0,84,40,2,0,
- 0,0,117,5,0,0,0,99,111,117,110,116,117,4,0,0,
- 0,84,114,117,101,40,1,0,0,0,117,4,0,0,0,115,
- 101,108,102,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 7,0,0,0,97,99,113,117,105,114,101,251,0,0,0,115,
- 4,0,0,0,0,1,15,1,117,24,0,0,0,95,68,117,
- 109,109,121,77,111,100,117,108,101,76,111,99,107,46,97,99,
- 113,117,105,114,101,99,1,0,0,0,0,0,0,0,1,0,
- 0,0,3,0,0,0,67,0,0,0,115,49,0,0,0,124,
- 0,0,106,0,0,100,1,0,107,2,0,114,30,0,116,1,
- 0,100,2,0,131,1,0,130,1,0,110,0,0,124,0,0,
- 4,106,0,0,100,3,0,56,2,95,0,0,100,0,0,83,
- 40,4,0,0,0,78,105,0,0,0,0,117,31,0,0,0,
- 99,97,110,110,111,116,32,114,101,108,101,97,115,101,32,117,
- 110,45,97,99,113,117,105,114,101,100,32,108,111,99,107,105,
- 1,0,0,0,40,2,0,0,0,117,5,0,0,0,99,111,
- 117,110,116,117,12,0,0,0,82,117,110,116,105,109,101,69,
- 114,114,111,114,40,1,0,0,0,117,4,0,0,0,115,101,
- 108,102,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,7,
- 0,0,0,114,101,108,101,97,115,101,255,0,0,0,115,6,
- 0,0,0,0,1,15,1,15,1,117,24,0,0,0,95,68,
- 117,109,109,121,77,111,100,117,108,101,76,111,99,107,46,114,
- 101,108,101,97,115,101,99,1,0,0,0,0,0,0,0,1,
- 0,0,0,4,0,0,0,67,0,0,0,115,23,0,0,0,
- 100,1,0,124,0,0,106,0,0,116,1,0,124,0,0,131,
- 1,0,102,2,0,22,83,40,2,0,0,0,78,117,26,0,
- 0,0,95,68,117,109,109,121,77,111,100,117,108,101,76,111,
- 99,107,40,37,114,41,32,97,116,32,37,100,40,2,0,0,
- 0,117,4,0,0,0,110,97,109,101,117,2,0,0,0,105,
- 100,40,1,0,0,0,117,4,0,0,0,115,101,108,102,40,
- 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
- 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
- 95,98,111,111,116,115,116,114,97,112,62,117,8,0,0,0,
- 95,95,114,101,112,114,95,95,4,1,0,0,115,2,0,0,
+ 114,101,112,114,95,95,78,40,9,0,0,0,114,56,0,0,
+ 0,114,55,0,0,0,114,57,0,0,0,114,58,0,0,0,
+ 114,76,0,0,0,114,82,0,0,0,114,83,0,0,0,114,
+ 84,0,0,0,114,87,0,0,0,114,4,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,114,66,0,
+ 0,0,136,0,0,0,115,12,0,0,0,12,4,6,2,12,
+ 8,12,12,12,25,12,13,114,66,0,0,0,99,0,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
+ 0,115,70,0,0,0,101,0,0,90,1,0,100,0,0,90,
+ 2,0,100,1,0,90,3,0,100,2,0,100,3,0,132,0,
+ 0,90,4,0,100,4,0,100,5,0,132,0,0,90,5,0,
+ 100,6,0,100,7,0,132,0,0,90,6,0,100,8,0,100,
+ 9,0,132,0,0,90,7,0,100,10,0,83,40,11,0,0,
+ 0,244,16,0,0,0,95,68,117,109,109,121,77,111,100,117,
+ 108,101,76,111,99,107,117,86,0,0,0,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,2,0,0,0,2,0,
+ 0,0,67,0,0,0,115,22,0,0,0,124,1,0,124,0,
+ 0,95,0,0,100,1,0,124,0,0,95,1,0,100,0,0,
+ 83,40,2,0,0,0,78,114,67,0,0,0,40,2,0,0,
+ 0,114,71,0,0,0,114,73,0,0,0,40,2,0,0,0,
+ 114,75,0,0,0,114,71,0,0,0,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,114,76,0,0,0,208,0,
+ 0,0,115,4,0,0,0,0,1,9,1,117,25,0,0,0,
+ 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,99,1,0,0,0,0,0,
+ 0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,19,
+ 0,0,0,124,0,0,4,106,0,0,100,1,0,55,2,95,
+ 0,0,100,2,0,83,40,3,0,0,0,78,114,29,0,0,
+ 0,84,40,1,0,0,0,114,73,0,0,0,40,1,0,0,
+ 0,114,75,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,114,83,0,0,0,212,0,0,0,115,4,
+ 0,0,0,0,1,15,1,117,24,0,0,0,95,68,117,109,
+ 109,121,77,111,100,117,108,101,76,111,99,107,46,97,99,113,
+ 117,105,114,101,99,1,0,0,0,0,0,0,0,1,0,0,
+ 0,3,0,0,0,67,0,0,0,115,49,0,0,0,124,0,
+ 0,106,0,0,100,1,0,107,2,0,114,30,0,116,1,0,
+ 100,2,0,131,1,0,130,1,0,110,0,0,124,0,0,4,
+ 106,0,0,100,3,0,56,2,95,0,0,100,0,0,83,40,
+ 4,0,0,0,78,114,67,0,0,0,117,31,0,0,0,99,
+ 97,110,110,111,116,32,114,101,108,101,97,115,101,32,117,110,
+ 45,97,99,113,117,105,114,101,100,32,108,111,99,107,114,29,
+ 0,0,0,40,2,0,0,0,114,73,0,0,0,114,85,0,
+ 0,0,40,1,0,0,0,114,75,0,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,114,84,0,0,0,
+ 216,0,0,0,115,6,0,0,0,0,1,15,1,15,1,117,
+ 24,0,0,0,95,68,117,109,109,121,77,111,100,117,108,101,
+ 76,111,99,107,46,114,101,108,101,97,115,101,99,1,0,0,
+ 0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,
+ 0,115,25,0,0,0,100,1,0,106,0,0,124,0,0,106,
+ 1,0,116,2,0,124,0,0,131,1,0,131,2,0,83,40,
+ 2,0,0,0,78,117,28,0,0,0,95,68,117,109,109,121,
+ 77,111,100,117,108,101,76,111,99,107,40,123,33,114,125,41,
+ 32,97,116,32,123,125,40,3,0,0,0,114,46,0,0,0,
+ 114,71,0,0,0,114,47,0,0,0,40,1,0,0,0,114,
+ 75,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,114,87,0,0,0,221,0,0,0,115,2,0,0,
0,0,1,117,25,0,0,0,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,78,40,8,0,0,0,117,8,0,0,0,95,95,110,97,
- 109,101,95,95,117,10,0,0,0,95,95,109,111,100,117,108,
- 101,95,95,117,12,0,0,0,95,95,113,117,97,108,110,97,
- 109,101,95,95,117,7,0,0,0,95,95,100,111,99,95,95,
- 117,8,0,0,0,95,95,105,110,105,116,95,95,117,7,0,
- 0,0,97,99,113,117,105,114,101,117,7,0,0,0,114,101,
- 108,101,97,115,101,117,8,0,0,0,95,95,114,101,112,114,
- 95,95,40,1,0,0,0,117,10,0,0,0,95,95,108,111,
- 99,97,108,115,95,95,40,0,0,0,0,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,16,0,0,0,95,68,117,109,109,121,77,111,100,
- 117,108,101,76,111,99,107,243,0,0,0,115,10,0,0,0,
- 16,2,6,2,12,4,12,4,12,5,117,16,0,0,0,95,
- 68,117,109,109,121,77,111,100,117,108,101,76,111,99,107,99,
- 1,0,0,0,0,0,0,0,3,0,0,0,11,0,0,0,
- 3,0,0,0,115,142,0,0,0,100,3,0,125,1,0,121,
- 17,0,116,1,0,136,0,0,25,131,0,0,125,1,0,87,
- 110,18,0,4,116,2,0,107,10,0,114,43,0,1,1,1,
- 89,110,1,0,88,124,1,0,100,3,0,107,8,0,114,138,
- 0,116,3,0,100,3,0,107,8,0,114,83,0,116,4,0,
- 136,0,0,131,1,0,125,1,0,110,12,0,116,5,0,136,
- 0,0,131,1,0,125,1,0,135,0,0,102,1,0,100,1,
- 0,100,2,0,134,0,0,125,2,0,116,6,0,106,7,0,
- 124,1,0,124,2,0,131,2,0,116,1,0,136,0,0,60,
- 110,0,0,124,1,0,83,40,4,0,0,0,117,109,0,0,
- 0,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,83,104,111,
- 117,108,100,32,111,110,108,121,32,98,101,32,99,97,108,108,
- 101,100,32,119,105,116,104,32,116,104,101,32,105,109,112,111,
- 114,116,32,108,111,99,107,32,116,97,107,101,110,46,99,1,
- 0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,19,
- 0,0,0,115,11,0,0,0,116,0,0,136,0,0,61,100,
- 0,0,83,40,1,0,0,0,78,40,1,0,0,0,117,13,
- 0,0,0,95,109,111,100,117,108,101,95,108,111,99,107,115,
- 40,1,0,0,0,117,1,0,0,0,95,40,1,0,0,0,
- 117,4,0,0,0,110,97,109,101,40,0,0,0,0,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,2,0,0,0,99,98,24,1,0,0,115,2,0,0,0,
+ 95,78,40,8,0,0,0,114,56,0,0,0,114,55,0,0,
+ 0,114,57,0,0,0,114,58,0,0,0,114,76,0,0,0,
+ 114,83,0,0,0,114,84,0,0,0,114,87,0,0,0,114,
+ 4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,114,88,0,0,0,204,0,0,0,115,10,0,0,
+ 0,12,2,6,2,12,4,12,4,12,5,114,88,0,0,0,
+ 99,1,0,0,0,0,0,0,0,3,0,0,0,11,0,0,
+ 0,3,0,0,0,115,142,0,0,0,100,1,0,125,1,0,
+ 121,17,0,116,0,0,136,0,0,25,131,0,0,125,1,0,
+ 87,110,18,0,4,116,1,0,107,10,0,114,43,0,1,1,
+ 1,89,110,1,0,88,124,1,0,100,1,0,107,8,0,114,
+ 138,0,116,2,0,100,1,0,107,8,0,114,83,0,116,3,
+ 0,136,0,0,131,1,0,125,1,0,110,12,0,116,4,0,
+ 136,0,0,131,1,0,125,1,0,135,0,0,102,1,0,100,
+ 2,0,100,3,0,134,0,0,125,2,0,116,5,0,106,6,
+ 0,124,1,0,124,2,0,131,2,0,116,0,0,136,0,0,
+ 60,110,0,0,124,1,0,83,40,4,0,0,0,117,109,0,
+ 0,0,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,83,104,
+ 111,117,108,100,32,111,110,108,121,32,98,101,32,99,97,108,
+ 108,101,100,32,119,105,116,104,32,116,104,101,32,105,109,112,
+ 111,114,116,32,108,111,99,107,32,116,97,107,101,110,46,78,
+ 99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,
+ 0,19,0,0,0,115,11,0,0,0,116,0,0,136,0,0,
+ 61,100,0,0,83,40,1,0,0,0,78,40,1,0,0,0,
+ 244,13,0,0,0,95,109,111,100,117,108,101,95,108,111,99,
+ 107,115,40,1,0,0,0,114,36,0,0,0,40,1,0,0,
+ 0,114,71,0,0,0,114,4,0,0,0,114,5,0,0,0,
+ 244,2,0,0,0,99,98,241,0,0,0,115,2,0,0,0,
0,1,117,28,0,0,0,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,78,40,8,0,0,0,117,4,0,0,0,78,111,
- 110,101,117,13,0,0,0,95,109,111,100,117,108,101,95,108,
- 111,99,107,115,117,8,0,0,0,75,101,121,69,114,114,111,
- 114,117,7,0,0,0,95,116,104,114,101,97,100,117,16,0,
- 0,0,95,68,117,109,109,121,77,111,100,117,108,101,76,111,
- 99,107,117,11,0,0,0,95,77,111,100,117,108,101,76,111,
- 99,107,117,8,0,0,0,95,119,101,97,107,114,101,102,117,
- 3,0,0,0,114,101,102,40,3,0,0,0,117,4,0,0,
- 0,110,97,109,101,117,4,0,0,0,108,111,99,107,117,2,
- 0,0,0,99,98,40,0,0,0,0,40,1,0,0,0,117,
- 4,0,0,0,110,97,109,101,117,29,0,0,0,60,102,114,
- 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
- 98,111,111,116,115,116,114,97,112,62,117,16,0,0,0,95,
- 103,101,116,95,109,111,100,117,108,101,95,108,111,99,107,10,
- 1,0,0,115,24,0,0,0,0,4,6,1,3,1,17,1,
- 13,1,5,1,12,1,12,1,15,2,12,1,18,2,25,1,
- 117,16,0,0,0,95,103,101,116,95,109,111,100,117,108,101,
- 95,108,111,99,107,99,1,0,0,0,0,0,0,0,2,0,
- 0,0,11,0,0,0,67,0,0,0,115,71,0,0,0,116,
- 0,0,124,0,0,131,1,0,125,1,0,116,1,0,106,2,
- 0,131,0,0,1,121,14,0,124,1,0,106,3,0,131,0,
- 0,1,87,110,18,0,4,116,4,0,107,10,0,114,56,0,
- 1,1,1,89,110,11,0,88,124,1,0,106,5,0,131,0,
- 0,1,100,1,0,83,40,2,0,0,0,117,21,1,0,0,
- 82,101,108,101,97,115,101,32,116,104,101,32,103,108,111,98,
- 97,108,32,105,109,112,111,114,116,32,108,111,99,107,44,32,
- 97,110,100,32,97,99,113,117,105,114,101,115,32,116,104,101,
- 110,32,114,101,108,101,97,115,101,32,116,104,101,10,32,32,
- 32,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,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,10,
- 32,32,32,32,83,104,111,117,108,100,32,111,110,108,121,32,
- 98,101,32,99,97,108,108,101,100,32,119,105,116,104,32,116,
- 104,101,32,105,109,112,111,114,116,32,108,111,99,107,32,116,
- 97,107,101,110,46,78,40,6,0,0,0,117,16,0,0,0,
- 95,103,101,116,95,109,111,100,117,108,101,95,108,111,99,107,
- 117,4,0,0,0,95,105,109,112,117,12,0,0,0,114,101,
- 108,101,97,115,101,95,108,111,99,107,117,7,0,0,0,97,
- 99,113,117,105,114,101,117,14,0,0,0,95,68,101,97,100,
- 108,111,99,107,69,114,114,111,114,117,7,0,0,0,114,101,
- 108,101,97,115,101,40,2,0,0,0,117,4,0,0,0,110,
- 97,109,101,117,4,0,0,0,108,111,99,107,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,19,0,0,0,95,108,111,
- 99,107,95,117,110,108,111,99,107,95,109,111,100,117,108,101,
- 29,1,0,0,115,14,0,0,0,0,7,12,1,10,1,3,
- 1,14,1,13,3,5,2,117,19,0,0,0,95,108,111,99,
- 107,95,117,110,108,111,99,107,95,109,111,100,117,108,101,99,
- 1,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,
- 79,0,0,0,115,13,0,0,0,124,0,0,124,1,0,124,
- 2,0,142,0,0,83,40,1,0,0,0,117,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,40,0,
- 0,0,0,40,3,0,0,0,117,1,0,0,0,102,117,4,
- 0,0,0,97,114,103,115,117,4,0,0,0,107,119,100,115,
- 40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,25,0,0,
- 0,95,99,97,108,108,95,119,105,116,104,95,102,114,97,109,
- 101,115,95,114,101,109,111,118,101,100,49,1,0,0,115,2,
- 0,0,0,0,8,117,25,0,0,0,95,99,97,108,108,95,
- 119,105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,
- 118,101,100,105,158,12,0,0,117,1,0,0,0,13,105,16,
- 0,0,0,117,1,0,0,0,10,105,24,0,0,0,99,1,
- 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,99,
- 0,0,0,115,29,0,0,0,124,0,0,93,19,0,125,1,
- 0,116,0,0,124,1,0,63,100,0,0,64,86,1,113,3,
- 0,100,1,0,83,40,2,0,0,0,105,255,0,0,0,78,
- 40,1,0,0,0,117,17,0,0,0,95,82,65,87,95,77,
- 65,71,73,67,95,78,85,77,66,69,82,40,2,0,0,0,
- 117,2,0,0,0,46,48,117,1,0,0,0,110,40,0,0,
- 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
- 111,111,116,115,116,114,97,112,62,117,9,0,0,0,60,103,
- 101,110,101,120,112,114,62,150,1,0,0,115,2,0,0,0,
- 6,0,117,9,0,0,0,60,103,101,110,101,120,112,114,62,
- 105,0,0,0,0,105,25,0,0,0,105,8,0,0,0,117,
- 11,0,0,0,95,95,112,121,99,97,99,104,101,95,95,117,
- 3,0,0,0,46,112,121,117,4,0,0,0,46,112,121,99,
- 117,4,0,0,0,46,112,121,111,99,2,0,0,0,0,0,
- 0,0,11,0,0,0,6,0,0,0,67,0,0,0,115,180,
- 0,0,0,124,1,0,100,5,0,107,8,0,114,25,0,116,
- 1,0,106,2,0,106,3,0,12,110,3,0,124,1,0,125,
- 2,0,124,2,0,114,46,0,116,4,0,125,3,0,110,6,
- 0,116,5,0,125,3,0,116,6,0,124,0,0,131,1,0,
- 92,2,0,125,4,0,125,5,0,124,5,0,106,7,0,100,
- 1,0,131,1,0,92,3,0,125,6,0,125,7,0,125,8,
- 0,116,1,0,106,8,0,106,9,0,125,9,0,124,9,0,
- 100,5,0,107,8,0,114,133,0,116,10,0,100,2,0,131,
- 1,0,130,1,0,110,0,0,100,3,0,106,11,0,124,6,
- 0,124,7,0,124,9,0,124,3,0,100,4,0,25,103,4,
- 0,131,1,0,125,10,0,116,12,0,124,4,0,116,13,0,
- 124,10,0,131,3,0,83,40,6,0,0,0,117,244,1,0,
- 0,71,105,118,101,110,32,116,104,101,32,112,97,116,104,32,
- 116,111,32,97,32,46,112,121,32,102,105,108,101,44,32,114,
- 101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,
- 111,32,105,116,115,32,46,112,121,99,47,46,112,121,111,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,47,46,112,121,
- 111,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,32,32,84,104,101,32,101,120,116,101,110,115,105,
- 111,110,10,32,32,32,32,119,105,108,108,32,98,101,32,46,
- 112,121,99,32,117,110,108,101,115,115,32,115,121,115,46,102,
- 108,97,103,115,46,111,112,116,105,109,105,122,101,32,105,115,
- 32,110,111,110,45,122,101,114,111,44,32,116,104,101,110,32,
- 105,116,32,119,105,108,108,32,98,101,32,46,112,121,111,46,
- 10,10,32,32,32,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,32,116,104,101,110,32,105,116,32,109,117,115,
- 116,32,98,101,32,97,32,98,111,111,108,101,97,110,32,97,
- 110,100,32,105,115,32,117,115,101,100,32,105,110,10,32,32,
- 32,32,112,108,97,99,101,32,111,102,32,115,121,115,46,102,
- 108,97,103,115,46,111,112,116,105,109,105,122,101,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,117,1,0,0,0,46,117,36,0,0,0,
- 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,117,0,0,0,0,105,0,0,0,0,78,40,
- 14,0,0,0,117,4,0,0,0,78,111,110,101,117,3,0,
- 0,0,115,121,115,117,5,0,0,0,102,108,97,103,115,117,
- 8,0,0,0,111,112,116,105,109,105,122,101,117,23,0,0,
- 0,68,69,66,85,71,95,66,89,84,69,67,79,68,69,95,
- 83,85,70,70,73,88,69,83,117,27,0,0,0,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,117,11,0,0,0,95,112,97,
- 116,104,95,115,112,108,105,116,117,9,0,0,0,112,97,114,
- 116,105,116,105,111,110,117,14,0,0,0,105,109,112,108,101,
- 109,101,110,116,97,116,105,111,110,117,9,0,0,0,99,97,
- 99,104,101,95,116,97,103,117,19,0,0,0,78,111,116,73,
- 109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,117,
- 4,0,0,0,106,111,105,110,117,10,0,0,0,95,112,97,
- 116,104,95,106,111,105,110,117,8,0,0,0,95,80,89,67,
- 65,67,72,69,40,11,0,0,0,117,4,0,0,0,112,97,
- 116,104,117,14,0,0,0,100,101,98,117,103,95,111,118,101,
- 114,114,105,100,101,117,5,0,0,0,100,101,98,117,103,117,
- 8,0,0,0,115,117,102,102,105,120,101,115,117,4,0,0,
- 0,104,101,97,100,117,4,0,0,0,116,97,105,108,117,13,
+ 46,99,98,40,7,0,0,0,114,89,0,0,0,244,8,0,
+ 0,0,75,101,121,69,114,114,111,114,114,68,0,0,0,114,
+ 88,0,0,0,114,66,0,0,0,244,8,0,0,0,95,119,
+ 101,97,107,114,101,102,116,3,0,0,0,114,101,102,40,3,
+ 0,0,0,114,71,0,0,0,114,69,0,0,0,114,90,0,
+ 0,0,114,4,0,0,0,40,1,0,0,0,114,71,0,0,
+ 0,114,5,0,0,0,244,16,0,0,0,95,103,101,116,95,
+ 109,111,100,117,108,101,95,108,111,99,107,227,0,0,0,115,
+ 24,0,0,0,0,4,6,1,3,1,17,1,13,1,5,1,
+ 12,1,12,1,15,2,12,1,18,2,25,1,114,93,0,0,
+ 0,99,1,0,0,0,0,0,0,0,2,0,0,0,11,0,
+ 0,0,67,0,0,0,115,71,0,0,0,116,0,0,124,0,
+ 0,131,1,0,125,1,0,116,1,0,106,2,0,131,0,0,
+ 1,121,14,0,124,1,0,106,3,0,131,0,0,1,87,110,
+ 18,0,4,116,4,0,107,10,0,114,56,0,1,1,1,89,
+ 110,11,0,88,124,1,0,106,5,0,131,0,0,1,100,1,
+ 0,83,40,2,0,0,0,117,21,1,0,0,82,101,108,101,
+ 97,115,101,32,116,104,101,32,103,108,111,98,97,108,32,105,
+ 109,112,111,114,116,32,108,111,99,107,44,32,97,110,100,32,
+ 97,99,113,117,105,114,101,115,32,116,104,101,110,32,114,101,
+ 108,101,97,115,101,32,116,104,101,10,32,32,32,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,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,10,32,32,32,32,
+ 83,104,111,117,108,100,32,111,110,108,121,32,98,101,32,99,
+ 97,108,108,101,100,32,119,105,116,104,32,116,104,101,32,105,
+ 109,112,111,114,116,32,108,111,99,107,32,116,97,107,101,110,
+ 46,78,40,6,0,0,0,114,93,0,0,0,244,4,0,0,
+ 0,95,105,109,112,244,12,0,0,0,114,101,108,101,97,115,
+ 101,95,108,111,99,107,114,83,0,0,0,114,65,0,0,0,
+ 114,84,0,0,0,40,2,0,0,0,114,71,0,0,0,114,
+ 69,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,244,19,0,0,0,95,108,111,99,107,95,117,110,
+ 108,111,99,107,95,109,111,100,117,108,101,246,0,0,0,115,
+ 14,0,0,0,0,7,12,1,10,1,3,1,14,1,13,3,
+ 5,2,114,96,0,0,0,99,1,0,0,0,0,0,0,0,
+ 3,0,0,0,3,0,0,0,79,0,0,0,115,13,0,0,
+ 0,124,0,0,124,1,0,124,2,0,142,0,0,83,40,1,
+ 0,0,0,117,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,4,0,0,0,40,3,0,0,0,
+ 244,1,0,0,0,102,244,4,0,0,0,97,114,103,115,116,
+ 4,0,0,0,107,119,100,115,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,244,25,0,0,0,95,99,97,108,
+ 108,95,119,105,116,104,95,102,114,97,109,101,115,95,114,101,
+ 109,111,118,101,100,10,1,0,0,115,2,0,0,0,0,8,
+ 114,99,0,0,0,105,208,12,0,0,233,2,0,0,0,114,
+ 13,0,0,0,115,2,0,0,0,13,10,116,11,0,0,0,
+ 95,95,112,121,99,97,99,104,101,95,95,117,3,0,0,0,
+ 46,112,121,117,4,0,0,0,46,112,121,99,117,4,0,0,
+ 0,46,112,121,111,78,99,2,0,0,0,0,0,0,0,11,
+ 0,0,0,6,0,0,0,67,0,0,0,115,180,0,0,0,
+ 124,1,0,100,1,0,107,8,0,114,25,0,116,0,0,106,
+ 1,0,106,2,0,12,110,3,0,124,1,0,125,2,0,124,
+ 2,0,114,46,0,116,3,0,125,3,0,110,6,0,116,4,
+ 0,125,3,0,116,5,0,124,0,0,131,1,0,92,2,0,
+ 125,4,0,125,5,0,124,5,0,106,6,0,100,2,0,131,
+ 1,0,92,3,0,125,6,0,125,7,0,125,8,0,116,0,
+ 0,106,7,0,106,8,0,125,9,0,124,9,0,100,1,0,
+ 107,8,0,114,133,0,116,9,0,100,3,0,131,1,0,130,
+ 1,0,110,0,0,100,4,0,106,10,0,124,6,0,124,7,
+ 0,124,9,0,124,3,0,100,5,0,25,103,4,0,131,1,
+ 0,125,10,0,116,11,0,124,4,0,116,12,0,124,10,0,
+ 131,3,0,83,40,6,0,0,0,117,244,1,0,0,71,105,
+ 118,101,110,32,116,104,101,32,112,97,116,104,32,116,111,32,
+ 97,32,46,112,121,32,102,105,108,101,44,32,114,101,116,117,
+ 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,105,
+ 116,115,32,46,112,121,99,47,46,112,121,111,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,47,46,112,121,111,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,
+ 32,32,84,104,101,32,101,120,116,101,110,115,105,111,110,10,
+ 32,32,32,32,119,105,108,108,32,98,101,32,46,112,121,99,
+ 32,117,110,108,101,115,115,32,115,121,115,46,102,108,97,103,
+ 115,46,111,112,116,105,109,105,122,101,32,105,115,32,110,111,
+ 110,45,122,101,114,111,44,32,116,104,101,110,32,105,116,32,
+ 119,105,108,108,32,98,101,32,46,112,121,111,46,10,10,32,
+ 32,32,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,32,116,104,101,110,32,105,116,32,109,117,115,116,32,98,
+ 101,32,97,32,98,111,111,108,101,97,110,32,97,110,100,32,
+ 105,115,32,117,115,101,100,32,105,110,10,32,32,32,32,112,
+ 108,97,99,101,32,111,102,32,115,121,115,46,102,108,97,103,
+ 115,46,111,112,116,105,109,105,122,101,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,244,1,0,0,0,46,117,36,0,0,0,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,30,0,0,0,114,67,0,0,0,40,13,0,0,
+ 0,114,7,0,0,0,244,5,0,0,0,102,108,97,103,115,
+ 244,8,0,0,0,111,112,116,105,109,105,122,101,244,23,0,
+ 0,0,68,69,66,85,71,95,66,89,84,69,67,79,68,69,
+ 95,83,85,70,70,73,88,69,83,244,27,0,0,0,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,38,0,0,0,244,9,
+ 0,0,0,112,97,114,116,105,116,105,111,110,244,14,0,0,
+ 0,105,109,112,108,101,109,101,110,116,97,116,105,111,110,244,
+ 9,0,0,0,99,97,99,104,101,95,116,97,103,244,19,0,
+ 0,0,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
+ 69,114,114,111,114,114,26,0,0,0,114,28,0,0,0,244,
+ 8,0,0,0,95,80,89,67,65,67,72,69,40,11,0,0,
+ 0,114,35,0,0,0,116,14,0,0,0,100,101,98,117,103,
+ 95,111,118,101,114,114,105,100,101,244,5,0,0,0,100,101,
+ 98,117,103,244,8,0,0,0,115,117,102,102,105,120,101,115,
+ 244,4,0,0,0,104,101,97,100,114,37,0,0,0,244,13,
0,0,0,98,97,115,101,95,102,105,108,101,110,97,109,101,
- 117,3,0,0,0,115,101,112,117,1,0,0,0,95,117,3,
- 0,0,0,116,97,103,117,8,0,0,0,102,105,108,101,110,
- 97,109,101,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 17,0,0,0,99,97,99,104,101,95,102,114,111,109,95,115,
- 111,117,114,99,101,159,1,0,0,115,22,0,0,0,0,13,
- 31,1,6,1,9,2,6,1,18,1,24,1,12,1,12,1,
- 15,1,31,1,117,17,0,0,0,99,97,99,104,101,95,102,
- 114,111,109,95,115,111,117,114,99,101,99,1,0,0,0,0,
- 0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115,
- 193,0,0,0,116,0,0,106,1,0,106,2,0,100,7,0,
- 107,8,0,114,33,0,116,4,0,100,1,0,131,1,0,130,
- 1,0,110,0,0,116,5,0,124,0,0,131,1,0,92,2,
- 0,125,1,0,125,2,0,116,5,0,124,1,0,131,1,0,
- 92,2,0,125,1,0,125,3,0,124,3,0,116,6,0,107,
- 3,0,114,108,0,116,7,0,100,2,0,106,8,0,116,6,
- 0,124,0,0,131,2,0,131,1,0,130,1,0,110,0,0,
- 124,2,0,106,9,0,100,3,0,131,1,0,100,4,0,107,
- 3,0,114,153,0,116,7,0,100,5,0,106,8,0,124,2,
- 0,131,1,0,131,1,0,130,1,0,110,0,0,124,2,0,
- 106,10,0,100,3,0,131,1,0,100,6,0,25,125,4,0,
- 116,11,0,124,1,0,124,4,0,116,12,0,100,6,0,25,
- 23,131,2,0,83,40,8,0,0,0,117,121,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,47,46,112,121,111,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,47,46,112,121,111,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,47,46,112,121,111,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,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,117,36,0,0,0,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,117,37,0,0,0,123,125,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,123,33,114,125,117,1,0,0,0,
- 46,105,2,0,0,0,117,28,0,0,0,101,120,112,101,99,
- 116,101,100,32,111,110,108,121,32,50,32,100,111,116,115,32,
- 105,110,32,123,33,114,125,105,0,0,0,0,78,40,13,0,
- 0,0,117,3,0,0,0,115,121,115,117,14,0,0,0,105,
- 109,112,108,101,109,101,110,116,97,116,105,111,110,117,9,0,
- 0,0,99,97,99,104,101,95,116,97,103,117,4,0,0,0,
- 78,111,110,101,117,19,0,0,0,78,111,116,73,109,112,108,
- 101,109,101,110,116,101,100,69,114,114,111,114,117,11,0,0,
- 0,95,112,97,116,104,95,115,112,108,105,116,117,8,0,0,
- 0,95,80,89,67,65,67,72,69,117,10,0,0,0,86,97,
- 108,117,101,69,114,114,111,114,117,6,0,0,0,102,111,114,
- 109,97,116,117,5,0,0,0,99,111,117,110,116,117,9,0,
- 0,0,112,97,114,116,105,116,105,111,110,117,10,0,0,0,
- 95,112,97,116,104,95,106,111,105,110,117,15,0,0,0,83,
- 79,85,82,67,69,95,83,85,70,70,73,88,69,83,40,5,
- 0,0,0,117,4,0,0,0,112,97,116,104,117,4,0,0,
- 0,104,101,97,100,117,16,0,0,0,112,121,99,97,99,104,
- 101,95,102,105,108,101,110,97,109,101,117,7,0,0,0,112,
- 121,99,97,99,104,101,117,13,0,0,0,98,97,115,101,95,
- 102,105,108,101,110,97,109,101,40,0,0,0,0,40,0,0,
- 0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
- 109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
- 114,97,112,62,117,17,0,0,0,115,111,117,114,99,101,95,
- 102,114,111,109,95,99,97,99,104,101,186,1,0,0,115,24,
- 0,0,0,0,9,18,1,15,1,18,1,18,1,12,1,9,
- 1,18,1,21,1,9,1,15,1,19,1,117,17,0,0,0,
+ 244,3,0,0,0,115,101,112,114,36,0,0,0,116,3,0,
+ 0,0,116,97,103,244,8,0,0,0,102,105,108,101,110,97,
+ 109,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,
+ 0,244,17,0,0,0,99,97,99,104,101,95,102,114,111,109,
+ 95,115,111,117,114,99,101,131,1,0,0,115,22,0,0,0,
+ 0,13,31,1,6,1,9,2,6,1,18,1,24,1,12,1,
+ 12,1,15,1,31,1,114,117,0,0,0,99,1,0,0,0,
+ 0,0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,
+ 115,193,0,0,0,116,0,0,106,1,0,106,2,0,100,1,
+ 0,107,8,0,114,33,0,116,3,0,100,2,0,131,1,0,
+ 130,1,0,110,0,0,116,4,0,124,0,0,131,1,0,92,
+ 2,0,125,1,0,125,2,0,116,4,0,124,1,0,131,1,
+ 0,92,2,0,125,1,0,125,3,0,124,3,0,116,5,0,
+ 107,3,0,114,108,0,116,6,0,100,3,0,106,7,0,116,
+ 5,0,124,0,0,131,2,0,131,1,0,130,1,0,110,0,
+ 0,124,2,0,106,8,0,100,4,0,131,1,0,100,5,0,
+ 107,3,0,114,153,0,116,6,0,100,6,0,106,7,0,124,
+ 2,0,131,1,0,131,1,0,130,1,0,110,0,0,124,2,
+ 0,106,9,0,100,4,0,131,1,0,100,7,0,25,125,4,
+ 0,116,10,0,124,1,0,124,4,0,116,11,0,100,7,0,
+ 25,23,131,2,0,83,40,8,0,0,0,117,121,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,47,46,112,121,111,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,47,46,112,121,111,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,47,46,112,121,111,
+ 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,
+ 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,117,36,0,0,0,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,117,37,0,0,0,123,125,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,123,33,114,125,114,101,0,
+ 0,0,114,100,0,0,0,117,28,0,0,0,101,120,112,101,
+ 99,116,101,100,32,111,110,108,121,32,50,32,100,111,116,115,
+ 32,105,110,32,123,33,114,125,114,67,0,0,0,40,12,0,
+ 0,0,114,7,0,0,0,114,107,0,0,0,114,108,0,0,
+ 0,114,109,0,0,0,114,38,0,0,0,114,110,0,0,0,
+ 244,10,0,0,0,86,97,108,117,101,69,114,114,111,114,114,
+ 46,0,0,0,114,73,0,0,0,114,106,0,0,0,114,28,
+ 0,0,0,244,15,0,0,0,83,79,85,82,67,69,95,83,
+ 85,70,70,73,88,69,83,40,5,0,0,0,114,35,0,0,
+ 0,114,113,0,0,0,116,16,0,0,0,112,121,99,97,99,
+ 104,101,95,102,105,108,101,110,97,109,101,116,7,0,0,0,
+ 112,121,99,97,99,104,101,114,114,0,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,244,17,0,0,0,
115,111,117,114,99,101,95,102,114,111,109,95,99,97,99,104,
- 101,99,1,0,0,0,0,0,0,0,5,0,0,0,13,0,
- 0,0,67,0,0,0,115,164,0,0,0,116,0,0,124,0,
- 0,131,1,0,100,1,0,107,2,0,114,22,0,100,6,0,
- 83,124,0,0,106,2,0,100,2,0,131,1,0,92,3,0,
- 125,1,0,125,2,0,125,3,0,124,1,0,12,115,81,0,
- 124,3,0,106,3,0,131,0,0,100,7,0,100,8,0,133,
- 2,0,25,100,5,0,107,3,0,114,85,0,124,0,0,83,
- 121,16,0,116,4,0,124,0,0,131,1,0,125,4,0,87,
- 110,40,0,4,116,5,0,116,6,0,102,2,0,107,10,0,
- 114,143,0,1,1,1,124,0,0,100,6,0,100,9,0,133,
- 2,0,25,125,4,0,89,110,1,0,88,116,7,0,124,4,
- 0,131,1,0,114,160,0,124,4,0,83,124,0,0,83,40,
- 10,0,0,0,117,188,0,0,0,67,111,110,118,101,114,116,
+ 101,158,1,0,0,115,24,0,0,0,0,9,18,1,15,1,
+ 18,1,18,1,12,1,3,1,24,1,21,1,3,1,21,1,
+ 19,1,114,120,0,0,0,99,1,0,0,0,0,0,0,0,
+ 5,0,0,0,13,0,0,0,67,0,0,0,115,164,0,0,
+ 0,116,0,0,124,0,0,131,1,0,100,1,0,107,2,0,
+ 114,22,0,100,2,0,83,124,0,0,106,1,0,100,3,0,
+ 131,1,0,92,3,0,125,1,0,125,2,0,125,3,0,124,
+ 1,0,12,115,81,0,124,3,0,106,2,0,131,0,0,100,
+ 7,0,100,8,0,133,2,0,25,100,6,0,107,3,0,114,
+ 85,0,124,0,0,83,121,16,0,116,3,0,124,0,0,131,
+ 1,0,125,4,0,87,110,40,0,4,116,4,0,116,5,0,
+ 102,2,0,107,10,0,114,143,0,1,1,1,124,0,0,100,
+ 2,0,100,9,0,133,2,0,25,125,4,0,89,110,1,0,
+ 88,116,6,0,124,4,0,131,1,0,114,160,0,124,4,0,
+ 83,124,0,0,83,40,10,0,0,0,117,188,0,0,0,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,67,0,0,0,
+ 78,114,101,0,0,0,233,3,0,0,0,114,29,0,0,0,
+ 116,2,0,0,0,112,121,233,253,255,255,255,233,255,255,255,
+ 255,114,123,0,0,0,40,7,0,0,0,114,31,0,0,0,
+ 114,32,0,0,0,244,5,0,0,0,108,111,119,101,114,114,
+ 120,0,0,0,114,109,0,0,0,114,118,0,0,0,114,44,
+ 0,0,0,40,5,0,0,0,244,13,0,0,0,98,121,116,
+ 101,99,111,100,101,95,112,97,116,104,116,4,0,0,0,114,
+ 101,115,116,114,36,0,0,0,116,9,0,0,0,101,120,116,
+ 101,110,115,105,111,110,244,11,0,0,0,115,111,117,114,99,
+ 101,95,112,97,116,104,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,244,15,0,0,0,95,103,101,116,95,115,
+ 111,117,114,99,101,102,105,108,101,181,1,0,0,115,20,0,
+ 0,0,0,7,18,1,4,1,24,1,35,1,4,1,3,1,
+ 16,1,19,1,21,1,114,127,0,0,0,99,1,0,0,0,
+ 0,0,0,0,2,0,0,0,11,0,0,0,67,0,0,0,
+ 115,63,0,0,0,121,22,0,116,0,0,106,1,0,124,0,
+ 0,131,1,0,106,2,0,125,1,0,87,110,24,0,4,116,
+ 3,0,107,10,0,114,48,0,1,1,1,100,1,0,125,1,
+ 0,89,110,1,0,88,124,1,0,100,2,0,79,125,1,0,
+ 124,1,0,83,40,3,0,0,0,117,51,0,0,0,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,
- 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,105,0,0,0,0,117,1,0,0,0,46,
- 105,3,0,0,0,105,1,0,0,0,117,2,0,0,0,112,
- 121,78,105,253,255,255,255,105,255,255,255,255,105,255,255,255,
- 255,40,8,0,0,0,117,3,0,0,0,108,101,110,117,4,
- 0,0,0,78,111,110,101,117,10,0,0,0,114,112,97,114,
- 116,105,116,105,111,110,117,5,0,0,0,108,111,119,101,114,
- 117,17,0,0,0,115,111,117,114,99,101,95,102,114,111,109,
- 95,99,97,99,104,101,117,19,0,0,0,78,111,116,73,109,
- 112,108,101,109,101,110,116,101,100,69,114,114,111,114,117,10,
- 0,0,0,86,97,108,117,101,69,114,114,111,114,117,12,0,
- 0,0,95,112,97,116,104,95,105,115,102,105,108,101,40,5,
- 0,0,0,117,13,0,0,0,98,121,116,101,99,111,100,101,
- 95,112,97,116,104,117,4,0,0,0,114,101,115,116,117,1,
- 0,0,0,95,117,9,0,0,0,101,120,116,101,110,115,105,
- 111,110,117,11,0,0,0,115,111,117,114,99,101,95,112,97,
- 116,104,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,15,
- 0,0,0,95,103,101,116,95,115,111,117,114,99,101,102,105,
- 108,101,209,1,0,0,115,20,0,0,0,0,7,18,1,4,
- 1,24,1,35,1,4,1,3,1,16,1,19,1,21,1,117,
- 15,0,0,0,95,103,101,116,95,115,111,117,114,99,101,102,
- 105,108,101,117,9,0,0,0,118,101,114,98,111,115,105,116,
- 121,105,1,0,0,0,99,1,0,0,0,1,0,0,0,3,
- 0,0,0,4,0,0,0,71,0,0,0,115,81,0,0,0,
- 116,0,0,106,1,0,106,2,0,124,1,0,107,5,0,114,
- 77,0,124,0,0,106,3,0,100,6,0,131,1,0,115,46,
- 0,100,3,0,124,0,0,23,125,0,0,110,0,0,116,4,
- 0,124,0,0,106,5,0,124,2,0,140,0,0,100,4,0,
- 116,0,0,106,6,0,131,1,1,1,110,0,0,100,5,0,
- 83,40,7,0,0,0,117,61,0,0,0,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,117,1,0,0,0,35,117,7,
- 0,0,0,105,109,112,111,114,116,32,117,2,0,0,0,35,
- 32,117,4,0,0,0,102,105,108,101,78,40,2,0,0,0,
- 117,1,0,0,0,35,117,7,0,0,0,105,109,112,111,114,
- 116,32,40,7,0,0,0,117,3,0,0,0,115,121,115,117,
- 5,0,0,0,102,108,97,103,115,117,7,0,0,0,118,101,
- 114,98,111,115,101,117,10,0,0,0,115,116,97,114,116,115,
- 119,105,116,104,117,5,0,0,0,112,114,105,110,116,117,6,
- 0,0,0,102,111,114,109,97,116,117,6,0,0,0,115,116,
- 100,101,114,114,40,3,0,0,0,117,7,0,0,0,109,101,
- 115,115,97,103,101,117,9,0,0,0,118,101,114,98,111,115,
- 105,116,121,117,4,0,0,0,97,114,103,115,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,16,0,0,0,95,118,101,
- 114,98,111,115,101,95,109,101,115,115,97,103,101,228,1,0,
- 0,115,8,0,0,0,0,2,18,1,15,1,13,1,117,16,
- 0,0,0,95,118,101,114,98,111,115,101,95,109,101,115,115,
- 97,103,101,99,1,0,0,0,0,0,0,0,2,0,0,0,
- 3,0,0,0,3,0,0,0,115,35,0,0,0,135,0,0,
- 102,1,0,100,1,0,100,2,0,134,0,0,125,1,0,116,
- 0,0,124,1,0,136,0,0,131,2,0,1,124,1,0,83,
- 40,3,0,0,0,117,39,0,0,0,83,101,116,32,95,95,
- 112,97,99,107,97,103,101,95,95,32,111,110,32,116,104,101,
- 32,114,101,116,117,114,110,101,100,32,109,111,100,117,108,101,
- 46,99,0,0,0,0,0,0,0,0,3,0,0,0,4,0,
- 0,0,31,0,0,0,115,101,0,0,0,136,0,0,124,0,
- 0,124,1,0,142,0,0,125,2,0,116,0,0,124,2,0,
- 100,1,0,100,0,0,131,3,0,100,0,0,107,8,0,114,
- 97,0,124,2,0,106,2,0,124,2,0,95,3,0,116,4,
- 0,124,2,0,100,2,0,131,2,0,115,97,0,124,2,0,
- 106,3,0,106,5,0,100,3,0,131,1,0,100,4,0,25,
- 124,2,0,95,3,0,113,97,0,110,0,0,124,2,0,83,
- 40,5,0,0,0,78,117,11,0,0,0,95,95,112,97,99,
- 107,97,103,101,95,95,117,8,0,0,0,95,95,112,97,116,
- 104,95,95,117,1,0,0,0,46,105,0,0,0,0,40,6,
- 0,0,0,117,7,0,0,0,103,101,116,97,116,116,114,117,
- 4,0,0,0,78,111,110,101,117,8,0,0,0,95,95,110,
- 97,109,101,95,95,117,11,0,0,0,95,95,112,97,99,107,
- 97,103,101,95,95,117,7,0,0,0,104,97,115,97,116,116,
- 114,117,10,0,0,0,114,112,97,114,116,105,116,105,111,110,
- 40,3,0,0,0,117,4,0,0,0,97,114,103,115,117,6,
- 0,0,0,107,119,97,114,103,115,117,6,0,0,0,109,111,
- 100,117,108,101,40,1,0,0,0,117,3,0,0,0,102,120,
- 110,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,19,0,0,0,115,101,116,
- 95,112,97,99,107,97,103,101,95,119,114,97,112,112,101,114,
- 238,1,0,0,115,12,0,0,0,0,1,15,1,24,1,12,
- 1,15,1,31,1,117,40,0,0,0,115,101,116,95,112,97,
- 99,107,97,103,101,46,60,108,111,99,97,108,115,62,46,115,
- 101,116,95,112,97,99,107,97,103,101,95,119,114,97,112,112,
- 101,114,40,1,0,0,0,117,5,0,0,0,95,119,114,97,
- 112,40,2,0,0,0,117,3,0,0,0,102,120,110,117,19,
- 0,0,0,115,101,116,95,112,97,99,107,97,103,101,95,119,
- 114,97,112,112,101,114,40,0,0,0,0,40,1,0,0,0,
- 117,3,0,0,0,102,120,110,117,29,0,0,0,60,102,114,
- 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
- 98,111,111,116,115,116,114,97,112,62,117,11,0,0,0,115,
- 101,116,95,112,97,99,107,97,103,101,236,1,0,0,115,6,
- 0,0,0,0,2,18,7,13,1,117,11,0,0,0,115,101,
- 116,95,112,97,99,107,97,103,101,99,1,0,0,0,0,0,
- 0,0,2,0,0,0,3,0,0,0,3,0,0,0,115,35,
- 0,0,0,135,0,0,102,1,0,100,1,0,100,2,0,134,
- 0,0,125,1,0,116,0,0,124,1,0,136,0,0,131,2,
- 0,1,124,1,0,83,40,3,0,0,0,117,38,0,0,0,
- 83,101,116,32,95,95,108,111,97,100,101,114,95,95,32,111,
- 110,32,116,104,101,32,114,101,116,117,114,110,101,100,32,109,
- 111,100,117,108,101,46,99,1,0,0,0,0,0,0,0,4,
- 0,0,0,4,0,0,0,31,0,0,0,115,49,0,0,0,
- 136,0,0,124,0,0,124,1,0,124,2,0,142,1,0,125,
- 3,0,116,0,0,124,3,0,100,1,0,131,2,0,115,45,
- 0,124,0,0,124,3,0,95,1,0,110,0,0,124,3,0,
- 83,40,2,0,0,0,78,117,10,0,0,0,95,95,108,111,
- 97,100,101,114,95,95,40,2,0,0,0,117,7,0,0,0,
- 104,97,115,97,116,116,114,117,10,0,0,0,95,95,108,111,
- 97,100,101,114,95,95,40,4,0,0,0,117,4,0,0,0,
- 115,101,108,102,117,4,0,0,0,97,114,103,115,117,6,0,
- 0,0,107,119,97,114,103,115,117,6,0,0,0,109,111,100,
- 117,108,101,40,1,0,0,0,117,3,0,0,0,102,120,110,
- 40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,
- 110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
- 116,115,116,114,97,112,62,117,18,0,0,0,115,101,116,95,
- 108,111,97,100,101,114,95,119,114,97,112,112,101,114,251,1,
- 0,0,115,8,0,0,0,0,1,18,1,15,1,12,1,117,
- 38,0,0,0,115,101,116,95,108,111,97,100,101,114,46,60,
- 108,111,99,97,108,115,62,46,115,101,116,95,108,111,97,100,
- 101,114,95,119,114,97,112,112,101,114,40,1,0,0,0,117,
- 5,0,0,0,95,119,114,97,112,40,2,0,0,0,117,3,
- 0,0,0,102,120,110,117,18,0,0,0,115,101,116,95,108,
- 111,97,100,101,114,95,119,114,97,112,112,101,114,40,0,0,
- 0,0,40,1,0,0,0,117,3,0,0,0,102,120,110,117,
- 29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
- 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
- 62,117,10,0,0,0,115,101,116,95,108,111,97,100,101,114,
- 249,1,0,0,115,6,0,0,0,0,2,18,5,13,1,117,
- 10,0,0,0,115,101,116,95,108,111,97,100,101,114,99,1,
- 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,
- 0,0,0,115,35,0,0,0,135,0,0,102,1,0,100,1,
- 0,100,2,0,134,0,0,125,1,0,116,0,0,124,1,0,
- 136,0,0,131,2,0,1,124,1,0,83,40,3,0,0,0,
- 117,42,3,0,0,68,101,99,111,114,97,116,111,114,32,116,
- 111,32,104,97,110,100,108,101,32,115,101,108,101,99,116,105,
- 110,103,32,116,104,101,32,112,114,111,112,101,114,32,109,111,
- 100,117,108,101,32,102,111,114,32,108,111,97,100,101,114,115,
- 46,10,10,32,32,32,32,84,104,101,32,100,101,99,111,114,
- 97,116,101,100,32,102,117,110,99,116,105,111,110,32,105,115,
- 32,112,97,115,115,101,100,32,116,104,101,32,109,111,100,117,
- 108,101,32,116,111,32,117,115,101,32,105,110,115,116,101,97,
- 100,32,111,102,32,116,104,101,32,109,111,100,117,108,101,10,
- 32,32,32,32,110,97,109,101,46,32,84,104,101,32,109,111,
- 100,117,108,101,32,112,97,115,115,101,100,32,105,110,32,116,
- 111,32,116,104,101,32,102,117,110,99,116,105,111,110,32,105,
- 115,32,101,105,116,104,101,114,32,102,114,111,109,32,115,121,
- 115,46,109,111,100,117,108,101,115,32,105,102,10,32,32,32,
- 32,105,116,32,97,108,114,101,97,100,121,32,101,120,105,115,
- 116,115,32,111,114,32,105,115,32,97,32,110,101,119,32,109,
- 111,100,117,108,101,46,32,73,102,32,116,104,101,32,109,111,
- 100,117,108,101,32,105,115,32,110,101,119,44,32,116,104,101,
- 110,32,95,95,110,97,109,101,95,95,10,32,32,32,32,105,
- 115,32,115,101,116,32,116,104,101,32,102,105,114,115,116,32,
- 97,114,103,117,109,101,110,116,32,116,111,32,116,104,101,32,
- 109,101,116,104,111,100,44,32,95,95,108,111,97,100,101,114,
- 95,95,32,105,115,32,115,101,116,32,116,111,32,115,101,108,
- 102,44,32,97,110,100,10,32,32,32,32,95,95,112,97,99,
- 107,97,103,101,95,95,32,105,115,32,115,101,116,32,97,99,
- 99,111,114,100,105,110,103,108,121,32,40,105,102,32,115,101,
- 108,102,46,105,115,95,112,97,99,107,97,103,101,40,41,32,
- 105,115,32,100,101,102,105,110,101,100,41,32,119,105,108,108,
- 32,98,101,32,115,101,116,10,32,32,32,32,98,101,102,111,
- 114,101,32,105,116,32,105,115,32,112,97,115,115,101,100,32,
- 116,111,32,116,104,101,32,100,101,99,111,114,97,116,101,100,
- 32,102,117,110,99,116,105,111,110,32,40,105,102,32,115,101,
- 108,102,46,105,115,95,112,97,99,107,97,103,101,40,41,32,
- 100,111,101,115,10,32,32,32,32,110,111,116,32,119,111,114,
- 107,32,102,111,114,32,116,104,101,32,109,111,100,117,108,101,
- 32,105,116,32,119,105,108,108,32,98,101,32,115,101,116,32,
- 112,111,115,116,45,108,111,97,100,41,46,10,10,32,32,32,
- 32,73,102,32,97,110,32,101,120,99,101,112,116,105,111,110,
- 32,105,115,32,114,97,105,115,101,100,32,97,110,100,32,116,
- 104,101,32,100,101,99,111,114,97,116,111,114,32,99,114,101,
- 97,116,101,100,32,116,104,101,32,109,111,100,117,108,101,32,
- 105,116,32,105,115,10,32,32,32,32,115,117,98,115,101,113,
- 117,101,110,116,108,121,32,114,101,109,111,118,101,100,32,102,
- 114,111,109,32,115,121,115,46,109,111,100,117,108,101,115,46,
- 10,10,32,32,32,32,84,104,101,32,100,101,99,111,114,97,
- 116,111,114,32,97,115,115,117,109,101,115,32,116,104,97,116,
- 32,116,104,101,32,100,101,99,111,114,97,116,101,100,32,102,
- 117,110,99,116,105,111,110,32,116,97,107,101,115,32,116,104,
- 101,32,109,111,100,117,108,101,32,110,97,109,101,32,97,115,
- 10,32,32,32,32,116,104,101,32,115,101,99,111,110,100,32,
- 97,114,103,117,109,101,110,116,46,10,10,32,32,32,32,99,
- 2,0,0,0,0,0,0,0,7,0,0,0,25,0,0,0,
- 31,0,0,0,115,254,0,0,0,116,0,0,106,1,0,106,
- 2,0,124,1,0,131,1,0,125,4,0,124,4,0,100,0,
- 0,107,9,0,125,5,0,124,5,0,115,168,0,116,4,0,
- 124,1,0,131,1,0,125,4,0,100,3,0,124,4,0,95,
- 6,0,124,4,0,116,0,0,106,1,0,124,1,0,60,124,
- 0,0,124,4,0,95,7,0,121,19,0,124,0,0,106,8,
- 0,124,1,0,131,1,0,125,6,0,87,110,24,0,4,116,
- 9,0,116,10,0,102,2,0,107,10,0,114,124,0,1,1,
- 1,89,113,177,0,88,124,6,0,114,143,0,124,1,0,124,
- 4,0,95,11,0,113,177,0,124,1,0,106,12,0,100,1,
- 0,131,1,0,100,2,0,25,124,4,0,95,11,0,110,9,
- 0,100,3,0,124,4,0,95,6,0,122,60,0,121,23,0,
- 136,0,0,124,0,0,124,4,0,124,2,0,124,3,0,142,
- 2,0,83,87,110,30,0,1,1,1,124,5,0,115,228,0,
- 116,0,0,106,1,0,124,1,0,61,110,0,0,130,0,0,
- 89,110,1,0,88,87,100,0,0,100,4,0,124,4,0,95,
- 6,0,88,100,0,0,83,40,5,0,0,0,78,117,1,0,
- 0,0,46,105,0,0,0,0,84,70,40,14,0,0,0,117,
- 3,0,0,0,115,121,115,117,7,0,0,0,109,111,100,117,
- 108,101,115,117,3,0,0,0,103,101,116,117,4,0,0,0,
- 78,111,110,101,117,10,0,0,0,110,101,119,95,109,111,100,
- 117,108,101,117,4,0,0,0,84,114,117,101,117,16,0,0,
- 0,95,95,105,110,105,116,105,97,108,105,122,105,110,103,95,
- 95,117,10,0,0,0,95,95,108,111,97,100,101,114,95,95,
- 117,10,0,0,0,105,115,95,112,97,99,107,97,103,101,117,
- 11,0,0,0,73,109,112,111,114,116,69,114,114,111,114,117,
- 14,0,0,0,65,116,116,114,105,98,117,116,101,69,114,114,
- 111,114,117,11,0,0,0,95,95,112,97,99,107,97,103,101,
- 95,95,117,10,0,0,0,114,112,97,114,116,105,116,105,111,
- 110,117,5,0,0,0,70,97,108,115,101,40,7,0,0,0,
- 117,4,0,0,0,115,101,108,102,117,8,0,0,0,102,117,
- 108,108,110,97,109,101,117,4,0,0,0,97,114,103,115,117,
- 6,0,0,0,107,119,97,114,103,115,117,6,0,0,0,109,
- 111,100,117,108,101,117,9,0,0,0,105,115,95,114,101,108,
- 111,97,100,117,10,0,0,0,105,115,95,112,97,99,107,97,
- 103,101,40,1,0,0,0,117,3,0,0,0,102,120,110,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,25,0,0,0,109,111,100,117,108,
- 101,95,102,111,114,95,108,111,97,100,101,114,95,119,114,97,
- 112,112,101,114,22,2,0,0,115,44,0,0,0,0,1,18,
- 1,12,1,6,4,12,3,9,1,13,1,9,1,3,1,19,
- 1,19,1,5,2,6,1,12,2,25,2,9,1,6,2,23,
- 1,3,1,6,1,13,1,12,2,117,52,0,0,0,109,111,
- 100,117,108,101,95,102,111,114,95,108,111,97,100,101,114,46,
- 60,108,111,99,97,108,115,62,46,109,111,100,117,108,101,95,
- 102,111,114,95,108,111,97,100,101,114,95,119,114,97,112,112,
- 101,114,40,1,0,0,0,117,5,0,0,0,95,119,114,97,
- 112,40,2,0,0,0,117,3,0,0,0,102,120,110,117,25,
- 0,0,0,109,111,100,117,108,101,95,102,111,114,95,108,111,
- 97,100,101,114,95,119,114,97,112,112,101,114,40,0,0,0,
- 0,40,1,0,0,0,117,3,0,0,0,102,120,110,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,17,0,0,0,109,111,100,117,108,101,95,102,111,114,95,
- 108,111,97,100,101,114,4,2,0,0,115,6,0,0,0,0,
- 18,18,33,13,1,117,17,0,0,0,109,111,100,117,108,101,
- 95,102,111,114,95,108,111,97,100,101,114,99,1,0,0,0,
- 0,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,
- 115,38,0,0,0,100,3,0,135,0,0,102,1,0,100,1,
- 0,100,2,0,134,1,0,125,1,0,116,1,0,124,1,0,
- 136,0,0,131,2,0,1,124,1,0,83,40,4,0,0,0,
- 117,252,0,0,0,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,4,0,0,0,5,0,
- 0,0,31,0,0,0,115,83,0,0,0,124,1,0,100,0,
- 0,107,8,0,114,24,0,124,0,0,106,1,0,125,1,0,
- 110,40,0,124,0,0,106,1,0,124,1,0,107,3,0,114,
- 64,0,116,2,0,100,1,0,124,1,0,22,100,2,0,124,
- 1,0,131,1,1,130,1,0,110,0,0,136,0,0,124,0,
- 0,124,1,0,124,2,0,124,3,0,142,2,0,83,40,3,
- 0,0,0,78,117,23,0,0,0,108,111,97,100,101,114,32,
- 99,97,110,110,111,116,32,104,97,110,100,108,101,32,37,115,
- 117,4,0,0,0,110,97,109,101,40,3,0,0,0,117,4,
- 0,0,0,78,111,110,101,117,4,0,0,0,110,97,109,101,
- 117,11,0,0,0,73,109,112,111,114,116,69,114,114,111,114,
- 40,4,0,0,0,117,4,0,0,0,115,101,108,102,117,4,
- 0,0,0,110,97,109,101,117,4,0,0,0,97,114,103,115,
- 117,6,0,0,0,107,119,97,114,103,115,40,1,0,0,0,
- 117,6,0,0,0,109,101,116,104,111,100,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,19,0,0,0,95,99,104,101,99,107,95,110,97,
- 109,101,95,119,114,97,112,112,101,114,67,2,0,0,115,10,
- 0,0,0,0,1,12,1,12,1,15,1,25,1,117,40,0,
- 0,0,95,99,104,101,99,107,95,110,97,109,101,46,60,108,
- 111,99,97,108,115,62,46,95,99,104,101,99,107,95,110,97,
- 109,101,95,119,114,97,112,112,101,114,78,40,2,0,0,0,
- 117,4,0,0,0,78,111,110,101,117,5,0,0,0,95,119,
- 114,97,112,40,2,0,0,0,117,6,0,0,0,109,101,116,
- 104,111,100,117,19,0,0,0,95,99,104,101,99,107,95,110,
- 97,109,101,95,119,114,97,112,112,101,114,40,0,0,0,0,
- 40,1,0,0,0,117,6,0,0,0,109,101,116,104,111,100,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,11,0,0,0,95,99,104,101,99,107,95,110,97,
- 109,101,59,2,0,0,115,6,0,0,0,0,8,21,6,13,
- 1,117,11,0,0,0,95,99,104,101,99,107,95,110,97,109,
- 101,99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,
- 0,0,3,0,0,0,115,35,0,0,0,135,0,0,102,1,
- 0,100,1,0,100,2,0,134,0,0,125,1,0,116,0,0,
- 124,1,0,136,0,0,131,2,0,1,124,1,0,83,40,3,
- 0,0,0,117,49,0,0,0,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,2,0,0,0,4,0,0,0,19,0,0,0,115,58,
- 0,0,0,124,1,0,116,0,0,106,1,0,107,7,0,114,
- 45,0,116,2,0,100,1,0,106,3,0,124,1,0,131,1,
- 0,100,2,0,124,1,0,131,1,1,130,1,0,110,0,0,
- 136,0,0,124,0,0,124,1,0,131,2,0,83,40,3,0,
- 0,0,78,117,27,0,0,0,123,125,32,105,115,32,110,111,
- 116,32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,
- 117,108,101,117,4,0,0,0,110,97,109,101,40,4,0,0,
- 0,117,3,0,0,0,115,121,115,117,20,0,0,0,98,117,
- 105,108,116,105,110,95,109,111,100,117,108,101,95,110,97,109,
- 101,115,117,11,0,0,0,73,109,112,111,114,116,69,114,114,
- 111,114,117,6,0,0,0,102,111,114,109,97,116,40,2,0,
- 0,0,117,4,0,0,0,115,101,108,102,117,8,0,0,0,
- 102,117,108,108,110,97,109,101,40,1,0,0,0,117,3,0,
- 0,0,102,120,110,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,25,0,0,
- 0,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,
- 105,110,95,119,114,97,112,112,101,114,79,2,0,0,115,8,
- 0,0,0,0,1,15,1,18,1,12,1,117,52,0,0,0,
+ 46,105,182,1,0,0,233,128,0,0,0,40,4,0,0,0,
+ 114,3,0,0,0,114,39,0,0,0,114,41,0,0,0,114,
+ 40,0,0,0,40,2,0,0,0,114,35,0,0,0,114,42,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,244,10,0,0,0,95,99,97,108,99,95,109,111,100,
+ 101,200,1,0,0,115,12,0,0,0,0,2,3,1,22,1,
+ 13,1,11,3,10,1,114,129,0,0,0,244,9,0,0,0,
+ 118,101,114,98,111,115,105,116,121,114,29,0,0,0,99,1,
+ 0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,71,
+ 0,0,0,115,81,0,0,0,116,0,0,106,1,0,106,2,
+ 0,124,1,0,107,5,0,114,77,0,124,0,0,106,3,0,
+ 100,6,0,131,1,0,115,46,0,100,3,0,124,0,0,23,
+ 125,0,0,110,0,0,116,4,0,124,0,0,106,5,0,124,
+ 2,0,140,0,0,100,4,0,116,0,0,106,6,0,131,1,
+ 1,1,110,0,0,100,5,0,83,40,7,0,0,0,117,61,
+ 0,0,0,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,
+ 245,1,0,0,0,35,245,7,0,0,0,105,109,112,111,114,
+ 116,32,117,2,0,0,0,35,32,114,53,0,0,0,78,40,
+ 2,0,0,0,114,131,0,0,0,114,132,0,0,0,40,7,
+ 0,0,0,114,7,0,0,0,114,102,0,0,0,244,7,0,
+ 0,0,118,101,114,98,111,115,101,114,9,0,0,0,244,5,
+ 0,0,0,112,114,105,110,116,114,46,0,0,0,244,6,0,
+ 0,0,115,116,100,101,114,114,40,3,0,0,0,244,7,0,
+ 0,0,109,101,115,115,97,103,101,114,130,0,0,0,114,98,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,244,16,0,0,0,95,118,101,114,98,111,115,101,95,
+ 109,101,115,115,97,103,101,212,1,0,0,115,8,0,0,0,
+ 0,2,18,1,15,1,13,1,114,137,0,0,0,99,0,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,
+ 0,0,115,52,0,0,0,101,0,0,90,1,0,100,0,0,
+ 90,2,0,100,1,0,100,2,0,132,0,0,90,3,0,100,
+ 3,0,100,4,0,132,0,0,90,4,0,100,5,0,100,6,
+ 0,132,0,0,90,5,0,100,7,0,83,40,8,0,0,0,
+ 244,13,0,0,0,95,77,97,110,97,103,101,82,101,108,111,
+ 97,100,99,2,0,0,0,0,0,0,0,2,0,0,0,2,
+ 0,0,0,67,0,0,0,115,13,0,0,0,124,1,0,124,
+ 0,0,95,0,0,100,0,0,83,40,1,0,0,0,78,40,
+ 1,0,0,0,244,5,0,0,0,95,110,97,109,101,40,2,
+ 0,0,0,114,75,0,0,0,114,71,0,0,0,114,4,0,
+ 0,0,114,4,0,0,0,114,5,0,0,0,114,76,0,0,
+ 0,222,1,0,0,115,2,0,0,0,0,1,117,22,0,0,
+ 0,95,77,97,110,97,103,101,82,101,108,111,97,100,46,95,
+ 95,105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,
+ 1,0,0,0,2,0,0,0,67,0,0,0,115,25,0,0,
+ 0,124,0,0,106,0,0,116,1,0,106,2,0,107,6,0,
+ 124,0,0,95,3,0,100,0,0,83,40,1,0,0,0,78,
+ 40,4,0,0,0,114,139,0,0,0,114,7,0,0,0,244,
+ 7,0,0,0,109,111,100,117,108,101,115,244,10,0,0,0,
+ 95,105,115,95,114,101,108,111,97,100,40,1,0,0,0,114,
+ 75,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,244,9,0,0,0,95,95,101,110,116,101,114,95,
+ 95,225,1,0,0,115,2,0,0,0,0,1,117,23,0,0,
+ 0,95,77,97,110,97,103,101,82,101,108,111,97,100,46,95,
+ 95,101,110,116,101,114,95,95,99,1,0,0,0,0,0,0,
+ 0,2,0,0,0,12,0,0,0,71,0,0,0,115,80,0,
+ 0,0,116,0,0,100,1,0,100,2,0,132,0,0,124,1,
+ 0,68,131,1,0,131,1,0,114,76,0,124,0,0,106,1,
+ 0,12,114,76,0,121,17,0,116,2,0,106,3,0,124,0,
+ 0,106,4,0,61,87,113,76,0,4,116,5,0,107,10,0,
+ 114,72,0,1,1,1,89,113,76,0,88,110,0,0,100,0,
+ 0,83,40,3,0,0,0,78,99,1,0,0,0,0,0,0,
+ 0,2,0,0,0,3,0,0,0,115,0,0,0,115,27,0,
+ 0,0,124,0,0,93,17,0,125,1,0,124,1,0,100,0,
+ 0,107,9,0,86,1,113,3,0,100,0,0,83,40,1,0,
+ 0,0,78,114,4,0,0,0,40,2,0,0,0,114,22,0,
+ 0,0,116,3,0,0,0,97,114,103,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,245,9,0,0,0,60,103,
+ 101,110,101,120,112,114,62,229,1,0,0,115,2,0,0,0,
+ 6,0,117,41,0,0,0,95,77,97,110,97,103,101,82,101,
+ 108,111,97,100,46,95,95,101,120,105,116,95,95,46,60,108,
+ 111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,
+ 40,6,0,0,0,244,3,0,0,0,97,110,121,114,141,0,
+ 0,0,114,7,0,0,0,114,140,0,0,0,114,139,0,0,
+ 0,114,91,0,0,0,40,2,0,0,0,114,75,0,0,0,
+ 114,98,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,244,8,0,0,0,95,95,101,120,105,116,95,
+ 95,228,1,0,0,115,10,0,0,0,0,1,35,1,3,1,
+ 17,1,13,1,117,22,0,0,0,95,77,97,110,97,103,101,
+ 82,101,108,111,97,100,46,95,95,101,120,105,116,95,95,78,
+ 40,6,0,0,0,114,56,0,0,0,114,55,0,0,0,114,
+ 57,0,0,0,114,76,0,0,0,114,142,0,0,0,114,145,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,114,138,0,0,0,220,1,0,0,
+ 115,6,0,0,0,12,2,12,3,12,3,114,138,0,0,0,
+ 99,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,
+ 0,0,0,0,0,115,82,0,0,0,101,0,0,90,1,0,
+ 100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,100,
+ 3,0,135,0,0,102,1,0,100,4,0,100,5,0,134,0,
+ 1,90,4,0,135,0,0,102,1,0,100,6,0,100,7,0,
+ 134,0,0,90,5,0,135,0,0,102,1,0,100,8,0,100,
+ 9,0,134,0,0,90,6,0,135,0,0,83,40,10,0,0,
+ 0,244,14,0,0,0,95,77,111,100,117,108,101,77,97,110,
+ 97,103,101,114,117,122,0,0,0,67,111,110,116,101,120,116,
+ 32,109,97,110,97,103,101,114,32,119,104,105,99,104,32,114,
+ 101,116,117,114,110,115,32,116,104,101,32,109,111,100,117,108,
+ 101,32,116,111,32,98,101,32,108,111,97,100,101,100,46,10,
+ 10,32,32,32,32,68,111,101,115,32,116,104,101,32,112,114,
+ 111,112,101,114,32,117,110,108,111,97,100,105,110,103,32,102,
+ 114,111,109,32,115,121,115,46,109,111,100,117,108,101,115,32,
+ 117,112,111,110,32,102,97,105,108,117,114,101,46,10,10,32,
+ 32,32,32,244,10,0,0,0,114,101,115,101,116,95,110,97,
+ 109,101,84,99,2,0,0,0,1,0,0,0,3,0,0,0,
+ 2,0,0,0,3,0,0,0,115,29,0,0,0,116,0,0,
+ 131,0,0,106,1,0,124,1,0,131,1,0,1,124,2,0,
+ 124,0,0,95,2,0,100,1,0,83,40,2,0,0,0,117,
+ 183,0,0,0,80,114,101,112,97,114,101,32,116,104,101,32,
+ 99,111,110,116,101,120,116,32,109,97,110,97,103,101,114,46,
+ 10,10,32,32,32,32,32,32,32,32,84,104,101,32,114,101,
+ 115,101,116,95,110,97,109,101,32,97,114,103,117,109,101,110,
+ 116,32,115,112,101,99,105,102,105,101,115,32,119,104,101,116,
+ 104,101,114,32,116,111,32,117,110,99,111,110,100,105,116,105,
+ 111,110,97,108,108,121,32,114,101,115,101,116,10,32,32,32,
+ 32,32,32,32,32,116,104,101,32,95,95,110,97,109,101,95,
+ 95,32,97,116,116,114,105,98,117,116,101,32,105,102,32,116,
+ 104,101,32,109,111,100,117,108,101,32,105,115,32,102,111,117,
+ 110,100,32,116,111,32,98,101,32,97,32,114,101,108,111,97,
+ 100,46,10,32,32,32,32,32,32,32,32,78,40,3,0,0,
+ 0,244,5,0,0,0,115,117,112,101,114,114,76,0,0,0,
+ 244,11,0,0,0,95,114,101,115,101,116,95,110,97,109,101,
+ 40,3,0,0,0,114,75,0,0,0,114,71,0,0,0,114,
+ 147,0,0,0,40,1,0,0,0,244,9,0,0,0,95,95,
+ 99,108,97,115,115,95,95,114,4,0,0,0,114,5,0,0,
+ 0,114,76,0,0,0,245,1,0,0,115,4,0,0,0,0,
+ 6,16,1,117,23,0,0,0,95,77,111,100,117,108,101,77,
+ 97,110,97,103,101,114,46,95,95,105,110,105,116,95,95,99,
+ 1,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,
+ 3,0,0,0,115,163,0,0,0,116,0,0,131,0,0,106,
+ 1,0,131,0,0,1,116,2,0,106,3,0,106,4,0,124,
+ 0,0,106,5,0,131,1,0,124,0,0,95,6,0,124,0,
+ 0,106,7,0,115,104,0,116,8,0,116,9,0,131,1,0,
+ 124,0,0,106,5,0,131,1,0,124,0,0,95,6,0,100,
+ 1,0,124,0,0,106,6,0,95,10,0,124,0,0,106,6,
+ 0,116,2,0,106,3,0,124,0,0,106,5,0,60,110,52,
+ 0,124,0,0,106,11,0,114,156,0,121,19,0,124,0,0,
+ 106,5,0,124,0,0,106,6,0,95,12,0,87,113,156,0,
+ 4,116,13,0,107,10,0,114,152,0,1,1,1,89,113,156,
+ 0,88,110,0,0,124,0,0,106,6,0,83,40,2,0,0,
+ 0,78,84,40,14,0,0,0,114,148,0,0,0,114,142,0,
+ 0,0,114,7,0,0,0,114,140,0,0,0,114,79,0,0,
+ 0,114,139,0,0,0,244,7,0,0,0,95,109,111,100,117,
+ 108,101,114,141,0,0,0,244,4,0,0,0,116,121,112,101,
+ 114,48,0,0,0,244,16,0,0,0,95,95,105,110,105,116,
+ 105,97,108,105,122,105,110,103,95,95,114,149,0,0,0,114,
+ 56,0,0,0,244,14,0,0,0,65,116,116,114,105,98,117,
+ 116,101,69,114,114,111,114,40,1,0,0,0,114,75,0,0,
+ 0,40,1,0,0,0,114,150,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,114,142,0,0,0,254,1,0,0,115,24,
+ 0,0,0,0,1,13,1,24,1,9,4,24,3,12,1,22,
+ 1,9,1,3,1,19,1,13,1,8,1,117,24,0,0,0,
+ 95,77,111,100,117,108,101,77,97,110,97,103,101,114,46,95,
+ 95,101,110,116,101,114,95,95,99,1,0,0,0,0,0,0,
+ 0,2,0,0,0,2,0,0,0,7,0,0,0,115,38,0,
+ 0,0,100,1,0,124,0,0,106,0,0,95,1,0,124,0,
+ 0,96,0,0,116,2,0,131,0,0,106,3,0,124,1,0,
+ 140,0,0,1,100,0,0,83,40,2,0,0,0,78,70,40,
+ 4,0,0,0,114,151,0,0,0,114,153,0,0,0,114,148,
+ 0,0,0,114,145,0,0,0,40,2,0,0,0,114,75,0,
+ 0,0,114,98,0,0,0,40,1,0,0,0,114,150,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,114,145,0,0,0,
+ 17,2,0,0,115,6,0,0,0,0,1,12,1,6,1,117,
+ 23,0,0,0,95,77,111,100,117,108,101,77,97,110,97,103,
+ 101,114,46,95,95,101,120,105,116,95,95,40,7,0,0,0,
+ 114,56,0,0,0,114,55,0,0,0,114,57,0,0,0,114,
+ 58,0,0,0,114,76,0,0,0,114,142,0,0,0,114,145,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,40,1,0,
+ 0,0,114,150,0,0,0,114,5,0,0,0,114,146,0,0,
+ 0,237,1,0,0,115,8,0,0,0,12,6,6,2,24,9,
+ 18,19,114,146,0,0,0,114,147,0,0,0,84,99,1,0,
+ 0,0,1,0,0,0,2,0,0,0,4,0,0,0,67,0,
+ 0,0,115,16,0,0,0,116,0,0,124,0,0,100,1,0,
+ 124,1,0,131,1,1,83,40,2,0,0,0,117,138,0,0,
+ 0,82,101,116,117,114,110,32,97,32,99,111,110,116,101,120,
+ 116,32,109,97,110,97,103,101,114,32,119,104,105,99,104,32,
+ 112,114,111,118,105,100,101,115,32,116,104,101,32,109,111,100,
+ 117,108,101,32,111,98,106,101,99,116,32,116,111,32,108,111,
+ 97,100,46,10,10,32,32,32,32,73,102,32,114,101,115,101,
+ 116,95,110,97,109,101,32,105,115,32,116,114,117,101,44,32,
+ 114,101,115,101,116,32,116,104,101,32,109,111,100,117,108,101,
+ 39,115,32,95,95,110,97,109,101,95,95,32,116,111,32,39,
+ 110,97,109,101,39,46,10,32,32,32,32,114,147,0,0,0,
+ 40,1,0,0,0,114,146,0,0,0,40,2,0,0,0,114,
+ 71,0,0,0,114,147,0,0,0,114,4,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,244,14,0,0,0,109,111,100,
+ 117,108,101,95,116,111,95,108,111,97,100,23,2,0,0,115,
+ 2,0,0,0,0,6,114,155,0,0,0,99,2,0,0,0,
+ 0,0,0,0,4,0,0,0,11,0,0,0,67,0,0,0,
+ 115,102,0,0,0,124,1,0,106,0,0,125,2,0,121,19,
+ 0,124,0,0,106,1,0,124,2,0,131,1,0,125,3,0,
+ 87,110,18,0,4,116,2,0,107,10,0,114,48,0,1,1,
+ 1,89,110,50,0,88,124,3,0,114,76,0,124,2,0,124,
+ 1,0,95,3,0,103,0,0,124,1,0,95,4,0,110,22,
+ 0,124,2,0,106,5,0,100,1,0,131,1,0,100,2,0,
+ 25,124,1,0,95,3,0,100,3,0,83,40,4,0,0,0,
+ 117,68,0,0,0,83,101,116,32,95,95,112,97,99,107,97,
+ 103,101,95,95,32,97,110,100,32,95,95,112,97,116,104,95,
+ 95,32,98,97,115,101,100,32,111,110,32,119,104,97,116,32,
+ 108,111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,
+ 101,40,41,32,115,97,121,115,46,114,101,0,0,0,114,67,
+ 0,0,0,78,40,6,0,0,0,114,56,0,0,0,244,10,
+ 0,0,0,105,115,95,112,97,99,107,97,103,101,244,11,0,
+ 0,0,73,109,112,111,114,116,69,114,114,111,114,244,11,0,
+ 0,0,95,95,112,97,99,107,97,103,101,95,95,244,8,0,
+ 0,0,95,95,112,97,116,104,95,95,114,32,0,0,0,40,
+ 4,0,0,0,244,6,0,0,0,108,111,97,100,101,114,244,
+ 6,0,0,0,109,111,100,117,108,101,114,71,0,0,0,114,
+ 156,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,244,19,0,0,0,95,105,110,105,116,95,112,97,
+ 99,107,97,103,101,95,97,116,116,114,115,32,2,0,0,115,
+ 18,0,0,0,0,2,9,1,3,1,19,1,13,1,5,2,
+ 6,1,9,1,12,2,114,162,0,0,0,99,2,0,0,0,
+ 0,0,0,0,2,0,0,0,11,0,0,0,67,0,0,0,
+ 115,100,0,0,0,121,25,0,124,0,0,106,0,0,124,1,
+ 0,106,1,0,131,1,0,124,1,0,95,2,0,87,110,18,
+ 0,4,116,3,0,107,10,0,114,45,0,1,1,1,89,110,
+ 51,0,88,124,1,0,106,1,0,124,1,0,106,4,0,107,
+ 2,0,114,96,0,124,1,0,106,5,0,106,6,0,116,7,
+ 0,124,1,0,106,2,0,131,1,0,100,1,0,25,131,1,
+ 0,1,110,0,0,100,2,0,83,40,3,0,0,0,117,57,
+ 0,0,0,83,101,116,32,95,95,102,105,108,101,95,95,32,
+ 97,110,100,32,95,95,112,97,116,104,95,95,32,98,97,115,
+ 101,100,32,111,110,32,108,111,97,100,101,114,46,103,101,116,
+ 95,102,105,108,101,110,97,109,101,40,41,46,114,67,0,0,
+ 0,78,40,8,0,0,0,244,12,0,0,0,103,101,116,95,
+ 102,105,108,101,110,97,109,101,114,56,0,0,0,244,8,0,
+ 0,0,95,95,102,105,108,101,95,95,114,157,0,0,0,114,
+ 158,0,0,0,114,159,0,0,0,244,6,0,0,0,97,112,
+ 112,101,110,100,114,38,0,0,0,40,2,0,0,0,114,160,
+ 0,0,0,114,161,0,0,0,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,244,16,0,0,0,95,105,110,105,
+ 116,95,102,105,108,101,95,97,116,116,114,115,47,2,0,0,
+ 115,12,0,0,0,0,2,3,1,25,1,13,1,5,2,18,
+ 1,114,166,0,0,0,99,1,0,0,0,0,0,0,0,2,
+ 0,0,0,3,0,0,0,3,0,0,0,115,35,0,0,0,
+ 135,0,0,102,1,0,100,1,0,100,2,0,134,0,0,125,
+ 1,0,116,0,0,124,1,0,136,0,0,131,2,0,1,124,
+ 1,0,83,40,3,0,0,0,117,39,0,0,0,83,101,116,
+ 32,95,95,112,97,99,107,97,103,101,95,95,32,111,110,32,
+ 116,104,101,32,114,101,116,117,114,110,101,100,32,109,111,100,
+ 117,108,101,46,99,0,0,0,0,0,0,0,0,3,0,0,
+ 0,4,0,0,0,31,0,0,0,115,101,0,0,0,136,0,
+ 0,124,0,0,124,1,0,142,0,0,125,2,0,116,0,0,
+ 124,2,0,100,1,0,100,0,0,131,3,0,100,0,0,107,
+ 8,0,114,97,0,124,2,0,106,1,0,124,2,0,95,2,
+ 0,116,3,0,124,2,0,100,2,0,131,2,0,115,97,0,
+ 124,2,0,106,2,0,106,4,0,100,3,0,131,1,0,100,
+ 4,0,25,124,2,0,95,2,0,113,97,0,110,0,0,124,
+ 2,0,83,40,5,0,0,0,78,114,158,0,0,0,114,159,
+ 0,0,0,114,101,0,0,0,114,67,0,0,0,40,5,0,
+ 0,0,114,61,0,0,0,114,56,0,0,0,114,158,0,0,
+ 0,114,59,0,0,0,114,32,0,0,0,40,3,0,0,0,
+ 114,98,0,0,0,244,6,0,0,0,107,119,97,114,103,115,
+ 114,161,0,0,0,40,1,0,0,0,244,3,0,0,0,102,
+ 120,110,114,4,0,0,0,114,5,0,0,0,244,19,0,0,
+ 0,115,101,116,95,112,97,99,107,97,103,101,95,119,114,97,
+ 112,112,101,114,60,2,0,0,115,12,0,0,0,0,1,15,
+ 1,24,1,12,1,15,1,31,1,117,40,0,0,0,115,101,
+ 116,95,112,97,99,107,97,103,101,46,60,108,111,99,97,108,
+ 115,62,46,115,101,116,95,112,97,99,107,97,103,101,95,119,
+ 114,97,112,112,101,114,40,1,0,0,0,114,64,0,0,0,
+ 40,2,0,0,0,114,168,0,0,0,114,169,0,0,0,114,
+ 4,0,0,0,40,1,0,0,0,114,168,0,0,0,114,5,
+ 0,0,0,244,11,0,0,0,115,101,116,95,112,97,99,107,
+ 97,103,101,58,2,0,0,115,6,0,0,0,0,2,18,7,
+ 13,1,114,170,0,0,0,99,1,0,0,0,0,0,0,0,
+ 2,0,0,0,3,0,0,0,3,0,0,0,115,35,0,0,
+ 0,135,0,0,102,1,0,100,1,0,100,2,0,134,0,0,
+ 125,1,0,116,0,0,124,1,0,136,0,0,131,2,0,1,
+ 124,1,0,83,40,3,0,0,0,117,38,0,0,0,83,101,
+ 116,32,95,95,108,111,97,100,101,114,95,95,32,111,110,32,
+ 116,104,101,32,114,101,116,117,114,110,101,100,32,109,111,100,
+ 117,108,101,46,99,1,0,0,0,0,0,0,0,4,0,0,
+ 0,4,0,0,0,31,0,0,0,115,58,0,0,0,136,0,
+ 0,124,0,0,124,1,0,124,2,0,142,1,0,125,3,0,
+ 116,0,0,124,3,0,100,1,0,100,0,0,131,3,0,100,
+ 0,0,107,8,0,114,54,0,124,0,0,124,3,0,95,1,
+ 0,110,0,0,124,3,0,83,40,2,0,0,0,78,244,10,
+ 0,0,0,95,95,108,111,97,100,101,114,95,95,40,2,0,
+ 0,0,114,61,0,0,0,114,171,0,0,0,40,4,0,0,
+ 0,114,75,0,0,0,114,98,0,0,0,114,167,0,0,0,
+ 114,161,0,0,0,40,1,0,0,0,114,168,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,244,18,0,0,0,115,101,
+ 116,95,108,111,97,100,101,114,95,119,114,97,112,112,101,114,
+ 73,2,0,0,115,8,0,0,0,0,1,18,1,24,1,12,
+ 1,117,38,0,0,0,115,101,116,95,108,111,97,100,101,114,
+ 46,60,108,111,99,97,108,115,62,46,115,101,116,95,108,111,
+ 97,100,101,114,95,119,114,97,112,112,101,114,40,1,0,0,
+ 0,114,64,0,0,0,40,2,0,0,0,114,168,0,0,0,
+ 114,172,0,0,0,114,4,0,0,0,40,1,0,0,0,114,
+ 168,0,0,0,114,5,0,0,0,244,10,0,0,0,115,101,
+ 116,95,108,111,97,100,101,114,71,2,0,0,115,6,0,0,
+ 0,0,2,18,5,13,1,114,173,0,0,0,99,1,0,0,
+ 0,0,0,0,0,2,0,0,0,4,0,0,0,3,0,0,
+ 0,115,38,0,0,0,100,1,0,135,0,0,102,1,0,100,
+ 2,0,100,3,0,134,1,0,125,1,0,116,0,0,124,1,
+ 0,136,0,0,131,2,0,1,124,1,0,83,40,4,0,0,
+ 0,117,252,0,0,0,68,101,99,111,114,97,116,111,114,32,
+ 116,111,32,118,101,114,105,102,121,32,116,104,97,116,32,116,
+ 104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,32,
+ 114,101,113,117,101,115,116,101,100,32,109,97,116,99,104,101,
+ 115,32,116,104,101,32,111,110,101,32,116,104,101,10,32,32,
+ 32,32,108,111,97,100,101,114,32,99,97,110,32,104,97,110,
+ 100,108,101,46,10,10,32,32,32,32,84,104,101,32,102,105,
+ 114,115,116,32,97,114,103,117,109,101,110,116,32,40,115,101,
+ 108,102,41,32,109,117,115,116,32,100,101,102,105,110,101,32,
+ 95,110,97,109,101,32,119,104,105,99,104,32,116,104,101,32,
+ 115,101,99,111,110,100,32,97,114,103,117,109,101,110,116,32,
+ 105,115,10,32,32,32,32,99,111,109,112,97,114,101,100,32,
+ 97,103,97,105,110,115,116,46,32,73,102,32,116,104,101,32,
+ 99,111,109,112,97,114,105,115,111,110,32,102,97,105,108,115,
+ 32,116,104,101,110,32,73,109,112,111,114,116,69,114,114,111,
+ 114,32,105,115,32,114,97,105,115,101,100,46,10,10,32,32,
+ 32,32,78,99,2,0,0,0,0,0,0,0,4,0,0,0,
+ 5,0,0,0,31,0,0,0,115,83,0,0,0,124,1,0,
+ 100,0,0,107,8,0,114,24,0,124,0,0,106,0,0,125,
+ 1,0,110,40,0,124,0,0,106,0,0,124,1,0,107,3,
+ 0,114,64,0,116,1,0,100,1,0,124,1,0,22,100,2,
+ 0,124,1,0,131,1,1,130,1,0,110,0,0,136,0,0,
+ 124,0,0,124,1,0,124,2,0,124,3,0,142,2,0,83,
+ 40,3,0,0,0,78,117,23,0,0,0,108,111,97,100,101,
+ 114,32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,
+ 37,115,114,71,0,0,0,40,2,0,0,0,114,71,0,0,
+ 0,114,157,0,0,0,40,4,0,0,0,114,75,0,0,0,
+ 114,71,0,0,0,114,98,0,0,0,114,167,0,0,0,40,
+ 1,0,0,0,244,6,0,0,0,109,101,116,104,111,100,114,
+ 4,0,0,0,114,5,0,0,0,244,19,0,0,0,95,99,
+ 104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,
+ 114,90,2,0,0,115,10,0,0,0,0,1,12,1,12,1,
+ 15,1,25,1,117,40,0,0,0,95,99,104,101,99,107,95,
+ 110,97,109,101,46,60,108,111,99,97,108,115,62,46,95,99,
+ 104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,
+ 114,40,1,0,0,0,114,64,0,0,0,40,2,0,0,0,
+ 114,174,0,0,0,114,175,0,0,0,114,4,0,0,0,40,
+ 1,0,0,0,114,174,0,0,0,114,5,0,0,0,244,11,
+ 0,0,0,95,99,104,101,99,107,95,110,97,109,101,82,2,
+ 0,0,115,6,0,0,0,0,8,21,6,13,1,114,176,0,
+ 0,0,99,1,0,0,0,0,0,0,0,2,0,0,0,3,
+ 0,0,0,3,0,0,0,115,35,0,0,0,135,0,0,102,
+ 1,0,100,1,0,100,2,0,134,0,0,125,1,0,116,0,
+ 0,124,1,0,136,0,0,131,2,0,1,124,1,0,83,40,
+ 3,0,0,0,117,49,0,0,0,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,2,0,0,0,4,0,0,0,19,0,0,0,115,
+ 58,0,0,0,124,1,0,116,0,0,106,1,0,107,7,0,
+ 114,45,0,116,2,0,100,1,0,106,3,0,124,1,0,131,
+ 1,0,100,2,0,124,1,0,131,1,1,130,1,0,110,0,
+ 0,136,0,0,124,0,0,124,1,0,131,2,0,83,40,3,
+ 0,0,0,78,117,27,0,0,0,123,125,32,105,115,32,110,
+ 111,116,32,97,32,98,117,105,108,116,45,105,110,32,109,111,
+ 100,117,108,101,114,71,0,0,0,40,4,0,0,0,114,7,
+ 0,0,0,244,20,0,0,0,98,117,105,108,116,105,110,95,
+ 109,111,100,117,108,101,95,110,97,109,101,115,114,157,0,0,
+ 0,114,46,0,0,0,40,2,0,0,0,114,75,0,0,0,
+ 244,8,0,0,0,102,117,108,108,110,97,109,101,40,1,0,
+ 0,0,114,168,0,0,0,114,4,0,0,0,114,5,0,0,
+ 0,244,25,0,0,0,95,114,101,113,117,105,114,101,115,95,
+ 98,117,105,108,116,105,110,95,119,114,97,112,112,101,114,102,
+ 2,0,0,115,8,0,0,0,0,1,15,1,18,1,12,1,
+ 117,52,0,0,0,95,114,101,113,117,105,114,101,115,95,98,
+ 117,105,108,116,105,110,46,60,108,111,99,97,108,115,62,46,
95,114,101,113,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,40,1,0,0,0,117,5,0,0,0,95,119,
- 114,97,112,40,2,0,0,0,117,3,0,0,0,102,120,110,
- 117,25,0,0,0,95,114,101,113,117,105,114,101,115,95,98,
- 117,105,108,116,105,110,95,119,114,97,112,112,101,114,40,0,
- 0,0,0,40,1,0,0,0,117,3,0,0,0,102,120,110,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,17,0,0,0,95,114,101,113,117,105,114,101,115,
- 95,98,117,105,108,116,105,110,77,2,0,0,115,6,0,0,
- 0,0,2,18,5,13,1,117,17,0,0,0,95,114,101,113,
- 117,105,114,101,115,95,98,117,105,108,116,105,110,99,1,0,
- 0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,
- 0,0,115,35,0,0,0,135,0,0,102,1,0,100,1,0,
- 100,2,0,134,0,0,125,1,0,116,0,0,124,1,0,136,
- 0,0,131,2,0,1,124,1,0,83,40,3,0,0,0,117,
- 47,0,0,0,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,2,0,0,0,
- 4,0,0,0,19,0,0,0,115,58,0,0,0,116,0,0,
- 106,1,0,124,1,0,131,1,0,115,45,0,116,2,0,100,
- 1,0,106,3,0,124,1,0,131,1,0,100,2,0,124,1,
- 0,131,1,1,130,1,0,110,0,0,136,0,0,124,0,0,
- 124,1,0,131,2,0,83,40,3,0,0,0,78,117,25,0,
- 0,0,123,125,32,105,115,32,110,111,116,32,97,32,102,114,
- 111,122,101,110,32,109,111,100,117,108,101,117,4,0,0,0,
- 110,97,109,101,40,4,0,0,0,117,4,0,0,0,95,105,
- 109,112,117,9,0,0,0,105,115,95,102,114,111,122,101,110,
- 117,11,0,0,0,73,109,112,111,114,116,69,114,114,111,114,
- 117,6,0,0,0,102,111,114,109,97,116,40,2,0,0,0,
- 117,4,0,0,0,115,101,108,102,117,8,0,0,0,102,117,
- 108,108,110,97,109,101,40,1,0,0,0,117,3,0,0,0,
- 102,120,110,40,0,0,0,0,117,29,0,0,0,60,102,114,
- 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
- 98,111,111,116,115,116,114,97,112,62,117,24,0,0,0,95,
- 114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,95,
- 119,114,97,112,112,101,114,90,2,0,0,115,8,0,0,0,
- 0,1,15,1,18,1,12,1,117,50,0,0,0,95,114,101,
- 113,117,105,114,101,115,95,102,114,111,122,101,110,46,60,108,
- 111,99,97,108,115,62,46,95,114,101,113,117,105,114,101,115,
- 95,102,114,111,122,101,110,95,119,114,97,112,112,101,114,40,
- 1,0,0,0,117,5,0,0,0,95,119,114,97,112,40,2,
- 0,0,0,117,3,0,0,0,102,120,110,117,24,0,0,0,
- 95,114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,
- 95,119,114,97,112,112,101,114,40,0,0,0,0,40,1,0,
- 0,0,117,3,0,0,0,102,120,110,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,16,0,0,
- 0,95,114,101,113,117,105,114,101,115,95,102,114,111,122,101,
- 110,88,2,0,0,115,6,0,0,0,0,2,18,5,13,1,
- 117,16,0,0,0,95,114,101,113,117,105,114,101,115,95,102,
- 114,111,122,101,110,99,2,0,0,0,0,0,0,0,5,0,
- 0,0,5,0,0,0,67,0,0,0,115,87,0,0,0,124,
- 0,0,106,0,0,124,1,0,131,1,0,92,2,0,125,2,
- 0,125,3,0,124,2,0,100,3,0,107,8,0,114,83,0,
- 116,2,0,124,3,0,131,1,0,114,83,0,100,1,0,125,
- 4,0,116,3,0,106,4,0,124,4,0,106,5,0,124,3,
- 0,100,2,0,25,131,1,0,116,6,0,131,2,0,1,110,
- 0,0,124,2,0,83,40,4,0,0,0,117,86,0,0,0,
- 84,114,121,32,116,111,32,102,105,110,100,32,97,32,108,111,
- 97,100,101,114,32,102,111,114,32,116,104,101,32,115,112,101,
- 99,105,102,105,101,100,32,109,111,100,117,108,101,32,98,121,
- 32,100,101,108,101,103,97,116,105,110,103,32,116,111,10,32,
- 32,32,32,115,101,108,102,46,102,105,110,100,95,108,111,97,
- 100,101,114,40,41,46,117,44,0,0,0,78,111,116,32,105,
- 109,112,111,114,116,105,110,103,32,100,105,114,101,99,116,111,
- 114,121,32,123,125,58,32,109,105,115,115,105,110,103,32,95,
- 95,105,110,105,116,95,95,105,0,0,0,0,78,40,7,0,
- 0,0,117,11,0,0,0,102,105,110,100,95,108,111,97,100,
- 101,114,117,4,0,0,0,78,111,110,101,117,3,0,0,0,
- 108,101,110,117,9,0,0,0,95,119,97,114,110,105,110,103,
- 115,117,4,0,0,0,119,97,114,110,117,6,0,0,0,102,
- 111,114,109,97,116,117,13,0,0,0,73,109,112,111,114,116,
- 87,97,114,110,105,110,103,40,5,0,0,0,117,4,0,0,
- 0,115,101,108,102,117,8,0,0,0,102,117,108,108,110,97,
- 109,101,117,6,0,0,0,108,111,97,100,101,114,117,8,0,
- 0,0,112,111,114,116,105,111,110,115,117,3,0,0,0,109,
- 115,103,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,17,
- 0,0,0,95,102,105,110,100,95,109,111,100,117,108,101,95,
- 115,104,105,109,99,2,0,0,115,10,0,0,0,0,6,21,
- 1,24,1,6,1,32,1,117,17,0,0,0,95,102,105,110,
- 100,95,109,111,100,117,108,101,95,115,104,105,109,99,1,0,
- 0,0,0,0,0,0,1,0,0,0,6,0,0,0,66,0,
- 0,0,115,173,0,0,0,124,0,0,69,101,0,0,90,1,
- 0,100,0,0,90,2,0,100,1,0,90,3,0,101,4,0,
- 100,2,0,100,3,0,132,0,0,131,1,0,90,5,0,101,
- 4,0,100,14,0,100,4,0,100,5,0,132,1,0,131,1,
- 0,90,7,0,101,4,0,101,8,0,101,9,0,101,10,0,
- 100,6,0,100,7,0,132,0,0,131,1,0,131,1,0,131,
- 1,0,131,1,0,90,11,0,101,4,0,101,10,0,100,8,
- 0,100,9,0,132,0,0,131,1,0,131,1,0,90,12,0,
- 101,4,0,101,10,0,100,10,0,100,11,0,132,0,0,131,
- 1,0,131,1,0,90,13,0,101,4,0,101,10,0,100,12,
- 0,100,13,0,132,0,0,131,1,0,131,1,0,90,14,0,
- 100,14,0,83,40,15,0,0,0,117,15,0,0,0,66,117,
- 105,108,116,105,110,73,109,112,111,114,116,101,114,117,144,0,
- 0,0,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,99,2,0,0,0,0,0,0,0,2,0,0,0,2,
- 0,0,0,67,0,0,0,115,16,0,0,0,100,1,0,106,
- 0,0,124,1,0,106,1,0,131,1,0,83,40,2,0,0,
- 0,78,117,24,0,0,0,60,109,111,100,117,108,101,32,39,
- 123,125,39,32,40,98,117,105,108,116,45,105,110,41,62,40,
- 2,0,0,0,117,6,0,0,0,102,111,114,109,97,116,117,
- 8,0,0,0,95,95,110,97,109,101,95,95,40,2,0,0,
- 0,117,3,0,0,0,99,108,115,117,6,0,0,0,109,111,
- 100,117,108,101,40,0,0,0,0,40,0,0,0,0,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,11,0,0,0,109,111,100,117,108,101,95,114,101,112,114,
- 125,2,0,0,115,2,0,0,0,0,2,117,27,0,0,0,
- 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,
- 109,111,100,117,108,101,95,114,101,112,114,99,3,0,0,0,
- 0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,
- 115,39,0,0,0,124,2,0,100,1,0,107,9,0,114,16,
- 0,100,1,0,83,116,1,0,106,2,0,124,1,0,131,1,
- 0,114,35,0,124,0,0,83,100,1,0,83,40,2,0,0,
- 0,117,113,0,0,0,70,105,110,100,32,116,104,101,32,98,
- 117,105,108,116,45,105,110,32,109,111,100,117,108,101,46,10,
- 10,32,32,32,32,32,32,32,32,73,102,32,39,112,97,116,
- 104,39,32,105,115,32,101,118,101,114,32,115,112,101,99,105,
- 102,105,101,100,32,116,104,101,110,32,116,104,101,32,115,101,
- 97,114,99,104,32,105,115,32,99,111,110,115,105,100,101,114,
- 101,100,32,97,32,102,97,105,108,117,114,101,46,10,10,32,
- 32,32,32,32,32,32,32,78,40,3,0,0,0,117,4,0,
- 0,0,78,111,110,101,117,4,0,0,0,95,105,109,112,117,
- 10,0,0,0,105,115,95,98,117,105,108,116,105,110,40,3,
- 0,0,0,117,3,0,0,0,99,108,115,117,8,0,0,0,
- 102,117,108,108,110,97,109,101,117,4,0,0,0,112,97,116,
- 104,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,
- 0,0,102,105,110,100,95,109,111,100,117,108,101,129,2,0,
- 0,115,6,0,0,0,0,7,12,1,4,1,117,27,0,0,
- 0,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,
- 46,102,105,110,100,95,109,111,100,117,108,101,99,2,0,0,
- 0,0,0,0,0,3,0,0,0,9,0,0,0,67,0,0,
- 0,115,88,0,0,0,124,1,0,116,0,0,106,1,0,107,
- 6,0,125,2,0,121,20,0,116,2,0,116,3,0,106,4,
- 0,124,1,0,131,2,0,83,87,110,46,0,1,1,1,124,
- 2,0,12,114,76,0,124,1,0,116,0,0,106,1,0,107,
- 6,0,114,76,0,116,0,0,106,1,0,124,1,0,61,110,
- 0,0,130,0,0,89,110,1,0,88,100,1,0,83,40,2,
- 0,0,0,117,23,0,0,0,76,111,97,100,32,97,32,98,
- 117,105,108,116,45,105,110,32,109,111,100,117,108,101,46,78,
- 40,5,0,0,0,117,3,0,0,0,115,121,115,117,7,0,
- 0,0,109,111,100,117,108,101,115,117,25,0,0,0,95,99,
- 97,108,108,95,119,105,116,104,95,102,114,97,109,101,115,95,
- 114,101,109,111,118,101,100,117,4,0,0,0,95,105,109,112,
- 117,12,0,0,0,105,110,105,116,95,98,117,105,108,116,105,
- 110,40,3,0,0,0,117,3,0,0,0,99,108,115,117,8,
- 0,0,0,102,117,108,108,110,97,109,101,117,9,0,0,0,
- 105,115,95,114,101,108,111,97,100,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,11,0,0,0,108,111,97,100,95,109,
- 111,100,117,108,101,140,2,0,0,115,14,0,0,0,0,6,
- 15,1,3,1,20,1,3,1,22,1,13,1,117,27,0,0,
+ 110,95,119,114,97,112,112,101,114,40,1,0,0,0,114,64,
+ 0,0,0,40,2,0,0,0,114,168,0,0,0,114,179,0,
+ 0,0,114,4,0,0,0,40,1,0,0,0,114,168,0,0,
+ 0,114,5,0,0,0,244,17,0,0,0,95,114,101,113,117,
+ 105,114,101,115,95,98,117,105,108,116,105,110,100,2,0,0,
+ 115,6,0,0,0,0,2,18,5,13,1,114,180,0,0,0,
+ 99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,
+ 0,3,0,0,0,115,35,0,0,0,135,0,0,102,1,0,
+ 100,1,0,100,2,0,134,0,0,125,1,0,116,0,0,124,
+ 1,0,136,0,0,131,2,0,1,124,1,0,83,40,3,0,
+ 0,0,117,47,0,0,0,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,2,
+ 0,0,0,4,0,0,0,19,0,0,0,115,58,0,0,0,
+ 116,0,0,106,1,0,124,1,0,131,1,0,115,45,0,116,
+ 2,0,100,1,0,106,3,0,124,1,0,131,1,0,100,2,
+ 0,124,1,0,131,1,1,130,1,0,110,0,0,136,0,0,
+ 124,0,0,124,1,0,131,2,0,83,40,3,0,0,0,78,
+ 117,25,0,0,0,123,125,32,105,115,32,110,111,116,32,97,
+ 32,102,114,111,122,101,110,32,109,111,100,117,108,101,114,71,
+ 0,0,0,40,4,0,0,0,114,94,0,0,0,244,9,0,
+ 0,0,105,115,95,102,114,111,122,101,110,114,157,0,0,0,
+ 114,46,0,0,0,40,2,0,0,0,114,75,0,0,0,114,
+ 178,0,0,0,40,1,0,0,0,114,168,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,244,24,0,0,0,95,114,101,
+ 113,117,105,114,101,115,95,102,114,111,122,101,110,95,119,114,
+ 97,112,112,101,114,113,2,0,0,115,8,0,0,0,0,1,
+ 15,1,18,1,12,1,117,50,0,0,0,95,114,101,113,117,
+ 105,114,101,115,95,102,114,111,122,101,110,46,60,108,111,99,
+ 97,108,115,62,46,95,114,101,113,117,105,114,101,115,95,102,
+ 114,111,122,101,110,95,119,114,97,112,112,101,114,40,1,0,
+ 0,0,114,64,0,0,0,40,2,0,0,0,114,168,0,0,
+ 0,114,182,0,0,0,114,4,0,0,0,40,1,0,0,0,
+ 114,168,0,0,0,114,5,0,0,0,244,16,0,0,0,95,
+ 114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,111,
+ 2,0,0,115,6,0,0,0,0,2,18,5,13,1,114,183,
+ 0,0,0,99,2,0,0,0,0,0,0,0,5,0,0,0,
+ 5,0,0,0,67,0,0,0,115,87,0,0,0,124,0,0,
+ 106,0,0,124,1,0,131,1,0,92,2,0,125,2,0,125,
+ 3,0,124,2,0,100,1,0,107,8,0,114,83,0,116,1,
+ 0,124,3,0,131,1,0,114,83,0,100,2,0,125,4,0,
+ 116,2,0,106,3,0,124,4,0,106,4,0,124,3,0,100,
+ 3,0,25,131,1,0,116,5,0,131,2,0,1,110,0,0,
+ 124,2,0,83,40,4,0,0,0,117,86,0,0,0,84,114,
+ 121,32,116,111,32,102,105,110,100,32,97,32,108,111,97,100,
+ 101,114,32,102,111,114,32,116,104,101,32,115,112,101,99,105,
+ 102,105,101,100,32,109,111,100,117,108,101,32,98,121,32,100,
+ 101,108,101,103,97,116,105,110,103,32,116,111,10,32,32,32,
+ 32,115,101,108,102,46,102,105,110,100,95,108,111,97,100,101,
+ 114,40,41,46,78,117,44,0,0,0,78,111,116,32,105,109,
+ 112,111,114,116,105,110,103,32,100,105,114,101,99,116,111,114,
+ 121,32,123,125,58,32,109,105,115,115,105,110,103,32,95,95,
+ 105,110,105,116,95,95,114,67,0,0,0,40,6,0,0,0,
+ 244,11,0,0,0,102,105,110,100,95,108,111,97,100,101,114,
+ 114,31,0,0,0,244,9,0,0,0,95,119,97,114,110,105,
+ 110,103,115,244,4,0,0,0,119,97,114,110,114,46,0,0,
+ 0,244,13,0,0,0,73,109,112,111,114,116,87,97,114,110,
+ 105,110,103,40,5,0,0,0,114,75,0,0,0,114,178,0,
+ 0,0,114,160,0,0,0,244,8,0,0,0,112,111,114,116,
+ 105,111,110,115,244,3,0,0,0,109,115,103,114,4,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,244,17,0,0,0,
+ 95,102,105,110,100,95,109,111,100,117,108,101,95,115,104,105,
+ 109,122,2,0,0,115,10,0,0,0,0,6,21,1,24,1,
+ 6,1,32,1,114,190,0,0,0,99,4,0,0,0,0,0,
+ 0,0,11,0,0,0,19,0,0,0,67,0,0,0,115,243,
+ 1,0,0,105,0,0,125,4,0,124,2,0,100,1,0,107,
+ 9,0,114,31,0,124,2,0,124,4,0,100,2,0,60,110,
+ 6,0,100,3,0,125,2,0,124,3,0,100,1,0,107,9,
+ 0,114,62,0,124,3,0,124,4,0,100,4,0,60,110,0,
+ 0,124,0,0,100,1,0,100,5,0,133,2,0,25,125,5,
+ 0,124,0,0,100,5,0,100,6,0,133,2,0,25,125,6,
+ 0,124,0,0,100,6,0,100,7,0,133,2,0,25,125,7,
+ 0,124,5,0,116,0,0,107,3,0,114,168,0,100,8,0,
+ 106,1,0,124,2,0,124,5,0,131,2,0,125,8,0,116,
+ 2,0,124,8,0,131,1,0,1,116,3,0,124,8,0,124,
+ 4,0,141,1,0,130,1,0,110,116,0,116,4,0,124,6,
+ 0,131,1,0,100,5,0,107,3,0,114,226,0,100,9,0,
+ 106,1,0,124,2,0,131,1,0,125,8,0,116,2,0,124,
+ 8,0,131,1,0,1,116,5,0,124,8,0,131,1,0,130,
+ 1,0,110,58,0,116,4,0,124,7,0,131,1,0,100,5,
+ 0,107,3,0,114,28,1,100,10,0,106,1,0,124,2,0,
+ 131,1,0,125,8,0,116,2,0,124,8,0,131,1,0,1,
+ 116,5,0,124,8,0,131,1,0,130,1,0,110,0,0,124,
+ 1,0,100,1,0,107,9,0,114,229,1,121,20,0,116,6,
+ 0,124,1,0,100,11,0,25,131,1,0,125,9,0,87,110,
+ 18,0,4,116,7,0,107,10,0,114,80,1,1,1,1,89,
+ 110,62,0,88,116,8,0,124,6,0,131,1,0,124,9,0,
+ 107,3,0,114,142,1,100,12,0,106,1,0,124,2,0,131,
+ 1,0,125,8,0,116,2,0,124,8,0,131,1,0,1,116,
+ 3,0,124,8,0,124,4,0,141,1,0,130,1,0,110,0,
+ 0,121,18,0,124,1,0,100,13,0,25,100,14,0,64,125,
+ 10,0,87,110,18,0,4,116,7,0,107,10,0,114,180,1,
+ 1,1,1,89,113,229,1,88,116,8,0,124,7,0,131,1,
+ 0,124,10,0,107,3,0,114,229,1,116,3,0,100,12,0,
+ 106,1,0,124,2,0,131,1,0,124,4,0,141,1,0,130,
+ 1,0,113,229,1,110,0,0,124,0,0,100,7,0,100,1,
+ 0,133,2,0,25,83,40,15,0,0,0,117,122,1,0,0,
+ 86,97,108,105,100,97,116,101,32,116,104,101,32,104,101,97,
+ 100,101,114,32,111,102,32,116,104,101,32,112,97,115,115,101,
+ 100,45,105,110,32,98,121,116,101,99,111,100,101,32,97,103,
+ 97,105,110,115,116,32,115,111,117,114,99,101,95,115,116,97,
+ 116,115,32,40,105,102,10,32,32,32,32,103,105,118,101,110,
+ 41,32,97,110,100,32,114,101,116,117,114,110,105,110,103,32,
+ 116,104,101,32,98,121,116,101,99,111,100,101,32,116,104,97,
+ 116,32,99,97,110,32,98,101,32,99,111,109,112,105,108,101,
+ 100,32,98,121,32,99,111,109,112,105,108,101,40,41,46,10,
+ 10,32,32,32,32,65,108,108,32,111,116,104,101,114,32,97,
+ 114,103,117,109,101,110,116,115,32,97,114,101,32,117,115,101,
+ 100,32,116,111,32,101,110,104,97,110,99,101,32,101,114,114,
+ 111,114,32,114,101,112,111,114,116,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,116,
+ 104,101,32,98,121,116,101,99,111,100,101,32,105,115,10,32,
+ 32,32,32,102,111,117,110,100,32,116,111,32,98,101,32,115,
+ 116,97,108,101,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,10,32,32,32,32,116,114,117,110,99,97,
+ 116,101,100,46,10,10,32,32,32,32,78,114,71,0,0,0,
+ 117,10,0,0,0,60,98,121,116,101,99,111,100,101,62,114,
+ 35,0,0,0,114,12,0,0,0,233,8,0,0,0,233,12,
+ 0,0,0,117,30,0,0,0,98,97,100,32,109,97,103,105,
+ 99,32,110,117,109,98,101,114,32,105,110,32,123,33,114,125,
+ 58,32,123,33,114,125,117,43,0,0,0,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,116,105,109,101,115,116,97,109,112,32,105,
+ 110,32,123,33,114,125,117,48,0,0,0,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,115,105,122,101,32,111,102,32,115,111,117,
+ 114,99,101,32,105,110,32,123,33,114,125,244,5,0,0,0,
+ 109,116,105,109,101,117,26,0,0,0,98,121,116,101,99,111,
+ 100,101,32,105,115,32,115,116,97,108,101,32,102,111,114,32,
+ 123,33,114,125,244,4,0,0,0,115,105,122,101,108,3,0,
+ 0,0,255,127,255,127,3,0,40,9,0,0,0,244,12,0,
+ 0,0,77,65,71,73,67,95,78,85,77,66,69,82,114,46,
+ 0,0,0,114,137,0,0,0,114,157,0,0,0,114,31,0,
+ 0,0,244,8,0,0,0,69,79,70,69,114,114,111,114,114,
+ 14,0,0,0,114,91,0,0,0,114,19,0,0,0,40,11,
+ 0,0,0,114,52,0,0,0,244,12,0,0,0,115,111,117,
+ 114,99,101,95,115,116,97,116,115,114,71,0,0,0,114,35,
+ 0,0,0,116,11,0,0,0,101,120,99,95,100,101,116,97,
+ 105,108,115,116,5,0,0,0,109,97,103,105,99,116,13,0,
+ 0,0,114,97,119,95,116,105,109,101,115,116,97,109,112,116,
+ 8,0,0,0,114,97,119,95,115,105,122,101,114,136,0,0,
+ 0,244,12,0,0,0,115,111,117,114,99,101,95,109,116,105,
+ 109,101,244,11,0,0,0,115,111,117,114,99,101,95,115,105,
+ 122,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,
+ 0,244,25,0,0,0,95,118,97,108,105,100,97,116,101,95,
+ 98,121,116,101,99,111,100,101,95,104,101,97,100,101,114,135,
+ 2,0,0,115,76,0,0,0,0,11,6,1,12,1,13,3,
+ 6,1,12,1,13,1,16,1,16,1,16,1,12,1,18,1,
+ 10,1,18,1,18,1,15,1,10,1,15,1,18,1,15,1,
+ 10,1,15,1,12,1,3,1,20,1,13,1,5,2,18,1,
+ 15,1,10,1,18,1,3,1,18,1,13,1,5,2,18,1,
+ 15,1,15,1,114,200,0,0,0,99,4,0,0,0,0,0,
+ 0,0,5,0,0,0,6,0,0,0,67,0,0,0,115,115,
+ 0,0,0,116,0,0,106,1,0,124,0,0,131,1,0,125,
+ 4,0,116,2,0,124,4,0,116,3,0,131,2,0,114,78,
+ 0,116,4,0,100,1,0,124,2,0,131,2,0,1,124,3,
+ 0,100,2,0,107,9,0,114,74,0,116,5,0,106,6,0,
+ 124,4,0,124,3,0,131,2,0,1,110,0,0,124,4,0,
+ 83,116,7,0,100,3,0,106,8,0,124,2,0,131,1,0,
+ 100,4,0,124,1,0,100,5,0,124,2,0,131,1,2,130,
+ 1,0,100,2,0,83,40,6,0,0,0,117,60,0,0,0,
+ 67,111,109,112,105,108,101,32,98,121,116,101,99,111,100,101,
+ 32,97,115,32,114,101,116,117,114,110,101,100,32,98,121,32,
+ 95,118,97,108,105,100,97,116,101,95,98,121,116,101,99,111,
+ 100,101,95,104,101,97,100,101,114,40,41,46,117,21,0,0,
+ 0,99,111,100,101,32,111,98,106,101,99,116,32,102,114,111,
+ 109,32,123,33,114,125,78,117,23,0,0,0,78,111,110,45,
+ 99,111,100,101,32,111,98,106,101,99,116,32,105,110,32,123,
+ 33,114,125,114,71,0,0,0,114,35,0,0,0,40,9,0,
+ 0,0,244,7,0,0,0,109,97,114,115,104,97,108,116,5,
+ 0,0,0,108,111,97,100,115,244,10,0,0,0,105,115,105,
+ 110,115,116,97,110,99,101,244,10,0,0,0,95,99,111,100,
+ 101,95,116,121,112,101,114,137,0,0,0,114,94,0,0,0,
+ 116,16,0,0,0,95,102,105,120,95,99,111,95,102,105,108,
+ 101,110,97,109,101,114,157,0,0,0,114,46,0,0,0,40,
+ 5,0,0,0,114,52,0,0,0,114,71,0,0,0,114,125,
+ 0,0,0,114,126,0,0,0,244,4,0,0,0,99,111,100,
+ 101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,
+ 244,17,0,0,0,95,99,111,109,112,105,108,101,95,98,121,
+ 116,101,99,111,100,101,190,2,0,0,115,16,0,0,0,0,
+ 2,15,1,15,1,13,1,12,1,19,1,4,2,18,1,114,
+ 205,0,0,0,114,67,0,0,0,99,3,0,0,0,0,0,
+ 0,0,4,0,0,0,3,0,0,0,67,0,0,0,115,76,
+ 0,0,0,116,0,0,116,1,0,131,1,0,125,3,0,124,
+ 3,0,106,2,0,116,3,0,124,1,0,131,1,0,131,1,
+ 0,1,124,3,0,106,2,0,116,3,0,124,2,0,131,1,
+ 0,131,1,0,1,124,3,0,106,2,0,116,4,0,106,5,
+ 0,124,0,0,131,1,0,131,1,0,1,124,3,0,83,40,
+ 1,0,0,0,117,80,0,0,0,67,111,109,112,105,108,101,
+ 32,97,32,99,111,100,101,32,111,98,106,101,99,116,32,105,
+ 110,116,111,32,98,121,116,101,99,111,100,101,32,102,111,114,
+ 32,119,114,105,116,105,110,103,32,111,117,116,32,116,111,32,
+ 97,32,98,121,116,101,45,99,111,109,112,105,108,101,100,10,
+ 32,32,32,32,102,105,108,101,46,40,6,0,0,0,244,9,
+ 0,0,0,98,121,116,101,97,114,114,97,121,114,195,0,0,
+ 0,244,6,0,0,0,101,120,116,101,110,100,114,17,0,0,
+ 0,114,201,0,0,0,116,5,0,0,0,100,117,109,112,115,
+ 40,4,0,0,0,114,204,0,0,0,114,193,0,0,0,114,
+ 199,0,0,0,114,52,0,0,0,114,4,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,244,17,0,0,0,95,99,111,
+ 100,101,95,116,111,95,98,121,116,101,99,111,100,101,202,2,
+ 0,0,115,10,0,0,0,0,3,12,1,19,1,19,1,22,
+ 1,114,208,0,0,0,99,1,0,0,0,0,0,0,0,5,
+ 0,0,0,4,0,0,0,67,0,0,0,115,89,0,0,0,
+ 100,1,0,100,2,0,108,0,0,125,1,0,116,1,0,106,
+ 2,0,124,0,0,131,1,0,106,3,0,125,2,0,124,1,
+ 0,106,4,0,124,2,0,131,1,0,125,3,0,116,1,0,
+ 106,5,0,100,2,0,100,3,0,131,2,0,125,4,0,124,
+ 4,0,106,6,0,124,0,0,106,6,0,124,3,0,100,1,
+ 0,25,131,1,0,131,1,0,83,40,4,0,0,0,117,121,
+ 0,0,0,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,67,0,0,
+ 0,78,84,40,7,0,0,0,244,8,0,0,0,116,111,107,
+ 101,110,105,122,101,114,48,0,0,0,116,7,0,0,0,66,
+ 121,116,101,115,73,79,116,8,0,0,0,114,101,97,100,108,
+ 105,110,101,116,15,0,0,0,100,101,116,101,99,116,95,101,
+ 110,99,111,100,105,110,103,116,25,0,0,0,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,244,6,0,0,0,100,101,99,111,100,101,
+ 40,5,0,0,0,244,12,0,0,0,115,111,117,114,99,101,
+ 95,98,121,116,101,115,114,209,0,0,0,116,21,0,0,0,
+ 115,111,117,114,99,101,95,98,121,116,101,115,95,114,101,97,
+ 100,108,105,110,101,244,8,0,0,0,101,110,99,111,100,105,
+ 110,103,116,15,0,0,0,110,101,119,108,105,110,101,95,100,
+ 101,99,111,100,101,114,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,244,13,0,0,0,100,101,99,111,100,101,
+ 95,115,111,117,114,99,101,212,2,0,0,115,10,0,0,0,
+ 0,5,12,1,18,1,15,1,18,1,114,213,0,0,0,99,
+ 0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,
+ 64,0,0,0,115,169,0,0,0,101,0,0,90,1,0,100,
+ 0,0,90,2,0,100,1,0,90,3,0,101,4,0,100,2,
+ 0,100,3,0,132,0,0,131,1,0,90,5,0,101,4,0,
+ 100,4,0,100,5,0,100,6,0,132,1,0,131,1,0,90,
+ 6,0,101,4,0,101,7,0,101,8,0,101,9,0,100,7,
+ 0,100,8,0,132,0,0,131,1,0,131,1,0,131,1,0,
+ 131,1,0,90,10,0,101,4,0,101,9,0,100,9,0,100,
+ 10,0,132,0,0,131,1,0,131,1,0,90,11,0,101,4,
+ 0,101,9,0,100,11,0,100,12,0,132,0,0,131,1,0,
+ 131,1,0,90,12,0,101,4,0,101,9,0,100,13,0,100,
+ 14,0,132,0,0,131,1,0,131,1,0,90,13,0,100,4,
+ 0,83,40,15,0,0,0,244,15,0,0,0,66,117,105,108,
+ 116,105,110,73,109,112,111,114,116,101,114,117,144,0,0,0,
+ 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,
+ 99,2,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
+ 0,67,0,0,0,115,16,0,0,0,100,1,0,106,0,0,
+ 124,1,0,106,1,0,131,1,0,83,40,2,0,0,0,78,
+ 117,24,0,0,0,60,109,111,100,117,108,101,32,123,33,114,
+ 125,32,40,98,117,105,108,116,45,105,110,41,62,40,2,0,
+ 0,0,114,46,0,0,0,114,56,0,0,0,40,2,0,0,
+ 0,244,3,0,0,0,99,108,115,114,161,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,244,11,0,
+ 0,0,109,111,100,117,108,101,95,114,101,112,114,235,2,0,
+ 0,115,2,0,0,0,0,2,117,27,0,0,0,66,117,105,
+ 108,116,105,110,73,109,112,111,114,116,101,114,46,109,111,100,
+ 117,108,101,95,114,101,112,114,78,99,3,0,0,0,0,0,
+ 0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,39,
+ 0,0,0,124,2,0,100,1,0,107,9,0,114,16,0,100,
+ 1,0,83,116,0,0,106,1,0,124,1,0,131,1,0,114,
+ 35,0,124,0,0,83,100,1,0,83,40,2,0,0,0,117,
+ 113,0,0,0,70,105,110,100,32,116,104,101,32,98,117,105,
+ 108,116,45,105,110,32,109,111,100,117,108,101,46,10,10,32,
+ 32,32,32,32,32,32,32,73,102,32,39,112,97,116,104,39,
+ 32,105,115,32,101,118,101,114,32,115,112,101,99,105,102,105,
+ 101,100,32,116,104,101,110,32,116,104,101,32,115,101,97,114,
+ 99,104,32,105,115,32,99,111,110,115,105,100,101,114,101,100,
+ 32,97,32,102,97,105,108,117,114,101,46,10,10,32,32,32,
+ 32,32,32,32,32,78,40,2,0,0,0,114,94,0,0,0,
+ 116,10,0,0,0,105,115,95,98,117,105,108,116,105,110,40,
+ 3,0,0,0,114,215,0,0,0,114,178,0,0,0,114,35,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,244,11,0,0,0,102,105,110,100,95,109,111,100,117,
+ 108,101,239,2,0,0,115,6,0,0,0,0,7,12,1,4,
+ 1,117,27,0,0,0,66,117,105,108,116,105,110,73,109,112,
+ 111,114,116,101,114,46,102,105,110,100,95,109,111,100,117,108,
+ 101,99,2,0,0,0,0,0,0,0,2,0,0,0,10,0,
+ 0,0,67,0,0,0,115,39,0,0,0,116,0,0,124,1,
+ 0,131,1,0,143,21,0,1,116,1,0,116,2,0,106,3,
+ 0,124,1,0,131,2,0,83,87,100,1,0,81,88,100,1,
+ 0,83,40,2,0,0,0,117,23,0,0,0,76,111,97,100,
+ 32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,117,
+ 108,101,46,78,40,4,0,0,0,114,138,0,0,0,114,99,
+ 0,0,0,114,94,0,0,0,116,12,0,0,0,105,110,105,
+ 116,95,98,117,105,108,116,105,110,40,2,0,0,0,114,215,
+ 0,0,0,114,178,0,0,0,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,244,11,0,0,0,108,111,97,100,
+ 95,109,111,100,117,108,101,250,2,0,0,115,4,0,0,0,
+ 0,6,13,1,117,27,0,0,0,66,117,105,108,116,105,110,
+ 73,109,112,111,114,116,101,114,46,108,111,97,100,95,109,111,
+ 100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,0,
+ 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,
+ 0,83,40,2,0,0,0,117,57,0,0,0,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,4,0,0,0,40,2,0,0,0,
+ 114,215,0,0,0,114,178,0,0,0,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,244,8,0,0,0,103,101,
+ 116,95,99,111,100,101,3,3,0,0,115,2,0,0,0,0,
+ 4,117,24,0,0,0,66,117,105,108,116,105,110,73,109,112,
+ 111,114,116,101,114,46,103,101,116,95,99,111,100,101,99,2,
+ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
+ 0,0,0,115,4,0,0,0,100,1,0,83,40,2,0,0,
+ 0,117,56,0,0,0,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,
+ 4,0,0,0,40,2,0,0,0,114,215,0,0,0,114,178,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,244,10,0,0,0,103,101,116,95,115,111,117,114,99,
+ 101,9,3,0,0,115,2,0,0,0,0,4,117,26,0,0,
0,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,
- 46,108,111,97,100,95,109,111,100,117,108,101,99,2,0,0,
- 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
- 0,115,4,0,0,0,100,1,0,83,40,2,0,0,0,117,
- 57,0,0,0,82,101,116,117,114,110,32,78,111,110,101,32,
+ 46,103,101,116,95,115,111,117,114,99,101,99,2,0,0,0,
+ 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
+ 115,4,0,0,0,100,1,0,83,40,2,0,0,0,117,52,
+ 0,0,0,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,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,40,1,
- 0,0,0,117,4,0,0,0,78,111,110,101,40,2,0,0,
- 0,117,3,0,0,0,99,108,115,117,8,0,0,0,102,117,
- 108,108,110,97,109,101,40,0,0,0,0,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,8,0,0,0,103,101,116,95,99,111,100,101,154,
- 2,0,0,115,2,0,0,0,0,4,117,24,0,0,0,66,
- 117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,103,
- 101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,
- 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
- 0,100,1,0,83,40,2,0,0,0,117,56,0,0,0,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,40,1,0,0,0,117,4,0,
- 0,0,78,111,110,101,40,2,0,0,0,117,3,0,0,0,
- 99,108,115,117,8,0,0,0,102,117,108,108,110,97,109,101,
- 40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,10,0,0,
- 0,103,101,116,95,115,111,117,114,99,101,160,2,0,0,115,
- 2,0,0,0,0,4,117,26,0,0,0,66,117,105,108,116,
- 105,110,73,109,112,111,114,116,101,114,46,103,101,116,95,115,
- 111,117,114,99,101,99,2,0,0,0,0,0,0,0,2,0,
- 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
- 1,0,83,40,2,0,0,0,117,52,0,0,0,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,40,1,0,0,0,117,5,0,0,0,70,97,108,115,
- 101,40,2,0,0,0,117,3,0,0,0,99,108,115,117,8,
- 0,0,0,102,117,108,108,110,97,109,101,40,0,0,0,0,
- 40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,
- 110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
- 116,115,116,114,97,112,62,117,10,0,0,0,105,115,95,112,
- 97,99,107,97,103,101,166,2,0,0,115,2,0,0,0,0,
- 4,117,26,0,0,0,66,117,105,108,116,105,110,73,109,112,
- 111,114,116,101,114,46,105,115,95,112,97,99,107,97,103,101,
- 78,40,15,0,0,0,117,8,0,0,0,95,95,110,97,109,
- 101,95,95,117,10,0,0,0,95,95,109,111,100,117,108,101,
- 95,95,117,12,0,0,0,95,95,113,117,97,108,110,97,109,
- 101,95,95,117,7,0,0,0,95,95,100,111,99,95,95,117,
- 11,0,0,0,99,108,97,115,115,109,101,116,104,111,100,117,
- 11,0,0,0,109,111,100,117,108,101,95,114,101,112,114,117,
- 4,0,0,0,78,111,110,101,117,11,0,0,0,102,105,110,
- 100,95,109,111,100,117,108,101,117,11,0,0,0,115,101,116,
- 95,112,97,99,107,97,103,101,117,10,0,0,0,115,101,116,
- 95,108,111,97,100,101,114,117,17,0,0,0,95,114,101,113,
- 117,105,114,101,115,95,98,117,105,108,116,105,110,117,11,0,
- 0,0,108,111,97,100,95,109,111,100,117,108,101,117,8,0,
- 0,0,103,101,116,95,99,111,100,101,117,10,0,0,0,103,
- 101,116,95,115,111,117,114,99,101,117,10,0,0,0,105,115,
- 95,112,97,99,107,97,103,101,40,1,0,0,0,117,10,0,
- 0,0,95,95,108,111,99,97,108,115,95,95,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,15,0,0,0,66,117,105,
- 108,116,105,110,73,109,112,111,114,116,101,114,116,2,0,0,
- 115,28,0,0,0,16,7,6,2,18,4,3,1,18,10,3,
- 1,3,1,3,1,27,11,3,1,21,5,3,1,21,5,3,
- 1,117,15,0,0,0,66,117,105,108,116,105,110,73,109,112,
- 111,114,116,101,114,99,1,0,0,0,0,0,0,0,1,0,
- 0,0,6,0,0,0,66,0,0,0,115,173,0,0,0,124,
- 0,0,69,101,0,0,90,1,0,100,0,0,90,2,0,100,
- 1,0,90,3,0,101,4,0,100,2,0,100,3,0,132,0,
- 0,131,1,0,90,5,0,101,4,0,100,14,0,100,4,0,
- 100,5,0,132,1,0,131,1,0,90,7,0,101,4,0,101,
- 8,0,101,9,0,101,10,0,100,6,0,100,7,0,132,0,
- 0,131,1,0,131,1,0,131,1,0,131,1,0,90,11,0,
- 101,4,0,101,10,0,100,8,0,100,9,0,132,0,0,131,
- 1,0,131,1,0,90,12,0,101,4,0,101,10,0,100,10,
- 0,100,11,0,132,0,0,131,1,0,131,1,0,90,13,0,
- 101,4,0,101,10,0,100,12,0,100,13,0,132,0,0,131,
- 1,0,131,1,0,90,14,0,100,14,0,83,40,15,0,0,
- 0,117,14,0,0,0,70,114,111,122,101,110,73,109,112,111,
- 114,116,101,114,117,142,0,0,0,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,99,2,0,0,0,0,0,0,0,
- 2,0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,
- 0,100,1,0,106,0,0,124,1,0,106,1,0,131,1,0,
- 83,40,2,0,0,0,78,117,22,0,0,0,60,109,111,100,
- 117,108,101,32,39,123,125,39,32,40,102,114,111,122,101,110,
- 41,62,40,2,0,0,0,117,6,0,0,0,102,111,114,109,
- 97,116,117,8,0,0,0,95,95,110,97,109,101,95,95,40,
- 2,0,0,0,117,3,0,0,0,99,108,115,117,1,0,0,
- 0,109,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,11,
- 0,0,0,109,111,100,117,108,101,95,114,101,112,114,182,2,
- 0,0,115,2,0,0,0,0,2,117,26,0,0,0,70,114,
- 111,122,101,110,73,109,112,111,114,116,101,114,46,109,111,100,
- 117,108,101,95,114,101,112,114,99,3,0,0,0,0,0,0,
- 0,3,0,0,0,2,0,0,0,67,0,0,0,115,23,0,
- 0,0,116,0,0,106,1,0,124,1,0,131,1,0,114,19,
- 0,124,0,0,83,100,1,0,83,40,2,0,0,0,117,21,
- 0,0,0,70,105,110,100,32,97,32,102,114,111,122,101,110,
- 32,109,111,100,117,108,101,46,78,40,3,0,0,0,117,4,
- 0,0,0,95,105,109,112,117,9,0,0,0,105,115,95,102,
- 114,111,122,101,110,117,4,0,0,0,78,111,110,101,40,3,
- 0,0,0,117,3,0,0,0,99,108,115,117,8,0,0,0,
- 102,117,108,108,110,97,109,101,117,4,0,0,0,112,97,116,
- 104,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,
- 0,0,102,105,110,100,95,109,111,100,117,108,101,186,2,0,
- 0,115,2,0,0,0,0,3,117,26,0,0,0,70,114,111,
- 122,101,110,73,109,112,111,114,116,101,114,46,102,105,110,100,
- 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
- 4,0,0,0,9,0,0,0,67,0,0,0,115,100,0,0,
- 0,124,1,0,116,0,0,106,1,0,107,6,0,125,2,0,
- 121,32,0,116,2,0,116,3,0,106,4,0,124,1,0,131,
- 2,0,125,3,0,124,3,0,96,5,0,124,3,0,83,87,
- 110,46,0,1,1,1,124,2,0,12,114,88,0,124,1,0,
- 116,0,0,106,1,0,107,6,0,114,88,0,116,0,0,106,
- 1,0,124,1,0,61,110,0,0,130,0,0,89,110,1,0,
- 88,100,1,0,83,40,2,0,0,0,117,21,0,0,0,76,
- 111,97,100,32,97,32,102,114,111,122,101,110,32,109,111,100,
- 117,108,101,46,78,40,6,0,0,0,117,3,0,0,0,115,
- 121,115,117,7,0,0,0,109,111,100,117,108,101,115,117,25,
- 0,0,0,95,99,97,108,108,95,119,105,116,104,95,102,114,
- 97,109,101,115,95,114,101,109,111,118,101,100,117,4,0,0,
- 0,95,105,109,112,117,11,0,0,0,105,110,105,116,95,102,
- 114,111,122,101,110,117,8,0,0,0,95,95,102,105,108,101,
- 95,95,40,4,0,0,0,117,3,0,0,0,99,108,115,117,
- 8,0,0,0,102,117,108,108,110,97,109,101,117,9,0,0,
- 0,105,115,95,114,101,108,111,97,100,117,1,0,0,0,109,
- 40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,0,
- 0,108,111,97,100,95,109,111,100,117,108,101,191,2,0,0,
- 115,18,0,0,0,0,6,15,1,3,1,18,2,6,1,8,
- 1,3,1,22,1,13,1,117,26,0,0,0,70,114,111,122,
- 101,110,73,109,112,111,114,116,101,114,46,108,111,97,100,95,
- 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,2,
- 0,0,0,2,0,0,0,67,0,0,0,115,13,0,0,0,
- 116,0,0,106,1,0,124,1,0,131,1,0,83,40,1,0,
- 0,0,117,45,0,0,0,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,40,2,0,0,0,117,4,0,0,0,95,105,
- 109,112,117,17,0,0,0,103,101,116,95,102,114,111,122,101,
- 110,95,111,98,106,101,99,116,40,2,0,0,0,117,3,0,
- 0,0,99,108,115,117,8,0,0,0,102,117,108,108,110,97,
- 109,101,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,8,
- 0,0,0,103,101,116,95,99,111,100,101,208,2,0,0,115,
+ 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,4,0,0,0,40,2,0,
+ 0,0,114,215,0,0,0,114,178,0,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,114,156,0,0,0,
+ 15,3,0,0,115,2,0,0,0,0,4,117,26,0,0,0,
+ 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,
+ 105,115,95,112,97,99,107,97,103,101,40,14,0,0,0,114,
+ 56,0,0,0,114,55,0,0,0,114,57,0,0,0,114,58,
+ 0,0,0,244,11,0,0,0,99,108,97,115,115,109,101,116,
+ 104,111,100,114,216,0,0,0,114,217,0,0,0,114,170,0,
+ 0,0,114,173,0,0,0,114,180,0,0,0,114,218,0,0,
+ 0,114,219,0,0,0,114,220,0,0,0,114,156,0,0,0,
+ 114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,114,214,0,0,0,226,2,0,0,115,28,0,
+ 0,0,12,7,6,2,18,4,3,1,18,10,3,1,3,1,
+ 3,1,27,6,3,1,21,5,3,1,21,5,3,1,114,214,
+ 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
+ 6,0,0,0,64,0,0,0,115,169,0,0,0,101,0,0,
+ 90,1,0,100,0,0,90,2,0,100,1,0,90,3,0,101,
+ 4,0,100,2,0,100,3,0,132,0,0,131,1,0,90,5,
+ 0,101,4,0,100,4,0,100,5,0,100,6,0,132,1,0,
+ 131,1,0,90,6,0,101,4,0,101,7,0,101,8,0,101,
+ 9,0,100,7,0,100,8,0,132,0,0,131,1,0,131,1,
+ 0,131,1,0,131,1,0,90,10,0,101,4,0,101,9,0,
+ 100,9,0,100,10,0,132,0,0,131,1,0,131,1,0,90,
+ 11,0,101,4,0,101,9,0,100,11,0,100,12,0,132,0,
+ 0,131,1,0,131,1,0,90,12,0,101,4,0,101,9,0,
+ 100,13,0,100,14,0,132,0,0,131,1,0,131,1,0,90,
+ 13,0,100,4,0,83,40,15,0,0,0,244,14,0,0,0,
+ 70,114,111,122,101,110,73,109,112,111,114,116,101,114,117,142,
+ 0,0,0,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,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0,
+ 0,0,67,0,0,0,115,16,0,0,0,100,1,0,106,0,
+ 0,124,1,0,106,1,0,131,1,0,83,40,2,0,0,0,
+ 78,117,22,0,0,0,60,109,111,100,117,108,101,32,123,33,
+ 114,125,32,40,102,114,111,122,101,110,41,62,40,2,0,0,
+ 0,114,46,0,0,0,114,56,0,0,0,40,2,0,0,0,
+ 114,215,0,0,0,244,1,0,0,0,109,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,114,216,0,0,0,31,
+ 3,0,0,115,2,0,0,0,0,2,117,26,0,0,0,70,
+ 114,111,122,101,110,73,109,112,111,114,116,101,114,46,109,111,
+ 100,117,108,101,95,114,101,112,114,78,99,3,0,0,0,0,
+ 0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,
+ 23,0,0,0,116,0,0,106,1,0,124,1,0,131,1,0,
+ 114,19,0,124,0,0,83,100,1,0,83,40,2,0,0,0,
+ 117,21,0,0,0,70,105,110,100,32,97,32,102,114,111,122,
+ 101,110,32,109,111,100,117,108,101,46,78,40,2,0,0,0,
+ 114,94,0,0,0,114,181,0,0,0,40,3,0,0,0,114,
+ 215,0,0,0,114,178,0,0,0,114,35,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,114,217,0,
+ 0,0,35,3,0,0,115,2,0,0,0,0,3,117,26,0,
+ 0,0,70,114,111,122,101,110,73,109,112,111,114,116,101,114,
+ 46,102,105,110,100,95,109,111,100,117,108,101,99,2,0,0,
+ 0,0,0,0,0,3,0,0,0,10,0,0,0,67,0,0,
+ 0,115,51,0,0,0,116,0,0,124,1,0,131,1,0,143,
+ 33,0,1,116,1,0,116,2,0,106,3,0,124,1,0,131,
+ 2,0,125,2,0,124,2,0,96,4,0,124,2,0,83,87,
+ 100,1,0,81,88,100,1,0,83,40,2,0,0,0,117,21,
+ 0,0,0,76,111,97,100,32,97,32,102,114,111,122,101,110,
+ 32,109,111,100,117,108,101,46,78,40,5,0,0,0,114,138,
+ 0,0,0,114,99,0,0,0,114,94,0,0,0,116,11,0,
+ 0,0,105,110,105,116,95,102,114,111,122,101,110,114,164,0,
+ 0,0,40,3,0,0,0,114,215,0,0,0,114,178,0,0,
+ 0,114,223,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,114,218,0,0,0,40,3,0,0,115,8,
+ 0,0,0,0,6,13,1,18,2,6,1,117,26,0,0,0,
+ 70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,108,
+ 111,97,100,95,109,111,100,117,108,101,99,2,0,0,0,0,
+ 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,
+ 13,0,0,0,116,0,0,106,1,0,124,1,0,131,1,0,
+ 83,40,1,0,0,0,117,45,0,0,0,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,40,2,0,0,0,114,94,0,
+ 0,0,116,17,0,0,0,103,101,116,95,102,114,111,122,101,
+ 110,95,111,98,106,101,99,116,40,2,0,0,0,114,215,0,
+ 0,0,114,178,0,0,0,114,4,0,0,0,114,4,0,0,
+ 0,114,5,0,0,0,114,219,0,0,0,52,3,0,0,115,
2,0,0,0,0,4,117,23,0,0,0,70,114,111,122,101,
110,73,109,112,111,114,116,101,114,46,103,101,116,95,99,111,
100,101,99,2,0,0,0,0,0,0,0,2,0,0,0,1,
@@ -1614,454 +1598,308 @@ unsigned char _Py_M__importlib[] = {
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,40,1,0,0,0,117,4,0,0,0,78,111,110,101,40,
- 2,0,0,0,117,3,0,0,0,99,108,115,117,8,0,0,
- 0,102,117,108,108,110,97,109,101,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,10,0,0,0,103,101,116,95,115,111,
- 117,114,99,101,214,2,0,0,115,2,0,0,0,0,4,117,
+ 78,114,4,0,0,0,40,2,0,0,0,114,215,0,0,0,
+ 114,178,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,114,220,0,0,0,58,3,0,0,115,2,0,
+ 0,0,0,4,117,25,0,0,0,70,114,111,122,101,110,73,
+ 109,112,111,114,116,101,114,46,103,101,116,95,115,111,117,114,
+ 99,101,99,2,0,0,0,0,0,0,0,2,0,0,0,2,
+ 0,0,0,67,0,0,0,115,13,0,0,0,116,0,0,106,
+ 1,0,124,1,0,131,1,0,83,40,1,0,0,0,117,46,
+ 0,0,0,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,40,2,0,0,0,114,94,0,0,0,116,17,0,0,0,
+ 105,115,95,102,114,111,122,101,110,95,112,97,99,107,97,103,
+ 101,40,2,0,0,0,114,215,0,0,0,114,178,0,0,0,
+ 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,
+ 156,0,0,0,64,3,0,0,115,2,0,0,0,0,4,117,
25,0,0,0,70,114,111,122,101,110,73,109,112,111,114,116,
- 101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,0,
- 0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,
- 0,0,115,13,0,0,0,116,0,0,106,1,0,124,1,0,
- 131,1,0,83,40,1,0,0,0,117,46,0,0,0,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,40,2,0,0,
- 0,117,4,0,0,0,95,105,109,112,117,17,0,0,0,105,
- 115,95,102,114,111,122,101,110,95,112,97,99,107,97,103,101,
- 40,2,0,0,0,117,3,0,0,0,99,108,115,117,8,0,
- 0,0,102,117,108,108,110,97,109,101,40,0,0,0,0,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,10,0,0,0,105,115,95,112,97,
- 99,107,97,103,101,220,2,0,0,115,2,0,0,0,0,4,
- 117,25,0,0,0,70,114,111,122,101,110,73,109,112,111,114,
- 116,101,114,46,105,115,95,112,97,99,107,97,103,101,78,40,
- 15,0,0,0,117,8,0,0,0,95,95,110,97,109,101,95,
- 95,117,10,0,0,0,95,95,109,111,100,117,108,101,95,95,
- 117,12,0,0,0,95,95,113,117,97,108,110,97,109,101,95,
- 95,117,7,0,0,0,95,95,100,111,99,95,95,117,11,0,
- 0,0,99,108,97,115,115,109,101,116,104,111,100,117,11,0,
- 0,0,109,111,100,117,108,101,95,114,101,112,114,117,4,0,
- 0,0,78,111,110,101,117,11,0,0,0,102,105,110,100,95,
- 109,111,100,117,108,101,117,11,0,0,0,115,101,116,95,112,
- 97,99,107,97,103,101,117,10,0,0,0,115,101,116,95,108,
- 111,97,100,101,114,117,16,0,0,0,95,114,101,113,117,105,
- 114,101,115,95,102,114,111,122,101,110,117,11,0,0,0,108,
- 111,97,100,95,109,111,100,117,108,101,117,8,0,0,0,103,
- 101,116,95,99,111,100,101,117,10,0,0,0,103,101,116,95,
- 115,111,117,114,99,101,117,10,0,0,0,105,115,95,112,97,
- 99,107,97,103,101,40,1,0,0,0,117,10,0,0,0,95,
- 95,108,111,99,97,108,115,95,95,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,14,0,0,0,70,114,111,122,101,110,
- 73,109,112,111,114,116,101,114,173,2,0,0,115,28,0,0,
- 0,16,7,6,2,18,4,3,1,18,4,3,1,3,1,3,
- 1,27,14,3,1,21,5,3,1,21,5,3,1,117,14,0,
- 0,0,70,114,111,122,101,110,73,109,112,111,114,116,101,114,
- 99,1,0,0,0,0,0,0,0,1,0,0,0,4,0,0,
- 0,66,0,0,0,115,101,0,0,0,124,0,0,69,101,0,
- 0,90,1,0,100,0,0,90,2,0,100,1,0,90,3,0,
- 100,2,0,90,4,0,100,3,0,90,5,0,100,11,0,90,
- 7,0,101,8,0,100,4,0,100,5,0,132,0,0,131,1,
- 0,90,9,0,101,8,0,100,6,0,100,7,0,132,0,0,
- 131,1,0,90,10,0,101,8,0,100,10,0,100,8,0,100,
- 9,0,132,1,0,131,1,0,90,12,0,100,10,0,83,40,
- 12,0,0,0,117,21,0,0,0,87,105,110,100,111,119,115,
- 82,101,103,105,115,116,114,121,70,105,110,100,101,114,117,67,
- 0,0,0,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,10,32,32,32,32,117,59,0,0,0,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,117,65,0,0,0,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,99,2,0,0,
- 0,0,0,0,0,2,0,0,0,11,0,0,0,67,0,0,
- 0,115,67,0,0,0,121,23,0,116,0,0,106,1,0,116,
- 0,0,106,2,0,124,1,0,131,2,0,83,87,110,37,0,
- 4,116,3,0,107,10,0,114,62,0,1,1,1,116,0,0,
- 106,1,0,116,0,0,106,4,0,124,1,0,131,2,0,83,
- 89,110,1,0,88,100,0,0,83,40,1,0,0,0,78,40,
- 5,0,0,0,117,7,0,0,0,95,119,105,110,114,101,103,
- 117,7,0,0,0,79,112,101,110,75,101,121,117,17,0,0,
- 0,72,75,69,89,95,67,85,82,82,69,78,84,95,85,83,
- 69,82,117,12,0,0,0,87,105,110,100,111,119,115,69,114,
- 114,111,114,117,18,0,0,0,72,75,69,89,95,76,79,67,
- 65,76,95,77,65,67,72,73,78,69,40,2,0,0,0,117,
- 3,0,0,0,99,108,115,117,3,0,0,0,107,101,121,40,
- 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
- 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
- 95,98,111,111,116,115,116,114,97,112,62,117,14,0,0,0,
- 95,111,112,101,110,95,114,101,103,105,115,116,114,121,240,2,
- 0,0,115,8,0,0,0,0,2,3,1,23,1,13,1,117,
- 36,0,0,0,87,105,110,100,111,119,115,82,101,103,105,115,
- 116,114,121,70,105,110,100,101,114,46,95,111,112,101,110,95,
- 114,101,103,105,115,116,114,121,99,2,0,0,0,0,0,0,
- 0,6,0,0,0,16,0,0,0,67,0,0,0,115,142,0,
- 0,0,124,0,0,106,0,0,114,21,0,124,0,0,106,1,
- 0,125,2,0,110,9,0,124,0,0,106,2,0,125,2,0,
- 124,2,0,106,3,0,100,1,0,124,1,0,100,2,0,116,
- 4,0,106,5,0,100,0,0,100,3,0,133,2,0,25,131,
- 0,2,125,3,0,121,46,0,124,0,0,106,6,0,124,3,
- 0,131,1,0,143,25,0,125,4,0,116,7,0,106,8,0,
- 124,4,0,100,4,0,131,2,0,125,5,0,87,100,0,0,
- 81,88,87,110,22,0,4,116,9,0,107,10,0,114,137,0,
- 1,1,1,100,0,0,83,89,110,1,0,88,124,5,0,83,
- 40,5,0,0,0,78,117,8,0,0,0,102,117,108,108,110,
- 97,109,101,117,11,0,0,0,115,121,115,95,118,101,114,115,
- 105,111,110,105,3,0,0,0,117,0,0,0,0,40,11,0,
- 0,0,117,11,0,0,0,68,69,66,85,71,95,66,85,73,
- 76,68,117,18,0,0,0,82,69,71,73,83,84,82,89,95,
- 75,69,89,95,68,69,66,85,71,117,12,0,0,0,82,69,
- 71,73,83,84,82,89,95,75,69,89,117,6,0,0,0,102,
- 111,114,109,97,116,117,3,0,0,0,115,121,115,117,7,0,
- 0,0,118,101,114,115,105,111,110,117,14,0,0,0,95,111,
- 112,101,110,95,114,101,103,105,115,116,114,121,117,7,0,0,
- 0,95,119,105,110,114,101,103,117,10,0,0,0,81,117,101,
- 114,121,86,97,108,117,101,117,12,0,0,0,87,105,110,100,
- 111,119,115,69,114,114,111,114,117,4,0,0,0,78,111,110,
- 101,40,6,0,0,0,117,3,0,0,0,99,108,115,117,8,
- 0,0,0,102,117,108,108,110,97,109,101,117,12,0,0,0,
- 114,101,103,105,115,116,114,121,95,107,101,121,117,3,0,0,
- 0,107,101,121,117,4,0,0,0,104,107,101,121,117,8,0,
- 0,0,102,105,108,101,112,97,116,104,40,0,0,0,0,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,16,0,0,0,95,115,101,97,114,
- 99,104,95,114,101,103,105,115,116,114,121,247,2,0,0,115,
- 22,0,0,0,0,2,9,1,12,2,9,1,15,1,22,1,
- 3,1,18,1,28,1,13,1,9,1,117,38,0,0,0,87,
- 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,
- 110,100,101,114,46,95,115,101,97,114,99,104,95,114,101,103,
- 105,115,116,114,121,99,3,0,0,0,0,0,0,0,7,0,
- 0,0,12,0,0,0,67,0,0,0,115,140,0,0,0,124,
- 0,0,106,0,0,124,1,0,131,1,0,125,3,0,124,3,
- 0,100,1,0,107,8,0,114,31,0,100,1,0,83,121,17,
- 0,116,2,0,106,3,0,124,3,0,131,1,0,1,87,110,
- 22,0,4,116,4,0,107,10,0,114,72,0,1,1,1,100,
- 1,0,83,89,110,1,0,88,120,60,0,116,5,0,131,0,
- 0,68,93,49,0,92,3,0,125,4,0,125,5,0,125,6,
- 0,124,3,0,106,6,0,116,7,0,124,5,0,131,1,0,
- 131,1,0,114,83,0,124,4,0,124,1,0,124,3,0,131,
- 2,0,83,113,83,0,87,100,1,0,83,40,2,0,0,0,
- 117,34,0,0,0,70,105,110,100,32,109,111,100,117,108,101,
- 32,110,97,109,101,100,32,105,110,32,116,104,101,32,114,101,
- 103,105,115,116,114,121,46,78,40,8,0,0,0,117,16,0,
- 0,0,95,115,101,97,114,99,104,95,114,101,103,105,115,116,
- 114,121,117,4,0,0,0,78,111,110,101,117,3,0,0,0,
- 95,111,115,117,4,0,0,0,115,116,97,116,117,7,0,0,
- 0,79,83,69,114,114,111,114,117,27,0,0,0,95,103,101,
+ 101,114,46,105,115,95,112,97,99,107,97,103,101,40,14,0,
+ 0,0,114,56,0,0,0,114,55,0,0,0,114,57,0,0,
+ 0,114,58,0,0,0,114,221,0,0,0,114,216,0,0,0,
+ 114,217,0,0,0,114,170,0,0,0,114,173,0,0,0,114,
+ 183,0,0,0,114,218,0,0,0,114,219,0,0,0,114,220,
+ 0,0,0,114,156,0,0,0,114,4,0,0,0,114,4,0,
+ 0,0,114,4,0,0,0,114,5,0,0,0,114,222,0,0,
+ 0,22,3,0,0,115,28,0,0,0,12,7,6,2,18,4,
+ 3,1,18,4,3,1,3,1,3,1,27,9,3,1,21,5,
+ 3,1,21,5,3,1,114,222,0,0,0,99,0,0,0,0,
+ 0,0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,
+ 115,97,0,0,0,101,0,0,90,1,0,100,0,0,90,2,
+ 0,100,1,0,90,3,0,100,2,0,90,4,0,100,3,0,
+ 90,5,0,100,4,0,90,6,0,101,7,0,100,5,0,100,
+ 6,0,132,0,0,131,1,0,90,8,0,101,7,0,100,7,
+ 0,100,8,0,132,0,0,131,1,0,90,9,0,101,7,0,
+ 100,9,0,100,10,0,100,11,0,132,1,0,131,1,0,90,
+ 10,0,100,9,0,83,40,12,0,0,0,244,21,0,0,0,
+ 87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,
+ 105,110,100,101,114,117,67,0,0,0,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,10,32,32,32,32,117,59,0,
+ 0,0,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,117,65,0,
+ 0,0,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,70,99,2,0,0,0,0,0,0,0,2,0,0,
+ 0,11,0,0,0,67,0,0,0,115,67,0,0,0,121,23,
+ 0,116,0,0,106,1,0,116,0,0,106,2,0,124,1,0,
+ 131,2,0,83,87,110,37,0,4,116,3,0,107,10,0,114,
+ 62,0,1,1,1,116,0,0,106,1,0,116,0,0,106,4,
+ 0,124,1,0,131,2,0,83,89,110,1,0,88,100,0,0,
+ 83,40,1,0,0,0,78,40,5,0,0,0,244,7,0,0,
+ 0,95,119,105,110,114,101,103,116,7,0,0,0,79,112,101,
+ 110,75,101,121,116,17,0,0,0,72,75,69,89,95,67,85,
+ 82,82,69,78,84,95,85,83,69,82,114,40,0,0,0,116,
+ 18,0,0,0,72,75,69,89,95,76,79,67,65,76,95,77,
+ 65,67,72,73,78,69,40,2,0,0,0,114,215,0,0,0,
+ 244,3,0,0,0,107,101,121,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,244,14,0,0,0,95,111,112,101,
+ 110,95,114,101,103,105,115,116,114,121,84,3,0,0,115,8,
+ 0,0,0,0,2,3,1,23,1,13,1,117,36,0,0,0,
+ 87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,
+ 105,110,100,101,114,46,95,111,112,101,110,95,114,101,103,105,
+ 115,116,114,121,99,2,0,0,0,0,0,0,0,6,0,0,
+ 0,16,0,0,0,67,0,0,0,115,142,0,0,0,124,0,
+ 0,106,0,0,114,21,0,124,0,0,106,1,0,125,2,0,
+ 110,9,0,124,0,0,106,2,0,125,2,0,124,2,0,106,
+ 3,0,100,1,0,124,1,0,100,2,0,116,4,0,106,5,
+ 0,100,0,0,100,3,0,133,2,0,25,131,0,2,125,3,
+ 0,121,46,0,124,0,0,106,6,0,124,3,0,131,1,0,
+ 143,25,0,125,4,0,116,7,0,106,8,0,124,4,0,100,
+ 4,0,131,2,0,125,5,0,87,100,0,0,81,88,87,110,
+ 22,0,4,116,9,0,107,10,0,114,137,0,1,1,1,100,
+ 0,0,83,89,110,1,0,88,124,5,0,83,40,5,0,0,
+ 0,78,114,178,0,0,0,116,11,0,0,0,115,121,115,95,
+ 118,101,114,115,105,111,110,114,121,0,0,0,114,30,0,0,
+ 0,40,10,0,0,0,244,11,0,0,0,68,69,66,85,71,
+ 95,66,85,73,76,68,244,18,0,0,0,82,69,71,73,83,
+ 84,82,89,95,75,69,89,95,68,69,66,85,71,244,12,0,
+ 0,0,82,69,71,73,83,84,82,89,95,75,69,89,114,46,
+ 0,0,0,114,7,0,0,0,244,7,0,0,0,118,101,114,
+ 115,105,111,110,114,227,0,0,0,114,225,0,0,0,116,10,
+ 0,0,0,81,117,101,114,121,86,97,108,117,101,114,40,0,
+ 0,0,40,6,0,0,0,114,215,0,0,0,114,178,0,0,
+ 0,116,12,0,0,0,114,101,103,105,115,116,114,121,95,107,
+ 101,121,114,226,0,0,0,116,4,0,0,0,104,107,101,121,
+ 244,8,0,0,0,102,105,108,101,112,97,116,104,114,4,0,
+ 0,0,114,4,0,0,0,114,5,0,0,0,244,16,0,0,
+ 0,95,115,101,97,114,99,104,95,114,101,103,105,115,116,114,
+ 121,91,3,0,0,115,22,0,0,0,0,2,9,1,12,2,
+ 9,1,15,1,22,1,3,1,18,1,28,1,13,1,9,1,
+ 117,38,0,0,0,87,105,110,100,111,119,115,82,101,103,105,
+ 115,116,114,121,70,105,110,100,101,114,46,95,115,101,97,114,
+ 99,104,95,114,101,103,105,115,116,114,121,78,99,3,0,0,
+ 0,0,0,0,0,7,0,0,0,12,0,0,0,67,0,0,
+ 0,115,140,0,0,0,124,0,0,106,0,0,124,1,0,131,
+ 1,0,125,3,0,124,3,0,100,1,0,107,8,0,114,31,
+ 0,100,1,0,83,121,17,0,116,1,0,106,2,0,124,3,
+ 0,131,1,0,1,87,110,22,0,4,116,3,0,107,10,0,
+ 114,72,0,1,1,1,100,1,0,83,89,110,1,0,88,120,
+ 60,0,116,4,0,131,0,0,68,93,49,0,92,3,0,125,
+ 4,0,125,5,0,125,6,0,124,3,0,106,5,0,116,6,
+ 0,124,5,0,131,1,0,131,1,0,114,83,0,124,4,0,
+ 124,1,0,124,3,0,131,2,0,83,113,83,0,87,100,1,
+ 0,83,40,2,0,0,0,117,34,0,0,0,70,105,110,100,
+ 32,109,111,100,117,108,101,32,110,97,109,101,100,32,105,110,
+ 32,116,104,101,32,114,101,103,105,115,116,114,121,46,78,40,
+ 7,0,0,0,114,233,0,0,0,114,3,0,0,0,114,39,
+ 0,0,0,114,40,0,0,0,244,27,0,0,0,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,117,8,0,0,0,101,110,100,
- 115,119,105,116,104,117,5,0,0,0,116,117,112,108,101,40,
- 7,0,0,0,117,3,0,0,0,99,108,115,117,8,0,0,
- 0,102,117,108,108,110,97,109,101,117,4,0,0,0,112,97,
- 116,104,117,8,0,0,0,102,105,108,101,112,97,116,104,117,
- 6,0,0,0,108,111,97,100,101,114,117,8,0,0,0,115,
- 117,102,102,105,120,101,115,117,1,0,0,0,95,40,0,0,
- 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
- 111,111,116,115,116,114,97,112,62,117,11,0,0,0,102,105,
- 110,100,95,109,111,100,117,108,101,6,3,0,0,115,20,0,
- 0,0,0,3,15,1,12,1,4,1,3,1,17,1,13,1,
- 9,1,25,1,21,1,117,33,0,0,0,87,105,110,100,111,
- 119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,
- 46,102,105,110,100,95,109,111,100,117,108,101,78,70,40,13,
- 0,0,0,117,8,0,0,0,95,95,110,97,109,101,95,95,
- 117,10,0,0,0,95,95,109,111,100,117,108,101,95,95,117,
- 12,0,0,0,95,95,113,117,97,108,110,97,109,101,95,95,
- 117,7,0,0,0,95,95,100,111,99,95,95,117,12,0,0,
- 0,82,69,71,73,83,84,82,89,95,75,69,89,117,18,0,
- 0,0,82,69,71,73,83,84,82,89,95,75,69,89,95,68,
- 69,66,85,71,117,5,0,0,0,70,97,108,115,101,117,11,
- 0,0,0,68,69,66,85,71,95,66,85,73,76,68,117,11,
- 0,0,0,99,108,97,115,115,109,101,116,104,111,100,117,14,
- 0,0,0,95,111,112,101,110,95,114,101,103,105,115,116,114,
- 121,117,16,0,0,0,95,115,101,97,114,99,104,95,114,101,
- 103,105,115,116,114,121,117,4,0,0,0,78,111,110,101,117,
- 11,0,0,0,102,105,110,100,95,109,111,100,117,108,101,40,
- 1,0,0,0,117,10,0,0,0,95,95,108,111,99,97,108,
- 115,95,95,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 21,0,0,0,87,105,110,100,111,119,115,82,101,103,105,115,
- 116,114,121,70,105,110,100,101,114,227,2,0,0,115,16,0,
- 0,0,16,3,6,3,6,3,6,2,6,2,18,7,18,15,
- 3,1,117,21,0,0,0,87,105,110,100,111,119,115,82,101,
- 103,105,115,116,114,121,70,105,110,100,101,114,99,1,0,0,
- 0,0,0,0,0,1,0,0,0,5,0,0,0,66,0,0,
- 0,115,74,0,0,0,124,0,0,69,101,0,0,90,1,0,
- 100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,100,
- 3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,0,
- 0,90,5,0,101,6,0,100,6,0,100,10,0,100,7,0,
- 100,8,0,132,0,1,131,1,0,90,8,0,100,9,0,83,
- 40,11,0,0,0,117,13,0,0,0,95,76,111,97,100,101,
- 114,66,97,115,105,99,115,117,83,0,0,0,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,5,0,0,0,3,0,0,0,
- 67,0,0,0,115,88,0,0,0,116,0,0,124,0,0,106,
- 1,0,124,1,0,131,1,0,131,1,0,100,1,0,25,125,
- 2,0,124,2,0,106,2,0,100,2,0,100,1,0,131,2,
- 0,100,3,0,25,125,3,0,124,1,0,106,3,0,100,2,
- 0,131,1,0,100,4,0,25,125,4,0,124,3,0,100,5,
- 0,107,2,0,111,87,0,124,4,0,100,5,0,107,3,0,
- 83,40,6,0,0,0,117,141,0,0,0,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,105,1,0,0,0,117,1,0,
- 0,0,46,105,0,0,0,0,105,2,0,0,0,117,8,0,
- 0,0,95,95,105,110,105,116,95,95,40,4,0,0,0,117,
- 11,0,0,0,95,112,97,116,104,95,115,112,108,105,116,117,
- 12,0,0,0,103,101,116,95,102,105,108,101,110,97,109,101,
- 117,6,0,0,0,114,115,112,108,105,116,117,10,0,0,0,
- 114,112,97,114,116,105,116,105,111,110,40,5,0,0,0,117,
- 4,0,0,0,115,101,108,102,117,8,0,0,0,102,117,108,
- 108,110,97,109,101,117,8,0,0,0,102,105,108,101,110,97,
- 109,101,117,13,0,0,0,102,105,108,101,110,97,109,101,95,
- 98,97,115,101,117,9,0,0,0,116,97,105,108,95,110,97,
- 109,101,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,10,
- 0,0,0,105,115,95,112,97,99,107,97,103,101,26,3,0,
- 0,115,8,0,0,0,0,3,25,1,22,1,19,1,117,24,
- 0,0,0,95,76,111,97,100,101,114,66,97,115,105,99,115,
- 46,105,115,95,112,97,99,107,97,103,101,99,5,0,0,0,
- 0,0,0,0,12,0,0,0,22,0,0,0,67,0,0,0,
- 115,208,1,0,0,124,2,0,100,1,0,100,2,0,133,2,
- 0,25,125,5,0,124,2,0,100,2,0,100,3,0,133,2,
- 0,25,125,6,0,124,2,0,100,3,0,100,4,0,133,2,
- 0,25,125,7,0,124,5,0,116,0,0,107,3,0,114,115,
- 0,100,5,0,106,1,0,124,1,0,124,5,0,131,2,0,
- 125,8,0,116,2,0,124,8,0,131,1,0,1,116,3,0,
- 124,8,0,100,6,0,124,1,0,100,7,0,124,3,0,131,
- 1,2,130,1,0,110,116,0,116,4,0,124,6,0,131,1,
- 0,100,2,0,107,3,0,114,173,0,100,8,0,106,1,0,
- 124,1,0,131,1,0,125,9,0,116,2,0,124,9,0,131,
- 1,0,1,116,5,0,124,9,0,131,1,0,130,1,0,110,
- 58,0,116,4,0,124,7,0,131,1,0,100,2,0,107,3,
- 0,114,231,0,100,9,0,106,1,0,124,1,0,131,1,0,
- 125,9,0,116,2,0,124,9,0,131,1,0,1,116,5,0,
- 124,9,0,131,1,0,130,1,0,110,0,0,124,4,0,100,
- 1,0,107,9,0,114,194,1,121,20,0,116,7,0,124,4,
- 0,100,10,0,25,131,1,0,125,10,0,87,110,18,0,4,
- 116,8,0,107,10,0,114,27,1,1,1,1,89,110,71,0,
- 88,116,9,0,124,6,0,131,1,0,124,10,0,107,3,0,
- 114,98,1,100,11,0,106,1,0,124,1,0,131,1,0,125,
- 9,0,116,2,0,124,9,0,131,1,0,1,116,3,0,124,
- 9,0,100,6,0,124,1,0,100,7,0,124,3,0,131,1,
- 2,130,1,0,110,0,0,121,18,0,124,4,0,100,12,0,
- 25,100,13,0,64,125,11,0,87,110,18,0,4,116,8,0,
- 107,10,0,114,136,1,1,1,1,89,113,194,1,88,116,9,
- 0,124,7,0,131,1,0,124,11,0,107,3,0,114,194,1,
- 116,3,0,100,11,0,106,1,0,124,1,0,131,1,0,100,
- 6,0,124,1,0,100,7,0,124,3,0,131,1,2,130,1,
- 0,113,194,1,110,0,0,124,2,0,100,4,0,100,1,0,
- 133,2,0,25,83,40,14,0,0,0,117,193,0,0,0,82,
- 101,116,117,114,110,32,116,104,101,32,109,97,114,115,104,97,
- 108,108,101,100,32,98,121,116,101,115,32,102,114,111,109,32,
- 98,121,116,101,99,111,100,101,44,32,118,101,114,105,102,121,
- 105,110,103,32,116,104,101,32,109,97,103,105,99,10,32,32,
- 32,32,32,32,32,32,110,117,109,98,101,114,44,32,116,105,
- 109,101,115,116,97,109,112,32,97,110,100,32,115,111,117,114,
- 99,101,32,115,105,122,101,32,97,108,111,110,103,32,116,104,
- 101,32,119,97,121,46,10,10,32,32,32,32,32,32,32,32,
- 73,102,32,115,111,117,114,99,101,95,115,116,97,116,115,32,
- 105,115,32,78,111,110,101,32,116,104,101,110,32,115,107,105,
- 112,32,116,104,101,32,116,105,109,101,115,116,97,109,112,32,
- 99,104,101,99,107,46,10,10,32,32,32,32,32,32,32,32,
- 78,105,4,0,0,0,105,8,0,0,0,105,12,0,0,0,
- 117,30,0,0,0,98,97,100,32,109,97,103,105,99,32,110,
- 117,109,98,101,114,32,105,110,32,123,33,114,125,58,32,123,
- 33,114,125,117,4,0,0,0,110,97,109,101,117,4,0,0,
- 0,112,97,116,104,117,19,0,0,0,98,97,100,32,116,105,
- 109,101,115,116,97,109,112,32,105,110,32,123,125,117,14,0,
- 0,0,98,97,100,32,115,105,122,101,32,105,110,32,123,125,
- 117,5,0,0,0,109,116,105,109,101,117,24,0,0,0,98,
- 121,116,101,99,111,100,101,32,105,115,32,115,116,97,108,101,
- 32,102,111,114,32,123,125,117,4,0,0,0,115,105,122,101,
- 108,3,0,0,0,255,127,255,127,3,0,40,10,0,0,0,
- 117,12,0,0,0,95,77,65,71,73,67,95,66,89,84,69,
- 83,117,6,0,0,0,102,111,114,109,97,116,117,16,0,0,
- 0,95,118,101,114,98,111,115,101,95,109,101,115,115,97,103,
- 101,117,11,0,0,0,73,109,112,111,114,116,69,114,114,111,
- 114,117,3,0,0,0,108,101,110,117,8,0,0,0,69,79,
- 70,69,114,114,111,114,117,4,0,0,0,78,111,110,101,117,
- 3,0,0,0,105,110,116,117,8,0,0,0,75,101,121,69,
- 114,114,111,114,117,7,0,0,0,95,114,95,108,111,110,103,
- 40,12,0,0,0,117,4,0,0,0,115,101,108,102,117,8,
- 0,0,0,102,117,108,108,110,97,109,101,117,4,0,0,0,
- 100,97,116,97,117,13,0,0,0,98,121,116,101,99,111,100,
- 101,95,112,97,116,104,117,12,0,0,0,115,111,117,114,99,
- 101,95,115,116,97,116,115,117,5,0,0,0,109,97,103,105,
- 99,117,13,0,0,0,114,97,119,95,116,105,109,101,115,116,
- 97,109,112,117,8,0,0,0,114,97,119,95,115,105,122,101,
- 117,3,0,0,0,109,115,103,117,7,0,0,0,109,101,115,
- 115,97,103,101,117,12,0,0,0,115,111,117,114,99,101,95,
- 109,116,105,109,101,117,11,0,0,0,115,111,117,114,99,101,
- 95,115,105,122,101,40,0,0,0,0,40,0,0,0,0,117,
- 29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
- 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
- 62,117,20,0,0,0,95,98,121,116,101,115,95,102,114,111,
- 109,95,98,121,116,101,99,111,100,101,34,3,0,0,115,68,
- 0,0,0,0,7,16,1,16,1,16,1,12,1,18,1,10,
- 1,27,1,18,1,15,1,10,1,15,1,18,1,15,1,10,
- 1,15,1,12,1,3,1,20,1,13,1,5,2,18,1,15,
- 1,10,1,15,1,12,1,3,1,18,1,13,1,5,2,18,
- 1,3,1,15,1,21,3,117,34,0,0,0,95,76,111,97,
- 100,101,114,66,97,115,105,99,115,46,95,98,121,116,101,115,
- 95,102,114,111,109,95,98,121,116,101,99,111,100,101,117,10,
- 0,0,0,115,111,117,114,99,101,108,101,115,115,99,2,0,
- 0,0,1,0,0,0,5,0,0,0,12,0,0,0,67,0,
- 0,0,115,227,0,0,0,124,1,0,106,0,0,125,3,0,
- 124,0,0,106,1,0,124,3,0,131,1,0,125,4,0,124,
- 0,0,106,2,0,124,3,0,131,1,0,124,1,0,95,3,
- 0,124,2,0,115,106,0,121,22,0,116,4,0,124,1,0,
- 106,3,0,131,1,0,124,1,0,95,5,0,87,113,118,0,
- 4,116,6,0,107,10,0,114,102,0,1,1,1,124,1,0,
- 106,3,0,124,1,0,95,5,0,89,113,118,0,88,110,12,
- 0,124,1,0,106,3,0,124,1,0,95,5,0,124,3,0,
- 124,1,0,95,7,0,124,0,0,106,8,0,124,3,0,131,
- 1,0,114,170,0,116,9,0,124,1,0,106,3,0,131,1,
- 0,100,1,0,25,103,1,0,124,1,0,95,10,0,110,25,
- 0,124,1,0,106,7,0,106,11,0,100,2,0,131,1,0,
- 100,1,0,25,124,1,0,95,7,0,124,0,0,124,1,0,
- 95,12,0,116,13,0,116,14,0,124,4,0,124,1,0,106,
- 15,0,131,3,0,1,124,1,0,83,40,3,0,0,0,117,
- 82,0,0,0,72,101,108,112,101,114,32,102,111,114,32,108,
- 111,97,100,95,109,111,100,117,108,101,32,97,98,108,101,32,
- 116,111,32,104,97,110,100,108,101,32,101,105,116,104,101,114,
- 32,115,111,117,114,99,101,32,111,114,32,115,111,117,114,99,
- 101,108,101,115,115,10,32,32,32,32,32,32,32,32,108,111,
- 97,100,105,110,103,46,105,0,0,0,0,117,1,0,0,0,
- 46,40,16,0,0,0,117,8,0,0,0,95,95,110,97,109,
- 101,95,95,117,8,0,0,0,103,101,116,95,99,111,100,101,
- 117,12,0,0,0,103,101,116,95,102,105,108,101,110,97,109,
- 101,117,8,0,0,0,95,95,102,105,108,101,95,95,117,17,
- 0,0,0,99,97,99,104,101,95,102,114,111,109,95,115,111,
- 117,114,99,101,117,10,0,0,0,95,95,99,97,99,104,101,
- 100,95,95,117,19,0,0,0,78,111,116,73,109,112,108,101,
- 109,101,110,116,101,100,69,114,114,111,114,117,11,0,0,0,
- 95,95,112,97,99,107,97,103,101,95,95,117,10,0,0,0,
- 105,115,95,112,97,99,107,97,103,101,117,11,0,0,0,95,
- 112,97,116,104,95,115,112,108,105,116,117,8,0,0,0,95,
- 95,112,97,116,104,95,95,117,10,0,0,0,114,112,97,114,
- 116,105,116,105,111,110,117,10,0,0,0,95,95,108,111,97,
- 100,101,114,95,95,117,25,0,0,0,95,99,97,108,108,95,
- 119,105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,
- 118,101,100,117,4,0,0,0,101,120,101,99,117,8,0,0,
- 0,95,95,100,105,99,116,95,95,40,5,0,0,0,117,4,
- 0,0,0,115,101,108,102,117,6,0,0,0,109,111,100,117,
- 108,101,117,10,0,0,0,115,111,117,114,99,101,108,101,115,
- 115,117,4,0,0,0,110,97,109,101,117,11,0,0,0,99,
- 111,100,101,95,111,98,106,101,99,116,40,0,0,0,0,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,12,0,0,0,95,108,111,97,100,
- 95,109,111,100,117,108,101,80,3,0,0,115,32,0,0,0,
- 0,4,9,1,15,1,18,1,6,1,3,1,22,1,13,1,
- 20,2,12,1,9,1,15,1,28,2,25,1,9,1,19,1,
- 117,26,0,0,0,95,76,111,97,100,101,114,66,97,115,105,
- 99,115,46,95,108,111,97,100,95,109,111,100,117,108,101,78,
- 70,40,9,0,0,0,117,8,0,0,0,95,95,110,97,109,
- 101,95,95,117,10,0,0,0,95,95,109,111,100,117,108,101,
- 95,95,117,12,0,0,0,95,95,113,117,97,108,110,97,109,
- 101,95,95,117,7,0,0,0,95,95,100,111,99,95,95,117,
- 10,0,0,0,105,115,95,112,97,99,107,97,103,101,117,20,
- 0,0,0,95,98,121,116,101,115,95,102,114,111,109,95,98,
- 121,116,101,99,111,100,101,117,17,0,0,0,109,111,100,117,
- 108,101,95,102,111,114,95,108,111,97,100,101,114,117,5,0,
- 0,0,70,97,108,115,101,117,12,0,0,0,95,108,111,97,
- 100,95,109,111,100,117,108,101,40,1,0,0,0,117,10,0,
- 0,0,95,95,108,111,99,97,108,115,95,95,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,13,0,0,0,95,76,111,
- 97,100,101,114,66,97,115,105,99,115,21,3,0,0,115,10,
- 0,0,0,16,3,6,2,12,8,12,46,6,1,117,13,0,
- 0,0,95,76,111,97,100,101,114,66,97,115,105,99,115,99,
- 1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,
- 66,0,0,0,115,104,0,0,0,124,0,0,69,101,0,0,
- 90,1,0,100,0,0,90,2,0,100,1,0,100,2,0,132,
- 0,0,90,3,0,100,3,0,100,4,0,132,0,0,90,4,
- 0,100,5,0,100,6,0,132,0,0,90,5,0,100,7,0,
- 100,8,0,132,0,0,90,6,0,100,9,0,100,10,0,132,
- 0,0,90,7,0,100,11,0,100,12,0,132,0,0,90,8,
- 0,100,13,0,100,14,0,132,0,0,90,9,0,100,15,0,
- 83,40,16,0,0,0,117,12,0,0,0,83,111,117,114,99,
- 101,76,111,97,100,101,114,99,2,0,0,0,0,0,0,0,
- 2,0,0,0,1,0,0,0,67,0,0,0,115,10,0,0,
- 0,116,0,0,130,1,0,100,1,0,83,40,2,0,0,0,
- 117,121,0,0,0,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,44,
- 32,119,104,101,114,101,32,112,97,116,104,32,105,115,32,97,
- 32,115,116,114,46,10,32,32,32,32,32,32,32,32,78,40,
- 1,0,0,0,117,19,0,0,0,78,111,116,73,109,112,108,
- 101,109,101,110,116,101,100,69,114,114,111,114,40,2,0,0,
- 0,117,4,0,0,0,115,101,108,102,117,4,0,0,0,112,
- 97,116,104,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 10,0,0,0,112,97,116,104,95,109,116,105,109,101,106,3,
- 0,0,115,2,0,0,0,0,4,117,23,0,0,0,83,111,
- 117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,
- 109,116,105,109,101,99,2,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,67,0,0,0,115,20,0,0,0,105,
- 1,0,124,0,0,106,0,0,124,1,0,131,1,0,100,1,
- 0,54,83,40,2,0,0,0,117,114,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,32,112,97,116,104,10,32,32,
- 32,32,32,32,32,32,116,111,32,98,121,32,116,104,101,32,
- 112,97,116,104,32,40,115,116,114,41,46,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,117,
- 5,0,0,0,109,116,105,109,101,40,1,0,0,0,117,10,
- 0,0,0,112,97,116,104,95,109,116,105,109,101,40,2,0,
- 0,0,117,4,0,0,0,115,101,108,102,117,4,0,0,0,
- 112,97,116,104,40,0,0,0,0,40,0,0,0,0,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,10,0,0,0,112,97,116,104,95,115,116,97,116,115,112,
- 3,0,0,115,2,0,0,0,0,10,117,23,0,0,0,83,
+ 95,108,111,97,100,101,114,115,244,8,0,0,0,101,110,100,
+ 115,119,105,116,104,244,5,0,0,0,116,117,112,108,101,40,
+ 7,0,0,0,114,215,0,0,0,114,178,0,0,0,114,35,
+ 0,0,0,114,232,0,0,0,114,160,0,0,0,114,112,0,
+ 0,0,114,36,0,0,0,114,4,0,0,0,114,4,0,0,
+ 0,114,5,0,0,0,114,217,0,0,0,106,3,0,0,115,
+ 20,0,0,0,0,3,15,1,12,1,4,1,3,1,17,1,
+ 13,1,9,1,25,1,21,1,117,33,0,0,0,87,105,110,
+ 100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,
+ 101,114,46,102,105,110,100,95,109,111,100,117,108,101,40,11,
+ 0,0,0,114,56,0,0,0,114,55,0,0,0,114,57,0,
+ 0,0,114,58,0,0,0,114,230,0,0,0,114,229,0,0,
+ 0,114,228,0,0,0,114,221,0,0,0,114,227,0,0,0,
+ 114,233,0,0,0,114,217,0,0,0,114,4,0,0,0,114,
+ 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,224,
+ 0,0,0,71,3,0,0,115,16,0,0,0,12,3,6,3,
+ 6,3,6,2,6,2,18,7,18,15,3,1,114,224,0,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,64,0,0,0,115,58,0,0,0,101,0,0,90,1,
+ 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,
+ 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,
+ 0,0,90,5,0,100,6,0,100,7,0,132,0,0,90,6,
+ 0,100,8,0,83,40,9,0,0,0,244,13,0,0,0,95,
+ 76,111,97,100,101,114,66,97,115,105,99,115,117,83,0,0,
+ 0,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,5,0,0,
+ 0,3,0,0,0,67,0,0,0,115,88,0,0,0,116,0,
+ 0,124,0,0,106,1,0,124,1,0,131,1,0,131,1,0,
+ 100,1,0,25,125,2,0,124,2,0,106,2,0,100,2,0,
+ 100,1,0,131,2,0,100,3,0,25,125,3,0,124,1,0,
+ 106,3,0,100,2,0,131,1,0,100,4,0,25,125,4,0,
+ 124,3,0,100,5,0,107,2,0,111,87,0,124,4,0,100,
+ 5,0,107,3,0,83,40,6,0,0,0,117,141,0,0,0,
+ 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,29,0,
+ 0,0,114,101,0,0,0,114,67,0,0,0,114,100,0,0,
+ 0,114,76,0,0,0,40,4,0,0,0,114,38,0,0,0,
+ 114,163,0,0,0,114,34,0,0,0,114,32,0,0,0,40,
+ 5,0,0,0,114,75,0,0,0,114,178,0,0,0,114,116,
+ 0,0,0,116,13,0,0,0,102,105,108,101,110,97,109,101,
+ 95,98,97,115,101,116,9,0,0,0,116,97,105,108,95,110,
+ 97,109,101,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,114,156,0,0,0,126,3,0,0,115,8,0,0,0,
+ 0,3,25,1,22,1,19,1,117,24,0,0,0,95,76,111,
+ 97,100,101,114,66,97,115,105,99,115,46,105,115,95,112,97,
+ 99,107,97,103,101,99,2,0,0,0,0,0,0,0,2,0,
+ 0,0,11,0,0,0,67,0,0,0,115,100,0,0,0,124,
+ 0,0,124,1,0,95,0,0,116,1,0,124,0,0,124,1,
+ 0,131,2,0,1,116,2,0,124,0,0,124,1,0,131,2,
+ 0,1,116,3,0,124,1,0,100,1,0,131,2,0,114,96,
+ 0,121,22,0,116,4,0,124,1,0,106,5,0,131,1,0,
+ 124,1,0,95,6,0,87,113,96,0,4,116,7,0,107,10,
+ 0,114,92,0,1,1,1,89,113,96,0,88,110,0,0,100,
+ 2,0,83,40,3,0,0,0,117,2,1,0,0,83,101,116,
+ 32,118,97,114,105,111,117,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,46,10,10,32,32,32,32,32,32,32,32,69,120,101,99,
+ 117,116,105,111,110,76,111,97,100,101,114,46,105,110,105,116,
+ 95,109,111,100,117,108,101,95,97,116,116,114,115,40,41,32,
+ 105,115,32,117,115,101,100,32,116,111,32,115,101,116,32,95,
+ 95,108,111,97,100,101,114,95,95,44,10,32,32,32,32,32,
+ 32,32,32,95,95,112,97,99,107,97,103,101,95,95,44,32,
+ 95,95,102,105,108,101,95,95,44,32,97,110,100,32,111,112,
+ 116,105,111,110,97,108,108,121,32,95,95,112,97,116,104,95,
+ 95,46,32,84,104,101,32,95,95,99,97,99,104,101,100,95,
+ 95,32,97,116,116,114,105,98,117,116,101,10,32,32,32,32,
+ 32,32,32,32,105,115,32,115,101,116,32,117,115,105,110,103,
+ 32,105,109,112,46,99,97,99,104,101,95,102,114,111,109,95,
+ 115,111,117,114,99,101,40,41,32,97,110,100,32,95,95,102,
+ 105,108,101,95,95,46,10,32,32,32,32,32,32,32,32,114,
+ 164,0,0,0,78,40,8,0,0,0,114,171,0,0,0,114,
+ 162,0,0,0,114,166,0,0,0,114,59,0,0,0,114,117,
+ 0,0,0,114,164,0,0,0,244,10,0,0,0,95,95,99,
+ 97,99,104,101,100,95,95,114,109,0,0,0,40,2,0,0,
+ 0,114,75,0,0,0,114,161,0,0,0,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,244,17,0,0,0,105,
+ 110,105,116,95,109,111,100,117,108,101,95,97,116,116,114,115,
+ 134,3,0,0,115,16,0,0,0,0,7,9,1,13,1,13,
+ 1,15,1,3,1,22,1,13,1,117,31,0,0,0,95,76,
+ 111,97,100,101,114,66,97,115,105,99,115,46,105,110,105,116,
+ 95,109,111,100,117,108,101,95,97,116,116,114,115,99,2,0,
+ 0,0,0,0,0,0,4,0,0,0,11,0,0,0,67,0,
+ 0,0,115,112,0,0,0,116,0,0,124,1,0,131,1,0,
+ 143,94,0,125,2,0,124,0,0,106,1,0,124,2,0,131,
+ 1,0,1,124,0,0,106,2,0,124,1,0,131,1,0,125,
+ 3,0,124,3,0,100,1,0,107,8,0,114,79,0,116,3,
+ 0,100,2,0,106,4,0,124,1,0,131,1,0,131,1,0,
+ 130,1,0,110,0,0,116,5,0,116,6,0,124,3,0,124,
+ 2,0,106,7,0,131,3,0,1,124,2,0,83,87,100,1,
+ 0,81,88,100,1,0,83,40,3,0,0,0,117,57,0,0,
+ 0,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,78,117,52,0,0,0,
+ 99,97,110,110,111,116,32,108,111,97,100,32,109,111,100,117,
+ 108,101,32,123,33,114,125,32,119,104,101,110,32,103,101,116,
+ 95,99,111,100,101,40,41,32,114,101,116,117,114,110,115,32,
+ 78,111,110,101,40,8,0,0,0,114,155,0,0,0,114,239,
+ 0,0,0,114,219,0,0,0,114,157,0,0,0,114,46,0,
+ 0,0,114,99,0,0,0,244,4,0,0,0,101,120,101,99,
+ 114,62,0,0,0,40,4,0,0,0,114,75,0,0,0,114,
+ 178,0,0,0,114,161,0,0,0,114,204,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,114,218,0,
+ 0,0,150,3,0,0,115,16,0,0,0,0,2,15,1,13,
+ 1,15,1,12,1,3,1,21,1,19,1,117,25,0,0,0,
+ 95,76,111,97,100,101,114,66,97,115,105,99,115,46,108,111,
+ 97,100,95,109,111,100,117,108,101,78,40,7,0,0,0,114,
+ 56,0,0,0,114,55,0,0,0,114,57,0,0,0,114,58,
+ 0,0,0,114,156,0,0,0,114,239,0,0,0,114,218,0,
+ 0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
+ 0,114,5,0,0,0,114,237,0,0,0,121,3,0,0,115,
+ 8,0,0,0,12,3,6,2,12,8,12,16,114,237,0,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,64,0,0,0,115,106,0,0,0,101,0,0,90,1,
+ 0,100,0,0,90,2,0,100,1,0,100,2,0,132,0,0,
+ 90,3,0,100,3,0,100,4,0,132,0,0,90,4,0,100,
+ 5,0,100,6,0,132,0,0,90,5,0,100,7,0,100,8,
+ 0,132,0,0,90,6,0,100,9,0,100,10,0,132,0,0,
+ 90,7,0,100,11,0,100,18,0,100,13,0,100,14,0,132,
+ 0,1,90,8,0,100,15,0,100,16,0,132,0,0,90,9,
+ 0,100,17,0,83,40,19,0,0,0,244,12,0,0,0,83,
+ 111,117,114,99,101,76,111,97,100,101,114,99,2,0,0,0,
+ 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
+ 115,10,0,0,0,116,0,0,130,1,0,100,1,0,83,40,
+ 2,0,0,0,117,178,0,0,0,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,44,32,119,104,101,114,101,32,112,97,116,104,32,
+ 105,115,32,97,32,115,116,114,46,10,10,32,32,32,32,32,
+ 32,32,32,82,97,105,115,101,115,32,73,79,69,114,114,111,
+ 114,32,119,104,101,110,32,116,104,101,32,112,97,116,104,32,
+ 99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,
+ 100,46,10,32,32,32,32,32,32,32,32,78,40,1,0,0,
+ 0,244,7,0,0,0,73,79,69,114,114,111,114,40,2,0,
+ 0,0,114,75,0,0,0,114,35,0,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,244,10,0,0,0,
+ 112,97,116,104,95,109,116,105,109,101,164,3,0,0,115,2,
+ 0,0,0,0,6,117,23,0,0,0,83,111,117,114,99,101,
+ 76,111,97,100,101,114,46,112,97,116,104,95,109,116,105,109,
+ 101,99,2,0,0,0,0,0,0,0,2,0,0,0,3,0,
+ 0,0,67,0,0,0,115,20,0,0,0,105,1,0,124,0,
+ 0,106,0,0,124,1,0,131,1,0,100,1,0,54,83,40,
+ 2,0,0,0,117,170,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,32,112,97,116,104,10,32,32,32,32,32,32,
+ 32,32,116,111,32,98,121,32,116,104,101,32,112,97,116,104,
+ 32,40,115,116,114,41,46,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,73,79,69,114,114,111,114,32,119,104,101,110,32,116,
+ 104,101,32,112,97,116,104,32,99,97,110,110,111,116,32,98,
+ 101,32,104,97,110,100,108,101,100,46,10,32,32,32,32,32,
+ 32,32,32,114,193,0,0,0,40,1,0,0,0,114,243,0,
+ 0,0,40,2,0,0,0,114,75,0,0,0,114,35,0,0,
+ 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,
+ 244,10,0,0,0,112,97,116,104,95,115,116,97,116,115,172,
+ 3,0,0,115,2,0,0,0,0,11,117,23,0,0,0,83,
111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,
95,115,116,97,116,115,99,4,0,0,0,0,0,0,0,4,
0,0,0,3,0,0,0,67,0,0,0,115,16,0,0,0,
@@ -2081,266 +1919,161 @@ unsigned char _Py_M__importlib[] = {
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,40,1,
- 0,0,0,117,8,0,0,0,115,101,116,95,100,97,116,97,
- 40,4,0,0,0,117,4,0,0,0,115,101,108,102,117,11,
- 0,0,0,115,111,117,114,99,101,95,112,97,116,104,117,10,
- 0,0,0,99,97,99,104,101,95,112,97,116,104,117,4,0,
- 0,0,100,97,116,97,40,0,0,0,0,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,15,0,0,0,95,99,97,99,104,101,95,98,121,
- 116,101,99,111,100,101,124,3,0,0,115,2,0,0,0,0,
+ 0,0,0,244,8,0,0,0,115,101,116,95,100,97,116,97,
+ 40,4,0,0,0,114,75,0,0,0,114,126,0,0,0,116,
+ 10,0,0,0,99,97,99,104,101,95,112,97,116,104,114,52,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,244,15,0,0,0,95,99,97,99,104,101,95,98,121,
+ 116,101,99,111,100,101,185,3,0,0,115,2,0,0,0,0,
8,117,28,0,0,0,83,111,117,114,99,101,76,111,97,100,
101,114,46,95,99,97,99,104,101,95,98,121,116,101,99,111,
100,101,99,3,0,0,0,0,0,0,0,3,0,0,0,1,
- 0,0,0,67,0,0,0,115,10,0,0,0,116,0,0,130,
- 1,0,100,1,0,83,40,2,0,0,0,117,151,0,0,0,
- 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,78,40,1,0,0,0,117,19,0,
- 0,0,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
- 69,114,114,111,114,40,3,0,0,0,117,4,0,0,0,115,
- 101,108,102,117,4,0,0,0,112,97,116,104,117,4,0,0,
- 0,100,97,116,97,40,0,0,0,0,40,0,0,0,0,117,
- 29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
- 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
- 62,117,8,0,0,0,115,101,116,95,100,97,116,97,134,3,
- 0,0,115,2,0,0,0,0,6,117,21,0,0,0,83,111,
- 117,114,99,101,76,111,97,100,101,114,46,115,101,116,95,100,
- 97,116,97,99,2,0,0,0,0,0,0,0,9,0,0,0,
- 44,0,0,0,67,0,0,0,115,62,1,0,0,100,1,0,
- 100,2,0,108,0,0,125,2,0,124,0,0,106,1,0,124,
- 1,0,131,1,0,125,3,0,121,19,0,124,0,0,106,2,
- 0,124,3,0,131,1,0,125,4,0,87,110,58,0,4,116,
- 3,0,107,10,0,114,106,0,1,125,5,0,1,122,26,0,
- 116,4,0,100,3,0,100,4,0,124,1,0,131,1,1,124,
- 5,0,130,2,0,87,89,100,2,0,100,2,0,125,5,0,
- 126,5,0,88,110,1,0,88,116,5,0,106,6,0,124,4,
- 0,131,1,0,106,7,0,125,6,0,121,19,0,124,2,0,
- 106,8,0,124,6,0,131,1,0,125,7,0,87,110,58,0,
- 4,116,9,0,107,10,0,114,204,0,1,125,5,0,1,122,
- 26,0,116,4,0,100,5,0,100,4,0,124,1,0,131,1,
- 1,124,5,0,130,2,0,87,89,100,2,0,100,2,0,125,
- 5,0,126,5,0,88,110,1,0,88,116,5,0,106,10,0,
- 100,2,0,100,7,0,131,2,0,125,8,0,121,30,0,124,
- 8,0,106,13,0,124,4,0,106,13,0,124,7,0,100,1,
- 0,25,131,1,0,131,1,0,83,87,110,58,0,4,116,14,
- 0,107,10,0,114,57,1,1,125,5,0,1,122,26,0,116,
- 4,0,100,6,0,100,4,0,124,1,0,131,1,1,124,5,
- 0,130,2,0,87,89,100,2,0,100,2,0,125,5,0,126,
- 5,0,88,110,1,0,88,100,2,0,83,40,8,0,0,0,
- 117,52,0,0,0,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,105,0,0,0,0,78,117,
- 39,0,0,0,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,117,4,0,0,0,
- 110,97,109,101,117,25,0,0,0,70,97,105,108,101,100,32,
- 116,111,32,100,101,116,101,99,116,32,101,110,99,111,100,105,
- 110,103,117,28,0,0,0,70,97,105,108,101,100,32,116,111,
- 32,100,101,99,111,100,101,32,115,111,117,114,99,101,32,102,
- 105,108,101,84,40,15,0,0,0,117,8,0,0,0,116,111,
- 107,101,110,105,122,101,117,12,0,0,0,103,101,116,95,102,
- 105,108,101,110,97,109,101,117,8,0,0,0,103,101,116,95,
- 100,97,116,97,117,7,0,0,0,73,79,69,114,114,111,114,
- 117,11,0,0,0,73,109,112,111,114,116,69,114,114,111,114,
- 117,3,0,0,0,95,105,111,117,7,0,0,0,66,121,116,
- 101,115,73,79,117,8,0,0,0,114,101,97,100,108,105,110,
- 101,117,15,0,0,0,100,101,116,101,99,116,95,101,110,99,
- 111,100,105,110,103,117,11,0,0,0,83,121,110,116,97,120,
- 69,114,114,111,114,117,25,0,0,0,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,117,4,0,0,0,78,111,110,101,117,4,0,0,
- 0,84,114,117,101,117,6,0,0,0,100,101,99,111,100,101,
- 117,18,0,0,0,85,110,105,99,111,100,101,68,101,99,111,
- 100,101,69,114,114,111,114,40,9,0,0,0,117,4,0,0,
- 0,115,101,108,102,117,8,0,0,0,102,117,108,108,110,97,
- 109,101,117,8,0,0,0,116,111,107,101,110,105,122,101,117,
- 4,0,0,0,112,97,116,104,117,12,0,0,0,115,111,117,
- 114,99,101,95,98,121,116,101,115,117,3,0,0,0,101,120,
- 99,117,10,0,0,0,114,101,97,100,115,111,117,114,99,101,
- 117,8,0,0,0,101,110,99,111,100,105,110,103,117,15,0,
- 0,0,110,101,119,108,105,110,101,95,100,101,99,111,100,101,
- 114,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,10,0,
- 0,0,103,101,116,95,115,111,117,114,99,101,143,3,0,0,
- 115,38,0,0,0,0,2,12,1,15,1,3,1,19,1,18,
- 1,9,1,31,1,18,1,3,1,19,1,18,1,9,1,31,
- 1,18,1,3,1,30,1,18,1,9,1,117,23,0,0,0,
- 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,
- 95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,
- 12,0,0,0,45,0,0,0,67,0,0,0,115,52,2,0,
- 0,124,0,0,106,0,0,124,1,0,131,1,0,125,2,0,
- 100,10,0,125,3,0,121,16,0,116,2,0,124,2,0,131,
- 1,0,125,4,0,87,110,24,0,4,116,3,0,107,10,0,
- 114,63,0,1,1,1,100,10,0,125,4,0,89,110,14,1,
- 88,121,19,0,124,0,0,106,4,0,124,2,0,131,1,0,
- 125,5,0,87,110,18,0,4,116,3,0,107,10,0,114,103,
- 0,1,1,1,89,110,230,0,88,116,5,0,124,5,0,100,
- 1,0,25,131,1,0,125,3,0,121,19,0,124,0,0,106,
- 6,0,124,4,0,131,1,0,125,6,0,87,110,18,0,4,
- 116,7,0,107,10,0,114,159,0,1,1,1,89,110,174,0,
- 88,121,28,0,124,0,0,106,8,0,124,1,0,124,6,0,
- 124,4,0,124,5,0,131,4,0,125,7,0,87,110,24,0,
- 4,116,9,0,116,10,0,102,2,0,107,10,0,114,214,0,
- 1,1,1,89,110,119,0,88,116,11,0,100,2,0,124,4,
- 0,124,2,0,131,3,0,1,116,12,0,106,13,0,124,7,
- 0,131,1,0,125,8,0,116,14,0,124,8,0,116,15,0,
- 131,2,0,114,38,1,116,16,0,106,17,0,124,8,0,124,
- 2,0,131,2,0,1,116,11,0,100,3,0,124,4,0,131,
- 2,0,1,124,8,0,83,100,4,0,125,9,0,116,9,0,
- 124,9,0,106,18,0,124,4,0,131,1,0,100,5,0,124,
- 1,0,100,6,0,124,4,0,131,1,2,130,1,0,124,0,
- 0,106,6,0,124,2,0,131,1,0,125,10,0,116,19,0,
- 116,20,0,124,10,0,124,2,0,100,7,0,100,8,0,100,
- 11,0,131,4,1,125,11,0,116,11,0,100,3,0,124,2,
- 0,131,2,0,1,116,22,0,106,23,0,12,114,48,2,124,
- 4,0,100,10,0,107,9,0,114,48,2,124,3,0,100,10,
- 0,107,9,0,114,48,2,116,24,0,116,25,0,131,1,0,
- 125,6,0,124,6,0,106,26,0,116,27,0,124,3,0,131,
- 1,0,131,1,0,1,124,6,0,106,26,0,116,27,0,116,
- 28,0,124,10,0,131,1,0,131,1,0,131,1,0,1,124,
- 6,0,106,26,0,116,12,0,106,29,0,124,11,0,131,1,
- 0,131,1,0,1,121,36,0,124,0,0,106,30,0,124,2,
- 0,124,4,0,124,6,0,131,3,0,1,116,11,0,100,9,
- 0,124,4,0,131,2,0,1,87,113,48,2,4,116,3,0,
- 107,10,0,114,44,2,1,1,1,89,113,48,2,88,110,0,
- 0,124,11,0,83,40,12,0,0,0,117,190,0,0,0,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,117,5,0,
- 0,0,109,116,105,109,101,117,13,0,0,0,123,125,32,109,
- 97,116,99,104,101,115,32,123,125,117,19,0,0,0,99,111,
- 100,101,32,111,98,106,101,99,116,32,102,114,111,109,32,123,
- 125,117,21,0,0,0,78,111,110,45,99,111,100,101,32,111,
- 98,106,101,99,116,32,105,110,32,123,125,117,4,0,0,0,
- 110,97,109,101,117,4,0,0,0,112,97,116,104,117,4,0,
- 0,0,101,120,101,99,117,12,0,0,0,100,111,110,116,95,
- 105,110,104,101,114,105,116,117,10,0,0,0,119,114,111,116,
- 101,32,123,33,114,125,78,84,40,31,0,0,0,117,12,0,
- 0,0,103,101,116,95,102,105,108,101,110,97,109,101,117,4,
- 0,0,0,78,111,110,101,117,17,0,0,0,99,97,99,104,
- 101,95,102,114,111,109,95,115,111,117,114,99,101,117,19,0,
- 0,0,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
- 69,114,114,111,114,117,10,0,0,0,112,97,116,104,95,115,
- 116,97,116,115,117,3,0,0,0,105,110,116,117,8,0,0,
- 0,103,101,116,95,100,97,116,97,117,7,0,0,0,73,79,
- 69,114,114,111,114,117,20,0,0,0,95,98,121,116,101,115,
- 95,102,114,111,109,95,98,121,116,101,99,111,100,101,117,11,
- 0,0,0,73,109,112,111,114,116,69,114,114,111,114,117,8,
- 0,0,0,69,79,70,69,114,114,111,114,117,16,0,0,0,
- 95,118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,
- 117,7,0,0,0,109,97,114,115,104,97,108,117,5,0,0,
- 0,108,111,97,100,115,117,10,0,0,0,105,115,105,110,115,
- 116,97,110,99,101,117,10,0,0,0,95,99,111,100,101,95,
- 116,121,112,101,117,4,0,0,0,95,105,109,112,117,16,0,
- 0,0,95,102,105,120,95,99,111,95,102,105,108,101,110,97,
- 109,101,117,6,0,0,0,102,111,114,109,97,116,117,25,0,
- 0,0,95,99,97,108,108,95,119,105,116,104,95,102,114,97,
- 109,101,115,95,114,101,109,111,118,101,100,117,7,0,0,0,
- 99,111,109,112,105,108,101,117,4,0,0,0,84,114,117,101,
- 117,3,0,0,0,115,121,115,117,19,0,0,0,100,111,110,
- 116,95,119,114,105,116,101,95,98,121,116,101,99,111,100,101,
- 117,9,0,0,0,98,121,116,101,97,114,114,97,121,117,12,
- 0,0,0,95,77,65,71,73,67,95,66,89,84,69,83,117,
- 6,0,0,0,101,120,116,101,110,100,117,7,0,0,0,95,
- 119,95,108,111,110,103,117,3,0,0,0,108,101,110,117,5,
- 0,0,0,100,117,109,112,115,117,15,0,0,0,95,99,97,
- 99,104,101,95,98,121,116,101,99,111,100,101,40,12,0,0,
- 0,117,4,0,0,0,115,101,108,102,117,8,0,0,0,102,
- 117,108,108,110,97,109,101,117,11,0,0,0,115,111,117,114,
- 99,101,95,112,97,116,104,117,12,0,0,0,115,111,117,114,
- 99,101,95,109,116,105,109,101,117,13,0,0,0,98,121,116,
- 101,99,111,100,101,95,112,97,116,104,117,2,0,0,0,115,
- 116,117,4,0,0,0,100,97,116,97,117,10,0,0,0,98,
- 121,116,101,115,95,100,97,116,97,117,5,0,0,0,102,111,
- 117,110,100,117,3,0,0,0,109,115,103,117,12,0,0,0,
- 115,111,117,114,99,101,95,98,121,116,101,115,117,11,0,0,
- 0,99,111,100,101,95,111,98,106,101,99,116,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,8,0,0,0,103,101,116,
- 95,99,111,100,101,165,3,0,0,115,98,0,0,0,0,7,
- 15,1,6,1,3,1,16,1,13,1,11,2,3,1,19,1,
- 13,1,5,2,16,1,3,1,19,1,13,1,5,2,3,1,
- 12,1,3,1,13,1,19,1,5,2,9,1,7,1,15,1,
- 15,1,16,1,6,1,7,1,4,2,6,1,18,1,15,1,
- 15,1,6,1,12,1,9,1,13,1,22,1,12,1,12,1,
- 19,1,25,1,22,1,3,1,19,1,17,1,13,1,8,1,
- 117,21,0,0,0,83,111,117,114,99,101,76,111,97,100,101,
- 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
- 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,
- 13,0,0,0,124,0,0,106,0,0,124,1,0,131,1,0,
- 83,40,1,0,0,0,117,0,1,0,0,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,76,111,97,100,101,114,46,108,111,97,
- 100,95,109,111,100,117,108,101,46,10,10,32,32,32,32,32,
- 32,32,32,82,101,113,117,105,114,101,115,32,69,120,101,99,
- 117,116,105,111,110,76,111,97,100,101,114,46,103,101,116,95,
- 102,105,108,101,110,97,109,101,32,97,110,100,32,82,101,115,
- 111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,95,
- 100,97,116,97,32,116,111,32,98,101,10,32,32,32,32,32,
- 32,32,32,105,109,112,108,101,109,101,110,116,101,100,32,116,
- 111,32,108,111,97,100,32,115,111,117,114,99,101,32,99,111,
- 100,101,46,32,85,115,101,32,111,102,32,98,121,116,101,99,
- 111,100,101,32,105,115,32,100,105,99,116,97,116,101,100,32,
- 98,121,32,119,104,101,116,104,101,114,10,32,32,32,32,32,
- 32,32,32,103,101,116,95,99,111,100,101,32,117,115,101,115,
- 47,119,114,105,116,101,115,32,98,121,116,101,99,111,100,101,
- 46,10,10,32,32,32,32,32,32,32,32,40,1,0,0,0,
- 117,12,0,0,0,95,108,111,97,100,95,109,111,100,117,108,
- 101,40,2,0,0,0,117,4,0,0,0,115,101,108,102,117,
- 8,0,0,0,102,117,108,108,110,97,109,101,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,11,0,0,0,108,111,97,
- 100,95,109,111,100,117,108,101,227,3,0,0,115,2,0,0,
- 0,0,8,117,24,0,0,0,83,111,117,114,99,101,76,111,
- 97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,101,
- 78,40,10,0,0,0,117,8,0,0,0,95,95,110,97,109,
- 101,95,95,117,10,0,0,0,95,95,109,111,100,117,108,101,
- 95,95,117,12,0,0,0,95,95,113,117,97,108,110,97,109,
- 101,95,95,117,10,0,0,0,112,97,116,104,95,109,116,105,
- 109,101,117,10,0,0,0,112,97,116,104,95,115,116,97,116,
- 115,117,15,0,0,0,95,99,97,99,104,101,95,98,121,116,
- 101,99,111,100,101,117,8,0,0,0,115,101,116,95,100,97,
- 116,97,117,10,0,0,0,103,101,116,95,115,111,117,114,99,
- 101,117,8,0,0,0,103,101,116,95,99,111,100,101,117,11,
- 0,0,0,108,111,97,100,95,109,111,100,117,108,101,40,1,
- 0,0,0,117,10,0,0,0,95,95,108,111,99,97,108,115,
- 95,95,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,12,
- 0,0,0,83,111,117,114,99,101,76,111,97,100,101,114,104,
- 3,0,0,115,14,0,0,0,16,2,12,6,12,12,12,10,
- 12,9,12,22,12,62,117,12,0,0,0,83,111,117,114,99,
- 101,76,111,97,100,101,114,99,1,0,0,0,0,0,0,0,
- 1,0,0,0,4,0,0,0,2,0,0,0,115,92,0,0,
- 0,124,0,0,69,101,0,0,90,1,0,100,0,0,90,2,
+ 0,0,0,67,0,0,0,115,4,0,0,0,100,1,0,83,
+ 40,2,0,0,0,117,150,0,0,0,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,4,0,0,0,40,3,0,0,0,114,75,0,0,0,
+ 114,35,0,0,0,114,52,0,0,0,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,114,245,0,0,0,195,3,
+ 0,0,115,0,0,0,0,117,21,0,0,0,83,111,117,114,
+ 99,101,76,111,97,100,101,114,46,115,101,116,95,100,97,116,
+ 97,99,2,0,0,0,0,0,0,0,5,0,0,0,16,0,
+ 0,0,67,0,0,0,115,105,0,0,0,124,0,0,106,0,
+ 0,124,1,0,131,1,0,125,2,0,121,19,0,124,0,0,
+ 106,1,0,124,2,0,131,1,0,125,3,0,87,110,58,0,
+ 4,116,2,0,107,10,0,114,94,0,1,125,4,0,1,122,
+ 26,0,116,3,0,100,1,0,100,2,0,124,1,0,131,1,
+ 1,124,4,0,130,2,0,87,89,100,3,0,100,3,0,125,
+ 4,0,126,4,0,88,110,1,0,88,116,4,0,124,3,0,
+ 131,1,0,83,40,4,0,0,0,117,52,0,0,0,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,117,39,0,0,0,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,71,
+ 0,0,0,78,40,5,0,0,0,114,163,0,0,0,244,8,
+ 0,0,0,103,101,116,95,100,97,116,97,114,40,0,0,0,
+ 114,157,0,0,0,114,213,0,0,0,40,5,0,0,0,114,
+ 75,0,0,0,114,178,0,0,0,114,35,0,0,0,114,211,
+ 0,0,0,244,3,0,0,0,101,120,99,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,114,220,0,0,0,202,
+ 3,0,0,115,14,0,0,0,0,2,15,1,3,1,19,1,
+ 18,1,9,1,31,1,117,23,0,0,0,83,111,117,114,99,
+ 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+ 99,101,244,9,0,0,0,95,111,112,116,105,109,105,122,101,
+ 114,29,0,0,0,99,3,0,0,0,1,0,0,0,4,0,
+ 0,0,9,0,0,0,67,0,0,0,115,31,0,0,0,116,
+ 0,0,116,1,0,124,1,0,124,2,0,100,1,0,100,2,
+ 0,100,3,0,100,4,0,124,3,0,131,4,2,83,40,5,
+ 0,0,0,117,130,0,0,0,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,240,0,0,0,244,
+ 12,0,0,0,100,111,110,116,95,105,110,104,101,114,105,116,
+ 84,114,103,0,0,0,40,2,0,0,0,114,99,0,0,0,
+ 244,7,0,0,0,99,111,109,112,105,108,101,40,4,0,0,
+ 0,114,75,0,0,0,114,52,0,0,0,114,35,0,0,0,
+ 114,249,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,244,14,0,0,0,115,111,117,114,99,101,95,
+ 116,111,95,99,111,100,101,212,3,0,0,115,4,0,0,0,
+ 0,5,18,1,117,27,0,0,0,83,111,117,114,99,101,76,
+ 111,97,100,101,114,46,115,111,117,114,99,101,95,116,111,95,
+ 99,111,100,101,99,2,0,0,0,0,0,0,0,10,0,0,
+ 0,45,0,0,0,67,0,0,0,115,177,1,0,0,124,0,
+ 0,106,0,0,124,1,0,131,1,0,125,2,0,100,1,0,
+ 125,3,0,121,16,0,116,1,0,124,2,0,131,1,0,125,
+ 4,0,87,110,24,0,4,116,2,0,107,10,0,114,63,0,
+ 1,1,1,100,1,0,125,4,0,89,110,202,0,88,121,19,
+ 0,124,0,0,106,3,0,124,2,0,131,1,0,125,5,0,
+ 87,110,18,0,4,116,4,0,107,10,0,114,103,0,1,1,
+ 1,89,110,162,0,88,116,5,0,124,5,0,100,2,0,25,
+ 131,1,0,125,3,0,121,19,0,124,0,0,106,6,0,124,
+ 4,0,131,1,0,125,6,0,87,110,18,0,4,116,7,0,
+ 107,10,0,114,159,0,1,1,1,89,110,106,0,88,121,34,
+ 0,116,8,0,124,6,0,100,3,0,124,5,0,100,4,0,
+ 124,1,0,100,5,0,124,4,0,131,1,3,125,7,0,87,
+ 110,24,0,4,116,9,0,116,10,0,102,2,0,107,10,0,
+ 114,220,0,1,1,1,89,110,45,0,88,116,11,0,100,6,
+ 0,124,4,0,124,2,0,131,3,0,1,116,12,0,124,7,
+ 0,100,4,0,124,1,0,100,7,0,124,4,0,100,8,0,
+ 124,2,0,131,1,3,83,124,0,0,106,6,0,124,2,0,
+ 131,1,0,125,8,0,124,0,0,106,13,0,124,8,0,124,
+ 2,0,131,2,0,125,9,0,116,11,0,100,9,0,124,2,
+ 0,131,2,0,1,116,14,0,106,15,0,12,114,173,1,124,
+ 4,0,100,1,0,107,9,0,114,173,1,124,3,0,100,1,
+ 0,107,9,0,114,173,1,116,16,0,124,9,0,124,3,0,
+ 116,17,0,124,8,0,131,1,0,131,3,0,125,6,0,121,
+ 36,0,124,0,0,106,18,0,124,2,0,124,4,0,124,6,
+ 0,131,3,0,1,116,11,0,100,10,0,124,4,0,131,2,
+ 0,1,87,113,173,1,4,116,2,0,107,10,0,114,169,1,
+ 1,1,1,89,113,173,1,88,110,0,0,124,9,0,83,40,
+ 11,0,0,0,117,190,0,0,0,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,114,193,0,0,0,114,197,0,
+ 0,0,114,71,0,0,0,114,35,0,0,0,117,13,0,0,
+ 0,123,125,32,109,97,116,99,104,101,115,32,123,125,114,125,
+ 0,0,0,114,126,0,0,0,117,19,0,0,0,99,111,100,
+ 101,32,111,98,106,101,99,116,32,102,114,111,109,32,123,125,
+ 117,10,0,0,0,119,114,111,116,101,32,123,33,114,125,40,
+ 19,0,0,0,114,163,0,0,0,114,117,0,0,0,114,109,
+ 0,0,0,114,244,0,0,0,114,242,0,0,0,114,14,0,
+ 0,0,114,247,0,0,0,114,40,0,0,0,114,200,0,0,
+ 0,114,157,0,0,0,114,196,0,0,0,114,137,0,0,0,
+ 114,205,0,0,0,114,252,0,0,0,114,7,0,0,0,244,
+ 19,0,0,0,100,111,110,116,95,119,114,105,116,101,95,98,
+ 121,116,101,99,111,100,101,114,208,0,0,0,114,31,0,0,
+ 0,114,246,0,0,0,40,10,0,0,0,114,75,0,0,0,
+ 114,178,0,0,0,114,126,0,0,0,114,198,0,0,0,114,
+ 125,0,0,0,244,2,0,0,0,115,116,114,52,0,0,0,
+ 244,10,0,0,0,98,121,116,101,115,95,100,97,116,97,114,
+ 211,0,0,0,116,11,0,0,0,99,111,100,101,95,111,98,
+ 106,101,99,116,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,114,219,0,0,0,220,3,0,0,115,78,0,0,
+ 0,0,7,15,1,6,1,3,1,16,1,13,1,11,2,3,
+ 1,19,1,13,1,5,2,16,1,3,1,19,1,13,1,5,
+ 2,3,1,9,1,12,1,13,1,19,1,5,2,9,1,7,
+ 1,15,1,6,1,7,1,15,1,18,1,13,1,22,1,12,
+ 1,9,1,15,1,3,1,19,1,17,1,13,1,8,1,117,
+ 21,0,0,0,83,111,117,114,99,101,76,111,97,100,101,114,
+ 46,103,101,116,95,99,111,100,101,78,114,123,0,0,0,40,
+ 10,0,0,0,114,56,0,0,0,114,55,0,0,0,114,57,
+ 0,0,0,114,243,0,0,0,114,244,0,0,0,114,246,0,
+ 0,0,114,245,0,0,0,114,220,0,0,0,114,252,0,0,
+ 0,114,219,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,114,241,0,0,0,162,
+ 3,0,0,115,14,0,0,0,12,2,12,8,12,13,12,10,
+ 12,7,12,10,18,8,114,241,0,0,0,99,0,0,0,0,
+ 0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,
+ 115,88,0,0,0,101,0,0,90,1,0,100,0,0,90,2,
0,100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,
90,4,0,101,5,0,135,0,0,102,1,0,100,4,0,100,
5,0,134,0,0,131,1,0,90,6,0,101,5,0,100,6,
0,100,7,0,132,0,0,131,1,0,90,7,0,100,8,0,
100,9,0,132,0,0,90,8,0,135,0,0,83,40,10,0,
- 0,0,117,10,0,0,0,70,105,108,101,76,111,97,100,101,
+ 0,0,244,10,0,0,0,70,105,108,101,76,111,97,100,101,
114,117,103,0,0,0,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,
@@ -2356,304 +2089,204 @@ unsigned char _Py_M__importlib[] = {
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,40,2,0,0,0,117,4,0,0,0,110,97,109,
- 101,117,4,0,0,0,112,97,116,104,40,3,0,0,0,117,
- 4,0,0,0,115,101,108,102,117,8,0,0,0,102,117,108,
- 108,110,97,109,101,117,4,0,0,0,112,97,116,104,40,0,
- 0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,
- 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
- 98,111,111,116,115,116,114,97,112,62,117,8,0,0,0,95,
- 95,105,110,105,116,95,95,243,3,0,0,115,4,0,0,0,
- 0,3,9,1,117,19,0,0,0,70,105,108,101,76,111,97,
- 100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,
- 0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,
- 0,115,22,0,0,0,116,0,0,116,1,0,124,0,0,131,
- 2,0,106,2,0,124,1,0,131,1,0,83,40,1,0,0,
- 0,117,26,0,0,0,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,
- 40,3,0,0,0,117,5,0,0,0,115,117,112,101,114,117,
- 10,0,0,0,70,105,108,101,76,111,97,100,101,114,117,11,
- 0,0,0,108,111,97,100,95,109,111,100,117,108,101,40,2,
- 0,0,0,117,4,0,0,0,115,101,108,102,117,8,0,0,
- 0,102,117,108,108,110,97,109,101,40,1,0,0,0,117,9,
- 0,0,0,95,95,99,108,97,115,115,95,95,40,0,0,0,
- 0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
- 112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
- 97,112,62,117,11,0,0,0,108,111,97,100,95,109,111,100,
- 117,108,101,249,3,0,0,115,2,0,0,0,0,5,117,22,
- 0,0,0,70,105,108,101,76,111,97,100,101,114,46,108,111,
- 97,100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,
- 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,7,
- 0,0,0,124,0,0,106,0,0,83,40,1,0,0,0,117,
- 58,0,0,0,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,40,1,
- 0,0,0,117,4,0,0,0,112,97,116,104,40,2,0,0,
- 0,117,4,0,0,0,115,101,108,102,117,8,0,0,0,102,
- 117,108,108,110,97,109,101,40,0,0,0,0,40,0,0,0,
- 0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
- 112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
- 97,112,62,117,12,0,0,0,103,101,116,95,102,105,108,101,
- 110,97,109,101,0,4,0,0,115,2,0,0,0,0,3,117,
- 23,0,0,0,70,105,108,101,76,111,97,100,101,114,46,103,
- 101,116,95,102,105,108,101,110,97,109,101,99,2,0,0,0,
- 0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,
- 115,41,0,0,0,116,0,0,106,1,0,124,1,0,100,1,
- 0,131,2,0,143,17,0,125,2,0,124,2,0,106,2,0,
- 131,0,0,83,87,100,2,0,81,88,100,2,0,83,40,3,
- 0,0,0,117,39,0,0,0,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,117,
- 1,0,0,0,114,78,40,3,0,0,0,117,3,0,0,0,
- 95,105,111,117,6,0,0,0,70,105,108,101,73,79,117,4,
- 0,0,0,114,101,97,100,40,3,0,0,0,117,4,0,0,
- 0,115,101,108,102,117,4,0,0,0,112,97,116,104,117,4,
- 0,0,0,102,105,108,101,40,0,0,0,0,40,0,0,0,
- 0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
- 112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
- 97,112,62,117,8,0,0,0,103,101,116,95,100,97,116,97,
- 5,4,0,0,115,4,0,0,0,0,2,21,1,117,19,0,
- 0,0,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
- 95,100,97,116,97,40,9,0,0,0,117,8,0,0,0,95,
- 95,110,97,109,101,95,95,117,10,0,0,0,95,95,109,111,
- 100,117,108,101,95,95,117,12,0,0,0,95,95,113,117,97,
- 108,110,97,109,101,95,95,117,7,0,0,0,95,95,100,111,
- 99,95,95,117,8,0,0,0,95,95,105,110,105,116,95,95,
- 117,11,0,0,0,95,99,104,101,99,107,95,110,97,109,101,
- 117,11,0,0,0,108,111,97,100,95,109,111,100,117,108,101,
- 117,12,0,0,0,103,101,116,95,102,105,108,101,110,97,109,
- 101,117,8,0,0,0,103,101,116,95,100,97,116,97,40,1,
- 0,0,0,117,10,0,0,0,95,95,108,111,99,97,108,115,
- 95,95,40,0,0,0,0,40,1,0,0,0,117,9,0,0,
- 0,95,95,99,108,97,115,115,95,95,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,10,0,0,
- 0,70,105,108,101,76,111,97,100,101,114,238,3,0,0,115,
- 10,0,0,0,16,3,6,2,12,6,24,7,18,5,117,10,
- 0,0,0,70,105,108,101,76,111,97,100,101,114,99,1,0,
- 0,0,0,0,0,0,1,0,0,0,4,0,0,0,66,0,
- 0,0,115,68,0,0,0,124,0,0,69,101,0,0,90,1,
- 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,
- 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,
- 0,0,90,5,0,100,6,0,100,7,0,100,8,0,100,9,
- 0,132,0,1,90,6,0,100,10,0,83,40,11,0,0,0,
- 117,16,0,0,0,83,111,117,114,99,101,70,105,108,101,76,
- 111,97,100,101,114,117,62,0,0,0,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,3,0,0,0,3,0,0,0,67,0,0,0,115,39,0,
- 0,0,116,0,0,106,1,0,124,1,0,131,1,0,125,2,
- 0,105,2,0,124,2,0,106,2,0,100,1,0,54,124,2,
- 0,106,3,0,100,2,0,54,83,40,3,0,0,0,117,33,
- 0,0,0,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,117,5,0,0,0,109,116,105,109,101,117,4,
- 0,0,0,115,105,122,101,40,4,0,0,0,117,3,0,0,
- 0,95,111,115,117,4,0,0,0,115,116,97,116,117,8,0,
- 0,0,115,116,95,109,116,105,109,101,117,7,0,0,0,115,
- 116,95,115,105,122,101,40,3,0,0,0,117,4,0,0,0,
- 115,101,108,102,117,4,0,0,0,112,97,116,104,117,2,0,
- 0,0,115,116,40,0,0,0,0,40,0,0,0,0,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,10,0,0,0,112,97,116,104,95,115,116,97,116,115,15,
- 4,0,0,115,4,0,0,0,0,2,15,1,117,27,0,0,
- 0,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
- 114,46,112,97,116,104,95,115,116,97,116,115,99,4,0,0,
- 0,0,0,0,0,5,0,0,0,13,0,0,0,67,0,0,
- 0,115,81,0,0,0,121,22,0,116,0,0,106,1,0,124,
- 1,0,131,1,0,106,2,0,125,4,0,87,110,24,0,4,
- 116,3,0,107,10,0,114,48,0,1,1,1,100,1,0,125,
- 4,0,89,110,1,0,88,124,4,0,100,2,0,79,125,4,
- 0,124,0,0,106,4,0,124,2,0,124,3,0,100,3,0,
- 124,4,0,131,2,1,83,40,4,0,0,0,78,105,182,1,
- 0,0,105,128,0,0,0,117,5,0,0,0,95,109,111,100,
- 101,40,5,0,0,0,117,3,0,0,0,95,111,115,117,4,
- 0,0,0,115,116,97,116,117,7,0,0,0,115,116,95,109,
- 111,100,101,117,7,0,0,0,79,83,69,114,114,111,114,117,
- 8,0,0,0,115,101,116,95,100,97,116,97,40,5,0,0,
- 0,117,4,0,0,0,115,101,108,102,117,11,0,0,0,115,
- 111,117,114,99,101,95,112,97,116,104,117,13,0,0,0,98,
- 121,116,101,99,111,100,101,95,112,97,116,104,117,4,0,0,
- 0,100,97,116,97,117,4,0,0,0,109,111,100,101,40,0,
- 0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,
- 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
- 98,111,111,116,115,116,114,97,112,62,117,15,0,0,0,95,
- 99,97,99,104,101,95,98,121,116,101,99,111,100,101,20,4,
- 0,0,115,12,0,0,0,0,2,3,1,22,1,13,1,11,
- 3,10,1,117,32,0,0,0,83,111,117,114,99,101,70,105,
- 108,101,76,111,97,100,101,114,46,95,99,97,99,104,101,95,
- 98,121,116,101,99,111,100,101,117,5,0,0,0,95,109,111,
- 100,101,105,182,1,0,0,99,3,0,0,0,1,0,0,0,
- 9,0,0,0,18,0,0,0,67,0,0,0,115,53,1,0,
- 0,116,0,0,124,1,0,131,1,0,92,2,0,125,4,0,
- 125,5,0,103,0,0,125,6,0,120,54,0,124,4,0,114,
- 80,0,116,1,0,124,4,0,131,1,0,12,114,80,0,116,
- 0,0,124,4,0,131,1,0,92,2,0,125,4,0,125,7,
- 0,124,6,0,106,2,0,124,7,0,131,1,0,1,113,27,
- 0,87,120,132,0,116,3,0,124,6,0,131,1,0,68,93,
- 118,0,125,7,0,116,4,0,124,4,0,124,7,0,131,2,
- 0,125,4,0,121,17,0,116,5,0,106,6,0,124,4,0,
- 131,1,0,1,87,113,94,0,4,116,7,0,107,10,0,114,
- 155,0,1,1,1,119,94,0,89,113,94,0,4,116,8,0,
- 107,10,0,114,211,0,1,125,8,0,1,122,25,0,116,9,
- 0,100,1,0,124,4,0,124,8,0,131,3,0,1,100,2,
- 0,83,87,89,100,2,0,100,2,0,125,8,0,126,8,0,
- 88,113,94,0,88,113,94,0,87,121,33,0,116,10,0,124,
- 1,0,124,2,0,124,3,0,131,3,0,1,116,9,0,100,
- 3,0,124,1,0,131,2,0,1,87,110,53,0,4,116,8,
- 0,107,10,0,114,48,1,1,125,8,0,1,122,21,0,116,
- 9,0,100,1,0,124,1,0,124,8,0,131,3,0,1,87,
- 89,100,2,0,100,2,0,125,8,0,126,8,0,88,110,1,
- 0,88,100,2,0,83,40,4,0,0,0,117,27,0,0,0,
- 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,117,27,0,0,0,
- 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,117,12,0,0,
- 0,99,114,101,97,116,101,100,32,123,33,114,125,40,11,0,
- 0,0,117,11,0,0,0,95,112,97,116,104,95,115,112,108,
- 105,116,117,11,0,0,0,95,112,97,116,104,95,105,115,100,
- 105,114,117,6,0,0,0,97,112,112,101,110,100,117,8,0,
- 0,0,114,101,118,101,114,115,101,100,117,10,0,0,0,95,
- 112,97,116,104,95,106,111,105,110,117,3,0,0,0,95,111,
- 115,117,5,0,0,0,109,107,100,105,114,117,15,0,0,0,
- 70,105,108,101,69,120,105,115,116,115,69,114,114,111,114,117,
- 7,0,0,0,79,83,69,114,114,111,114,117,16,0,0,0,
- 95,118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,
- 117,13,0,0,0,95,119,114,105,116,101,95,97,116,111,109,
- 105,99,40,9,0,0,0,117,4,0,0,0,115,101,108,102,
- 117,4,0,0,0,112,97,116,104,117,4,0,0,0,100,97,
- 116,97,117,5,0,0,0,95,109,111,100,101,117,6,0,0,
- 0,112,97,114,101,110,116,117,8,0,0,0,102,105,108,101,
- 110,97,109,101,117,10,0,0,0,112,97,116,104,95,112,97,
- 114,116,115,117,4,0,0,0,112,97,114,116,117,3,0,0,
- 0,101,120,99,40,0,0,0,0,40,0,0,0,0,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,8,0,0,0,115,101,116,95,100,97,116,97,31,4,0,
- 0,115,38,0,0,0,0,2,18,1,6,2,22,1,18,1,
- 17,2,19,1,15,1,3,1,17,1,13,2,7,1,18,3,
- 16,1,27,1,3,1,16,1,17,1,18,2,117,25,0,0,
- 0,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
- 114,46,115,101,116,95,100,97,116,97,78,40,7,0,0,0,
- 117,8,0,0,0,95,95,110,97,109,101,95,95,117,10,0,
- 0,0,95,95,109,111,100,117,108,101,95,95,117,12,0,0,
- 0,95,95,113,117,97,108,110,97,109,101,95,95,117,7,0,
- 0,0,95,95,100,111,99,95,95,117,10,0,0,0,112,97,
- 116,104,95,115,116,97,116,115,117,15,0,0,0,95,99,97,
- 99,104,101,95,98,121,116,101,99,111,100,101,117,8,0,0,
- 0,115,101,116,95,100,97,116,97,40,1,0,0,0,117,10,
- 0,0,0,95,95,108,111,99,97,108,115,95,95,40,0,0,
- 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
- 111,111,116,115,116,114,97,112,62,117,16,0,0,0,83,111,
- 117,114,99,101,70,105,108,101,76,111,97,100,101,114,11,4,
- 0,0,115,8,0,0,0,16,2,6,2,12,5,12,11,117,
- 16,0,0,0,83,111,117,114,99,101,70,105,108,101,76,111,
- 97,100,101,114,99,1,0,0,0,0,0,0,0,1,0,0,
- 0,2,0,0,0,66,0,0,0,115,62,0,0,0,124,0,
- 0,69,101,0,0,90,1,0,100,0,0,90,2,0,100,1,
- 0,90,3,0,100,2,0,100,3,0,132,0,0,90,4,0,
- 100,4,0,100,5,0,132,0,0,90,5,0,100,6,0,100,
- 7,0,132,0,0,90,6,0,100,8,0,83,40,9,0,0,
- 0,117,20,0,0,0,83,111,117,114,99,101,108,101,115,115,
- 70,105,108,101,76,111,97,100,101,114,117,45,0,0,0,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,2,0,0,0,4,0,0,0,67,0,0,
- 0,115,19,0,0,0,124,0,0,106,0,0,124,1,0,100,
- 1,0,100,2,0,131,1,1,83,40,3,0,0,0,78,117,
- 10,0,0,0,115,111,117,114,99,101,108,101,115,115,84,40,
- 2,0,0,0,117,12,0,0,0,95,108,111,97,100,95,109,
- 111,100,117,108,101,117,4,0,0,0,84,114,117,101,40,2,
- 0,0,0,117,4,0,0,0,115,101,108,102,117,8,0,0,
- 0,102,117,108,108,110,97,109,101,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,11,0,0,0,108,111,97,100,95,109,
- 111,100,117,108,101,64,4,0,0,115,2,0,0,0,0,1,
- 117,32,0,0,0,83,111,117,114,99,101,108,101,115,115,70,
+ 114,46,78,40,2,0,0,0,114,71,0,0,0,114,35,0,
+ 0,0,40,3,0,0,0,114,75,0,0,0,114,178,0,0,
+ 0,114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,114,76,0,0,0,21,4,0,0,115,4,
+ 0,0,0,0,3,9,1,117,19,0,0,0,70,105,108,101,
+ 76,111,97,100,101,114,46,95,95,105,110,105,116,95,95,99,
+ 2,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
+ 3,0,0,0,115,22,0,0,0,116,0,0,116,1,0,124,
+ 0,0,131,2,0,106,2,0,124,1,0,131,1,0,83,40,
+ 1,0,0,0,117,26,0,0,0,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,40,3,0,0,0,114,148,0,0,0,114,0,1,
+ 0,0,114,218,0,0,0,40,2,0,0,0,114,75,0,0,
+ 0,114,178,0,0,0,40,1,0,0,0,114,150,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,114,218,0,0,0,27,
+ 4,0,0,115,2,0,0,0,0,5,117,22,0,0,0,70,
105,108,101,76,111,97,100,101,114,46,108,111,97,100,95,109,
- 111,100,117,108,101,99,2,0,0,0,0,0,0,0,6,0,
- 0,0,6,0,0,0,67,0,0,0,115,138,0,0,0,124,
- 0,0,106,0,0,124,1,0,131,1,0,125,2,0,124,0,
- 0,106,1,0,124,2,0,131,1,0,125,3,0,124,0,0,
- 106,2,0,124,1,0,124,3,0,124,2,0,100,0,0,131,
- 4,0,125,4,0,116,4,0,106,5,0,124,4,0,131,1,
- 0,125,5,0,116,6,0,124,5,0,116,7,0,131,2,0,
- 114,101,0,116,8,0,100,1,0,124,2,0,131,2,0,1,
- 124,5,0,83,116,9,0,100,2,0,106,10,0,124,2,0,
- 131,1,0,100,3,0,124,1,0,100,4,0,124,2,0,131,
- 1,2,130,1,0,100,0,0,83,40,5,0,0,0,78,117,
- 21,0,0,0,99,111,100,101,32,111,98,106,101,99,116,32,
- 102,114,111,109,32,123,33,114,125,117,21,0,0,0,78,111,
- 110,45,99,111,100,101,32,111,98,106,101,99,116,32,105,110,
- 32,123,125,117,4,0,0,0,110,97,109,101,117,4,0,0,
- 0,112,97,116,104,40,11,0,0,0,117,12,0,0,0,103,
- 101,116,95,102,105,108,101,110,97,109,101,117,8,0,0,0,
- 103,101,116,95,100,97,116,97,117,20,0,0,0,95,98,121,
- 116,101,115,95,102,114,111,109,95,98,121,116,101,99,111,100,
- 101,117,4,0,0,0,78,111,110,101,117,7,0,0,0,109,
- 97,114,115,104,97,108,117,5,0,0,0,108,111,97,100,115,
- 117,10,0,0,0,105,115,105,110,115,116,97,110,99,101,117,
- 10,0,0,0,95,99,111,100,101,95,116,121,112,101,117,16,
- 0,0,0,95,118,101,114,98,111,115,101,95,109,101,115,115,
- 97,103,101,117,11,0,0,0,73,109,112,111,114,116,69,114,
- 114,111,114,117,6,0,0,0,102,111,114,109,97,116,40,6,
- 0,0,0,117,4,0,0,0,115,101,108,102,117,8,0,0,
- 0,102,117,108,108,110,97,109,101,117,4,0,0,0,112,97,
- 116,104,117,4,0,0,0,100,97,116,97,117,10,0,0,0,
- 98,121,116,101,115,95,100,97,116,97,117,5,0,0,0,102,
- 111,117,110,100,40,0,0,0,0,40,0,0,0,0,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,8,0,0,0,103,101,116,95,99,111,100,101,67,4,0,
- 0,115,18,0,0,0,0,1,15,1,15,1,24,1,15,1,
- 15,1,13,1,4,2,18,1,117,29,0,0,0,83,111,117,
- 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
- 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
- 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
- 4,0,0,0,100,1,0,83,40,2,0,0,0,117,39,0,
- 0,0,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,40,1,0,0,0,117,
- 4,0,0,0,78,111,110,101,40,2,0,0,0,117,4,0,
- 0,0,115,101,108,102,117,8,0,0,0,102,117,108,108,110,
- 97,109,101,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 10,0,0,0,103,101,116,95,115,111,117,114,99,101,79,4,
- 0,0,115,2,0,0,0,0,2,117,31,0,0,0,83,111,
- 117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,
- 101,114,46,103,101,116,95,115,111,117,114,99,101,78,40,7,
- 0,0,0,117,8,0,0,0,95,95,110,97,109,101,95,95,
- 117,10,0,0,0,95,95,109,111,100,117,108,101,95,95,117,
- 12,0,0,0,95,95,113,117,97,108,110,97,109,101,95,95,
- 117,7,0,0,0,95,95,100,111,99,95,95,117,11,0,0,
- 0,108,111,97,100,95,109,111,100,117,108,101,117,8,0,0,
- 0,103,101,116,95,99,111,100,101,117,10,0,0,0,103,101,
- 116,95,115,111,117,114,99,101,40,1,0,0,0,117,10,0,
- 0,0,95,95,108,111,99,97,108,115,95,95,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,20,0,0,0,83,111,117,
+ 111,100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,
+ 0,0,1,0,0,0,67,0,0,0,115,7,0,0,0,124,
+ 0,0,106,0,0,83,40,1,0,0,0,117,58,0,0,0,
+ 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,40,1,0,0,0,114,
+ 35,0,0,0,40,2,0,0,0,114,75,0,0,0,114,178,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,114,163,0,0,0,34,4,0,0,115,2,0,0,0,
+ 0,3,117,23,0,0,0,70,105,108,101,76,111,97,100,101,
+ 114,46,103,101,116,95,102,105,108,101,110,97,109,101,99,2,
+ 0,0,0,0,0,0,0,3,0,0,0,8,0,0,0,67,
+ 0,0,0,115,41,0,0,0,116,0,0,106,1,0,124,1,
+ 0,100,1,0,131,2,0,143,17,0,125,2,0,124,2,0,
+ 106,2,0,131,0,0,83,87,100,2,0,81,88,100,2,0,
+ 83,40,3,0,0,0,117,39,0,0,0,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,244,1,0,0,0,114,78,40,3,0,0,0,114,48,
+ 0,0,0,114,49,0,0,0,116,4,0,0,0,114,101,97,
+ 100,40,3,0,0,0,114,75,0,0,0,114,35,0,0,0,
+ 114,53,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,114,247,0,0,0,39,4,0,0,115,4,0,
+ 0,0,0,2,21,1,117,19,0,0,0,70,105,108,101,76,
+ 111,97,100,101,114,46,103,101,116,95,100,97,116,97,40,9,
+ 0,0,0,114,56,0,0,0,114,55,0,0,0,114,57,0,
+ 0,0,114,58,0,0,0,114,76,0,0,0,114,176,0,0,
+ 0,114,218,0,0,0,114,163,0,0,0,114,247,0,0,0,
+ 114,4,0,0,0,114,4,0,0,0,40,1,0,0,0,114,
+ 150,0,0,0,114,5,0,0,0,114,0,1,0,0,16,4,
+ 0,0,115,10,0,0,0,12,3,6,2,12,6,24,7,18,
+ 5,114,0,1,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,4,0,0,0,64,0,0,0,115,64,0,0,0,
+ 101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,90,
+ 3,0,100,2,0,100,3,0,132,0,0,90,4,0,100,4,
+ 0,100,5,0,132,0,0,90,5,0,100,6,0,100,7,0,
+ 100,8,0,100,9,0,132,0,1,90,6,0,100,10,0,83,
+ 40,11,0,0,0,244,16,0,0,0,83,111,117,114,99,101,
+ 70,105,108,101,76,111,97,100,101,114,117,62,0,0,0,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,3,0,0,0,3,0,0,0,67,0,
+ 0,0,115,39,0,0,0,116,0,0,106,1,0,124,1,0,
+ 131,1,0,125,2,0,105,2,0,124,2,0,106,2,0,100,
+ 1,0,54,124,2,0,106,3,0,100,2,0,54,83,40,3,
+ 0,0,0,117,33,0,0,0,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,114,193,0,0,0,114,194,
+ 0,0,0,40,4,0,0,0,114,3,0,0,0,114,39,0,
+ 0,0,244,8,0,0,0,115,116,95,109,116,105,109,101,116,
+ 7,0,0,0,115,116,95,115,105,122,101,40,3,0,0,0,
+ 114,75,0,0,0,114,35,0,0,0,114,254,0,0,0,114,
+ 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,244,
+ 0,0,0,49,4,0,0,115,4,0,0,0,0,2,15,1,
+ 117,27,0,0,0,83,111,117,114,99,101,70,105,108,101,76,
+ 111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,115,
+ 99,4,0,0,0,0,0,0,0,5,0,0,0,5,0,0,
+ 0,67,0,0,0,115,34,0,0,0,116,0,0,124,1,0,
+ 131,1,0,125,4,0,124,0,0,106,1,0,124,2,0,124,
+ 3,0,100,1,0,124,4,0,131,2,1,83,40,2,0,0,
+ 0,78,244,5,0,0,0,95,109,111,100,101,40,2,0,0,
+ 0,114,129,0,0,0,114,245,0,0,0,40,5,0,0,0,
+ 114,75,0,0,0,114,126,0,0,0,114,125,0,0,0,114,
+ 52,0,0,0,114,42,0,0,0,114,4,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,114,246,0,0,0,54,4,0,
+ 0,115,4,0,0,0,0,2,12,1,117,32,0,0,0,83,
+ 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,
+ 95,99,97,99,104,101,95,98,121,116,101,99,111,100,101,114,
+ 4,1,0,0,105,182,1,0,0,99,3,0,0,0,1,0,
+ 0,0,9,0,0,0,18,0,0,0,67,0,0,0,115,53,
+ 1,0,0,116,0,0,124,1,0,131,1,0,92,2,0,125,
+ 4,0,125,5,0,103,0,0,125,6,0,120,54,0,124,4,
+ 0,114,80,0,116,1,0,124,4,0,131,1,0,12,114,80,
+ 0,116,0,0,124,4,0,131,1,0,92,2,0,125,4,0,
+ 125,7,0,124,6,0,106,2,0,124,7,0,131,1,0,1,
+ 113,27,0,87,120,132,0,116,3,0,124,6,0,131,1,0,
+ 68,93,118,0,125,7,0,116,4,0,124,4,0,124,7,0,
+ 131,2,0,125,4,0,121,17,0,116,5,0,106,6,0,124,
+ 4,0,131,1,0,1,87,113,94,0,4,116,7,0,107,10,
+ 0,114,155,0,1,1,1,119,94,0,89,113,94,0,4,116,
+ 8,0,107,10,0,114,211,0,1,125,8,0,1,122,25,0,
+ 116,9,0,100,1,0,124,4,0,124,8,0,131,3,0,1,
+ 100,2,0,83,87,89,100,2,0,100,2,0,125,8,0,126,
+ 8,0,88,113,94,0,88,113,94,0,87,121,33,0,116,10,
+ 0,124,1,0,124,2,0,124,3,0,131,3,0,1,116,9,
+ 0,100,3,0,124,1,0,131,2,0,1,87,110,53,0,4,
+ 116,8,0,107,10,0,114,48,1,1,125,8,0,1,122,21,
+ 0,116,9,0,100,1,0,124,1,0,124,8,0,131,3,0,
+ 1,87,89,100,2,0,100,2,0,125,8,0,126,8,0,88,
+ 110,1,0,88,100,2,0,83,40,4,0,0,0,117,27,0,
+ 0,0,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,117,27,0,
+ 0,0,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,117,12,
+ 0,0,0,99,114,101,97,116,101,100,32,123,33,114,125,40,
+ 11,0,0,0,114,38,0,0,0,114,45,0,0,0,114,165,
+ 0,0,0,114,33,0,0,0,114,28,0,0,0,114,3,0,
+ 0,0,116,5,0,0,0,109,107,100,105,114,244,15,0,0,
+ 0,70,105,108,101,69,120,105,115,116,115,69,114,114,111,114,
+ 114,40,0,0,0,114,137,0,0,0,114,54,0,0,0,40,
+ 9,0,0,0,114,75,0,0,0,114,35,0,0,0,114,52,
+ 0,0,0,114,4,1,0,0,244,6,0,0,0,112,97,114,
+ 101,110,116,114,116,0,0,0,114,27,0,0,0,114,23,0,
+ 0,0,114,248,0,0,0,114,4,0,0,0,114,4,0,0,
+ 0,114,5,0,0,0,114,245,0,0,0,59,4,0,0,115,
+ 38,0,0,0,0,2,18,1,6,2,22,1,18,1,17,2,
+ 19,1,15,1,3,1,17,1,13,2,7,1,18,3,16,1,
+ 27,1,3,1,16,1,17,1,18,2,117,25,0,0,0,83,
+ 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,
+ 115,101,116,95,100,97,116,97,78,40,7,0,0,0,114,56,
+ 0,0,0,114,55,0,0,0,114,57,0,0,0,114,58,0,
+ 0,0,114,244,0,0,0,114,246,0,0,0,114,245,0,0,
+ 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,114,2,1,0,0,45,4,0,0,115,8,
+ 0,0,0,12,2,6,2,12,5,12,5,114,2,1,0,0,
+ 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,0,0,0,0,115,64,0,0,0,101,0,0,90,1,0,
+ 100,0,0,90,2,0,100,1,0,90,3,0,135,0,0,102,
+ 1,0,100,2,0,100,3,0,134,0,0,90,4,0,100,4,
+ 0,100,5,0,132,0,0,90,5,0,100,6,0,100,7,0,
+ 132,0,0,90,6,0,135,0,0,83,40,8,0,0,0,244,
+ 20,0,0,0,83,111,117,114,99,101,108,101,115,115,70,105,
+ 108,101,76,111,97,100,101,114,117,45,0,0,0,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,2,0,0,0,2,0,0,0,3,0,0,0,115,
+ 32,0,0,0,116,0,0,131,0,0,106,1,0,124,1,0,
+ 131,1,0,1,124,1,0,106,2,0,124,1,0,95,3,0,
+ 100,0,0,83,40,1,0,0,0,78,40,4,0,0,0,114,
+ 148,0,0,0,114,239,0,0,0,114,164,0,0,0,114,238,
+ 0,0,0,40,2,0,0,0,114,75,0,0,0,114,161,0,
+ 0,0,40,1,0,0,0,114,150,0,0,0,114,4,0,0,
+ 0,114,5,0,0,0,114,239,0,0,0,92,4,0,0,115,
+ 4,0,0,0,0,1,16,1,117,38,0,0,0,83,111,117,
114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
- 114,60,4,0,0,115,8,0,0,0,16,2,6,2,12,3,
- 12,12,117,20,0,0,0,83,111,117,114,99,101,108,101,115,
- 115,70,105,108,101,76,111,97,100,101,114,99,1,0,0,0,
- 0,0,0,0,1,0,0,0,5,0,0,0,66,0,0,0,
- 115,104,0,0,0,124,0,0,69,101,0,0,90,1,0,100,
+ 114,46,105,110,105,116,95,109,111,100,117,108,101,95,97,116,
+ 116,114,115,99,2,0,0,0,0,0,0,0,5,0,0,0,
+ 6,0,0,0,67,0,0,0,115,76,0,0,0,124,0,0,
+ 106,0,0,124,1,0,131,1,0,125,2,0,124,0,0,106,
+ 1,0,124,2,0,131,1,0,125,3,0,116,2,0,124,3,
+ 0,100,1,0,124,1,0,100,2,0,124,2,0,131,1,2,
+ 125,4,0,116,3,0,124,4,0,100,1,0,124,1,0,100,
+ 3,0,124,2,0,131,1,2,83,40,4,0,0,0,78,114,
+ 71,0,0,0,114,35,0,0,0,114,125,0,0,0,40,4,
+ 0,0,0,114,163,0,0,0,114,247,0,0,0,114,200,0,
+ 0,0,114,205,0,0,0,40,5,0,0,0,114,75,0,0,
+ 0,114,178,0,0,0,114,35,0,0,0,114,52,0,0,0,
+ 114,255,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,114,219,0,0,0,96,4,0,0,115,8,0,
+ 0,0,0,1,15,1,15,1,24,1,117,29,0,0,0,83,
+ 111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,
+ 100,101,114,46,103,101,116,95,99,111,100,101,99,2,0,0,
+ 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
+ 0,115,4,0,0,0,100,1,0,83,40,2,0,0,0,117,
+ 39,0,0,0,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,4,0,0,
+ 0,40,2,0,0,0,114,75,0,0,0,114,178,0,0,0,
+ 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,
+ 220,0,0,0,102,4,0,0,115,2,0,0,0,0,2,117,
+ 31,0,0,0,83,111,117,114,99,101,108,101,115,115,70,105,
+ 108,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,
+ 114,99,101,40,7,0,0,0,114,56,0,0,0,114,55,0,
+ 0,0,114,57,0,0,0,114,58,0,0,0,114,239,0,0,
+ 0,114,219,0,0,0,114,220,0,0,0,114,4,0,0,0,
+ 114,4,0,0,0,40,1,0,0,0,114,150,0,0,0,114,
+ 5,0,0,0,114,7,1,0,0,88,4,0,0,115,8,0,
+ 0,0,12,2,6,2,18,4,12,6,114,7,1,0,0,99,
+ 0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
+ 64,0,0,0,115,100,0,0,0,101,0,0,90,1,0,100,
0,0,90,2,0,100,1,0,90,3,0,100,2,0,100,3,
0,132,0,0,90,4,0,101,5,0,101,6,0,101,7,0,
100,4,0,100,5,0,132,0,0,131,1,0,131,1,0,131,
1,0,90,8,0,100,6,0,100,7,0,132,0,0,90,9,
0,100,8,0,100,9,0,132,0,0,90,10,0,100,10,0,
100,11,0,132,0,0,90,11,0,100,12,0,83,40,13,0,
- 0,0,117,19,0,0,0,69,120,116,101,110,115,105,111,110,
+ 0,0,244,19,0,0,0,69,120,116,101,110,115,105,111,110,
70,105,108,101,76,111,97,100,101,114,117,93,0,0,0,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,
@@ -2664,106 +2297,76 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,
0,115,22,0,0,0,124,1,0,124,0,0,95,0,0,124,
2,0,124,0,0,95,1,0,100,0,0,83,40,1,0,0,
- 0,78,40,2,0,0,0,117,4,0,0,0,110,97,109,101,
- 117,4,0,0,0,112,97,116,104,40,3,0,0,0,117,4,
- 0,0,0,115,101,108,102,117,4,0,0,0,110,97,109,101,
- 117,4,0,0,0,112,97,116,104,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,8,0,0,0,95,95,105,110,105,116,
- 95,95,96,4,0,0,115,4,0,0,0,0,1,9,1,117,
- 28,0,0,0,69,120,116,101,110,115,105,111,110,70,105,108,
- 101,76,111,97,100,101,114,46,95,95,105,110,105,116,95,95,
- 99,2,0,0,0,0,0,0,0,4,0,0,0,10,0,0,
- 0,67,0,0,0,115,175,0,0,0,124,1,0,116,0,0,
- 106,1,0,107,6,0,125,2,0,121,107,0,116,2,0,116,
- 3,0,106,4,0,124,1,0,124,0,0,106,5,0,131,3,
- 0,125,3,0,116,6,0,100,1,0,124,0,0,106,5,0,
- 131,2,0,1,124,0,0,106,7,0,124,1,0,131,1,0,
- 114,117,0,116,8,0,124,3,0,100,2,0,131,2,0,12,
- 114,117,0,116,9,0,124,0,0,106,5,0,131,1,0,100,
- 3,0,25,103,1,0,124,3,0,95,10,0,110,0,0,124,
- 3,0,83,87,110,46,0,1,1,1,124,2,0,12,114,163,
- 0,124,1,0,116,0,0,106,1,0,107,6,0,114,163,0,
- 116,0,0,106,1,0,124,1,0,61,110,0,0,130,0,0,
- 89,110,1,0,88,100,4,0,83,40,5,0,0,0,117,25,
- 0,0,0,76,111,97,100,32,97,110,32,101,120,116,101,110,
- 115,105,111,110,32,109,111,100,117,108,101,46,117,33,0,0,
- 0,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
- 101,32,108,111,97,100,101,100,32,102,114,111,109,32,123,33,
- 114,125,117,8,0,0,0,95,95,112,97,116,104,95,95,105,
- 0,0,0,0,78,40,11,0,0,0,117,3,0,0,0,115,
- 121,115,117,7,0,0,0,109,111,100,117,108,101,115,117,25,
- 0,0,0,95,99,97,108,108,95,119,105,116,104,95,102,114,
- 97,109,101,115,95,114,101,109,111,118,101,100,117,4,0,0,
- 0,95,105,109,112,117,12,0,0,0,108,111,97,100,95,100,
- 121,110,97,109,105,99,117,4,0,0,0,112,97,116,104,117,
- 16,0,0,0,95,118,101,114,98,111,115,101,95,109,101,115,
- 115,97,103,101,117,10,0,0,0,105,115,95,112,97,99,107,
- 97,103,101,117,7,0,0,0,104,97,115,97,116,116,114,117,
- 11,0,0,0,95,112,97,116,104,95,115,112,108,105,116,117,
- 8,0,0,0,95,95,112,97,116,104,95,95,40,4,0,0,
- 0,117,4,0,0,0,115,101,108,102,117,8,0,0,0,102,
- 117,108,108,110,97,109,101,117,9,0,0,0,105,115,95,114,
- 101,108,111,97,100,117,6,0,0,0,109,111,100,117,108,101,
- 40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,0,
- 0,108,111,97,100,95,109,111,100,117,108,101,100,4,0,0,
- 115,24,0,0,0,0,5,15,1,3,1,9,1,15,1,16,
- 1,31,1,28,1,8,1,3,1,22,1,13,1,117,31,0,
- 0,0,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
- 111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,
- 101,99,2,0,0,0,0,0,0,0,2,0,0,0,4,0,
- 0,0,3,0,0,0,115,48,0,0,0,116,0,0,124,0,
- 0,106,1,0,131,1,0,100,1,0,25,137,0,0,116,2,
- 0,135,0,0,102,1,0,100,2,0,100,3,0,134,0,0,
- 116,3,0,68,131,1,0,131,1,0,83,40,4,0,0,0,
- 117,49,0,0,0,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,105,1,0,0,0,99,1,0,0,0,
- 0,0,0,0,2,0,0,0,4,0,0,0,51,0,0,0,
- 115,31,0,0,0,124,0,0,93,21,0,125,1,0,136,0,
- 0,100,0,0,124,1,0,23,107,2,0,86,1,113,3,0,
- 100,1,0,83,40,2,0,0,0,117,8,0,0,0,95,95,
- 105,110,105,116,95,95,78,40,0,0,0,0,40,2,0,0,
- 0,117,2,0,0,0,46,48,117,6,0,0,0,115,117,102,
- 102,105,120,40,1,0,0,0,117,9,0,0,0,102,105,108,
- 101,95,110,97,109,101,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,9,0,
- 0,0,60,103,101,110,101,120,112,114,62,121,4,0,0,115,
- 2,0,0,0,6,1,117,49,0,0,0,69,120,116,101,110,
+ 0,78,40,2,0,0,0,114,71,0,0,0,114,35,0,0,
+ 0,40,3,0,0,0,114,75,0,0,0,114,71,0,0,0,
+ 114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,114,76,0,0,0,119,4,0,0,115,4,0,
+ 0,0,0,1,9,1,117,28,0,0,0,69,120,116,101,110,
+ 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,
+ 95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,0,
+ 3,0,0,0,11,0,0,0,67,0,0,0,115,126,0,0,
+ 0,116,0,0,124,1,0,131,1,0,143,108,0,1,116,1,
+ 0,116,2,0,106,3,0,124,1,0,124,0,0,106,4,0,
+ 131,3,0,125,2,0,116,5,0,100,1,0,124,0,0,106,
+ 4,0,131,2,0,1,124,0,0,106,6,0,124,1,0,131,
+ 1,0,114,112,0,116,7,0,124,2,0,100,2,0,131,2,
+ 0,12,114,112,0,116,8,0,124,0,0,106,4,0,131,1,
+ 0,100,3,0,25,103,1,0,124,2,0,95,9,0,110,0,
+ 0,124,2,0,83,87,100,4,0,81,88,100,4,0,83,40,
+ 5,0,0,0,117,25,0,0,0,76,111,97,100,32,97,110,
+ 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
+ 101,46,117,33,0,0,0,101,120,116,101,110,115,105,111,110,
+ 32,109,111,100,117,108,101,32,108,111,97,100,101,100,32,102,
+ 114,111,109,32,123,33,114,125,114,159,0,0,0,114,67,0,
+ 0,0,78,40,10,0,0,0,114,138,0,0,0,114,99,0,
+ 0,0,114,94,0,0,0,116,12,0,0,0,108,111,97,100,
+ 95,100,121,110,97,109,105,99,114,35,0,0,0,114,137,0,
+ 0,0,114,156,0,0,0,114,59,0,0,0,114,38,0,0,
+ 0,114,159,0,0,0,40,3,0,0,0,114,75,0,0,0,
+ 114,178,0,0,0,114,161,0,0,0,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,114,218,0,0,0,123,4,
+ 0,0,115,14,0,0,0,0,5,13,1,9,1,15,1,16,
+ 1,31,1,28,1,117,31,0,0,0,69,120,116,101,110,115,
+ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,108,111,
+ 97,100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,
+ 0,0,2,0,0,0,4,0,0,0,3,0,0,0,115,48,
+ 0,0,0,116,0,0,124,0,0,106,1,0,131,1,0,100,
+ 1,0,25,137,0,0,116,2,0,135,0,0,102,1,0,100,
+ 2,0,100,3,0,134,0,0,116,3,0,68,131,1,0,131,
+ 1,0,83,40,4,0,0,0,117,49,0,0,0,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,29,
+ 0,0,0,99,1,0,0,0,0,0,0,0,2,0,0,0,
+ 4,0,0,0,51,0,0,0,115,31,0,0,0,124,0,0,
+ 93,21,0,125,1,0,136,0,0,100,0,0,124,1,0,23,
+ 107,2,0,86,1,113,3,0,100,1,0,83,40,2,0,0,
+ 0,114,76,0,0,0,78,114,4,0,0,0,40,2,0,0,
+ 0,114,22,0,0,0,244,6,0,0,0,115,117,102,102,105,
+ 120,40,1,0,0,0,244,9,0,0,0,102,105,108,101,95,
+ 110,97,109,101,114,4,0,0,0,114,5,0,0,0,114,143,
+ 0,0,0,139,4,0,0,115,2,0,0,0,6,1,117,49,
+ 0,0,0,69,120,116,101,110,115,105,111,110,70,105,108,101,
+ 76,111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,
+ 101,46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,
+ 120,112,114,62,40,4,0,0,0,114,38,0,0,0,114,35,
+ 0,0,0,114,144,0,0,0,244,18,0,0,0,69,88,84,
+ 69,78,83,73,79,78,95,83,85,70,70,73,88,69,83,40,
+ 2,0,0,0,114,75,0,0,0,114,178,0,0,0,114,4,
+ 0,0,0,40,1,0,0,0,114,10,1,0,0,114,5,0,
+ 0,0,114,156,0,0,0,136,4,0,0,115,6,0,0,0,
+ 0,2,19,1,18,1,117,30,0,0,0,69,120,116,101,110,
115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,
- 115,95,112,97,99,107,97,103,101,46,60,108,111,99,97,108,
- 115,62,46,60,103,101,110,101,120,112,114,62,40,4,0,0,
- 0,117,11,0,0,0,95,112,97,116,104,95,115,112,108,105,
- 116,117,4,0,0,0,112,97,116,104,117,3,0,0,0,97,
- 110,121,117,18,0,0,0,69,88,84,69,78,83,73,79,78,
- 95,83,85,70,70,73,88,69,83,40,2,0,0,0,117,4,
- 0,0,0,115,101,108,102,117,8,0,0,0,102,117,108,108,
- 110,97,109,101,40,0,0,0,0,40,1,0,0,0,117,9,
- 0,0,0,102,105,108,101,95,110,97,109,101,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,10,
- 0,0,0,105,115,95,112,97,99,107,97,103,101,118,4,0,
- 0,115,6,0,0,0,0,2,19,1,18,1,117,30,0,0,
- 0,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
- 97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,
- 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
- 67,0,0,0,115,4,0,0,0,100,1,0,83,40,2,0,
- 0,0,117,63,0,0,0,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,40,1,0,0,0,117,4,0,0,
- 0,78,111,110,101,40,2,0,0,0,117,4,0,0,0,115,
- 101,108,102,117,8,0,0,0,102,117,108,108,110,97,109,101,
- 40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,8,0,0,
- 0,103,101,116,95,99,111,100,101,124,4,0,0,115,2,0,
+ 115,95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,
+ 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,
+ 0,0,0,100,1,0,83,40,2,0,0,0,117,63,0,0,
+ 0,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,4,0,0,0,40,2,0,0,0,114,75,0,0,0,
+ 114,178,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,114,219,0,0,0,142,4,0,0,115,2,0,
0,0,0,2,117,28,0,0,0,69,120,116,101,110,115,105,
111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
95,99,111,100,101,99,2,0,0,0,0,0,0,0,2,0,
@@ -2772,1661 +2375,1277 @@ unsigned char _Py_M__importlib[] = {
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,40,1,0,0,0,117,4,0,0,0,78,111,110,
- 101,40,2,0,0,0,117,4,0,0,0,115,101,108,102,117,
- 8,0,0,0,102,117,108,108,110,97,109,101,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,10,0,0,0,103,101,116,
- 95,115,111,117,114,99,101,128,4,0,0,115,2,0,0,0,
- 0,2,117,30,0,0,0,69,120,116,101,110,115,105,111,110,
- 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,115,
- 111,117,114,99,101,78,40,12,0,0,0,117,8,0,0,0,
- 95,95,110,97,109,101,95,95,117,10,0,0,0,95,95,109,
- 111,100,117,108,101,95,95,117,12,0,0,0,95,95,113,117,
- 97,108,110,97,109,101,95,95,117,7,0,0,0,95,95,100,
- 111,99,95,95,117,8,0,0,0,95,95,105,110,105,116,95,
- 95,117,11,0,0,0,95,99,104,101,99,107,95,110,97,109,
- 101,117,11,0,0,0,115,101,116,95,112,97,99,107,97,103,
- 101,117,10,0,0,0,115,101,116,95,108,111,97,100,101,114,
- 117,11,0,0,0,108,111,97,100,95,109,111,100,117,108,101,
- 117,10,0,0,0,105,115,95,112,97,99,107,97,103,101,117,
- 8,0,0,0,103,101,116,95,99,111,100,101,117,10,0,0,
- 0,103,101,116,95,115,111,117,114,99,101,40,1,0,0,0,
- 117,10,0,0,0,95,95,108,111,99,97,108,115,95,95,40,
- 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
- 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
- 95,98,111,111,116,115,116,114,97,112,62,117,19,0,0,0,
- 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
- 100,101,114,88,4,0,0,115,16,0,0,0,16,6,6,2,
- 12,4,3,1,3,1,24,16,12,6,12,4,117,19,0,0,
- 0,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
- 97,100,101,114,99,1,0,0,0,0,0,0,0,1,0,0,
- 0,2,0,0,0,66,0,0,0,115,134,0,0,0,124,0,
- 0,69,101,0,0,90,1,0,100,0,0,90,2,0,100,1,
- 0,90,3,0,100,2,0,100,3,0,132,0,0,90,4,0,
- 100,4,0,100,5,0,132,0,0,90,5,0,100,6,0,100,
- 7,0,132,0,0,90,6,0,100,8,0,100,9,0,132,0,
- 0,90,7,0,100,10,0,100,11,0,132,0,0,90,8,0,
- 100,12,0,100,13,0,132,0,0,90,9,0,100,14,0,100,
- 15,0,132,0,0,90,10,0,100,16,0,100,17,0,132,0,
- 0,90,11,0,100,18,0,100,19,0,132,0,0,90,12,0,
- 100,20,0,83,40,21,0,0,0,117,14,0,0,0,95,78,
- 97,109,101,115,112,97,99,101,80,97,116,104,117,38,1,0,
- 0,82,101,112,114,101,115,101,110,116,115,32,97,32,110,97,
- 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,39,
- 115,32,112,97,116,104,46,32,32,73,116,32,117,115,101,115,
- 32,116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,
- 10,32,32,32,32,116,111,32,102,105,110,100,32,105,116,115,
- 32,112,97,114,101,110,116,32,109,111,100,117,108,101,44,32,
- 97,110,100,32,102,114,111,109,32,116,104,101,114,101,32,105,
- 116,32,108,111,111,107,115,32,117,112,32,116,104,101,32,112,
- 97,114,101,110,116,39,115,10,32,32,32,32,95,95,112,97,
- 116,104,95,95,46,32,32,87,104,101,110,32,116,104,105,115,
- 32,99,104,97,110,103,101,115,44,32,116,104,101,32,109,111,
- 100,117,108,101,39,115,32,111,119,110,32,112,97,116,104,32,
- 105,115,32,114,101,99,111,109,112,117,116,101,100,44,10,32,
- 32,32,32,117,115,105,110,103,32,112,97,116,104,95,102,105,
- 110,100,101,114,46,32,32,70,111,114,32,116,111,112,45,108,
- 101,118,101,108,32,109,111,100,117,108,101,115,44,32,116,104,
- 101,32,112,97,114,101,110,116,32,109,111,100,117,108,101,39,
- 115,32,112,97,116,104,10,32,32,32,32,105,115,32,115,121,
- 115,46,112,97,116,104,46,99,4,0,0,0,0,0,0,0,
- 4,0,0,0,2,0,0,0,67,0,0,0,115,52,0,0,
- 0,124,1,0,124,0,0,95,0,0,124,2,0,124,0,0,
- 95,1,0,116,2,0,124,0,0,106,3,0,131,0,0,131,
- 1,0,124,0,0,95,4,0,124,3,0,124,0,0,95,5,
- 0,100,0,0,83,40,1,0,0,0,78,40,6,0,0,0,
- 117,5,0,0,0,95,110,97,109,101,117,5,0,0,0,95,
- 112,97,116,104,117,5,0,0,0,116,117,112,108,101,117,16,
+ 101,46,78,114,4,0,0,0,40,2,0,0,0,114,75,0,
+ 0,0,114,178,0,0,0,114,4,0,0,0,114,4,0,0,
+ 0,114,5,0,0,0,114,220,0,0,0,146,4,0,0,115,
+ 2,0,0,0,0,2,117,30,0,0,0,69,120,116,101,110,
+ 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,
+ 101,116,95,115,111,117,114,99,101,78,40,12,0,0,0,114,
+ 56,0,0,0,114,55,0,0,0,114,57,0,0,0,114,58,
+ 0,0,0,114,76,0,0,0,114,176,0,0,0,114,170,0,
+ 0,0,114,173,0,0,0,114,218,0,0,0,114,156,0,0,
+ 0,114,219,0,0,0,114,220,0,0,0,114,4,0,0,0,
+ 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,
+ 8,1,0,0,111,4,0,0,115,16,0,0,0,12,6,6,
+ 2,12,4,3,1,3,1,24,11,12,6,12,4,114,8,1,
+ 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,64,0,0,0,115,130,0,0,0,101,0,0,90,
+ 1,0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,
+ 0,100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,
+ 132,0,0,90,5,0,100,6,0,100,7,0,132,0,0,90,
+ 6,0,100,8,0,100,9,0,132,0,0,90,7,0,100,10,
+ 0,100,11,0,132,0,0,90,8,0,100,12,0,100,13,0,
+ 132,0,0,90,9,0,100,14,0,100,15,0,132,0,0,90,
+ 10,0,100,16,0,100,17,0,132,0,0,90,11,0,100,18,
+ 0,100,19,0,132,0,0,90,12,0,100,20,0,83,40,21,
+ 0,0,0,244,14,0,0,0,95,78,97,109,101,115,112,97,
+ 99,101,80,97,116,104,117,38,1,0,0,82,101,112,114,101,
+ 115,101,110,116,115,32,97,32,110,97,109,101,115,112,97,99,
+ 101,32,112,97,99,107,97,103,101,39,115,32,112,97,116,104,
+ 46,32,32,73,116,32,117,115,101,115,32,116,104,101,32,109,
+ 111,100,117,108,101,32,110,97,109,101,10,32,32,32,32,116,
+ 111,32,102,105,110,100,32,105,116,115,32,112,97,114,101,110,
+ 116,32,109,111,100,117,108,101,44,32,97,110,100,32,102,114,
+ 111,109,32,116,104,101,114,101,32,105,116,32,108,111,111,107,
+ 115,32,117,112,32,116,104,101,32,112,97,114,101,110,116,39,
+ 115,10,32,32,32,32,95,95,112,97,116,104,95,95,46,32,
+ 32,87,104,101,110,32,116,104,105,115,32,99,104,97,110,103,
+ 101,115,44,32,116,104,101,32,109,111,100,117,108,101,39,115,
+ 32,111,119,110,32,112,97,116,104,32,105,115,32,114,101,99,
+ 111,109,112,117,116,101,100,44,10,32,32,32,32,117,115,105,
+ 110,103,32,112,97,116,104,95,102,105,110,100,101,114,46,32,
+ 32,70,111,114,32,116,111,112,45,108,101,118,101,108,32,109,
+ 111,100,117,108,101,115,44,32,116,104,101,32,112,97,114,101,
+ 110,116,32,109,111,100,117,108,101,39,115,32,112,97,116,104,
+ 10,32,32,32,32,105,115,32,115,121,115,46,112,97,116,104,
+ 46,99,4,0,0,0,0,0,0,0,4,0,0,0,2,0,
+ 0,0,67,0,0,0,115,52,0,0,0,124,1,0,124,0,
+ 0,95,0,0,124,2,0,124,0,0,95,1,0,116,2,0,
+ 124,0,0,106,3,0,131,0,0,131,1,0,124,0,0,95,
+ 4,0,124,3,0,124,0,0,95,5,0,100,0,0,83,40,
+ 1,0,0,0,78,40,6,0,0,0,114,139,0,0,0,244,
+ 5,0,0,0,95,112,97,116,104,114,236,0,0,0,244,16,
0,0,0,95,103,101,116,95,112,97,114,101,110,116,95,112,
- 97,116,104,117,17,0,0,0,95,108,97,115,116,95,112,97,
- 114,101,110,116,95,112,97,116,104,117,12,0,0,0,95,112,
- 97,116,104,95,102,105,110,100,101,114,40,4,0,0,0,117,
- 4,0,0,0,115,101,108,102,117,4,0,0,0,110,97,109,
- 101,117,4,0,0,0,112,97,116,104,117,11,0,0,0,112,
- 97,116,104,95,102,105,110,100,101,114,40,0,0,0,0,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,8,0,0,0,95,95,105,110,105,
- 116,95,95,140,4,0,0,115,8,0,0,0,0,1,9,1,
- 9,1,21,1,117,23,0,0,0,95,78,97,109,101,115,112,
- 97,99,101,80,97,116,104,46,95,95,105,110,105,116,95,95,
- 99,1,0,0,0,0,0,0,0,4,0,0,0,3,0,0,
- 0,67,0,0,0,115,53,0,0,0,124,0,0,106,0,0,
- 106,1,0,100,1,0,131,1,0,92,3,0,125,1,0,125,
- 2,0,125,3,0,124,2,0,100,2,0,107,2,0,114,43,
- 0,100,6,0,83,124,1,0,100,5,0,102,2,0,83,40,
- 7,0,0,0,117,62,0,0,0,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,117,1,0,0,0,46,117,0,0,
- 0,0,117,3,0,0,0,115,121,115,117,4,0,0,0,112,
- 97,116,104,117,8,0,0,0,95,95,112,97,116,104,95,95,
- 40,2,0,0,0,117,3,0,0,0,115,121,115,117,4,0,
- 0,0,112,97,116,104,40,2,0,0,0,117,5,0,0,0,
- 95,110,97,109,101,117,10,0,0,0,114,112,97,114,116,105,
- 116,105,111,110,40,4,0,0,0,117,4,0,0,0,115,101,
- 108,102,117,6,0,0,0,112,97,114,101,110,116,117,3,0,
- 0,0,100,111,116,117,2,0,0,0,109,101,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,23,0,0,0,95,102,105,
- 110,100,95,112,97,114,101,110,116,95,112,97,116,104,95,110,
- 97,109,101,115,146,4,0,0,115,8,0,0,0,0,2,27,
- 1,12,2,4,3,117,38,0,0,0,95,78,97,109,101,115,
- 112,97,99,101,80,97,116,104,46,95,102,105,110,100,95,112,
- 97,114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,
- 99,1,0,0,0,0,0,0,0,3,0,0,0,3,0,0,
- 0,67,0,0,0,115,38,0,0,0,124,0,0,106,0,0,
- 131,0,0,92,2,0,125,1,0,125,2,0,116,1,0,116,
- 2,0,106,3,0,124,1,0,25,124,2,0,131,2,0,83,
- 40,1,0,0,0,78,40,4,0,0,0,117,23,0,0,0,
+ 97,116,104,244,17,0,0,0,95,108,97,115,116,95,112,97,
+ 114,101,110,116,95,112,97,116,104,244,12,0,0,0,95,112,
+ 97,116,104,95,102,105,110,100,101,114,40,4,0,0,0,114,
+ 75,0,0,0,114,71,0,0,0,114,35,0,0,0,244,11,
+ 0,0,0,112,97,116,104,95,102,105,110,100,101,114,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,114,76,0,
+ 0,0,158,4,0,0,115,8,0,0,0,0,1,9,1,9,
+ 1,21,1,117,23,0,0,0,95,78,97,109,101,115,112,97,
+ 99,101,80,97,116,104,46,95,95,105,110,105,116,95,95,99,
+ 1,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,
+ 67,0,0,0,115,53,0,0,0,124,0,0,106,0,0,106,
+ 1,0,100,1,0,131,1,0,92,3,0,125,1,0,125,2,
+ 0,125,3,0,124,2,0,100,2,0,107,2,0,114,43,0,
+ 100,6,0,83,124,1,0,100,5,0,102,2,0,83,40,7,
+ 0,0,0,117,62,0,0,0,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,101,0,0,0,114,30,0,0,0,
+ 114,7,0,0,0,114,35,0,0,0,114,159,0,0,0,40,
+ 2,0,0,0,117,3,0,0,0,115,121,115,117,4,0,0,
+ 0,112,97,116,104,40,2,0,0,0,114,139,0,0,0,114,
+ 32,0,0,0,40,4,0,0,0,114,75,0,0,0,114,6,
+ 1,0,0,244,3,0,0,0,100,111,116,114,80,0,0,0,
+ 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,
+ 23,0,0,0,95,102,105,110,100,95,112,97,114,101,110,116,
+ 95,112,97,116,104,95,110,97,109,101,115,164,4,0,0,115,
+ 8,0,0,0,0,2,27,1,12,2,4,3,117,38,0,0,
+ 0,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,116,
- 104,95,110,97,109,101,115,117,7,0,0,0,103,101,116,97,
- 116,116,114,117,3,0,0,0,115,121,115,117,7,0,0,0,
- 109,111,100,117,108,101,115,40,3,0,0,0,117,4,0,0,
- 0,115,101,108,102,117,18,0,0,0,112,97,114,101,110,116,
- 95,109,111,100,117,108,101,95,110,97,109,101,117,14,0,0,
- 0,112,97,116,104,95,97,116,116,114,95,110,97,109,101,40,
- 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
- 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
- 95,98,111,111,116,115,116,114,97,112,62,117,16,0,0,0,
- 95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,104,
- 156,4,0,0,115,4,0,0,0,0,1,18,1,117,31,0,
- 0,0,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
- 46,95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,
- 104,99,1,0,0,0,0,0,0,0,4,0,0,0,3,0,
- 0,0,67,0,0,0,115,103,0,0,0,116,0,0,124,0,
- 0,106,1,0,131,0,0,131,1,0,125,1,0,124,1,0,
- 124,0,0,106,2,0,107,3,0,114,96,0,124,0,0,106,
- 3,0,124,0,0,106,4,0,124,1,0,131,2,0,92,2,
- 0,125,2,0,125,3,0,124,2,0,100,0,0,107,8,0,
- 114,84,0,124,3,0,124,0,0,95,6,0,110,0,0,124,
- 1,0,124,0,0,95,2,0,110,0,0,124,0,0,106,6,
- 0,83,40,1,0,0,0,78,40,7,0,0,0,117,5,0,
- 0,0,116,117,112,108,101,117,16,0,0,0,95,103,101,116,
- 95,112,97,114,101,110,116,95,112,97,116,104,117,17,0,0,
- 0,95,108,97,115,116,95,112,97,114,101,110,116,95,112,97,
- 116,104,117,12,0,0,0,95,112,97,116,104,95,102,105,110,
- 100,101,114,117,5,0,0,0,95,110,97,109,101,117,4,0,
- 0,0,78,111,110,101,117,5,0,0,0,95,112,97,116,104,
- 40,4,0,0,0,117,4,0,0,0,115,101,108,102,117,11,
- 0,0,0,112,97,114,101,110,116,95,112,97,116,104,117,6,
- 0,0,0,108,111,97,100,101,114,117,8,0,0,0,110,101,
- 119,95,112,97,116,104,40,0,0,0,0,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,12,0,0,0,95,114,101,99,97,108,99,117,108,
- 97,116,101,160,4,0,0,115,14,0,0,0,0,2,18,1,
- 15,1,27,3,12,1,12,1,12,1,117,27,0,0,0,95,
- 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,114,
- 101,99,97,108,99,117,108,97,116,101,99,1,0,0,0,0,
- 0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,
- 16,0,0,0,116,0,0,124,0,0,106,1,0,131,0,0,
- 131,1,0,83,40,1,0,0,0,78,40,2,0,0,0,117,
- 4,0,0,0,105,116,101,114,117,12,0,0,0,95,114,101,
- 99,97,108,99,117,108,97,116,101,40,1,0,0,0,117,4,
- 0,0,0,115,101,108,102,40,0,0,0,0,40,0,0,0,
- 0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
- 112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
- 97,112,62,117,8,0,0,0,95,95,105,116,101,114,95,95,
- 172,4,0,0,115,2,0,0,0,0,1,117,23,0,0,0,
+ 104,95,110,97,109,101,115,99,1,0,0,0,0,0,0,0,
+ 3,0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,
+ 0,124,0,0,106,0,0,131,0,0,92,2,0,125,1,0,
+ 125,2,0,116,1,0,116,2,0,106,3,0,124,1,0,25,
+ 124,2,0,131,2,0,83,40,1,0,0,0,78,40,4,0,
+ 0,0,114,19,1,0,0,114,61,0,0,0,114,7,0,0,
+ 0,114,140,0,0,0,40,3,0,0,0,114,75,0,0,0,
+ 116,18,0,0,0,112,97,114,101,110,116,95,109,111,100,117,
+ 108,101,95,110,97,109,101,116,14,0,0,0,112,97,116,104,
+ 95,97,116,116,114,95,110,97,109,101,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,114,14,1,0,0,174,4,
+ 0,0,115,4,0,0,0,0,1,18,1,117,31,0,0,0,
95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
- 95,105,116,101,114,95,95,99,1,0,0,0,0,0,0,0,
- 1,0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,
- 0,116,0,0,124,0,0,106,1,0,131,0,0,131,1,0,
- 83,40,1,0,0,0,78,40,2,0,0,0,117,3,0,0,
- 0,108,101,110,117,12,0,0,0,95,114,101,99,97,108,99,
- 117,108,97,116,101,40,1,0,0,0,117,4,0,0,0,115,
- 101,108,102,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 7,0,0,0,95,95,108,101,110,95,95,175,4,0,0,115,
- 2,0,0,0,0,1,117,22,0,0,0,95,78,97,109,101,
- 115,112,97,99,101,80,97,116,104,46,95,95,108,101,110,95,
- 95,99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,
- 0,0,67,0,0,0,115,16,0,0,0,100,1,0,106,0,
- 0,124,0,0,106,1,0,131,1,0,83,40,2,0,0,0,
- 78,117,20,0,0,0,95,78,97,109,101,115,112,97,99,101,
- 80,97,116,104,40,123,33,114,125,41,40,2,0,0,0,117,
- 6,0,0,0,102,111,114,109,97,116,117,5,0,0,0,95,
- 112,97,116,104,40,1,0,0,0,117,4,0,0,0,115,101,
- 108,102,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,8,
- 0,0,0,95,95,114,101,112,114,95,95,178,4,0,0,115,
- 2,0,0,0,0,1,117,23,0,0,0,95,78,97,109,101,
- 115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,
+ 103,101,116,95,112,97,114,101,110,116,95,112,97,116,104,99,
+ 1,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,
+ 67,0,0,0,115,103,0,0,0,116,0,0,124,0,0,106,
+ 1,0,131,0,0,131,1,0,125,1,0,124,1,0,124,0,
+ 0,106,2,0,107,3,0,114,96,0,124,0,0,106,3,0,
+ 124,0,0,106,4,0,124,1,0,131,2,0,92,2,0,125,
+ 2,0,125,3,0,124,2,0,100,0,0,107,8,0,114,84,
+ 0,124,3,0,124,0,0,95,5,0,110,0,0,124,1,0,
+ 124,0,0,95,2,0,110,0,0,124,0,0,106,5,0,83,
+ 40,1,0,0,0,78,40,6,0,0,0,114,236,0,0,0,
+ 114,14,1,0,0,114,15,1,0,0,114,16,1,0,0,114,
+ 139,0,0,0,114,13,1,0,0,40,4,0,0,0,114,75,
+ 0,0,0,116,11,0,0,0,112,97,114,101,110,116,95,112,
+ 97,116,104,114,160,0,0,0,116,8,0,0,0,110,101,119,
+ 95,112,97,116,104,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,244,12,0,0,0,95,114,101,99,97,108,99,
+ 117,108,97,116,101,178,4,0,0,115,14,0,0,0,0,2,
+ 18,1,15,1,27,3,12,1,12,1,12,1,117,27,0,0,
+ 0,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
+ 95,114,101,99,97,108,99,117,108,97,116,101,99,1,0,0,
+ 0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,
+ 0,115,16,0,0,0,116,0,0,124,0,0,106,1,0,131,
+ 0,0,131,1,0,83,40,1,0,0,0,78,40,2,0,0,
+ 0,244,4,0,0,0,105,116,101,114,114,20,1,0,0,40,
+ 1,0,0,0,114,75,0,0,0,114,4,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,244,8,0,0,0,95,95,105,
+ 116,101,114,95,95,190,4,0,0,115,2,0,0,0,0,1,
+ 117,23,0,0,0,95,78,97,109,101,115,112,97,99,101,80,
+ 97,116,104,46,95,95,105,116,101,114,95,95,99,1,0,0,
+ 0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,
+ 0,115,16,0,0,0,116,0,0,124,0,0,106,1,0,131,
+ 0,0,131,1,0,83,40,1,0,0,0,78,40,2,0,0,
+ 0,114,31,0,0,0,114,20,1,0,0,40,1,0,0,0,
+ 114,75,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,244,7,0,0,0,95,95,108,101,110,95,95,
+ 193,4,0,0,115,2,0,0,0,0,1,117,22,0,0,0,
+ 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
+ 95,108,101,110,95,95,99,1,0,0,0,0,0,0,0,1,
+ 0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,
+ 100,1,0,106,0,0,124,0,0,106,1,0,131,1,0,83,
+ 40,2,0,0,0,78,117,20,0,0,0,95,78,97,109,101,
+ 115,112,97,99,101,80,97,116,104,40,123,33,114,125,41,40,
+ 2,0,0,0,114,46,0,0,0,114,13,1,0,0,40,1,
+ 0,0,0,114,75,0,0,0,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,114,87,0,0,0,196,4,0,0,
+ 115,2,0,0,0,0,1,117,23,0,0,0,95,78,97,109,
+ 101,115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,
+ 114,95,95,99,2,0,0,0,0,0,0,0,2,0,0,0,
+ 2,0,0,0,67,0,0,0,115,16,0,0,0,124,1,0,
+ 124,0,0,106,0,0,131,0,0,107,6,0,83,40,1,0,
+ 0,0,78,40,1,0,0,0,114,20,1,0,0,40,2,0,
+ 0,0,114,75,0,0,0,244,4,0,0,0,105,116,101,109,
+ 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,
+ 12,0,0,0,95,95,99,111,110,116,97,105,110,115,95,95,
+ 199,4,0,0,115,2,0,0,0,0,1,117,27,0,0,0,
+ 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
+ 95,99,111,110,116,97,105,110,115,95,95,99,2,0,0,0,
+ 0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,
+ 115,20,0,0,0,124,0,0,106,0,0,106,1,0,124,1,
+ 0,131,1,0,1,100,0,0,83,40,1,0,0,0,78,40,
+ 2,0,0,0,114,13,1,0,0,114,165,0,0,0,40,2,
+ 0,0,0,114,75,0,0,0,114,24,1,0,0,114,4,0,
+ 0,0,114,4,0,0,0,114,5,0,0,0,114,165,0,0,
+ 0,202,4,0,0,115,2,0,0,0,0,1,117,21,0,0,
+ 0,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
+ 97,112,112,101,110,100,78,40,13,0,0,0,114,56,0,0,
+ 0,114,55,0,0,0,114,57,0,0,0,114,58,0,0,0,
+ 114,76,0,0,0,114,19,1,0,0,114,14,1,0,0,114,
+ 20,1,0,0,114,22,1,0,0,114,23,1,0,0,114,87,
+ 0,0,0,114,25,1,0,0,114,165,0,0,0,114,4,0,
+ 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,
+ 0,114,12,1,0,0,151,4,0,0,115,20,0,0,0,12,
+ 5,6,2,12,6,12,10,12,4,12,12,12,3,12,3,12,
+ 3,12,3,114,12,1,0,0,99,0,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,64,0,0,0,115,106,0,
+ 0,0,101,0,0,90,1,0,100,0,0,90,2,0,100,1,
+ 0,100,2,0,132,0,0,90,3,0,101,4,0,100,3,0,
+ 100,4,0,132,0,0,131,1,0,90,5,0,100,5,0,100,
+ 6,0,132,0,0,90,6,0,100,7,0,100,8,0,132,0,
+ 0,90,7,0,100,9,0,100,10,0,132,0,0,90,8,0,
+ 100,11,0,100,12,0,132,0,0,90,9,0,100,13,0,100,
+ 14,0,132,0,0,90,10,0,100,15,0,83,40,16,0,0,
+ 0,244,15,0,0,0,78,97,109,101,115,112,97,99,101,76,
+ 111,97,100,101,114,99,4,0,0,0,0,0,0,0,4,0,
+ 0,0,4,0,0,0,67,0,0,0,115,25,0,0,0,116,
+ 0,0,124,1,0,124,2,0,124,3,0,131,3,0,124,0,
+ 0,95,1,0,100,0,0,83,40,1,0,0,0,78,40,2,
+ 0,0,0,114,12,1,0,0,114,13,1,0,0,40,4,0,
+ 0,0,114,75,0,0,0,114,71,0,0,0,114,35,0,0,
+ 0,114,17,1,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,114,76,0,0,0,207,4,0,0,115,2,
+ 0,0,0,0,1,117,24,0,0,0,78,97,109,101,115,112,
+ 97,99,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
95,95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,
- 0,0,0,67,0,0,0,115,16,0,0,0,124,1,0,124,
- 0,0,106,0,0,131,0,0,107,6,0,83,40,1,0,0,
- 0,78,40,1,0,0,0,117,12,0,0,0,95,114,101,99,
- 97,108,99,117,108,97,116,101,40,2,0,0,0,117,4,0,
- 0,0,115,101,108,102,117,4,0,0,0,105,116,101,109,40,
- 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
- 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
- 95,98,111,111,116,115,116,114,97,112,62,117,12,0,0,0,
- 95,95,99,111,110,116,97,105,110,115,95,95,181,4,0,0,
- 115,2,0,0,0,0,1,117,27,0,0,0,95,78,97,109,
- 101,115,112,97,99,101,80,97,116,104,46,95,95,99,111,110,
- 116,97,105,110,115,95,95,99,2,0,0,0,0,0,0,0,
- 2,0,0,0,2,0,0,0,67,0,0,0,115,20,0,0,
- 0,124,0,0,106,0,0,106,1,0,124,1,0,131,1,0,
- 1,100,0,0,83,40,1,0,0,0,78,40,2,0,0,0,
- 117,5,0,0,0,95,112,97,116,104,117,6,0,0,0,97,
- 112,112,101,110,100,40,2,0,0,0,117,4,0,0,0,115,
- 101,108,102,117,4,0,0,0,105,116,101,109,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,6,0,0,0,97,112,112,
- 101,110,100,184,4,0,0,115,2,0,0,0,0,1,117,21,
- 0,0,0,95,78,97,109,101,115,112,97,99,101,80,97,116,
- 104,46,97,112,112,101,110,100,78,40,13,0,0,0,117,8,
- 0,0,0,95,95,110,97,109,101,95,95,117,10,0,0,0,
- 95,95,109,111,100,117,108,101,95,95,117,12,0,0,0,95,
- 95,113,117,97,108,110,97,109,101,95,95,117,7,0,0,0,
- 95,95,100,111,99,95,95,117,8,0,0,0,95,95,105,110,
- 105,116,95,95,117,23,0,0,0,95,102,105,110,100,95,112,
- 97,114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,
- 117,16,0,0,0,95,103,101,116,95,112,97,114,101,110,116,
- 95,112,97,116,104,117,12,0,0,0,95,114,101,99,97,108,
- 99,117,108,97,116,101,117,8,0,0,0,95,95,105,116,101,
- 114,95,95,117,7,0,0,0,95,95,108,101,110,95,95,117,
- 8,0,0,0,95,95,114,101,112,114,95,95,117,12,0,0,
- 0,95,95,99,111,110,116,97,105,110,115,95,95,117,6,0,
- 0,0,97,112,112,101,110,100,40,1,0,0,0,117,10,0,
- 0,0,95,95,108,111,99,97,108,115,95,95,40,0,0,0,
- 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
- 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
- 111,116,115,116,114,97,112,62,117,14,0,0,0,95,78,97,
- 109,101,115,112,97,99,101,80,97,116,104,133,4,0,0,115,
- 20,0,0,0,16,5,6,2,12,6,12,10,12,4,12,12,
- 12,3,12,3,12,3,12,3,117,14,0,0,0,95,78,97,
- 109,101,115,112,97,99,101,80,97,116,104,99,1,0,0,0,
- 0,0,0,0,1,0,0,0,3,0,0,0,66,0,0,0,
- 115,68,0,0,0,124,0,0,69,101,0,0,90,1,0,100,
- 0,0,90,2,0,100,1,0,100,2,0,132,0,0,90,3,
- 0,101,4,0,100,3,0,100,4,0,132,0,0,131,1,0,
- 90,5,0,101,6,0,100,5,0,100,6,0,132,0,0,131,
- 1,0,90,7,0,100,7,0,83,40,8,0,0,0,117,15,
- 0,0,0,78,97,109,101,115,112,97,99,101,76,111,97,100,
- 101,114,99,4,0,0,0,0,0,0,0,4,0,0,0,4,
- 0,0,0,67,0,0,0,115,25,0,0,0,116,0,0,124,
- 1,0,124,2,0,124,3,0,131,3,0,124,0,0,95,1,
- 0,100,0,0,83,40,1,0,0,0,78,40,2,0,0,0,
- 117,14,0,0,0,95,78,97,109,101,115,112,97,99,101,80,
- 97,116,104,117,5,0,0,0,95,112,97,116,104,40,4,0,
- 0,0,117,4,0,0,0,115,101,108,102,117,4,0,0,0,
- 110,97,109,101,117,4,0,0,0,112,97,116,104,117,11,0,
- 0,0,112,97,116,104,95,102,105,110,100,101,114,40,0,0,
- 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
- 111,111,116,115,116,114,97,112,62,117,8,0,0,0,95,95,
- 105,110,105,116,95,95,189,4,0,0,115,2,0,0,0,0,
- 1,117,24,0,0,0,78,97,109,101,115,112,97,99,101,76,
- 111,97,100,101,114,46,95,95,105,110,105,116,95,95,99,2,
- 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,
- 0,0,0,115,16,0,0,0,100,1,0,106,0,0,124,1,
- 0,106,1,0,131,1,0,83,40,2,0,0,0,78,117,25,
- 0,0,0,60,109,111,100,117,108,101,32,39,123,125,39,32,
- 40,110,97,109,101,115,112,97,99,101,41,62,40,2,0,0,
- 0,117,6,0,0,0,102,111,114,109,97,116,117,8,0,0,
- 0,95,95,110,97,109,101,95,95,40,2,0,0,0,117,3,
- 0,0,0,99,108,115,117,6,0,0,0,109,111,100,117,108,
- 101,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,
- 0,0,109,111,100,117,108,101,95,114,101,112,114,192,4,0,
- 0,115,2,0,0,0,0,2,117,27,0,0,0,78,97,109,
- 101,115,112,97,99,101,76,111,97,100,101,114,46,109,111,100,
- 117,108,101,95,114,101,112,114,99,2,0,0,0,0,0,0,
- 0,2,0,0,0,3,0,0,0,67,0,0,0,115,32,0,
- 0,0,116,0,0,100,1,0,124,0,0,106,1,0,131,2,
- 0,1,124,0,0,106,1,0,124,1,0,95,2,0,124,1,
- 0,83,40,2,0,0,0,117,24,0,0,0,76,111,97,100,
- 32,97,32,110,97,109,101,115,112,97,99,101,32,109,111,100,
- 117,108,101,46,117,38,0,0,0,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,40,
- 3,0,0,0,117,16,0,0,0,95,118,101,114,98,111,115,
- 101,95,109,101,115,115,97,103,101,117,5,0,0,0,95,112,
- 97,116,104,117,8,0,0,0,95,95,112,97,116,104,95,95,
- 40,2,0,0,0,117,4,0,0,0,115,101,108,102,117,6,
- 0,0,0,109,111,100,117,108,101,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,11,0,0,0,108,111,97,100,95,109,
- 111,100,117,108,101,196,4,0,0,115,6,0,0,0,0,3,
- 16,1,12,1,117,27,0,0,0,78,97,109,101,115,112,97,
- 99,101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,
- 100,117,108,101,78,40,8,0,0,0,117,8,0,0,0,95,
- 95,110,97,109,101,95,95,117,10,0,0,0,95,95,109,111,
- 100,117,108,101,95,95,117,12,0,0,0,95,95,113,117,97,
- 108,110,97,109,101,95,95,117,8,0,0,0,95,95,105,110,
- 105,116,95,95,117,11,0,0,0,99,108,97,115,115,109,101,
- 116,104,111,100,117,11,0,0,0,109,111,100,117,108,101,95,
- 114,101,112,114,117,17,0,0,0,109,111,100,117,108,101,95,
- 102,111,114,95,108,111,97,100,101,114,117,11,0,0,0,108,
- 111,97,100,95,109,111,100,117,108,101,40,1,0,0,0,117,
- 10,0,0,0,95,95,108,111,99,97,108,115,95,95,40,0,
- 0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,
- 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
- 98,111,111,116,115,116,114,97,112,62,117,15,0,0,0,78,
- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,188,4,
- 0,0,115,6,0,0,0,16,1,12,3,18,4,117,15,0,
+ 0,0,0,67,0,0,0,115,16,0,0,0,100,1,0,106,
+ 0,0,124,1,0,106,1,0,131,1,0,83,40,2,0,0,
+ 0,78,117,25,0,0,0,60,109,111,100,117,108,101,32,123,
+ 33,114,125,32,40,110,97,109,101,115,112,97,99,101,41,62,
+ 40,2,0,0,0,114,46,0,0,0,114,56,0,0,0,40,
+ 2,0,0,0,114,215,0,0,0,114,161,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,114,216,0,
+ 0,0,210,4,0,0,115,2,0,0,0,0,2,117,27,0,
0,0,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
- 114,99,1,0,0,0,0,0,0,0,1,0,0,0,4,0,
- 0,0,66,0,0,0,115,119,0,0,0,124,0,0,69,101,
- 0,0,90,1,0,100,0,0,90,2,0,100,1,0,90,3,
- 0,101,4,0,100,2,0,100,3,0,132,0,0,131,1,0,
- 90,5,0,101,4,0,100,4,0,100,5,0,132,0,0,131,
- 1,0,90,6,0,101,4,0,100,6,0,100,7,0,132,0,
- 0,131,1,0,90,7,0,101,4,0,100,8,0,100,9,0,
- 132,0,0,131,1,0,90,8,0,101,4,0,100,12,0,100,
- 10,0,100,11,0,132,1,0,131,1,0,90,10,0,100,12,
- 0,83,40,13,0,0,0,117,10,0,0,0,80,97,116,104,
- 70,105,110,100,101,114,117,62,0,0,0,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,1,0,0,0,0,0,
- 0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,58,
- 0,0,0,120,51,0,116,0,0,106,1,0,106,2,0,131,
- 0,0,68,93,34,0,125,1,0,116,3,0,124,1,0,100,
- 1,0,131,2,0,114,16,0,124,1,0,106,4,0,131,0,
- 0,1,113,16,0,113,16,0,87,100,2,0,83,40,3,0,
- 0,0,117,125,0,0,0,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,117,17,0,0,0,105,110,118,97,108,105,100,
- 97,116,101,95,99,97,99,104,101,115,78,40,5,0,0,0,
- 117,3,0,0,0,115,121,115,117,19,0,0,0,112,97,116,
- 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
- 117,6,0,0,0,118,97,108,117,101,115,117,7,0,0,0,
- 104,97,115,97,116,116,114,117,17,0,0,0,105,110,118,97,
- 108,105,100,97,116,101,95,99,97,99,104,101,115,40,2,0,
- 0,0,117,3,0,0,0,99,108,115,117,6,0,0,0,102,
- 105,110,100,101,114,40,0,0,0,0,40,0,0,0,0,117,
- 29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
- 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
- 62,117,17,0,0,0,105,110,118,97,108,105,100,97,116,101,
- 95,99,97,99,104,101,115,210,4,0,0,115,6,0,0,0,
- 0,4,22,1,15,1,117,28,0,0,0,80,97,116,104,70,
- 105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,101,
- 95,99,97,99,104,101,115,99,2,0,0,0,0,0,0,0,
- 3,0,0,0,12,0,0,0,67,0,0,0,115,94,0,0,
- 0,116,0,0,106,1,0,115,28,0,116,2,0,106,3,0,
- 100,1,0,116,4,0,131,2,0,1,110,0,0,120,59,0,
- 116,0,0,106,1,0,68,93,44,0,125,2,0,121,14,0,
- 124,2,0,124,1,0,131,1,0,83,87,113,38,0,4,116,
- 5,0,107,10,0,114,81,0,1,1,1,119,38,0,89,113,
- 38,0,88,113,38,0,87,100,2,0,83,100,2,0,83,40,
- 3,0,0,0,117,113,0,0,0,83,101,97,114,99,104,32,
- 115,101,113,117,101,110,99,101,32,111,102,32,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,10,10,32,32,32,32,
- 32,32,32,32,73,102,32,39,104,111,111,107,115,39,32,105,
- 115,32,102,97,108,115,101,32,116,104,101,110,32,117,115,101,
- 32,115,121,115,46,112,97,116,104,95,104,111,111,107,115,46,
- 10,10,32,32,32,32,32,32,32,32,117,23,0,0,0,115,
- 121,115,46,112,97,116,104,95,104,111,111,107,115,32,105,115,
- 32,101,109,112,116,121,78,40,7,0,0,0,117,3,0,0,
- 0,115,121,115,117,10,0,0,0,112,97,116,104,95,104,111,
- 111,107,115,117,9,0,0,0,95,119,97,114,110,105,110,103,
- 115,117,4,0,0,0,119,97,114,110,117,13,0,0,0,73,
- 109,112,111,114,116,87,97,114,110,105,110,103,117,11,0,0,
- 0,73,109,112,111,114,116,69,114,114,111,114,117,4,0,0,
- 0,78,111,110,101,40,3,0,0,0,117,3,0,0,0,99,
- 108,115,117,4,0,0,0,112,97,116,104,117,4,0,0,0,
- 104,111,111,107,40,0,0,0,0,40,0,0,0,0,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,11,0,0,0,95,112,97,116,104,95,104,111,111,107,115,
- 218,4,0,0,115,16,0,0,0,0,7,9,1,19,1,16,
- 1,3,1,14,1,13,1,12,2,117,22,0,0,0,80,97,
- 116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,104,
- 111,111,107,115,99,2,0,0,0,0,0,0,0,3,0,0,
- 0,11,0,0,0,67,0,0,0,115,91,0,0,0,124,1,
- 0,100,1,0,107,2,0,114,21,0,100,2,0,125,1,0,
- 110,0,0,121,17,0,116,0,0,106,1,0,124,1,0,25,
- 125,2,0,87,110,46,0,4,116,2,0,107,10,0,114,86,
- 0,1,1,1,124,0,0,106,3,0,124,1,0,131,1,0,
- 125,2,0,124,2,0,116,0,0,106,1,0,124,1,0,60,
- 89,110,1,0,88,124,2,0,83,40,3,0,0,0,117,210,
- 0,0,0,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,
+ 114,46,109,111,100,117,108,101,95,114,101,112,114,99,2,0,
+ 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
+ 0,0,115,4,0,0,0,100,1,0,83,40,2,0,0,0,
+ 78,84,114,4,0,0,0,40,2,0,0,0,114,75,0,0,
+ 0,114,178,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,114,156,0,0,0,214,4,0,0,115,2,
+ 0,0,0,0,1,117,26,0,0,0,78,97,109,101,115,112,
+ 97,99,101,76,111,97,100,101,114,46,105,115,95,112,97,99,
+ 107,97,103,101,99,2,0,0,0,0,0,0,0,2,0,0,
+ 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,
+ 0,83,40,2,0,0,0,78,114,30,0,0,0,114,4,0,
+ 0,0,40,2,0,0,0,114,75,0,0,0,114,178,0,0,
+ 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,
+ 114,220,0,0,0,217,4,0,0,115,2,0,0,0,0,1,
+ 117,26,0,0,0,78,97,109,101,115,112,97,99,101,76,111,
+ 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,
+ 2,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,
+ 67,0,0,0,115,22,0,0,0,116,0,0,100,1,0,100,
+ 2,0,100,3,0,100,4,0,100,5,0,131,3,1,83,40,
+ 6,0,0,0,78,114,30,0,0,0,117,8,0,0,0,60,
+ 115,116,114,105,110,103,62,114,240,0,0,0,114,250,0,0,
+ 0,84,40,1,0,0,0,114,251,0,0,0,40,2,0,0,
+ 0,114,75,0,0,0,114,178,0,0,0,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,114,219,0,0,0,220,
+ 4,0,0,115,2,0,0,0,0,1,117,24,0,0,0,78,
+ 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,
+ 101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,
+ 2,0,0,0,2,0,0,0,67,0,0,0,115,25,0,0,
+ 0,124,0,0,124,1,0,95,0,0,124,1,0,106,1,0,
+ 124,1,0,95,2,0,100,0,0,83,40,1,0,0,0,78,
+ 40,3,0,0,0,114,171,0,0,0,114,56,0,0,0,114,
+ 158,0,0,0,40,2,0,0,0,114,75,0,0,0,114,161,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,114,239,0,0,0,223,4,0,0,115,4,0,0,0,
+ 0,1,9,1,117,33,0,0,0,78,97,109,101,115,112,97,
+ 99,101,76,111,97,100,101,114,46,105,110,105,116,95,109,111,
+ 100,117,108,101,95,97,116,116,114,115,99,2,0,0,0,0,
+ 0,0,0,3,0,0,0,9,0,0,0,67,0,0,0,115,
+ 70,0,0,0,116,0,0,100,1,0,124,0,0,106,1,0,
+ 131,2,0,1,116,2,0,124,1,0,131,1,0,143,36,0,
+ 125,2,0,124,0,0,106,3,0,124,2,0,131,1,0,1,
+ 124,0,0,106,1,0,124,2,0,95,4,0,124,2,0,83,
+ 87,100,2,0,81,88,100,2,0,83,40,3,0,0,0,117,
+ 24,0,0,0,76,111,97,100,32,97,32,110,97,109,101,115,
+ 112,97,99,101,32,109,111,100,117,108,101,46,117,38,0,0,
+ 0,110,97,109,101,115,112,97,99,101,32,109,111,100,117,108,
+ 101,32,108,111,97,100,101,100,32,119,105,116,104,32,112,97,
+ 116,104,32,123,33,114,125,78,40,5,0,0,0,114,137,0,
+ 0,0,114,13,1,0,0,114,155,0,0,0,114,239,0,0,
+ 0,114,159,0,0,0,40,3,0,0,0,114,75,0,0,0,
+ 114,178,0,0,0,114,161,0,0,0,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,114,218,0,0,0,227,4,
+ 0,0,115,10,0,0,0,0,2,16,1,15,1,13,1,12,
+ 1,117,27,0,0,0,78,97,109,101,115,112,97,99,101,76,
+ 111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,
+ 101,78,40,11,0,0,0,114,56,0,0,0,114,55,0,0,
+ 0,114,57,0,0,0,114,76,0,0,0,114,221,0,0,0,
+ 114,216,0,0,0,114,156,0,0,0,114,220,0,0,0,114,
+ 219,0,0,0,114,239,0,0,0,114,218,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,114,26,1,0,0,206,4,0,0,115,14,0,0,0,
+ 12,1,12,3,18,4,12,3,12,3,12,3,12,4,114,26,
+ 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
+ 4,0,0,0,64,0,0,0,115,115,0,0,0,101,0,0,
+ 90,1,0,100,0,0,90,2,0,100,1,0,90,3,0,101,
+ 4,0,100,2,0,100,3,0,132,0,0,131,1,0,90,5,
+ 0,101,4,0,100,4,0,100,5,0,132,0,0,131,1,0,
+ 90,6,0,101,4,0,100,6,0,100,7,0,132,0,0,131,
+ 1,0,90,7,0,101,4,0,100,8,0,100,9,0,132,0,
+ 0,131,1,0,90,8,0,101,4,0,100,10,0,100,11,0,
+ 100,12,0,132,1,0,131,1,0,90,9,0,100,10,0,83,
+ 40,13,0,0,0,244,10,0,0,0,80,97,116,104,70,105,
+ 110,100,101,114,117,62,0,0,0,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,1,0,0,0,0,0,0,0,
+ 2,0,0,0,4,0,0,0,67,0,0,0,115,58,0,0,
+ 0,120,51,0,116,0,0,106,1,0,106,2,0,131,0,0,
+ 68,93,34,0,125,1,0,116,3,0,124,1,0,100,1,0,
+ 131,2,0,114,16,0,124,1,0,106,4,0,131,0,0,1,
+ 113,16,0,113,16,0,87,100,2,0,83,40,3,0,0,0,
+ 117,125,0,0,0,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,244,17,0,0,0,105,110,118,97,108,105,100,97,116,
+ 101,95,99,97,99,104,101,115,78,40,5,0,0,0,114,7,
+ 0,0,0,244,19,0,0,0,112,97,116,104,95,105,109,112,
+ 111,114,116,101,114,95,99,97,99,104,101,244,6,0,0,0,
+ 118,97,108,117,101,115,114,59,0,0,0,114,28,1,0,0,
+ 40,2,0,0,0,114,215,0,0,0,244,6,0,0,0,102,
+ 105,110,100,101,114,114,4,0,0,0,114,4,0,0,0,114,
+ 5,0,0,0,114,28,1,0,0,242,4,0,0,115,6,0,
+ 0,0,0,4,22,1,15,1,117,28,0,0,0,80,97,116,
+ 104,70,105,110,100,101,114,46,105,110,118,97,108,105,100,97,
+ 116,101,95,99,97,99,104,101,115,99,2,0,0,0,0,0,
+ 0,0,3,0,0,0,12,0,0,0,67,0,0,0,115,94,
+ 0,0,0,116,0,0,106,1,0,115,28,0,116,2,0,106,
+ 3,0,100,1,0,116,4,0,131,2,0,1,110,0,0,120,
+ 59,0,116,0,0,106,1,0,68,93,44,0,125,2,0,121,
+ 14,0,124,2,0,124,1,0,131,1,0,83,87,113,38,0,
+ 4,116,5,0,107,10,0,114,81,0,1,1,1,119,38,0,
+ 89,113,38,0,88,113,38,0,87,100,2,0,83,100,2,0,
+ 83,40,3,0,0,0,117,113,0,0,0,83,101,97,114,99,
+ 104,32,115,101,113,117,101,110,99,101,32,111,102,32,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,10,10,32,32,
+ 32,32,32,32,32,32,73,102,32,39,104,111,111,107,115,39,
+ 32,105,115,32,102,97,108,115,101,32,116,104,101,110,32,117,
+ 115,101,32,115,121,115,46,112,97,116,104,95,104,111,111,107,
+ 115,46,10,10,32,32,32,32,32,32,32,32,117,23,0,0,
+ 0,115,121,115,46,112,97,116,104,95,104,111,111,107,115,32,
+ 105,115,32,101,109,112,116,121,78,40,6,0,0,0,114,7,
+ 0,0,0,244,10,0,0,0,112,97,116,104,95,104,111,111,
+ 107,115,114,185,0,0,0,114,186,0,0,0,114,187,0,0,
+ 0,114,157,0,0,0,40,3,0,0,0,114,215,0,0,0,
+ 114,35,0,0,0,116,4,0,0,0,104,111,111,107,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,244,11,0,
+ 0,0,95,112,97,116,104,95,104,111,111,107,115,250,4,0,
+ 0,115,16,0,0,0,0,7,9,1,19,1,16,1,3,1,
+ 14,1,13,1,12,2,117,22,0,0,0,80,97,116,104,70,
+ 105,110,100,101,114,46,95,112,97,116,104,95,104,111,111,107,
+ 115,99,2,0,0,0,0,0,0,0,3,0,0,0,11,0,
+ 0,0,67,0,0,0,115,91,0,0,0,124,1,0,100,1,
+ 0,107,2,0,114,21,0,100,2,0,125,1,0,110,0,0,
+ 121,17,0,116,0,0,106,1,0,124,1,0,25,125,2,0,
+ 87,110,46,0,4,116,2,0,107,10,0,114,86,0,1,1,
+ 1,124,0,0,106,3,0,124,1,0,131,1,0,125,2,0,
+ 124,2,0,116,0,0,106,1,0,124,1,0,60,89,110,1,
+ 0,88,124,2,0,83,40,3,0,0,0,117,210,0,0,0,
+ 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,30,0,0,0,114,101,0,0,0,40,4,0,0,
+ 0,114,7,0,0,0,114,29,1,0,0,114,91,0,0,0,
+ 114,33,1,0,0,40,3,0,0,0,114,215,0,0,0,114,
+ 35,0,0,0,114,31,1,0,0,114,4,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,244,20,0,0,0,95,112,97,
116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
- 101,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,117,0,0,0,0,117,1,0,0,0,46,
- 40,4,0,0,0,117,3,0,0,0,115,121,115,117,19,0,
- 0,0,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
- 99,97,99,104,101,117,8,0,0,0,75,101,121,69,114,114,
- 111,114,117,11,0,0,0,95,112,97,116,104,95,104,111,111,
- 107,115,40,3,0,0,0,117,3,0,0,0,99,108,115,117,
- 4,0,0,0,112,97,116,104,117,6,0,0,0,102,105,110,
- 100,101,114,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 20,0,0,0,95,112,97,116,104,95,105,109,112,111,114,116,
- 101,114,95,99,97,99,104,101,235,4,0,0,115,16,0,0,
- 0,0,8,12,1,9,1,3,1,17,1,13,1,15,1,18,
- 1,117,31,0,0,0,80,97,116,104,70,105,110,100,101,114,
- 46,95,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
- 99,97,99,104,101,99,3,0,0,0,0,0,0,0,8,0,
- 0,0,5,0,0,0,67,0,0,0,115,189,0,0,0,103,
- 0,0,125,3,0,120,176,0,124,2,0,68,93,158,0,125,
- 4,0,116,0,0,124,4,0,116,1,0,116,2,0,102,2,
- 0,131,2,0,115,46,0,113,13,0,110,0,0,124,0,0,
- 106,3,0,124,4,0,131,1,0,125,5,0,124,5,0,100,
- 2,0,107,9,0,114,13,0,116,5,0,124,5,0,100,1,
- 0,131,2,0,114,112,0,124,5,0,106,6,0,124,1,0,
- 131,1,0,92,2,0,125,6,0,125,7,0,110,21,0,124,
- 5,0,106,7,0,124,1,0,131,1,0,125,6,0,103,0,
- 0,125,7,0,124,6,0,100,2,0,107,9,0,114,155,0,
- 124,6,0,124,3,0,102,2,0,83,124,3,0,106,8,0,
- 124,7,0,131,1,0,1,113,13,0,113,13,0,87,100,2,
- 0,124,3,0,102,2,0,83,100,2,0,83,40,3,0,0,
- 0,117,63,0,0,0,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,117,11,0,0,0,102,105,110,100,95,108,
- 111,97,100,101,114,78,40,9,0,0,0,117,10,0,0,0,
- 105,115,105,110,115,116,97,110,99,101,117,3,0,0,0,115,
- 116,114,117,5,0,0,0,98,121,116,101,115,117,20,0,0,
- 0,95,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
- 99,97,99,104,101,117,4,0,0,0,78,111,110,101,117,7,
- 0,0,0,104,97,115,97,116,116,114,117,11,0,0,0,102,
- 105,110,100,95,108,111,97,100,101,114,117,11,0,0,0,102,
- 105,110,100,95,109,111,100,117,108,101,117,6,0,0,0,101,
- 120,116,101,110,100,40,8,0,0,0,117,3,0,0,0,99,
- 108,115,117,8,0,0,0,102,117,108,108,110,97,109,101,117,
- 4,0,0,0,112,97,116,104,117,14,0,0,0,110,97,109,
- 101,115,112,97,99,101,95,112,97,116,104,117,5,0,0,0,
- 101,110,116,114,121,117,6,0,0,0,102,105,110,100,101,114,
- 117,6,0,0,0,108,111,97,100,101,114,117,8,0,0,0,
- 112,111,114,116,105,111,110,115,40,0,0,0,0,40,0,0,
- 0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
- 109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
- 114,97,112,62,117,11,0,0,0,95,103,101,116,95,108,111,
- 97,100,101,114,252,4,0,0,115,28,0,0,0,0,5,6,
- 1,13,1,21,1,6,1,15,1,12,1,15,1,24,2,15,
- 1,6,1,12,2,10,5,20,2,117,22,0,0,0,80,97,
- 116,104,70,105,110,100,101,114,46,95,103,101,116,95,108,111,
- 97,100,101,114,99,3,0,0,0,0,0,0,0,5,0,0,
- 0,4,0,0,0,67,0,0,0,115,97,0,0,0,124,2,
- 0,100,1,0,107,8,0,114,24,0,116,1,0,106,2,0,
- 125,2,0,110,0,0,124,0,0,106,3,0,124,1,0,124,
- 2,0,131,2,0,92,2,0,125,3,0,125,4,0,124,3,
- 0,100,1,0,107,9,0,114,64,0,124,3,0,83,124,4,
- 0,114,89,0,116,4,0,124,1,0,124,4,0,124,0,0,
- 106,3,0,131,3,0,83,100,1,0,83,100,1,0,83,40,
- 2,0,0,0,117,98,0,0,0,70,105,110,100,32,116,104,
- 101,32,109,111,100,117,108,101,32,111,110,32,115,121,115,46,
- 112,97,116,104,32,111,114,32,39,112,97,116,104,39,32,98,
- 97,115,101,100,32,111,110,32,115,121,115,46,112,97,116,104,
- 95,104,111,111,107,115,32,97,110,100,10,32,32,32,32,32,
- 32,32,32,115,121,115,46,112,97,116,104,95,105,109,112,111,
- 114,116,101,114,95,99,97,99,104,101,46,78,40,5,0,0,
- 0,117,4,0,0,0,78,111,110,101,117,3,0,0,0,115,
- 121,115,117,4,0,0,0,112,97,116,104,117,11,0,0,0,
- 95,103,101,116,95,108,111,97,100,101,114,117,15,0,0,0,
- 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,40,
- 5,0,0,0,117,3,0,0,0,99,108,115,117,8,0,0,
- 0,102,117,108,108,110,97,109,101,117,4,0,0,0,112,97,
- 116,104,117,6,0,0,0,108,111,97,100,101,114,117,14,0,
+ 101,11,5,0,0,115,16,0,0,0,0,8,12,1,9,1,
+ 3,1,17,1,13,1,15,1,18,1,117,31,0,0,0,80,
+ 97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,
+ 105,109,112,111,114,116,101,114,95,99,97,99,104,101,99,3,
+ 0,0,0,0,0,0,0,8,0,0,0,5,0,0,0,67,
+ 0,0,0,115,189,0,0,0,103,0,0,125,3,0,120,176,
+ 0,124,2,0,68,93,158,0,125,4,0,116,0,0,124,4,
+ 0,116,1,0,116,2,0,102,2,0,131,2,0,115,46,0,
+ 113,13,0,110,0,0,124,0,0,106,3,0,124,4,0,131,
+ 1,0,125,5,0,124,5,0,100,1,0,107,9,0,114,13,
+ 0,116,4,0,124,5,0,100,2,0,131,2,0,114,112,0,
+ 124,5,0,106,5,0,124,1,0,131,1,0,92,2,0,125,
+ 6,0,125,7,0,110,21,0,124,5,0,106,6,0,124,1,
+ 0,131,1,0,125,6,0,103,0,0,125,7,0,124,6,0,
+ 100,1,0,107,9,0,114,155,0,124,6,0,124,3,0,102,
+ 2,0,83,124,3,0,106,7,0,124,7,0,131,1,0,1,
+ 113,13,0,113,13,0,87,100,1,0,124,3,0,102,2,0,
+ 83,100,1,0,83,40,3,0,0,0,117,63,0,0,0,70,
+ 105,110,100,32,116,104,101,32,108,111,97,100,101,114,32,111,
+ 114,32,110,97,109,101,115,112,97,99,101,95,112,97,116,104,
+ 32,102,111,114,32,116,104,105,115,32,109,111,100,117,108,101,
+ 47,112,97,99,107,97,103,101,32,110,97,109,101,46,78,114,
+ 184,0,0,0,40,8,0,0,0,114,202,0,0,0,244,3,
+ 0,0,0,115,116,114,244,5,0,0,0,98,121,116,101,115,
+ 114,34,1,0,0,114,59,0,0,0,114,184,0,0,0,114,
+ 217,0,0,0,114,207,0,0,0,40,8,0,0,0,114,215,
+ 0,0,0,114,178,0,0,0,114,35,0,0,0,244,14,0,
0,0,110,97,109,101,115,112,97,99,101,95,112,97,116,104,
- 40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,0,
- 0,102,105,110,100,95,109,111,100,117,108,101,23,5,0,0,
+ 116,5,0,0,0,101,110,116,114,121,114,31,1,0,0,114,
+ 160,0,0,0,114,188,0,0,0,114,4,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,244,11,0,0,0,95,103,101,
+ 116,95,108,111,97,100,101,114,28,5,0,0,115,28,0,0,
+ 0,0,5,6,1,13,1,21,1,6,1,15,1,12,1,15,
+ 1,24,2,15,1,6,1,12,2,10,5,20,2,117,22,0,
+ 0,0,80,97,116,104,70,105,110,100,101,114,46,95,103,101,
+ 116,95,108,111,97,100,101,114,78,99,3,0,0,0,0,0,
+ 0,0,5,0,0,0,4,0,0,0,67,0,0,0,115,97,
+ 0,0,0,124,2,0,100,1,0,107,8,0,114,24,0,116,
+ 0,0,106,1,0,125,2,0,110,0,0,124,0,0,106,2,
+ 0,124,1,0,124,2,0,131,2,0,92,2,0,125,3,0,
+ 125,4,0,124,3,0,100,1,0,107,9,0,114,64,0,124,
+ 3,0,83,124,4,0,114,89,0,116,3,0,124,1,0,124,
+ 4,0,124,0,0,106,2,0,131,3,0,83,100,1,0,83,
+ 100,1,0,83,40,2,0,0,0,117,98,0,0,0,70,105,
+ 110,100,32,116,104,101,32,109,111,100,117,108,101,32,111,110,
+ 32,115,121,115,46,112,97,116,104,32,111,114,32,39,112,97,
+ 116,104,39,32,98,97,115,101,100,32,111,110,32,115,121,115,
+ 46,112,97,116,104,95,104,111,111,107,115,32,97,110,100,10,
+ 32,32,32,32,32,32,32,32,115,121,115,46,112,97,116,104,
+ 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,46,
+ 78,40,4,0,0,0,114,7,0,0,0,114,35,0,0,0,
+ 114,38,1,0,0,114,26,1,0,0,40,5,0,0,0,114,
+ 215,0,0,0,114,178,0,0,0,114,35,0,0,0,114,160,
+ 0,0,0,114,37,1,0,0,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,114,217,0,0,0,55,5,0,0,
115,16,0,0,0,0,4,12,1,12,1,24,1,12,1,4,
2,6,3,19,2,117,22,0,0,0,80,97,116,104,70,105,
110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,
- 78,40,11,0,0,0,117,8,0,0,0,95,95,110,97,109,
- 101,95,95,117,10,0,0,0,95,95,109,111,100,117,108,101,
- 95,95,117,12,0,0,0,95,95,113,117,97,108,110,97,109,
- 101,95,95,117,7,0,0,0,95,95,100,111,99,95,95,117,
- 11,0,0,0,99,108,97,115,115,109,101,116,104,111,100,117,
- 17,0,0,0,105,110,118,97,108,105,100,97,116,101,95,99,
- 97,99,104,101,115,117,11,0,0,0,95,112,97,116,104,95,
- 104,111,111,107,115,117,20,0,0,0,95,112,97,116,104,95,
- 105,109,112,111,114,116,101,114,95,99,97,99,104,101,117,11,
- 0,0,0,95,103,101,116,95,108,111,97,100,101,114,117,4,
- 0,0,0,78,111,110,101,117,11,0,0,0,102,105,110,100,
- 95,109,111,100,117,108,101,40,1,0,0,0,117,10,0,0,
- 0,95,95,108,111,99,97,108,115,95,95,40,0,0,0,0,
- 40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,
- 110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
- 116,115,116,114,97,112,62,117,10,0,0,0,80,97,116,104,
- 70,105,110,100,101,114,206,4,0,0,115,14,0,0,0,16,
- 2,6,2,18,8,18,17,18,17,18,27,3,1,117,10,0,
- 0,0,80,97,116,104,70,105,110,100,101,114,99,1,0,0,
- 0,0,0,0,0,1,0,0,0,3,0,0,0,66,0,0,
- 0,115,110,0,0,0,124,0,0,69,101,0,0,90,1,0,
- 100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,100,
- 3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,0,
- 0,90,5,0,101,6,0,90,7,0,100,6,0,100,7,0,
- 132,0,0,90,8,0,100,8,0,100,9,0,132,0,0,90,
- 9,0,101,10,0,100,10,0,100,11,0,132,0,0,131,1,
- 0,90,11,0,100,12,0,100,13,0,132,0,0,90,12,0,
- 100,14,0,83,40,15,0,0,0,117,10,0,0,0,70,105,
- 108,101,70,105,110,100,101,114,117,172,0,0,0,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,5,0,0,0,5,0,0,0,7,0,0,0,115,122,
- 0,0,0,103,0,0,125,3,0,120,52,0,124,2,0,68,
- 93,44,0,92,2,0,137,0,0,125,4,0,124,3,0,106,
- 0,0,135,0,0,102,1,0,100,1,0,100,2,0,134,0,
- 0,124,4,0,68,131,1,0,131,1,0,1,113,13,0,87,
- 124,3,0,124,0,0,95,1,0,124,1,0,112,79,0,100,
- 3,0,124,0,0,95,2,0,100,6,0,124,0,0,95,3,
- 0,116,4,0,131,0,0,124,0,0,95,5,0,116,4,0,
- 131,0,0,124,0,0,95,6,0,100,5,0,83,40,7,0,
- 0,0,117,154,0,0,0,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,2,0,0,0,3,0,
- 0,0,51,0,0,0,115,27,0,0,0,124,0,0,93,17,
- 0,125,1,0,124,1,0,136,0,0,102,2,0,86,1,113,
- 3,0,100,0,0,83,40,1,0,0,0,78,40,0,0,0,
- 0,40,2,0,0,0,117,2,0,0,0,46,48,117,6,0,
- 0,0,115,117,102,102,105,120,40,1,0,0,0,117,6,0,
- 0,0,108,111,97,100,101,114,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 9,0,0,0,60,103,101,110,101,120,112,114,62,56,5,0,
- 0,115,2,0,0,0,6,0,117,38,0,0,0,70,105,108,
- 101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
- 46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,
- 112,114,62,117,1,0,0,0,46,105,1,0,0,0,78,105,
- 255,255,255,255,40,7,0,0,0,117,6,0,0,0,101,120,
- 116,101,110,100,117,8,0,0,0,95,108,111,97,100,101,114,
- 115,117,4,0,0,0,112,97,116,104,117,11,0,0,0,95,
- 112,97,116,104,95,109,116,105,109,101,117,3,0,0,0,115,
- 101,116,117,11,0,0,0,95,112,97,116,104,95,99,97,99,
- 104,101,117,19,0,0,0,95,114,101,108,97,120,101,100,95,
- 112,97,116,104,95,99,97,99,104,101,40,5,0,0,0,117,
- 4,0,0,0,115,101,108,102,117,4,0,0,0,112,97,116,
- 104,117,14,0,0,0,108,111,97,100,101,114,95,100,101,116,
- 97,105,108,115,117,7,0,0,0,108,111,97,100,101,114,115,
- 117,8,0,0,0,115,117,102,102,105,120,101,115,40,0,0,
- 0,0,40,1,0,0,0,117,6,0,0,0,108,111,97,100,
- 101,114,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
- 109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
- 114,97,112,62,117,8,0,0,0,95,95,105,110,105,116,95,
- 95,50,5,0,0,115,16,0,0,0,0,4,6,1,19,1,
- 36,1,9,2,15,1,9,1,12,1,117,19,0,0,0,70,
- 105,108,101,70,105,110,100,101,114,46,95,95,105,110,105,116,
- 95,95,99,1,0,0,0,0,0,0,0,1,0,0,0,2,
- 0,0,0,67,0,0,0,115,13,0,0,0,100,3,0,124,
- 0,0,95,0,0,100,2,0,83,40,4,0,0,0,117,31,
- 0,0,0,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,105,1,0,0,0,78,105,255,255,255,255,40,1,0,
- 0,0,117,11,0,0,0,95,112,97,116,104,95,109,116,105,
- 109,101,40,1,0,0,0,117,4,0,0,0,115,101,108,102,
- 40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
- 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
- 46,95,98,111,111,116,115,116,114,97,112,62,117,17,0,0,
- 0,105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,
- 101,115,64,5,0,0,115,2,0,0,0,0,2,117,28,0,
- 0,0,70,105,108,101,70,105,110,100,101,114,46,105,110,118,
- 97,108,105,100,97,116,101,95,99,97,99,104,101,115,99,2,
- 0,0,0,0,0,0,0,12,0,0,0,13,0,0,0,67,
- 0,0,0,115,216,1,0,0,100,8,0,125,2,0,124,1,
- 0,106,1,0,100,1,0,131,1,0,100,2,0,25,125,3,
- 0,121,25,0,116,2,0,106,3,0,124,0,0,106,4,0,
- 131,1,0,106,5,0,125,4,0,87,110,24,0,4,116,6,
- 0,107,10,0,114,76,0,1,1,1,100,9,0,125,4,0,
- 89,110,1,0,88,124,4,0,124,0,0,106,7,0,107,3,
- 0,114,114,0,124,0,0,106,8,0,131,0,0,1,124,4,
- 0,124,0,0,95,7,0,110,0,0,116,9,0,131,0,0,
- 114,147,0,124,0,0,106,10,0,125,5,0,124,3,0,106,
- 11,0,131,0,0,125,6,0,110,15,0,124,0,0,106,12,
- 0,125,5,0,124,3,0,125,6,0,124,6,0,124,5,0,
- 107,6,0,114,45,1,116,13,0,124,0,0,106,4,0,124,
- 3,0,131,2,0,125,7,0,116,14,0,124,7,0,131,1,
- 0,114,45,1,120,91,0,124,0,0,106,15,0,68,93,71,
- 0,92,2,0,125,8,0,125,9,0,100,4,0,124,8,0,
- 23,125,10,0,116,13,0,124,7,0,124,10,0,131,2,0,
- 125,11,0,116,16,0,124,11,0,131,1,0,114,214,0,124,
- 9,0,124,1,0,124,11,0,131,2,0,124,7,0,103,1,
- 0,102,2,0,83,113,214,0,87,100,10,0,125,2,0,113,
- 45,1,110,0,0,120,120,0,124,0,0,106,15,0,68,93,
- 109,0,92,2,0,125,8,0,125,9,0,116,13,0,124,0,
- 0,106,4,0,124,3,0,124,8,0,23,131,2,0,125,11,
- 0,116,18,0,100,5,0,106,19,0,124,11,0,131,1,0,
- 100,6,0,100,2,0,131,1,1,1,124,6,0,124,8,0,
- 23,124,5,0,107,6,0,114,55,1,116,16,0,124,11,0,
- 131,1,0,114,164,1,124,9,0,124,1,0,124,11,0,131,
- 2,0,103,0,0,102,2,0,83,113,55,1,113,55,1,87,
- 124,2,0,114,206,1,116,18,0,100,7,0,106,19,0,124,
- 7,0,131,1,0,131,1,0,1,100,11,0,124,7,0,103,
- 1,0,102,2,0,83,100,11,0,103,0,0,102,2,0,83,
- 40,12,0,0,0,117,125,0,0,0,84,114,121,32,116,111,
- 32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,102,
- 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
- 32,109,111,100,117,108,101,44,32,111,114,32,116,104,101,32,
- 110,97,109,101,115,112,97,99,101,10,32,32,32,32,32,32,
- 32,32,112,97,99,107,97,103,101,32,112,111,114,116,105,111,
- 110,115,46,32,82,101,116,117,114,110,115,32,40,108,111,97,
- 100,101,114,44,32,108,105,115,116,45,111,102,45,112,111,114,
- 116,105,111,110,115,41,46,117,1,0,0,0,46,105,2,0,
- 0,0,105,1,0,0,0,117,8,0,0,0,95,95,105,110,
- 105,116,95,95,117,9,0,0,0,116,114,121,105,110,103,32,
- 123,125,117,9,0,0,0,118,101,114,98,111,115,105,116,121,
- 117,25,0,0,0,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,70,105,
- 255,255,255,255,84,78,40,21,0,0,0,117,5,0,0,0,
- 70,97,108,115,101,117,10,0,0,0,114,112,97,114,116,105,
- 116,105,111,110,117,3,0,0,0,95,111,115,117,4,0,0,
- 0,115,116,97,116,117,4,0,0,0,112,97,116,104,117,8,
- 0,0,0,115,116,95,109,116,105,109,101,117,7,0,0,0,
- 79,83,69,114,114,111,114,117,11,0,0,0,95,112,97,116,
- 104,95,109,116,105,109,101,117,11,0,0,0,95,102,105,108,
- 108,95,99,97,99,104,101,117,11,0,0,0,95,114,101,108,
- 97,120,95,99,97,115,101,117,19,0,0,0,95,114,101,108,
- 97,120,101,100,95,112,97,116,104,95,99,97,99,104,101,117,
- 5,0,0,0,108,111,119,101,114,117,11,0,0,0,95,112,
- 97,116,104,95,99,97,99,104,101,117,10,0,0,0,95,112,
- 97,116,104,95,106,111,105,110,117,11,0,0,0,95,112,97,
- 116,104,95,105,115,100,105,114,117,8,0,0,0,95,108,111,
- 97,100,101,114,115,117,12,0,0,0,95,112,97,116,104,95,
- 105,115,102,105,108,101,117,4,0,0,0,84,114,117,101,117,
- 16,0,0,0,95,118,101,114,98,111,115,101,95,109,101,115,
- 115,97,103,101,117,6,0,0,0,102,111,114,109,97,116,117,
- 4,0,0,0,78,111,110,101,40,12,0,0,0,117,4,0,
- 0,0,115,101,108,102,117,8,0,0,0,102,117,108,108,110,
- 97,109,101,117,12,0,0,0,105,115,95,110,97,109,101,115,
- 112,97,99,101,117,11,0,0,0,116,97,105,108,95,109,111,
- 100,117,108,101,117,5,0,0,0,109,116,105,109,101,117,5,
- 0,0,0,99,97,99,104,101,117,12,0,0,0,99,97,99,
- 104,101,95,109,111,100,117,108,101,117,9,0,0,0,98,97,
- 115,101,95,112,97,116,104,117,6,0,0,0,115,117,102,102,
- 105,120,117,6,0,0,0,108,111,97,100,101,114,117,13,0,
- 0,0,105,110,105,116,95,102,105,108,101,110,97,109,101,117,
- 9,0,0,0,102,117,108,108,95,112,97,116,104,40,0,0,
- 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
- 111,111,116,115,116,114,97,112,62,117,11,0,0,0,102,105,
- 110,100,95,108,111,97,100,101,114,70,5,0,0,115,66,0,
- 0,0,0,3,6,1,19,1,3,1,25,1,13,1,11,1,
- 15,1,10,1,12,2,9,1,9,1,15,2,9,1,6,2,
- 12,1,18,1,12,1,22,1,10,1,15,1,12,1,26,4,
- 12,2,22,1,22,1,25,1,16,1,12,1,26,1,6,1,
- 19,1,13,1,117,22,0,0,0,70,105,108,101,70,105,110,
- 100,101,114,46,102,105,110,100,95,108,111,97,100,101,114,99,
- 1,0,0,0,0,0,0,0,9,0,0,0,13,0,0,0,
- 67,0,0,0,115,8,1,0,0,124,0,0,106,0,0,125,
- 1,0,121,19,0,116,1,0,106,2,0,124,1,0,131,1,
- 0,125,2,0,87,110,33,0,4,116,3,0,116,4,0,116,
- 5,0,102,3,0,107,10,0,114,63,0,1,1,1,103,0,
- 0,125,2,0,89,110,1,0,88,116,6,0,106,7,0,106,
- 8,0,100,1,0,131,1,0,115,100,0,116,9,0,124,2,
- 0,131,1,0,124,0,0,95,10,0,110,111,0,116,9,0,
- 131,0,0,125,3,0,120,90,0,124,2,0,68,93,82,0,
- 125,4,0,124,4,0,106,11,0,100,2,0,131,1,0,92,
- 3,0,125,5,0,125,6,0,125,7,0,124,6,0,114,179,
- 0,100,3,0,106,12,0,124,5,0,124,7,0,106,13,0,
- 131,0,0,131,2,0,125,8,0,110,6,0,124,5,0,125,
- 8,0,124,3,0,106,14,0,124,8,0,131,1,0,1,113,
- 116,0,87,124,3,0,124,0,0,95,10,0,116,6,0,106,
- 7,0,106,8,0,116,15,0,131,1,0,114,4,1,116,9,
- 0,100,4,0,100,5,0,132,0,0,124,2,0,68,131,1,
- 0,131,1,0,124,0,0,95,16,0,110,0,0,100,6,0,
+ 40,10,0,0,0,114,56,0,0,0,114,55,0,0,0,114,
+ 57,0,0,0,114,58,0,0,0,114,221,0,0,0,114,28,
+ 1,0,0,114,33,1,0,0,114,34,1,0,0,114,38,1,
+ 0,0,114,217,0,0,0,114,4,0,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,114,27,1,0,0,
+ 238,4,0,0,115,14,0,0,0,12,2,6,2,18,8,18,
+ 17,18,17,18,27,3,1,114,27,1,0,0,99,0,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,
+ 0,115,106,0,0,0,101,0,0,90,1,0,100,0,0,90,
+ 2,0,100,1,0,90,3,0,100,2,0,100,3,0,132,0,
+ 0,90,4,0,100,4,0,100,5,0,132,0,0,90,5,0,
+ 101,6,0,90,7,0,100,6,0,100,7,0,132,0,0,90,
+ 8,0,100,8,0,100,9,0,132,0,0,90,9,0,101,10,
+ 0,100,10,0,100,11,0,132,0,0,131,1,0,90,11,0,
+ 100,12,0,100,13,0,132,0,0,90,12,0,100,14,0,83,
+ 40,15,0,0,0,244,10,0,0,0,70,105,108,101,70,105,
+ 110,100,101,114,117,172,0,0,0,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,5,0,
+ 0,0,5,0,0,0,7,0,0,0,115,122,0,0,0,103,
+ 0,0,125,3,0,120,52,0,124,2,0,68,93,44,0,92,
+ 2,0,137,0,0,125,4,0,124,3,0,106,0,0,135,0,
+ 0,102,1,0,100,1,0,100,2,0,134,0,0,124,4,0,
+ 68,131,1,0,131,1,0,1,113,13,0,87,124,3,0,124,
+ 0,0,95,1,0,124,1,0,112,79,0,100,3,0,124,0,
+ 0,95,2,0,100,6,0,124,0,0,95,3,0,116,4,0,
+ 131,0,0,124,0,0,95,5,0,116,4,0,131,0,0,124,
+ 0,0,95,6,0,100,5,0,83,40,7,0,0,0,117,154,
+ 0,0,0,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,2,0,0,0,3,0,0,0,51,0,
+ 0,0,115,27,0,0,0,124,0,0,93,17,0,125,1,0,
+ 124,1,0,136,0,0,102,2,0,86,1,113,3,0,100,0,
+ 0,83,40,1,0,0,0,78,114,4,0,0,0,40,2,0,
+ 0,0,114,22,0,0,0,114,9,1,0,0,40,1,0,0,
+ 0,114,160,0,0,0,114,4,0,0,0,114,5,0,0,0,
+ 114,143,0,0,0,88,5,0,0,115,2,0,0,0,6,0,
+ 117,38,0,0,0,70,105,108,101,70,105,110,100,101,114,46,
+ 95,95,105,110,105,116,95,95,46,60,108,111,99,97,108,115,
+ 62,46,60,103,101,110,101,120,112,114,62,114,101,0,0,0,
+ 114,29,0,0,0,78,114,123,0,0,0,40,7,0,0,0,
+ 114,207,0,0,0,244,8,0,0,0,95,108,111,97,100,101,
+ 114,115,114,35,0,0,0,244,11,0,0,0,95,112,97,116,
+ 104,95,109,116,105,109,101,244,3,0,0,0,115,101,116,244,
+ 11,0,0,0,95,112,97,116,104,95,99,97,99,104,101,244,
+ 19,0,0,0,95,114,101,108,97,120,101,100,95,112,97,116,
+ 104,95,99,97,99,104,101,40,5,0,0,0,114,75,0,0,
+ 0,114,35,0,0,0,244,14,0,0,0,108,111,97,100,101,
+ 114,95,100,101,116,97,105,108,115,116,7,0,0,0,108,111,
+ 97,100,101,114,115,114,112,0,0,0,114,4,0,0,0,40,
+ 1,0,0,0,114,160,0,0,0,114,5,0,0,0,114,76,
+ 0,0,0,82,5,0,0,115,16,0,0,0,0,4,6,1,
+ 19,1,36,1,9,2,15,1,9,1,12,1,117,19,0,0,
+ 0,70,105,108,101,70,105,110,100,101,114,46,95,95,105,110,
+ 105,116,95,95,99,1,0,0,0,0,0,0,0,1,0,0,
+ 0,2,0,0,0,67,0,0,0,115,13,0,0,0,100,3,
+ 0,124,0,0,95,0,0,100,2,0,83,40,4,0,0,0,
+ 117,31,0,0,0,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,29,0,0,0,78,114,123,0,0,0,40,
+ 1,0,0,0,114,41,1,0,0,40,1,0,0,0,114,75,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,114,28,1,0,0,96,5,0,0,115,2,0,0,0,
+ 0,2,117,28,0,0,0,70,105,108,101,70,105,110,100,101,
+ 114,46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,
+ 104,101,115,99,2,0,0,0,0,0,0,0,12,0,0,0,
+ 13,0,0,0,67,0,0,0,115,216,1,0,0,100,1,0,
+ 125,2,0,124,1,0,106,0,0,100,2,0,131,1,0,100,
+ 3,0,25,125,3,0,121,25,0,116,1,0,106,2,0,124,
+ 0,0,106,3,0,131,1,0,106,4,0,125,4,0,87,110,
+ 24,0,4,116,5,0,107,10,0,114,76,0,1,1,1,100,
+ 11,0,125,4,0,89,110,1,0,88,124,4,0,124,0,0,
+ 106,6,0,107,3,0,114,114,0,124,0,0,106,7,0,131,
+ 0,0,1,124,4,0,124,0,0,95,6,0,110,0,0,116,
+ 8,0,131,0,0,114,147,0,124,0,0,106,9,0,125,5,
+ 0,124,3,0,106,10,0,131,0,0,125,6,0,110,15,0,
+ 124,0,0,106,11,0,125,5,0,124,3,0,125,6,0,124,
+ 6,0,124,5,0,107,6,0,114,45,1,116,12,0,124,0,
+ 0,106,3,0,124,3,0,131,2,0,125,7,0,116,13,0,
+ 124,7,0,131,1,0,114,45,1,120,91,0,124,0,0,106,
+ 14,0,68,93,71,0,92,2,0,125,8,0,125,9,0,100,
+ 5,0,124,8,0,23,125,10,0,116,12,0,124,7,0,124,
+ 10,0,131,2,0,125,11,0,116,15,0,124,11,0,131,1,
+ 0,114,214,0,124,9,0,124,1,0,124,11,0,131,2,0,
+ 124,7,0,103,1,0,102,2,0,83,113,214,0,87,100,6,
+ 0,125,2,0,113,45,1,110,0,0,120,120,0,124,0,0,
+ 106,14,0,68,93,109,0,92,2,0,125,8,0,125,9,0,
+ 116,12,0,124,0,0,106,3,0,124,3,0,124,8,0,23,
+ 131,2,0,125,11,0,116,16,0,100,7,0,106,17,0,124,
+ 11,0,131,1,0,100,8,0,100,3,0,131,1,1,1,124,
+ 6,0,124,8,0,23,124,5,0,107,6,0,114,55,1,116,
+ 15,0,124,11,0,131,1,0,114,164,1,124,9,0,124,1,
+ 0,124,11,0,131,2,0,103,0,0,102,2,0,83,113,55,
+ 1,113,55,1,87,124,2,0,114,206,1,116,16,0,100,9,
+ 0,106,17,0,124,7,0,131,1,0,131,1,0,1,100,10,
+ 0,124,7,0,103,1,0,102,2,0,83,100,10,0,103,0,
+ 0,102,2,0,83,40,12,0,0,0,117,125,0,0,0,84,
+ 114,121,32,116,111,32,102,105,110,100,32,97,32,108,111,97,
+ 100,101,114,32,102,111,114,32,116,104,101,32,115,112,101,99,
+ 105,102,105,101,100,32,109,111,100,117,108,101,44,32,111,114,
+ 32,116,104,101,32,110,97,109,101,115,112,97,99,101,10,32,
+ 32,32,32,32,32,32,32,112,97,99,107,97,103,101,32,112,
+ 111,114,116,105,111,110,115,46,32,82,101,116,117,114,110,115,
+ 32,40,108,111,97,100,101,114,44,32,108,105,115,116,45,111,
+ 102,45,112,111,114,116,105,111,110,115,41,46,70,114,101,0,
+ 0,0,114,100,0,0,0,114,29,0,0,0,114,76,0,0,
+ 0,84,117,9,0,0,0,116,114,121,105,110,103,32,123,125,
+ 114,130,0,0,0,117,25,0,0,0,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,78,114,123,0,0,0,40,18,0,0,0,114,32,
+ 0,0,0,114,3,0,0,0,114,39,0,0,0,114,35,0,
+ 0,0,114,3,1,0,0,114,40,0,0,0,114,41,1,0,
+ 0,244,11,0,0,0,95,102,105,108,108,95,99,97,99,104,
+ 101,114,6,0,0,0,114,44,1,0,0,114,124,0,0,0,
+ 114,43,1,0,0,114,28,0,0,0,114,45,0,0,0,114,
+ 40,1,0,0,114,44,0,0,0,114,137,0,0,0,114,46,
+ 0,0,0,40,12,0,0,0,114,75,0,0,0,114,178,0,
+ 0,0,116,12,0,0,0,105,115,95,110,97,109,101,115,112,
+ 97,99,101,116,11,0,0,0,116,97,105,108,95,109,111,100,
+ 117,108,101,114,193,0,0,0,116,5,0,0,0,99,97,99,
+ 104,101,116,12,0,0,0,99,97,99,104,101,95,109,111,100,
+ 117,108,101,116,9,0,0,0,98,97,115,101,95,112,97,116,
+ 104,114,9,1,0,0,114,160,0,0,0,116,13,0,0,0,
+ 105,110,105,116,95,102,105,108,101,110,97,109,101,116,9,0,
+ 0,0,102,117,108,108,95,112,97,116,104,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,114,184,0,0,0,102,
+ 5,0,0,115,66,0,0,0,0,3,6,1,19,1,3,1,
+ 25,1,13,1,11,1,15,1,10,1,12,2,9,1,9,1,
+ 15,2,9,1,6,2,12,1,18,1,12,1,22,1,10,1,
+ 15,1,12,1,26,4,12,2,22,1,22,1,25,1,16,1,
+ 12,1,26,1,6,1,19,1,13,1,117,22,0,0,0,70,
+ 105,108,101,70,105,110,100,101,114,46,102,105,110,100,95,108,
+ 111,97,100,101,114,99,1,0,0,0,0,0,0,0,9,0,
+ 0,0,13,0,0,0,67,0,0,0,115,2,1,0,0,124,
+ 0,0,106,0,0,125,1,0,121,19,0,116,1,0,106,2,
+ 0,124,1,0,131,1,0,125,2,0,87,110,33,0,4,116,
+ 3,0,116,4,0,116,5,0,102,3,0,107,10,0,114,63,
+ 0,1,1,1,103,0,0,125,2,0,89,110,1,0,88,116,
+ 6,0,106,7,0,106,8,0,100,1,0,131,1,0,115,100,
+ 0,116,9,0,124,2,0,131,1,0,124,0,0,95,10,0,
+ 110,111,0,116,9,0,131,0,0,125,3,0,120,90,0,124,
+ 2,0,68,93,82,0,125,4,0,124,4,0,106,11,0,100,
+ 2,0,131,1,0,92,3,0,125,5,0,125,6,0,125,7,
+ 0,124,6,0,114,179,0,100,3,0,106,12,0,124,5,0,
+ 124,7,0,106,13,0,131,0,0,131,2,0,125,8,0,110,
+ 6,0,124,5,0,125,8,0,124,3,0,106,14,0,124,8,
+ 0,131,1,0,1,113,116,0,87,124,3,0,124,0,0,95,
+ 10,0,116,6,0,106,7,0,106,8,0,116,15,0,131,1,
+ 0,114,254,0,100,4,0,100,5,0,132,0,0,124,2,0,
+ 68,131,1,0,124,0,0,95,16,0,110,0,0,100,6,0,
83,40,7,0,0,0,117,68,0,0,0,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,117,
- 3,0,0,0,119,105,110,117,1,0,0,0,46,117,5,0,
- 0,0,123,125,46,123,125,99,1,0,0,0,0,0,0,0,
- 2,0,0,0,2,0,0,0,115,0,0,0,115,27,0,0,
- 0,124,0,0,93,17,0,125,1,0,124,1,0,106,0,0,
- 131,0,0,86,1,113,3,0,100,0,0,83,40,1,0,0,
- 0,78,40,1,0,0,0,117,5,0,0,0,108,111,119,101,
- 114,40,2,0,0,0,117,2,0,0,0,46,48,117,2,0,
- 0,0,102,110,40,0,0,0,0,40,0,0,0,0,117,29,
- 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
- 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,9,0,0,0,60,103,101,110,101,120,112,114,62,143,5,
- 0,0,115,2,0,0,0,6,0,117,41,0,0,0,70,105,
- 108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,
- 97,99,104,101,46,60,108,111,99,97,108,115,62,46,60,103,
- 101,110,101,120,112,114,62,78,40,17,0,0,0,117,4,0,
- 0,0,112,97,116,104,117,3,0,0,0,95,111,115,117,7,
- 0,0,0,108,105,115,116,100,105,114,117,17,0,0,0,70,
- 105,108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,
- 117,15,0,0,0,80,101,114,109,105,115,115,105,111,110,69,
- 114,114,111,114,117,18,0,0,0,78,111,116,65,68,105,114,
- 101,99,116,111,114,121,69,114,114,111,114,117,3,0,0,0,
- 115,121,115,117,8,0,0,0,112,108,97,116,102,111,114,109,
- 117,10,0,0,0,115,116,97,114,116,115,119,105,116,104,117,
- 3,0,0,0,115,101,116,117,11,0,0,0,95,112,97,116,
- 104,95,99,97,99,104,101,117,9,0,0,0,112,97,114,116,
- 105,116,105,111,110,117,6,0,0,0,102,111,114,109,97,116,
- 117,5,0,0,0,108,111,119,101,114,117,3,0,0,0,97,
- 100,100,117,27,0,0,0,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,117,19,0,0,0,95,114,101,108,97,120,101,100,95,
- 112,97,116,104,95,99,97,99,104,101,40,9,0,0,0,117,
- 4,0,0,0,115,101,108,102,117,4,0,0,0,112,97,116,
- 104,117,8,0,0,0,99,111,110,116,101,110,116,115,117,21,
- 0,0,0,108,111,119,101,114,95,115,117,102,102,105,120,95,
- 99,111,110,116,101,110,116,115,117,4,0,0,0,105,116,101,
- 109,117,4,0,0,0,110,97,109,101,117,3,0,0,0,100,
- 111,116,117,6,0,0,0,115,117,102,102,105,120,117,8,0,
- 0,0,110,101,119,95,110,97,109,101,40,0,0,0,0,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,11,0,0,0,95,102,105,108,108,
- 95,99,97,99,104,101,114,5,0,0,115,34,0,0,0,0,
- 2,9,1,3,1,19,1,22,3,11,3,18,1,18,7,9,
- 1,13,1,24,1,6,1,27,2,6,1,17,1,9,1,18,
- 1,117,22,0,0,0,70,105,108,101,70,105,110,100,101,114,
- 46,95,102,105,108,108,95,99,97,99,104,101,99,1,0,0,
- 0,0,0,0,0,3,0,0,0,3,0,0,0,7,0,0,
- 0,115,25,0,0,0,135,0,0,135,1,0,102,2,0,100,
- 1,0,100,2,0,134,0,0,125,2,0,124,2,0,83,40,
- 3,0,0,0,117,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,1,0,0,0,4,0,0,0,19,0,
- 0,0,115,46,0,0,0,116,0,0,124,0,0,131,1,0,
- 115,33,0,116,1,0,100,1,0,100,2,0,124,0,0,131,
- 1,1,130,1,0,110,0,0,136,0,0,124,0,0,136,1,
- 0,140,1,0,83,40,3,0,0,0,117,45,0,0,0,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,117,30,0,0,
- 0,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,117,
- 4,0,0,0,112,97,116,104,40,2,0,0,0,117,11,0,
- 0,0,95,112,97,116,104,95,105,115,100,105,114,117,11,0,
- 0,0,73,109,112,111,114,116,69,114,114,111,114,40,1,0,
- 0,0,117,4,0,0,0,112,97,116,104,40,2,0,0,0,
- 117,3,0,0,0,99,108,115,117,14,0,0,0,108,111,97,
- 100,101,114,95,100,101,116,97,105,108,115,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,24,0,0,0,112,97,116,104,95,104,111,111,107,
- 95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,155,
- 5,0,0,115,6,0,0,0,0,2,12,1,21,1,117,54,
- 0,0,0,70,105,108,101,70,105,110,100,101,114,46,112,97,
- 116,104,95,104,111,111,107,46,60,108,111,99,97,108,115,62,
- 46,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,
- 105,108,101,70,105,110,100,101,114,40,0,0,0,0,40,3,
- 0,0,0,117,3,0,0,0,99,108,115,117,14,0,0,0,
- 108,111,97,100,101,114,95,100,101,116,97,105,108,115,117,24,
- 0,0,0,112,97,116,104,95,104,111,111,107,95,102,111,114,
- 95,70,105,108,101,70,105,110,100,101,114,40,0,0,0,0,
- 40,2,0,0,0,117,3,0,0,0,99,108,115,117,14,0,
- 0,0,108,111,97,100,101,114,95,100,101,116,97,105,108,115,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,9,0,0,0,112,97,116,104,95,104,111,111,107,
- 145,5,0,0,115,4,0,0,0,0,10,21,6,117,20,0,
+ 116,104,105,115,32,100,105,114,101,99,116,111,114,121,46,114,
+ 0,0,0,0,114,101,0,0,0,117,5,0,0,0,123,125,
+ 46,123,125,99,1,0,0,0,0,0,0,0,2,0,0,0,
+ 3,0,0,0,83,0,0,0,115,28,0,0,0,104,0,0,
+ 124,0,0,93,18,0,125,1,0,124,1,0,106,0,0,131,
+ 0,0,146,2,0,113,6,0,83,114,4,0,0,0,40,1,
+ 0,0,0,114,124,0,0,0,40,2,0,0,0,114,22,0,
+ 0,0,116,2,0,0,0,102,110,114,4,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,245,9,0,0,0,60,115,101,
+ 116,99,111,109,112,62,175,5,0,0,115,2,0,0,0,9,
+ 0,117,41,0,0,0,70,105,108,101,70,105,110,100,101,114,
+ 46,95,102,105,108,108,95,99,97,99,104,101,46,60,108,111,
+ 99,97,108,115,62,46,60,115,101,116,99,111,109,112,62,78,
+ 40,17,0,0,0,114,35,0,0,0,114,3,0,0,0,116,
+ 7,0,0,0,108,105,115,116,100,105,114,244,17,0,0,0,
+ 70,105,108,101,78,111,116,70,111,117,110,100,69,114,114,111,
+ 114,244,15,0,0,0,80,101,114,109,105,115,115,105,111,110,
+ 69,114,114,111,114,244,18,0,0,0,78,111,116,65,68,105,
+ 114,101,99,116,111,114,121,69,114,114,111,114,114,7,0,0,
+ 0,114,8,0,0,0,114,9,0,0,0,114,42,1,0,0,
+ 114,43,1,0,0,114,106,0,0,0,114,46,0,0,0,114,
+ 124,0,0,0,244,3,0,0,0,97,100,100,114,10,0,0,
+ 0,114,44,1,0,0,40,9,0,0,0,114,75,0,0,0,
+ 114,35,0,0,0,116,8,0,0,0,99,111,110,116,101,110,
+ 116,115,116,21,0,0,0,108,111,119,101,114,95,115,117,102,
+ 102,105,120,95,99,111,110,116,101,110,116,115,114,24,1,0,
+ 0,114,71,0,0,0,114,18,1,0,0,114,9,1,0,0,
+ 116,8,0,0,0,110,101,119,95,110,97,109,101,114,4,0,
+ 0,0,114,4,0,0,0,114,5,0,0,0,114,46,1,0,
+ 0,146,5,0,0,115,34,0,0,0,0,2,9,1,3,1,
+ 19,1,22,3,11,3,18,1,18,7,9,1,13,1,24,1,
+ 6,1,27,2,6,1,17,1,9,1,18,1,117,22,0,0,
+ 0,70,105,108,101,70,105,110,100,101,114,46,95,102,105,108,
+ 108,95,99,97,99,104,101,99,1,0,0,0,0,0,0,0,
+ 3,0,0,0,3,0,0,0,7,0,0,0,115,25,0,0,
+ 0,135,0,0,135,1,0,102,2,0,100,1,0,100,2,0,
+ 134,0,0,125,2,0,124,2,0,83,40,3,0,0,0,117,
+ 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,1,0,0,0,4,0,0,0,19,0,0,0,115,46,0,
+ 0,0,116,0,0,124,0,0,131,1,0,115,33,0,116,1,
+ 0,100,1,0,100,2,0,124,0,0,131,1,1,130,1,0,
+ 110,0,0,136,0,0,124,0,0,136,1,0,140,1,0,83,
+ 40,3,0,0,0,117,45,0,0,0,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,117,30,0,0,0,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,35,0,0,0,40,
+ 2,0,0,0,114,45,0,0,0,114,157,0,0,0,40,1,
+ 0,0,0,114,35,0,0,0,40,2,0,0,0,114,215,0,
+ 0,0,114,45,1,0,0,114,4,0,0,0,114,5,0,0,
+ 0,244,24,0,0,0,112,97,116,104,95,104,111,111,107,95,
+ 102,111,114,95,70,105,108,101,70,105,110,100,101,114,187,5,
+ 0,0,115,6,0,0,0,0,2,12,1,21,1,117,54,0,
0,0,70,105,108,101,70,105,110,100,101,114,46,112,97,116,
- 104,95,104,111,111,107,99,1,0,0,0,0,0,0,0,1,
- 0,0,0,2,0,0,0,67,0,0,0,115,14,0,0,0,
- 100,1,0,124,0,0,106,0,0,102,1,0,22,83,40,2,
- 0,0,0,78,117,14,0,0,0,70,105,108,101,70,105,110,
- 100,101,114,40,37,114,41,40,1,0,0,0,117,4,0,0,
- 0,112,97,116,104,40,1,0,0,0,117,4,0,0,0,115,
- 101,108,102,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 8,0,0,0,95,95,114,101,112,114,95,95,163,5,0,0,
- 115,2,0,0,0,0,1,117,19,0,0,0,70,105,108,101,
- 70,105,110,100,101,114,46,95,95,114,101,112,114,95,95,78,
- 40,13,0,0,0,117,8,0,0,0,95,95,110,97,109,101,
- 95,95,117,10,0,0,0,95,95,109,111,100,117,108,101,95,
- 95,117,12,0,0,0,95,95,113,117,97,108,110,97,109,101,
- 95,95,117,7,0,0,0,95,95,100,111,99,95,95,117,8,
- 0,0,0,95,95,105,110,105,116,95,95,117,17,0,0,0,
- 105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,
- 115,117,17,0,0,0,95,102,105,110,100,95,109,111,100,117,
- 108,101,95,115,104,105,109,117,11,0,0,0,102,105,110,100,
- 95,109,111,100,117,108,101,117,11,0,0,0,102,105,110,100,
- 95,108,111,97,100,101,114,117,11,0,0,0,95,102,105,108,
- 108,95,99,97,99,104,101,117,11,0,0,0,99,108,97,115,
- 115,109,101,116,104,111,100,117,9,0,0,0,112,97,116,104,
- 95,104,111,111,107,117,8,0,0,0,95,95,114,101,112,114,
- 95,95,40,1,0,0,0,117,10,0,0,0,95,95,108,111,
- 99,97,108,115,95,95,40,0,0,0,0,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,10,0,0,0,70,105,108,101,70,105,110,100,101,
- 114,41,5,0,0,115,16,0,0,0,16,7,6,2,12,14,
- 12,4,6,2,12,44,12,31,18,18,117,10,0,0,0,70,
- 105,108,101,70,105,110,100,101,114,99,1,0,0,0,0,0,
- 0,0,1,0,0,0,2,0,0,0,66,0,0,0,115,50,
- 0,0,0,124,0,0,69,101,0,0,90,1,0,100,0,0,
- 90,2,0,100,1,0,90,3,0,100,2,0,100,3,0,132,
- 0,0,90,4,0,100,4,0,100,5,0,132,0,0,90,5,
- 0,100,6,0,83,40,7,0,0,0,117,18,0,0,0,95,
- 73,109,112,111,114,116,76,111,99,107,67,111,110,116,101,120,
- 116,117,36,0,0,0,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,1,0,0,0,1,0,0,0,67,0,0,0,115,
- 14,0,0,0,116,0,0,106,1,0,131,0,0,1,100,1,
- 0,83,40,2,0,0,0,117,24,0,0,0,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,40,2,0,0,0,117,4,0,0,0,95,
- 105,109,112,117,12,0,0,0,97,99,113,117,105,114,101,95,
- 108,111,99,107,40,1,0,0,0,117,4,0,0,0,115,101,
- 108,102,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,9,
- 0,0,0,95,95,101,110,116,101,114,95,95,173,5,0,0,
- 115,2,0,0,0,0,2,117,28,0,0,0,95,73,109,112,
- 111,114,116,76,111,99,107,67,111,110,116,101,120,116,46,95,
- 95,101,110,116,101,114,95,95,99,4,0,0,0,0,0,0,
- 0,4,0,0,0,1,0,0,0,67,0,0,0,115,14,0,
- 0,0,116,0,0,106,1,0,131,0,0,1,100,1,0,83,
- 40,2,0,0,0,117,60,0,0,0,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,40,2,0,0,0,117,4,0,0,
- 0,95,105,109,112,117,12,0,0,0,114,101,108,101,97,115,
- 101,95,108,111,99,107,40,4,0,0,0,117,4,0,0,0,
- 115,101,108,102,117,8,0,0,0,101,120,99,95,116,121,112,
- 101,117,9,0,0,0,101,120,99,95,118,97,108,117,101,117,
- 13,0,0,0,101,120,99,95,116,114,97,99,101,98,97,99,
- 107,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,8,0,
- 0,0,95,95,101,120,105,116,95,95,177,5,0,0,115,2,
- 0,0,0,0,2,117,27,0,0,0,95,73,109,112,111,114,
- 116,76,111,99,107,67,111,110,116,101,120,116,46,95,95,101,
- 120,105,116,95,95,78,40,6,0,0,0,117,8,0,0,0,
- 95,95,110,97,109,101,95,95,117,10,0,0,0,95,95,109,
- 111,100,117,108,101,95,95,117,12,0,0,0,95,95,113,117,
- 97,108,110,97,109,101,95,95,117,7,0,0,0,95,95,100,
- 111,99,95,95,117,9,0,0,0,95,95,101,110,116,101,114,
- 95,95,117,8,0,0,0,95,95,101,120,105,116,95,95,40,
- 1,0,0,0,117,10,0,0,0,95,95,108,111,99,97,108,
- 115,95,95,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 18,0,0,0,95,73,109,112,111,114,116,76,111,99,107,67,
- 111,110,116,101,120,116,169,5,0,0,115,6,0,0,0,16,
- 2,6,2,12,4,117,18,0,0,0,95,73,109,112,111,114,
- 116,76,111,99,107,67,111,110,116,101,120,116,99,3,0,0,
- 0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,
- 0,115,91,0,0,0,124,1,0,106,0,0,100,1,0,124,
- 2,0,100,2,0,24,131,2,0,125,3,0,116,1,0,124,
- 3,0,131,1,0,124,2,0,107,0,0,114,55,0,116,2,
- 0,100,3,0,131,1,0,130,1,0,110,0,0,124,3,0,
- 100,4,0,25,125,4,0,124,0,0,114,87,0,100,5,0,
- 106,3,0,124,4,0,124,0,0,131,2,0,83,124,4,0,
- 83,40,6,0,0,0,117,50,0,0,0,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,117,1,0,
- 0,0,46,105,1,0,0,0,117,50,0,0,0,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,105,
- 0,0,0,0,117,5,0,0,0,123,125,46,123,125,40,4,
- 0,0,0,117,6,0,0,0,114,115,112,108,105,116,117,3,
- 0,0,0,108,101,110,117,10,0,0,0,86,97,108,117,101,
- 69,114,114,111,114,117,6,0,0,0,102,111,114,109,97,116,
- 40,5,0,0,0,117,4,0,0,0,110,97,109,101,117,7,
- 0,0,0,112,97,99,107,97,103,101,117,5,0,0,0,108,
- 101,118,101,108,117,4,0,0,0,98,105,116,115,117,4,0,
- 0,0,98,97,115,101,40,0,0,0,0,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,13,0,0,0,95,114,101,115,111,108,118,101,95,
- 110,97,109,101,182,5,0,0,115,10,0,0,0,0,2,22,
- 1,18,1,15,1,10,1,117,13,0,0,0,95,114,101,115,
- 111,108,118,101,95,110,97,109,101,99,2,0,0,0,0,0,
- 0,0,4,0,0,0,11,0,0,0,67,0,0,0,115,138,
- 0,0,0,116,0,0,106,1,0,115,28,0,116,2,0,106,
- 3,0,100,1,0,116,4,0,131,2,0,1,110,0,0,120,
- 103,0,116,0,0,106,1,0,68,93,88,0,125,2,0,116,
- 5,0,131,0,0,143,23,0,1,124,2,0,106,6,0,124,
- 0,0,124,1,0,131,2,0,125,3,0,87,100,2,0,81,
- 88,124,3,0,100,2,0,107,9,0,114,38,0,124,0,0,
- 116,0,0,106,8,0,107,7,0,114,109,0,124,3,0,83,
- 116,0,0,106,8,0,124,0,0,25,106,9,0,83,113,38,
- 0,113,38,0,87,100,2,0,83,100,2,0,83,40,3,0,
- 0,0,117,23,0,0,0,70,105,110,100,32,97,32,109,111,
- 100,117,108,101,39,115,32,108,111,97,100,101,114,46,117,22,
- 0,0,0,115,121,115,46,109,101,116,97,95,112,97,116,104,
- 32,105,115,32,101,109,112,116,121,78,40,10,0,0,0,117,
- 3,0,0,0,115,121,115,117,9,0,0,0,109,101,116,97,
- 95,112,97,116,104,117,9,0,0,0,95,119,97,114,110,105,
- 110,103,115,117,4,0,0,0,119,97,114,110,117,13,0,0,
- 0,73,109,112,111,114,116,87,97,114,110,105,110,103,117,18,
+ 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,114,4,0,0,0,40,3,0,
+ 0,0,114,215,0,0,0,114,45,1,0,0,114,52,1,0,
+ 0,114,4,0,0,0,40,2,0,0,0,114,215,0,0,0,
+ 114,45,1,0,0,114,5,0,0,0,244,9,0,0,0,112,
+ 97,116,104,95,104,111,111,107,177,5,0,0,115,4,0,0,
+ 0,0,10,21,6,117,20,0,0,0,70,105,108,101,70,105,
+ 110,100,101,114,46,112,97,116,104,95,104,111,111,107,99,1,
+ 0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,
+ 0,0,0,115,16,0,0,0,100,1,0,106,0,0,124,0,
+ 0,106,1,0,131,1,0,83,40,2,0,0,0,78,117,16,
+ 0,0,0,70,105,108,101,70,105,110,100,101,114,40,123,33,
+ 114,125,41,40,2,0,0,0,114,46,0,0,0,114,35,0,
+ 0,0,40,1,0,0,0,114,75,0,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,5,0,0,0,114,87,0,0,0,
+ 195,5,0,0,115,2,0,0,0,0,1,117,19,0,0,0,
+ 70,105,108,101,70,105,110,100,101,114,46,95,95,114,101,112,
+ 114,95,95,78,40,13,0,0,0,114,56,0,0,0,114,55,
+ 0,0,0,114,57,0,0,0,114,58,0,0,0,114,76,0,
+ 0,0,114,28,1,0,0,114,190,0,0,0,114,217,0,0,
+ 0,114,184,0,0,0,114,46,1,0,0,114,221,0,0,0,
+ 114,53,1,0,0,114,87,0,0,0,114,4,0,0,0,114,
+ 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,39,
+ 1,0,0,73,5,0,0,115,16,0,0,0,12,7,6,2,
+ 12,14,12,4,6,2,12,44,12,31,18,18,114,39,1,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,64,0,0,0,115,46,0,0,0,101,0,0,90,1,
+ 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,
+ 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,
+ 0,0,90,5,0,100,6,0,83,40,7,0,0,0,244,18,
0,0,0,95,73,109,112,111,114,116,76,111,99,107,67,111,
- 110,116,101,120,116,117,11,0,0,0,102,105,110,100,95,109,
- 111,100,117,108,101,117,4,0,0,0,78,111,110,101,117,7,
- 0,0,0,109,111,100,117,108,101,115,117,10,0,0,0,95,
- 95,108,111,97,100,101,114,95,95,40,4,0,0,0,117,4,
- 0,0,0,110,97,109,101,117,4,0,0,0,112,97,116,104,
- 117,6,0,0,0,102,105,110,100,101,114,117,6,0,0,0,
- 108,111,97,100,101,114,40,0,0,0,0,40,0,0,0,0,
- 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
- 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,12,0,0,0,95,102,105,110,100,95,109,111,100,
- 117,108,101,191,5,0,0,115,20,0,0,0,0,2,9,1,
- 19,1,16,1,10,1,24,1,12,2,15,1,4,2,21,2,
- 117,12,0,0,0,95,102,105,110,100,95,109,111,100,117,108,
- 101,99,3,0,0,0,0,0,0,0,4,0,0,0,4,0,
- 0,0,67,0,0,0,115,194,0,0,0,116,0,0,124,0,
- 0,116,1,0,131,2,0,115,45,0,116,2,0,100,1,0,
- 106,3,0,116,4,0,124,0,0,131,1,0,131,1,0,131,
- 1,0,130,1,0,110,0,0,124,2,0,100,2,0,107,0,
- 0,114,72,0,116,5,0,100,3,0,131,1,0,130,1,0,
- 110,0,0,124,1,0,114,156,0,116,0,0,124,1,0,116,
- 1,0,131,2,0,115,108,0,116,2,0,100,4,0,131,1,
- 0,130,1,0,113,156,0,124,1,0,116,6,0,106,7,0,
- 107,7,0,114,156,0,100,5,0,125,3,0,116,8,0,124,
- 3,0,106,3,0,124,1,0,131,1,0,131,1,0,130,1,
- 0,113,156,0,110,0,0,124,0,0,12,114,190,0,124,2,
- 0,100,2,0,107,2,0,114,190,0,116,5,0,100,6,0,
- 131,1,0,130,1,0,110,0,0,100,7,0,83,40,8,0,
- 0,0,117,28,0,0,0,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,117,31,0,0,0,109,111,100,117,108,101,32,110,
- 97,109,101,32,109,117,115,116,32,98,101,32,115,116,114,44,
- 32,110,111,116,32,123,125,105,0,0,0,0,117,18,0,0,
- 0,108,101,118,101,108,32,109,117,115,116,32,98,101,32,62,
- 61,32,48,117,31,0,0,0,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,117,61,0,0,0,80,97,114,101,
- 110,116,32,109,111,100,117,108,101,32,123,33,114,125,32,110,
- 111,116,32,108,111,97,100,101,100,44,32,99,97,110,110,111,
- 116,32,112,101,114,102,111,114,109,32,114,101,108,97,116,105,
- 118,101,32,105,109,112,111,114,116,117,17,0,0,0,69,109,
- 112,116,121,32,109,111,100,117,108,101,32,110,97,109,101,78,
- 40,9,0,0,0,117,10,0,0,0,105,115,105,110,115,116,
- 97,110,99,101,117,3,0,0,0,115,116,114,117,9,0,0,
- 0,84,121,112,101,69,114,114,111,114,117,6,0,0,0,102,
- 111,114,109,97,116,117,4,0,0,0,116,121,112,101,117,10,
- 0,0,0,86,97,108,117,101,69,114,114,111,114,117,3,0,
- 0,0,115,121,115,117,7,0,0,0,109,111,100,117,108,101,
- 115,117,11,0,0,0,83,121,115,116,101,109,69,114,114,111,
- 114,40,4,0,0,0,117,4,0,0,0,110,97,109,101,117,
- 7,0,0,0,112,97,99,107,97,103,101,117,5,0,0,0,
- 108,101,118,101,108,117,3,0,0,0,109,115,103,40,0,0,
- 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
- 111,111,116,115,116,114,97,112,62,117,13,0,0,0,95,115,
- 97,110,105,116,121,95,99,104,101,99,107,208,5,0,0,115,
- 24,0,0,0,0,2,15,1,30,1,12,1,15,1,6,1,
- 15,1,15,1,15,1,6,2,27,1,19,1,117,13,0,0,
- 0,95,115,97,110,105,116,121,95,99,104,101,99,107,117,20,
- 0,0,0,78,111,32,109,111,100,117,108,101,32,110,97,109,
- 101,100,32,123,33,114,125,99,2,0,0,0,0,0,0,0,
- 9,0,0,0,27,0,0,0,67,0,0,0,115,12,2,0,
- 0,100,0,0,125,2,0,124,0,0,106,1,0,100,1,0,
- 131,1,0,100,2,0,25,125,3,0,124,3,0,114,178,0,
- 124,3,0,116,2,0,106,3,0,107,7,0,114,62,0,116,
- 4,0,124,1,0,124,3,0,131,2,0,1,110,0,0,124,
- 0,0,116,2,0,106,3,0,107,6,0,114,88,0,116,2,
- 0,106,3,0,124,0,0,25,83,116,2,0,106,3,0,124,
- 3,0,25,125,4,0,121,13,0,124,4,0,106,5,0,125,
- 2,0,87,113,178,0,4,116,6,0,107,10,0,114,174,0,
- 1,1,1,116,7,0,100,3,0,23,106,8,0,124,0,0,
- 124,3,0,131,2,0,125,5,0,116,9,0,124,5,0,100,
- 4,0,124,0,0,131,1,1,130,1,0,89,113,178,0,88,
- 110,0,0,116,10,0,124,0,0,124,2,0,131,2,0,125,
- 6,0,124,6,0,100,0,0,107,8,0,114,250,0,116,9,
- 0,116,7,0,106,8,0,124,0,0,131,1,0,100,4,0,
- 124,0,0,131,1,1,125,7,0,100,10,0,124,7,0,95,
- 12,0,124,7,0,130,1,0,110,47,0,124,0,0,116,2,
- 0,106,3,0,107,7,0,114,41,1,124,6,0,106,13,0,
- 124,0,0,131,1,0,1,116,14,0,100,5,0,124,0,0,
- 124,6,0,131,3,0,1,110,0,0,116,2,0,106,3,0,
- 124,0,0,25,125,8,0,124,3,0,114,105,1,116,2,0,
- 106,3,0,124,3,0,25,125,4,0,116,15,0,124,4,0,
- 124,0,0,106,1,0,100,1,0,131,1,0,100,6,0,25,
- 124,8,0,131,3,0,1,110,0,0,116,16,0,124,8,0,
- 100,7,0,100,0,0,131,3,0,100,0,0,107,8,0,114,
- 212,1,121,59,0,124,8,0,106,17,0,124,8,0,95,18,
- 0,116,19,0,124,8,0,100,8,0,131,2,0,115,187,1,
- 124,8,0,106,18,0,106,1,0,100,1,0,131,1,0,100,
- 2,0,25,124,8,0,95,18,0,110,0,0,87,113,212,1,
- 4,116,6,0,107,10,0,114,208,1,1,1,1,89,113,212,
- 1,88,110,0,0,116,19,0,124,8,0,100,9,0,131,2,
- 0,115,8,2,121,13,0,124,6,0,124,8,0,95,20,0,
- 87,113,8,2,4,116,6,0,107,10,0,114,4,2,1,1,
- 1,89,113,8,2,88,110,0,0,124,8,0,83,40,11,0,
- 0,0,78,117,1,0,0,0,46,105,0,0,0,0,117,21,
- 0,0,0,59,32,123,125,32,105,115,32,110,111,116,32,97,
- 32,112,97,99,107,97,103,101,117,4,0,0,0,110,97,109,
- 101,117,18,0,0,0,105,109,112,111,114,116,32,123,33,114,
- 125,32,35,32,123,33,114,125,105,2,0,0,0,117,11,0,
- 0,0,95,95,112,97,99,107,97,103,101,95,95,117,8,0,
- 0,0,95,95,112,97,116,104,95,95,117,10,0,0,0,95,
- 95,108,111,97,100,101,114,95,95,84,40,21,0,0,0,117,
- 4,0,0,0,78,111,110,101,117,10,0,0,0,114,112,97,
- 114,116,105,116,105,111,110,117,3,0,0,0,115,121,115,117,
- 7,0,0,0,109,111,100,117,108,101,115,117,25,0,0,0,
- 95,99,97,108,108,95,119,105,116,104,95,102,114,97,109,101,
- 115,95,114,101,109,111,118,101,100,117,8,0,0,0,95,95,
- 112,97,116,104,95,95,117,14,0,0,0,65,116,116,114,105,
- 98,117,116,101,69,114,114,111,114,117,8,0,0,0,95,69,
- 82,82,95,77,83,71,117,6,0,0,0,102,111,114,109,97,
- 116,117,11,0,0,0,73,109,112,111,114,116,69,114,114,111,
- 114,117,12,0,0,0,95,102,105,110,100,95,109,111,100,117,
- 108,101,117,4,0,0,0,84,114,117,101,117,10,0,0,0,
- 95,110,111,116,95,102,111,117,110,100,117,11,0,0,0,108,
- 111,97,100,95,109,111,100,117,108,101,117,16,0,0,0,95,
- 118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,117,
- 7,0,0,0,115,101,116,97,116,116,114,117,7,0,0,0,
- 103,101,116,97,116,116,114,117,8,0,0,0,95,95,110,97,
- 109,101,95,95,117,11,0,0,0,95,95,112,97,99,107,97,
- 103,101,95,95,117,7,0,0,0,104,97,115,97,116,116,114,
- 117,10,0,0,0,95,95,108,111,97,100,101,114,95,95,40,
- 9,0,0,0,117,4,0,0,0,110,97,109,101,117,7,0,
- 0,0,105,109,112,111,114,116,95,117,4,0,0,0,112,97,
- 116,104,117,6,0,0,0,112,97,114,101,110,116,117,13,0,
- 0,0,112,97,114,101,110,116,95,109,111,100,117,108,101,117,
- 3,0,0,0,109,115,103,117,6,0,0,0,108,111,97,100,
- 101,114,117,3,0,0,0,101,120,99,117,6,0,0,0,109,
- 111,100,117,108,101,40,0,0,0,0,40,0,0,0,0,117,
- 29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
- 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
- 62,117,23,0,0,0,95,102,105,110,100,95,97,110,100,95,
- 108,111,97,100,95,117,110,108,111,99,107,101,100,227,5,0,
- 0,115,76,0,0,0,0,1,6,1,19,1,6,1,15,1,
- 16,2,15,1,11,2,13,1,3,1,13,1,13,1,22,1,
- 26,1,15,1,12,1,27,3,9,1,9,1,15,2,13,1,
- 19,2,13,1,6,2,13,1,32,2,24,1,3,1,12,1,
- 15,1,32,1,13,1,8,2,15,1,3,1,13,1,13,1,
- 8,1,117,23,0,0,0,95,102,105,110,100,95,97,110,100,
- 95,108,111,97,100,95,117,110,108,111,99,107,101,100,99,2,
- 0,0,0,0,0,0,0,3,0,0,0,18,0,0,0,67,
- 0,0,0,115,75,0,0,0,122,16,0,116,0,0,124,0,
- 0,131,1,0,125,2,0,87,100,1,0,116,1,0,106,2,
- 0,131,0,0,1,88,124,2,0,106,3,0,131,0,0,1,
- 122,17,0,116,4,0,124,0,0,124,1,0,131,2,0,83,
- 87,100,1,0,124,2,0,106,5,0,131,0,0,1,88,100,
- 1,0,83,40,2,0,0,0,117,54,0,0,0,70,105,110,
- 100,32,97,110,100,32,108,111,97,100,32,116,104,101,32,109,
- 111,100,117,108,101,44,32,97,110,100,32,114,101,108,101,97,
- 115,101,32,116,104,101,32,105,109,112,111,114,116,32,108,111,
- 99,107,46,78,40,6,0,0,0,117,16,0,0,0,95,103,
- 101,116,95,109,111,100,117,108,101,95,108,111,99,107,117,4,
- 0,0,0,95,105,109,112,117,12,0,0,0,114,101,108,101,
- 97,115,101,95,108,111,99,107,117,7,0,0,0,97,99,113,
- 117,105,114,101,117,23,0,0,0,95,102,105,110,100,95,97,
- 110,100,95,108,111,97,100,95,117,110,108,111,99,107,101,100,
- 117,7,0,0,0,114,101,108,101,97,115,101,40,3,0,0,
- 0,117,4,0,0,0,110,97,109,101,117,7,0,0,0,105,
- 109,112,111,114,116,95,117,4,0,0,0,108,111,99,107,40,
- 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
- 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
- 95,98,111,111,116,115,116,114,97,112,62,117,14,0,0,0,
- 95,102,105,110,100,95,97,110,100,95,108,111,97,100,21,6,
- 0,0,115,14,0,0,0,0,2,3,1,16,2,11,1,10,
- 1,3,1,17,2,117,14,0,0,0,95,102,105,110,100,95,
- 97,110,100,95,108,111,97,100,99,3,0,0,0,0,0,0,
- 0,5,0,0,0,4,0,0,0,67,0,0,0,115,172,0,
- 0,0,116,0,0,124,0,0,124,1,0,124,2,0,131,3,
- 0,1,124,2,0,100,1,0,107,4,0,114,49,0,116,1,
- 0,124,0,0,124,1,0,124,2,0,131,3,0,125,0,0,
- 110,0,0,116,2,0,106,3,0,131,0,0,1,124,0,0,
- 116,4,0,106,5,0,107,7,0,114,87,0,116,6,0,124,
- 0,0,116,7,0,131,2,0,83,116,4,0,106,5,0,124,
- 0,0,25,125,3,0,124,3,0,100,4,0,107,8,0,114,
- 158,0,116,2,0,106,9,0,131,0,0,1,100,2,0,106,
- 10,0,124,0,0,131,1,0,125,4,0,116,11,0,124,4,
- 0,100,3,0,124,0,0,131,1,1,130,1,0,110,0,0,
- 116,12,0,124,0,0,131,1,0,1,124,3,0,83,40,5,
- 0,0,0,117,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,105,0,0,0,0,117,
- 40,0,0,0,105,109,112,111,114,116,32,111,102,32,123,125,
- 32,104,97,108,116,101,100,59,32,78,111,110,101,32,105,110,
- 32,115,121,115,46,109,111,100,117,108,101,115,117,4,0,0,
- 0,110,97,109,101,78,40,13,0,0,0,117,13,0,0,0,
- 95,115,97,110,105,116,121,95,99,104,101,99,107,117,13,0,
- 0,0,95,114,101,115,111,108,118,101,95,110,97,109,101,117,
- 4,0,0,0,95,105,109,112,117,12,0,0,0,97,99,113,
- 117,105,114,101,95,108,111,99,107,117,3,0,0,0,115,121,
- 115,117,7,0,0,0,109,111,100,117,108,101,115,117,14,0,
- 0,0,95,102,105,110,100,95,97,110,100,95,108,111,97,100,
- 117,11,0,0,0,95,103,99,100,95,105,109,112,111,114,116,
- 117,4,0,0,0,78,111,110,101,117,12,0,0,0,114,101,
- 108,101,97,115,101,95,108,111,99,107,117,6,0,0,0,102,
- 111,114,109,97,116,117,11,0,0,0,73,109,112,111,114,116,
- 69,114,114,111,114,117,19,0,0,0,95,108,111,99,107,95,
- 117,110,108,111,99,107,95,109,111,100,117,108,101,40,5,0,
- 0,0,117,4,0,0,0,110,97,109,101,117,7,0,0,0,
- 112,97,99,107,97,103,101,117,5,0,0,0,108,101,118,101,
- 108,117,6,0,0,0,109,111,100,117,108,101,117,7,0,0,
- 0,109,101,115,115,97,103,101,40,0,0,0,0,40,0,0,
- 0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
- 109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
- 114,97,112,62,117,11,0,0,0,95,103,99,100,95,105,109,
- 112,111,114,116,34,6,0,0,115,28,0,0,0,0,9,16,
- 1,12,1,21,1,10,1,15,1,13,1,13,1,12,1,10,
- 1,6,1,9,1,21,1,10,1,117,11,0,0,0,95,103,
- 99,100,95,105,109,112,111,114,116,99,3,0,0,0,0,0,
- 0,0,6,0,0,0,17,0,0,0,67,0,0,0,115,254,
- 0,0,0,116,0,0,124,0,0,100,1,0,131,2,0,114,
- 250,0,100,2,0,124,1,0,107,6,0,114,89,0,116,1,
- 0,124,1,0,131,1,0,125,1,0,124,1,0,106,2,0,
- 100,2,0,131,1,0,1,116,0,0,124,0,0,100,3,0,
- 131,2,0,114,89,0,124,1,0,106,3,0,124,0,0,106,
- 4,0,131,1,0,1,113,89,0,110,0,0,120,158,0,124,
- 1,0,68,93,147,0,125,3,0,116,0,0,124,0,0,124,
- 3,0,131,2,0,115,96,0,100,4,0,106,5,0,124,0,
- 0,106,6,0,124,3,0,131,2,0,125,4,0,121,17,0,
- 116,7,0,124,2,0,124,4,0,131,2,0,1,87,113,243,
- 0,4,116,8,0,107,10,0,114,239,0,1,125,5,0,1,
- 122,50,0,116,9,0,124,5,0,100,5,0,100,7,0,131,
- 3,0,114,218,0,124,5,0,106,11,0,124,4,0,107,2,
- 0,114,218,0,119,96,0,113,218,0,110,0,0,130,0,0,
- 87,89,100,6,0,100,6,0,125,5,0,126,5,0,88,113,
- 243,0,88,113,96,0,113,96,0,87,110,0,0,124,0,0,
- 83,40,8,0,0,0,117,238,0,0,0,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,117,8,0,0,0,95,95,
- 112,97,116,104,95,95,117,1,0,0,0,42,117,7,0,0,
- 0,95,95,97,108,108,95,95,117,5,0,0,0,123,125,46,
- 123,125,117,10,0,0,0,95,110,111,116,95,102,111,117,110,
- 100,78,70,40,12,0,0,0,117,7,0,0,0,104,97,115,
- 97,116,116,114,117,4,0,0,0,108,105,115,116,117,6,0,
- 0,0,114,101,109,111,118,101,117,6,0,0,0,101,120,116,
- 101,110,100,117,7,0,0,0,95,95,97,108,108,95,95,117,
- 6,0,0,0,102,111,114,109,97,116,117,8,0,0,0,95,
- 95,110,97,109,101,95,95,117,25,0,0,0,95,99,97,108,
- 108,95,119,105,116,104,95,102,114,97,109,101,115,95,114,101,
- 109,111,118,101,100,117,11,0,0,0,73,109,112,111,114,116,
- 69,114,114,111,114,117,7,0,0,0,103,101,116,97,116,116,
- 114,117,5,0,0,0,70,97,108,115,101,117,4,0,0,0,
- 110,97,109,101,40,6,0,0,0,117,6,0,0,0,109,111,
- 100,117,108,101,117,8,0,0,0,102,114,111,109,108,105,115,
- 116,117,7,0,0,0,105,109,112,111,114,116,95,117,1,0,
- 0,0,120,117,9,0,0,0,102,114,111,109,95,110,97,109,
- 101,117,3,0,0,0,101,120,99,40,0,0,0,0,40,0,
- 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
- 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
- 116,114,97,112,62,117,16,0,0,0,95,104,97,110,100,108,
- 101,95,102,114,111,109,108,105,115,116,58,6,0,0,115,34,
- 0,0,0,0,10,15,1,12,1,12,1,13,1,15,1,22,
- 1,13,1,15,1,21,1,3,1,17,1,18,6,18,1,15,
- 1,9,1,32,1,117,16,0,0,0,95,104,97,110,100,108,
- 101,95,102,114,111,109,108,105,115,116,99,1,0,0,0,0,
- 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,
- 78,0,0,0,124,0,0,106,0,0,100,1,0,131,1,0,
- 125,1,0,124,1,0,100,6,0,107,8,0,114,74,0,124,
- 0,0,100,2,0,25,125,1,0,100,3,0,124,0,0,107,
- 7,0,114,74,0,124,1,0,106,2,0,100,4,0,131,1,
- 0,100,5,0,25,125,1,0,113,74,0,110,0,0,124,1,
- 0,83,40,7,0,0,0,117,167,0,0,0,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,117,11,0,0,0,95,95,112,97,99,107,97,103,
- 101,95,95,117,8,0,0,0,95,95,110,97,109,101,95,95,
- 117,8,0,0,0,95,95,112,97,116,104,95,95,117,1,0,
- 0,0,46,105,0,0,0,0,78,40,3,0,0,0,117,3,
- 0,0,0,103,101,116,117,4,0,0,0,78,111,110,101,117,
- 10,0,0,0,114,112,97,114,116,105,116,105,111,110,40,2,
- 0,0,0,117,7,0,0,0,103,108,111,98,97,108,115,117,
- 7,0,0,0,112,97,99,107,97,103,101,40,0,0,0,0,
- 40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,
- 110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
- 116,115,116,114,97,112,62,117,17,0,0,0,95,99,97,108,
- 99,95,95,95,112,97,99,107,97,103,101,95,95,92,6,0,
- 0,115,12,0,0,0,0,7,15,1,12,1,10,1,12,1,
- 25,1,117,17,0,0,0,95,99,97,108,99,95,95,95,112,
- 97,99,107,97,103,101,95,95,99,0,0,0,0,0,0,0,
- 0,3,0,0,0,3,0,0,0,67,0,0,0,115,55,0,
- 0,0,116,0,0,116,1,0,106,2,0,131,0,0,102,2,
- 0,125,0,0,116,3,0,116,4,0,102,2,0,125,1,0,
- 116,5,0,116,6,0,102,2,0,125,2,0,124,0,0,124,
- 1,0,124,2,0,103,3,0,83,40,1,0,0,0,117,111,
- 0,0,0,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,44,32,97,108,108,
- 111,119,95,112,97,99,107,97,103,101,115,41,46,10,32,32,
- 32,32,40,7,0,0,0,117,19,0,0,0,69,120,116,101,
- 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,117,
- 4,0,0,0,95,105,109,112,117,18,0,0,0,101,120,116,
- 101,110,115,105,111,110,95,115,117,102,102,105,120,101,115,117,
- 16,0,0,0,83,111,117,114,99,101,70,105,108,101,76,111,
- 97,100,101,114,117,15,0,0,0,83,79,85,82,67,69,95,
- 83,85,70,70,73,88,69,83,117,20,0,0,0,83,111,117,
- 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
- 114,117,17,0,0,0,66,89,84,69,67,79,68,69,95,83,
- 85,70,70,73,88,69,83,40,3,0,0,0,117,10,0,0,
- 0,101,120,116,101,110,115,105,111,110,115,117,6,0,0,0,
- 115,111,117,114,99,101,117,8,0,0,0,98,121,116,101,99,
- 111,100,101,40,0,0,0,0,40,0,0,0,0,117,29,0,
- 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
- 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 27,0,0,0,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,107,
- 6,0,0,115,8,0,0,0,0,5,18,1,12,1,12,1,
- 117,27,0,0,0,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,
- 99,5,0,0,0,0,0,0,0,9,0,0,0,5,0,0,
- 0,67,0,0,0,115,227,0,0,0,124,4,0,100,1,0,
- 107,2,0,114,27,0,116,0,0,124,0,0,131,1,0,125,
- 5,0,110,54,0,124,1,0,100,3,0,107,9,0,114,45,
- 0,124,1,0,110,3,0,105,0,0,125,6,0,116,2,0,
- 124,6,0,131,1,0,125,7,0,116,0,0,124,0,0,124,
- 7,0,124,4,0,131,3,0,125,5,0,124,3,0,115,207,
- 0,124,4,0,100,1,0,107,2,0,114,122,0,116,0,0,
- 124,0,0,106,3,0,100,2,0,131,1,0,100,1,0,25,
- 131,1,0,83,124,0,0,115,132,0,124,5,0,83,116,4,
- 0,124,0,0,131,1,0,116,4,0,124,0,0,106,3,0,
- 100,2,0,131,1,0,100,1,0,25,131,1,0,24,125,8,
- 0,116,5,0,106,6,0,124,5,0,106,7,0,100,3,0,
- 116,4,0,124,5,0,106,7,0,131,1,0,124,8,0,24,
- 133,2,0,25,25,83,110,16,0,116,8,0,124,5,0,124,
- 3,0,116,0,0,131,3,0,83,100,3,0,83,40,4,0,
- 0,0,117,214,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,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,105,0,0,
- 0,0,117,1,0,0,0,46,78,40,9,0,0,0,117,11,
- 0,0,0,95,103,99,100,95,105,109,112,111,114,116,117,4,
- 0,0,0,78,111,110,101,117,17,0,0,0,95,99,97,108,
- 99,95,95,95,112,97,99,107,97,103,101,95,95,117,9,0,
- 0,0,112,97,114,116,105,116,105,111,110,117,3,0,0,0,
- 108,101,110,117,3,0,0,0,115,121,115,117,7,0,0,0,
- 109,111,100,117,108,101,115,117,8,0,0,0,95,95,110,97,
- 109,101,95,95,117,16,0,0,0,95,104,97,110,100,108,101,
- 95,102,114,111,109,108,105,115,116,40,9,0,0,0,117,4,
- 0,0,0,110,97,109,101,117,7,0,0,0,103,108,111,98,
- 97,108,115,117,6,0,0,0,108,111,99,97,108,115,117,8,
- 0,0,0,102,114,111,109,108,105,115,116,117,5,0,0,0,
- 108,101,118,101,108,117,6,0,0,0,109,111,100,117,108,101,
- 117,8,0,0,0,103,108,111,98,97,108,115,95,117,7,0,
- 0,0,112,97,99,107,97,103,101,117,7,0,0,0,99,117,
- 116,95,111,102,102,40,0,0,0,0,40,0,0,0,0,117,
- 29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
- 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
- 62,117,10,0,0,0,95,95,105,109,112,111,114,116,95,95,
- 118,6,0,0,115,26,0,0,0,0,11,12,1,15,2,24,
- 1,12,1,18,1,6,3,12,1,23,1,6,1,4,4,35,
- 3,40,2,117,10,0,0,0,95,95,105,109,112,111,114,116,
- 95,95,99,2,0,0,0,0,0,0,0,16,0,0,0,13,
- 0,0,0,67,0,0,0,115,24,3,0,0,124,1,0,97,
- 0,0,124,0,0,97,1,0,116,1,0,106,2,0,106,3,
- 0,114,33,0,116,4,0,97,5,0,110,6,0,116,6,0,
- 97,5,0,116,7,0,116,1,0,131,1,0,125,2,0,120,
- 119,0,116,1,0,106,8,0,106,9,0,131,0,0,68,93,
- 102,0,92,2,0,125,3,0,125,4,0,116,10,0,124,4,
- 0,124,2,0,131,2,0,114,67,0,116,11,0,124,4,0,
- 100,1,0,131,2,0,115,169,0,124,3,0,116,1,0,106,
- 12,0,107,6,0,114,136,0,116,13,0,124,4,0,95,14,
- 0,113,166,0,116,0,0,106,15,0,124,3,0,131,1,0,
- 114,166,0,116,16,0,124,4,0,95,14,0,113,166,0,113,
- 169,0,113,67,0,113,67,0,87,116,1,0,106,8,0,116,
- 17,0,25,125,5,0,120,76,0,100,28,0,68,93,68,0,
- 125,6,0,124,6,0,116,1,0,106,8,0,107,7,0,114,
- 232,0,116,13,0,106,18,0,124,6,0,131,1,0,125,7,
- 0,110,13,0,116,1,0,106,8,0,124,6,0,25,125,7,
- 0,116,19,0,124,5,0,124,6,0,124,7,0,131,3,0,
- 1,113,193,0,87,100,6,0,100,7,0,103,1,0,102,2,
- 0,100,8,0,100,9,0,100,7,0,103,2,0,102,2,0,
- 100,10,0,100,9,0,100,7,0,103,2,0,102,2,0,102,
- 3,0,125,8,0,120,189,0,124,8,0,68,93,169,0,92,
- 2,0,125,9,0,125,10,0,116,20,0,100,11,0,100,12,
- 0,132,0,0,124,10,0,68,131,1,0,131,1,0,115,107,
- 1,116,21,0,130,1,0,124,10,0,100,13,0,25,125,11,
- 0,124,9,0,116,1,0,106,8,0,107,6,0,114,149,1,
- 116,1,0,106,8,0,124,9,0,25,125,12,0,80,113,64,
- 1,121,60,0,116,13,0,106,18,0,124,9,0,131,1,0,
- 125,12,0,124,9,0,100,10,0,107,2,0,114,207,1,100,
- 14,0,116,1,0,106,22,0,107,6,0,114,207,1,124,10,
- 0,100,15,0,25,125,11,0,110,0,0,80,87,113,64,1,
- 4,116,23,0,107,10,0,114,232,1,1,1,1,119,64,1,
- 89,113,64,1,88,113,64,1,87,116,23,0,100,16,0,131,
- 1,0,130,1,0,121,19,0,116,13,0,106,18,0,100,17,
- 0,131,1,0,125,13,0,87,110,24,0,4,116,23,0,107,
- 10,0,114,38,2,1,1,1,100,27,0,125,13,0,89,110,
- 1,0,88,116,13,0,106,18,0,100,18,0,131,1,0,125,
- 14,0,124,9,0,100,8,0,107,2,0,114,100,2,116,13,
- 0,106,18,0,100,19,0,131,1,0,125,15,0,116,19,0,
- 124,5,0,100,20,0,124,15,0,131,3,0,1,110,0,0,
- 116,19,0,124,5,0,100,21,0,124,12,0,131,3,0,1,
- 116,19,0,124,5,0,100,17,0,124,13,0,131,3,0,1,
- 116,19,0,124,5,0,100,18,0,124,14,0,131,3,0,1,
- 116,19,0,124,5,0,100,22,0,124,11,0,131,3,0,1,
- 116,19,0,124,5,0,100,23,0,116,25,0,124,10,0,131,
- 1,0,131,3,0,1,116,19,0,124,5,0,100,24,0,116,
- 26,0,131,0,0,131,3,0,1,116,27,0,106,28,0,116,
- 0,0,106,29,0,131,0,0,131,1,0,1,124,9,0,100,
- 8,0,107,2,0,114,20,3,116,30,0,106,31,0,100,25,
- 0,131,1,0,1,100,26,0,116,27,0,107,6,0,114,20,
- 3,100,29,0,116,33,0,95,34,0,113,20,3,110,0,0,
- 100,27,0,83,40,30,0,0,0,117,250,0,0,0,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,117,10,0,0,0,95,95,108,
- 111,97,100,101,114,95,95,117,3,0,0,0,95,105,111,117,
- 9,0,0,0,95,119,97,114,110,105,110,103,115,117,8,0,
- 0,0,98,117,105,108,116,105,110,115,117,7,0,0,0,109,
- 97,114,115,104,97,108,117,5,0,0,0,112,111,115,105,120,
- 117,1,0,0,0,47,117,2,0,0,0,110,116,117,1,0,
- 0,0,92,117,3,0,0,0,111,115,50,99,1,0,0,0,
- 0,0,0,0,2,0,0,0,3,0,0,0,115,0,0,0,
- 115,33,0,0,0,124,0,0,93,23,0,125,1,0,116,0,
- 0,124,1,0,131,1,0,100,0,0,107,2,0,86,1,113,
- 3,0,100,1,0,83,40,2,0,0,0,105,1,0,0,0,
- 78,40,1,0,0,0,117,3,0,0,0,108,101,110,40,2,
- 0,0,0,117,2,0,0,0,46,48,117,3,0,0,0,115,
- 101,112,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
- 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,9,
- 0,0,0,60,103,101,110,101,120,112,114,62,191,6,0,0,
- 115,2,0,0,0,6,0,117,25,0,0,0,95,115,101,116,
- 117,112,46,60,108,111,99,97,108,115,62,46,60,103,101,110,
- 101,120,112,114,62,105,0,0,0,0,117,7,0,0,0,69,
- 77,88,32,71,67,67,105,1,0,0,0,117,30,0,0,0,
+ 110,116,101,120,116,117,36,0,0,0,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,1,0,0,0,1,0,0,0,67,
+ 0,0,0,115,14,0,0,0,116,0,0,106,1,0,131,0,
+ 0,1,100,1,0,83,40,2,0,0,0,117,24,0,0,0,
+ 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,40,2,0,0,0,114,94,
+ 0,0,0,244,12,0,0,0,97,99,113,117,105,114,101,95,
+ 108,111,99,107,40,1,0,0,0,114,75,0,0,0,114,4,
+ 0,0,0,114,4,0,0,0,114,5,0,0,0,114,142,0,
+ 0,0,205,5,0,0,115,2,0,0,0,0,2,117,28,0,
+ 0,0,95,73,109,112,111,114,116,76,111,99,107,67,111,110,
+ 116,101,120,116,46,95,95,101,110,116,101,114,95,95,99,4,
+ 0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,67,
+ 0,0,0,115,14,0,0,0,116,0,0,106,1,0,131,0,
+ 0,1,100,1,0,83,40,2,0,0,0,117,60,0,0,0,
+ 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,40,2,0,
+ 0,0,114,94,0,0,0,114,95,0,0,0,40,4,0,0,
+ 0,114,75,0,0,0,116,8,0,0,0,101,120,99,95,116,
+ 121,112,101,116,9,0,0,0,101,120,99,95,118,97,108,117,
+ 101,116,13,0,0,0,101,120,99,95,116,114,97,99,101,98,
+ 97,99,107,114,4,0,0,0,114,4,0,0,0,114,5,0,
+ 0,0,114,145,0,0,0,209,5,0,0,115,2,0,0,0,
+ 0,2,117,27,0,0,0,95,73,109,112,111,114,116,76,111,
+ 99,107,67,111,110,116,101,120,116,46,95,95,101,120,105,116,
+ 95,95,78,40,6,0,0,0,114,56,0,0,0,114,55,0,
+ 0,0,114,57,0,0,0,114,58,0,0,0,114,142,0,0,
+ 0,114,145,0,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,114,54,1,0,0,201,
+ 5,0,0,115,6,0,0,0,12,2,6,2,12,4,114,54,
+ 1,0,0,99,3,0,0,0,0,0,0,0,5,0,0,0,
+ 4,0,0,0,67,0,0,0,115,91,0,0,0,124,1,0,
+ 106,0,0,100,1,0,124,2,0,100,2,0,24,131,2,0,
+ 125,3,0,116,1,0,124,3,0,131,1,0,124,2,0,107,
+ 0,0,114,55,0,116,2,0,100,3,0,131,1,0,130,1,
+ 0,110,0,0,124,3,0,100,4,0,25,125,4,0,124,0,
+ 0,114,87,0,100,5,0,106,3,0,124,4,0,124,0,0,
+ 131,2,0,83,124,4,0,83,40,6,0,0,0,117,50,0,
+ 0,0,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,101,0,0,0,114,29,0,0,0,117,50,
+ 0,0,0,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,67,0,0,0,117,5,0,0,0,123,
+ 125,46,123,125,40,4,0,0,0,114,34,0,0,0,114,31,
+ 0,0,0,114,118,0,0,0,114,46,0,0,0,40,5,0,
+ 0,0,114,71,0,0,0,244,7,0,0,0,112,97,99,107,
+ 97,103,101,244,5,0,0,0,108,101,118,101,108,116,4,0,
+ 0,0,98,105,116,115,116,4,0,0,0,98,97,115,101,114,
+ 4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,13,
+ 0,0,0,95,114,101,115,111,108,118,101,95,110,97,109,101,
+ 214,5,0,0,115,10,0,0,0,0,2,22,1,18,1,15,
+ 1,10,1,114,58,1,0,0,99,2,0,0,0,0,0,0,
+ 0,4,0,0,0,11,0,0,0,67,0,0,0,115,138,0,
+ 0,0,116,0,0,106,1,0,115,28,0,116,2,0,106,3,
+ 0,100,1,0,116,4,0,131,2,0,1,110,0,0,120,103,
+ 0,116,0,0,106,1,0,68,93,88,0,125,2,0,116,5,
+ 0,131,0,0,143,23,0,1,124,2,0,106,6,0,124,0,
+ 0,124,1,0,131,2,0,125,3,0,87,100,2,0,81,88,
+ 124,3,0,100,2,0,107,9,0,114,38,0,124,0,0,116,
+ 0,0,106,7,0,107,7,0,114,109,0,124,3,0,83,116,
+ 0,0,106,7,0,124,0,0,25,106,8,0,83,113,38,0,
+ 113,38,0,87,100,2,0,83,100,2,0,83,40,3,0,0,
+ 0,117,23,0,0,0,70,105,110,100,32,97,32,109,111,100,
+ 117,108,101,39,115,32,108,111,97,100,101,114,46,117,22,0,
+ 0,0,115,121,115,46,109,101,116,97,95,112,97,116,104,32,
+ 105,115,32,101,109,112,116,121,78,40,9,0,0,0,114,7,
+ 0,0,0,244,9,0,0,0,109,101,116,97,95,112,97,116,
+ 104,114,185,0,0,0,114,186,0,0,0,114,187,0,0,0,
+ 114,54,1,0,0,114,217,0,0,0,114,140,0,0,0,114,
+ 171,0,0,0,40,4,0,0,0,114,71,0,0,0,114,35,
+ 0,0,0,114,31,1,0,0,114,160,0,0,0,114,4,0,
+ 0,0,114,4,0,0,0,114,5,0,0,0,244,12,0,0,
+ 0,95,102,105,110,100,95,109,111,100,117,108,101,223,5,0,
+ 0,115,20,0,0,0,0,2,9,1,19,1,16,1,10,1,
+ 24,1,12,2,15,1,4,2,21,2,114,60,1,0,0,99,
+ 3,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,
+ 67,0,0,0,115,194,0,0,0,116,0,0,124,0,0,116,
+ 1,0,131,2,0,115,45,0,116,2,0,100,1,0,106,3,
+ 0,116,4,0,124,0,0,131,1,0,131,1,0,131,1,0,
+ 130,1,0,110,0,0,124,2,0,100,2,0,107,0,0,114,
+ 72,0,116,5,0,100,3,0,131,1,0,130,1,0,110,0,
+ 0,124,1,0,114,156,0,116,0,0,124,1,0,116,1,0,
+ 131,2,0,115,108,0,116,2,0,100,4,0,131,1,0,130,
+ 1,0,113,156,0,124,1,0,116,6,0,106,7,0,107,7,
+ 0,114,156,0,100,5,0,125,3,0,116,8,0,124,3,0,
+ 106,3,0,124,1,0,131,1,0,131,1,0,130,1,0,113,
+ 156,0,110,0,0,124,0,0,12,114,190,0,124,2,0,100,
+ 2,0,107,2,0,114,190,0,116,5,0,100,6,0,131,1,
+ 0,130,1,0,110,0,0,100,7,0,83,40,8,0,0,0,
+ 117,28,0,0,0,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,117,31,0,0,0,109,111,100,117,108,101,32,110,97,109,
+ 101,32,109,117,115,116,32,98,101,32,115,116,114,44,32,110,
+ 111,116,32,123,125,114,67,0,0,0,117,18,0,0,0,108,
+ 101,118,101,108,32,109,117,115,116,32,98,101,32,62,61,32,
+ 48,117,31,0,0,0,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,117,61,0,0,0,80,97,114,101,110,116,
+ 32,109,111,100,117,108,101,32,123,33,114,125,32,110,111,116,
+ 32,108,111,97,100,101,100,44,32,99,97,110,110,111,116,32,
+ 112,101,114,102,111,114,109,32,114,101,108,97,116,105,118,101,
+ 32,105,109,112,111,114,116,117,17,0,0,0,69,109,112,116,
+ 121,32,109,111,100,117,108,101,32,110,97,109,101,78,40,9,
+ 0,0,0,114,202,0,0,0,114,35,1,0,0,244,9,0,
+ 0,0,84,121,112,101,69,114,114,111,114,114,46,0,0,0,
+ 114,152,0,0,0,114,118,0,0,0,114,7,0,0,0,114,
+ 140,0,0,0,244,11,0,0,0,83,121,115,116,101,109,69,
+ 114,114,111,114,40,4,0,0,0,114,71,0,0,0,114,56,
+ 1,0,0,114,57,1,0,0,114,189,0,0,0,114,4,0,
+ 0,0,114,4,0,0,0,114,5,0,0,0,244,13,0,0,
+ 0,95,115,97,110,105,116,121,95,99,104,101,99,107,240,5,
+ 0,0,115,24,0,0,0,0,2,15,1,30,1,12,1,15,
+ 1,6,1,15,1,15,1,15,1,6,2,27,1,19,1,114,
+ 63,1,0,0,117,16,0,0,0,78,111,32,109,111,100,117,
+ 108,101,32,110,97,109,101,100,32,117,4,0,0,0,123,33,
+ 114,125,99,2,0,0,0,0,0,0,0,8,0,0,0,27,
+ 0,0,0,67,0,0,0,115,6,2,0,0,100,0,0,125,
+ 2,0,124,0,0,106,0,0,100,1,0,131,1,0,100,2,
+ 0,25,125,3,0,124,3,0,114,178,0,124,3,0,116,1,
+ 0,106,2,0,107,7,0,114,62,0,116,3,0,124,1,0,
+ 124,3,0,131,2,0,1,110,0,0,124,0,0,116,1,0,
+ 106,2,0,107,6,0,114,88,0,116,1,0,106,2,0,124,
+ 0,0,25,83,116,1,0,106,2,0,124,3,0,25,125,4,
+ 0,121,13,0,124,4,0,106,4,0,125,2,0,87,113,178,
+ 0,4,116,5,0,107,10,0,114,174,0,1,1,1,116,6,
+ 0,100,3,0,23,106,7,0,124,0,0,124,3,0,131,2,
+ 0,125,5,0,116,8,0,124,5,0,100,4,0,124,0,0,
+ 131,1,1,130,1,0,89,113,178,0,88,110,0,0,116,9,
+ 0,124,0,0,124,2,0,131,2,0,125,6,0,124,6,0,
+ 100,0,0,107,8,0,114,235,0,116,8,0,116,6,0,106,
+ 7,0,124,0,0,131,1,0,100,4,0,124,0,0,131,1,
+ 1,130,1,0,110,47,0,124,0,0,116,1,0,106,2,0,
+ 107,7,0,114,26,1,124,6,0,106,10,0,124,0,0,131,
+ 1,0,1,116,11,0,100,5,0,124,0,0,124,6,0,131,
+ 3,0,1,110,0,0,116,1,0,106,2,0,124,0,0,25,
+ 125,7,0,124,3,0,114,90,1,116,1,0,106,2,0,124,
+ 3,0,25,125,4,0,116,12,0,124,4,0,124,0,0,106,
+ 0,0,100,1,0,131,1,0,100,6,0,25,124,7,0,131,
+ 3,0,1,110,0,0,116,13,0,124,7,0,100,7,0,100,
+ 0,0,131,3,0,100,0,0,107,8,0,114,197,1,121,59,
+ 0,124,7,0,106,14,0,124,7,0,95,15,0,116,16,0,
+ 124,7,0,100,8,0,131,2,0,115,172,1,124,7,0,106,
+ 15,0,106,0,0,100,1,0,131,1,0,100,2,0,25,124,
+ 7,0,95,15,0,110,0,0,87,113,197,1,4,116,5,0,
+ 107,10,0,114,193,1,1,1,1,89,113,197,1,88,110,0,
+ 0,116,13,0,124,7,0,100,9,0,100,0,0,131,3,0,
+ 100,0,0,107,8,0,114,2,2,121,13,0,124,6,0,124,
+ 7,0,95,17,0,87,113,2,2,4,116,5,0,107,10,0,
+ 114,254,1,1,1,1,89,113,2,2,88,110,0,0,124,7,
+ 0,83,40,10,0,0,0,78,114,101,0,0,0,114,67,0,
+ 0,0,117,21,0,0,0,59,32,123,125,32,105,115,32,110,
+ 111,116,32,97,32,112,97,99,107,97,103,101,114,71,0,0,
+ 0,117,18,0,0,0,105,109,112,111,114,116,32,123,33,114,
+ 125,32,35,32,123,33,114,125,114,100,0,0,0,114,158,0,
+ 0,0,114,159,0,0,0,114,171,0,0,0,40,18,0,0,
+ 0,114,32,0,0,0,114,7,0,0,0,114,140,0,0,0,
+ 114,99,0,0,0,114,159,0,0,0,114,154,0,0,0,244,
+ 8,0,0,0,95,69,82,82,95,77,83,71,114,46,0,0,
+ 0,114,157,0,0,0,114,60,1,0,0,114,218,0,0,0,
+ 114,137,0,0,0,114,60,0,0,0,114,61,0,0,0,114,
+ 56,0,0,0,114,158,0,0,0,114,59,0,0,0,114,171,
+ 0,0,0,40,8,0,0,0,114,71,0,0,0,244,7,0,
+ 0,0,105,109,112,111,114,116,95,114,35,0,0,0,114,6,
+ 1,0,0,116,13,0,0,0,112,97,114,101,110,116,95,109,
+ 111,100,117,108,101,114,189,0,0,0,114,160,0,0,0,114,
+ 161,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,244,23,0,0,0,95,102,105,110,100,95,97,110,
+ 100,95,108,111,97,100,95,117,110,108,111,99,107,101,100,4,
+ 6,0,0,115,72,0,0,0,0,1,6,1,19,1,6,1,
+ 15,1,16,2,15,1,11,2,13,1,3,1,13,1,13,1,
+ 22,1,26,1,15,1,12,1,30,1,15,2,13,1,19,2,
+ 13,1,6,2,13,1,32,2,24,1,3,1,12,1,15,1,
+ 32,1,13,1,8,2,24,1,3,1,13,1,13,1,8,1,
+ 114,66,1,0,0,99,2,0,0,0,0,0,0,0,3,0,
+ 0,0,18,0,0,0,67,0,0,0,115,75,0,0,0,122,
+ 16,0,116,0,0,124,0,0,131,1,0,125,2,0,87,100,
+ 1,0,116,1,0,106,2,0,131,0,0,1,88,124,2,0,
+ 106,3,0,131,0,0,1,122,17,0,116,4,0,124,0,0,
+ 124,1,0,131,2,0,83,87,100,1,0,124,2,0,106,5,
+ 0,131,0,0,1,88,100,1,0,83,40,2,0,0,0,117,
+ 54,0,0,0,70,105,110,100,32,97,110,100,32,108,111,97,
+ 100,32,116,104,101,32,109,111,100,117,108,101,44,32,97,110,
+ 100,32,114,101,108,101,97,115,101,32,116,104,101,32,105,109,
+ 112,111,114,116,32,108,111,99,107,46,78,40,6,0,0,0,
+ 114,93,0,0,0,114,94,0,0,0,114,95,0,0,0,114,
+ 83,0,0,0,114,66,1,0,0,114,84,0,0,0,40,3,
+ 0,0,0,114,71,0,0,0,114,65,1,0,0,114,69,0,
+ 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,
+ 0,244,14,0,0,0,95,102,105,110,100,95,97,110,100,95,
+ 108,111,97,100,50,6,0,0,115,14,0,0,0,0,2,3,
+ 1,16,2,11,1,10,1,3,1,17,2,114,67,1,0,0,
+ 99,3,0,0,0,0,0,0,0,5,0,0,0,4,0,0,
+ 0,67,0,0,0,115,172,0,0,0,116,0,0,124,0,0,
+ 124,1,0,124,2,0,131,3,0,1,124,2,0,100,1,0,
+ 107,4,0,114,49,0,116,1,0,124,0,0,124,1,0,124,
+ 2,0,131,3,0,125,0,0,110,0,0,116,2,0,106,3,
+ 0,131,0,0,1,124,0,0,116,4,0,106,5,0,107,7,
+ 0,114,87,0,116,6,0,124,0,0,116,7,0,131,2,0,
+ 83,116,4,0,106,5,0,124,0,0,25,125,3,0,124,3,
+ 0,100,2,0,107,8,0,114,158,0,116,2,0,106,8,0,
+ 131,0,0,1,100,3,0,106,9,0,124,0,0,131,1,0,
+ 125,4,0,116,10,0,124,4,0,100,4,0,124,0,0,131,
+ 1,1,130,1,0,110,0,0,116,11,0,124,0,0,131,1,
+ 0,1,124,3,0,83,40,5,0,0,0,117,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,67,0,0,0,78,117,40,0,0,0,105,109,112,
+ 111,114,116,32,111,102,32,123,125,32,104,97,108,116,101,100,
+ 59,32,78,111,110,101,32,105,110,32,115,121,115,46,109,111,
+ 100,117,108,101,115,114,71,0,0,0,40,12,0,0,0,114,
+ 63,1,0,0,114,58,1,0,0,114,94,0,0,0,114,55,
+ 1,0,0,114,7,0,0,0,114,140,0,0,0,114,67,1,
+ 0,0,244,11,0,0,0,95,103,99,100,95,105,109,112,111,
+ 114,116,114,95,0,0,0,114,46,0,0,0,114,157,0,0,
+ 0,114,96,0,0,0,40,5,0,0,0,114,71,0,0,0,
+ 114,56,1,0,0,114,57,1,0,0,114,161,0,0,0,114,
+ 136,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,114,68,1,0,0,63,6,0,0,115,26,0,0,
+ 0,0,9,16,1,12,1,21,1,10,1,15,1,13,1,13,
+ 1,12,1,10,2,15,1,21,1,10,1,114,68,1,0,0,
+ 99,3,0,0,0,0,0,0,0,6,0,0,0,17,0,0,
+ 0,67,0,0,0,115,1,1,0,0,116,0,0,124,0,0,
+ 100,1,0,131,2,0,114,253,0,100,2,0,124,1,0,107,
+ 6,0,114,89,0,116,1,0,124,1,0,131,1,0,125,1,
+ 0,124,1,0,106,2,0,100,2,0,131,1,0,1,116,0,
+ 0,124,0,0,100,3,0,131,2,0,114,89,0,124,1,0,
+ 106,3,0,124,0,0,106,4,0,131,1,0,1,113,89,0,
+ 110,0,0,120,161,0,124,1,0,68,93,150,0,125,3,0,
+ 116,0,0,124,0,0,124,3,0,131,2,0,115,96,0,100,
+ 4,0,106,5,0,124,0,0,106,6,0,124,3,0,131,2,
+ 0,125,4,0,121,17,0,116,7,0,124,2,0,124,4,0,
+ 131,2,0,1,87,113,246,0,4,116,8,0,107,10,0,114,
+ 242,0,1,125,5,0,1,122,53,0,116,9,0,124,5,0,
+ 131,1,0,106,10,0,116,11,0,131,1,0,114,221,0,124,
+ 5,0,106,12,0,124,4,0,107,2,0,114,221,0,119,96,
+ 0,113,221,0,110,0,0,130,0,0,87,89,100,5,0,100,
+ 5,0,125,5,0,126,5,0,88,113,246,0,88,113,96,0,
+ 113,96,0,87,110,0,0,124,0,0,83,40,6,0,0,0,
+ 117,238,0,0,0,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,114,159,0,0,0,245,1,0,0,0,42,244,7,
+ 0,0,0,95,95,97,108,108,95,95,117,5,0,0,0,123,
+ 125,46,123,125,78,40,13,0,0,0,114,59,0,0,0,244,
+ 4,0,0,0,108,105,115,116,244,6,0,0,0,114,101,109,
+ 111,118,101,114,207,0,0,0,114,70,1,0,0,114,46,0,
+ 0,0,114,56,0,0,0,114,99,0,0,0,114,157,0,0,
+ 0,114,35,1,0,0,114,9,0,0,0,244,15,0,0,0,
+ 95,69,82,82,95,77,83,71,95,80,82,69,70,73,88,114,
+ 71,0,0,0,40,6,0,0,0,114,161,0,0,0,244,8,
+ 0,0,0,102,114,111,109,108,105,115,116,114,65,1,0,0,
+ 114,16,0,0,0,116,9,0,0,0,102,114,111,109,95,110,
+ 97,109,101,114,248,0,0,0,114,4,0,0,0,114,4,0,
+ 0,0,114,5,0,0,0,244,16,0,0,0,95,104,97,110,
+ 100,108,101,95,102,114,111,109,108,105,115,116,87,6,0,0,
+ 115,34,0,0,0,0,10,15,1,12,1,12,1,13,1,15,
+ 1,22,1,13,1,15,1,21,1,3,1,17,1,18,4,21,
+ 1,15,1,9,1,32,1,114,75,1,0,0,99,1,0,0,
+ 0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,
+ 0,115,78,0,0,0,124,0,0,106,0,0,100,1,0,131,
+ 1,0,125,1,0,124,1,0,100,2,0,107,8,0,114,74,
+ 0,124,0,0,100,3,0,25,125,1,0,100,4,0,124,0,
+ 0,107,7,0,114,74,0,124,1,0,106,1,0,100,5,0,
+ 131,1,0,100,6,0,25,125,1,0,113,74,0,110,0,0,
+ 124,1,0,83,40,7,0,0,0,117,167,0,0,0,67,97,
+ 108,99,117,108,97,116,101,32,119,104,97,116,32,95,95,112,
+ 97,99,107,97,103,101,95,95,32,115,104,111,117,108,100,32,
+ 98,101,46,10,10,32,32,32,32,95,95,112,97,99,107,97,
+ 103,101,95,95,32,105,115,32,110,111,116,32,103,117,97,114,
+ 97,110,116,101,101,100,32,116,111,32,98,101,32,100,101,102,
+ 105,110,101,100,32,111,114,32,99,111,117,108,100,32,98,101,
+ 32,115,101,116,32,116,111,32,78,111,110,101,10,32,32,32,
+ 32,116,111,32,114,101,112,114,101,115,101,110,116,32,116,104,
+ 97,116,32,105,116,115,32,112,114,111,112,101,114,32,118,97,
+ 108,117,101,32,105,115,32,117,110,107,110,111,119,110,46,10,
+ 10,32,32,32,32,114,158,0,0,0,78,114,56,0,0,0,
+ 114,159,0,0,0,114,101,0,0,0,114,67,0,0,0,40,
+ 2,0,0,0,114,79,0,0,0,114,32,0,0,0,40,2,
+ 0,0,0,244,7,0,0,0,103,108,111,98,97,108,115,114,
+ 56,1,0,0,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,244,17,0,0,0,95,99,97,108,99,95,95,95,
+ 112,97,99,107,97,103,101,95,95,119,6,0,0,115,12,0,
+ 0,0,0,7,15,1,12,1,10,1,12,1,25,1,114,77,
+ 1,0,0,99,0,0,0,0,0,0,0,0,3,0,0,0,
+ 3,0,0,0,67,0,0,0,115,55,0,0,0,116,0,0,
+ 116,1,0,106,2,0,131,0,0,102,2,0,125,0,0,116,
+ 3,0,116,4,0,102,2,0,125,1,0,116,5,0,116,6,
+ 0,102,2,0,125,2,0,124,0,0,124,1,0,124,2,0,
+ 103,3,0,83,40,1,0,0,0,117,111,0,0,0,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,44,32,97,108,108,111,119,95,112,97,
+ 99,107,97,103,101,115,41,46,10,32,32,32,32,40,7,0,
+ 0,0,114,8,1,0,0,114,94,0,0,0,244,18,0,0,
+ 0,101,120,116,101,110,115,105,111,110,95,115,117,102,102,105,
+ 120,101,115,114,2,1,0,0,114,119,0,0,0,114,7,1,
+ 0,0,244,17,0,0,0,66,89,84,69,67,79,68,69,95,
+ 83,85,70,70,73,88,69,83,40,3,0,0,0,116,10,0,
+ 0,0,101,120,116,101,110,115,105,111,110,115,116,6,0,0,
+ 0,115,111,117,114,99,101,116,8,0,0,0,98,121,116,101,
+ 99,111,100,101,114,4,0,0,0,114,4,0,0,0,114,5,
+ 0,0,0,114,234,0,0,0,134,6,0,0,115,8,0,0,
+ 0,0,5,18,1,12,1,12,1,114,234,0,0,0,99,5,
+ 0,0,0,0,0,0,0,9,0,0,0,5,0,0,0,67,
+ 0,0,0,115,227,0,0,0,124,4,0,100,1,0,107,2,
+ 0,114,27,0,116,0,0,124,0,0,131,1,0,125,5,0,
+ 110,54,0,124,1,0,100,2,0,107,9,0,114,45,0,124,
+ 1,0,110,3,0,105,0,0,125,6,0,116,1,0,124,6,
+ 0,131,1,0,125,7,0,116,0,0,124,0,0,124,7,0,
+ 124,4,0,131,3,0,125,5,0,124,3,0,115,207,0,124,
+ 4,0,100,1,0,107,2,0,114,122,0,116,0,0,124,0,
+ 0,106,2,0,100,3,0,131,1,0,100,1,0,25,131,1,
+ 0,83,124,0,0,115,132,0,124,5,0,83,116,3,0,124,
+ 0,0,131,1,0,116,3,0,124,0,0,106,2,0,100,3,
+ 0,131,1,0,100,1,0,25,131,1,0,24,125,8,0,116,
+ 4,0,106,5,0,124,5,0,106,6,0,100,2,0,116,3,
+ 0,124,5,0,106,6,0,131,1,0,124,8,0,24,133,2,
+ 0,25,25,83,110,16,0,116,7,0,124,5,0,124,3,0,
+ 116,0,0,131,3,0,83,100,2,0,83,40,4,0,0,0,
+ 117,214,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,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,67,0,0,0,
+ 78,114,101,0,0,0,40,8,0,0,0,114,68,1,0,0,
+ 114,77,1,0,0,114,106,0,0,0,114,31,0,0,0,114,
+ 7,0,0,0,114,140,0,0,0,114,56,0,0,0,114,75,
+ 1,0,0,40,9,0,0,0,114,71,0,0,0,114,76,1,
+ 0,0,244,6,0,0,0,108,111,99,97,108,115,114,74,1,
+ 0,0,114,57,1,0,0,114,161,0,0,0,116,8,0,0,
+ 0,103,108,111,98,97,108,115,95,114,56,1,0,0,116,7,
+ 0,0,0,99,117,116,95,111,102,102,114,4,0,0,0,114,
+ 4,0,0,0,114,5,0,0,0,244,10,0,0,0,95,95,
+ 105,109,112,111,114,116,95,95,145,6,0,0,115,26,0,0,
+ 0,0,11,12,1,15,2,24,1,12,1,18,1,6,3,12,
+ 1,23,1,6,1,4,4,35,3,40,2,114,81,1,0,0,
+ 99,2,0,0,0,0,0,0,0,16,0,0,0,13,0,0,
+ 0,67,0,0,0,115,237,2,0,0,124,1,0,97,0,0,
+ 124,0,0,97,1,0,116,1,0,106,2,0,106,3,0,114,
+ 33,0,116,4,0,97,5,0,110,6,0,116,6,0,97,5,
+ 0,116,7,0,116,1,0,131,1,0,125,2,0,120,128,0,
+ 116,1,0,106,8,0,106,9,0,131,0,0,68,93,111,0,
+ 92,2,0,125,3,0,125,4,0,116,10,0,124,4,0,124,
+ 2,0,131,2,0,114,67,0,116,11,0,124,4,0,100,1,
+ 0,100,2,0,131,3,0,100,2,0,107,8,0,114,178,0,
+ 124,3,0,116,1,0,106,12,0,107,6,0,114,145,0,116,
+ 13,0,124,4,0,95,14,0,113,175,0,116,0,0,106,15,
+ 0,124,3,0,131,1,0,114,175,0,116,16,0,124,4,0,
+ 95,14,0,113,175,0,113,178,0,113,67,0,113,67,0,87,
+ 116,1,0,106,8,0,116,17,0,25,125,5,0,120,76,0,
+ 100,27,0,68,93,68,0,125,6,0,124,6,0,116,1,0,
+ 106,8,0,107,7,0,114,241,0,116,13,0,106,18,0,124,
+ 6,0,131,1,0,125,7,0,110,13,0,116,1,0,106,8,
+ 0,124,6,0,25,125,7,0,116,19,0,124,5,0,124,6,
+ 0,124,7,0,131,3,0,1,113,202,0,87,100,7,0,100,
+ 8,0,103,1,0,102,2,0,100,9,0,100,10,0,100,8,
+ 0,103,2,0,102,2,0,102,2,0,125,8,0,120,149,0,
+ 124,8,0,68,93,129,0,92,2,0,125,9,0,125,10,0,
+ 116,20,0,100,11,0,100,12,0,132,0,0,124,10,0,68,
+ 131,1,0,131,1,0,115,101,1,116,21,0,130,1,0,124,
+ 10,0,100,13,0,25,125,11,0,124,9,0,116,1,0,106,
+ 8,0,107,6,0,114,143,1,116,1,0,106,8,0,124,9,
+ 0,25,125,12,0,80,113,58,1,121,20,0,116,13,0,106,
+ 18,0,124,9,0,131,1,0,125,12,0,80,87,113,58,1,
+ 4,116,22,0,107,10,0,114,186,1,1,1,1,119,58,1,
+ 89,113,58,1,88,113,58,1,87,116,22,0,100,14,0,131,
+ 1,0,130,1,0,121,19,0,116,13,0,106,18,0,100,15,
+ 0,131,1,0,125,13,0,87,110,24,0,4,116,22,0,107,
+ 10,0,114,248,1,1,1,1,100,2,0,125,13,0,89,110,
+ 1,0,88,116,13,0,106,18,0,100,16,0,131,1,0,125,
+ 14,0,124,9,0,100,9,0,107,2,0,114,54,2,116,13,
+ 0,106,18,0,100,17,0,131,1,0,125,15,0,116,19,0,
+ 124,5,0,100,18,0,124,15,0,131,3,0,1,110,0,0,
+ 116,19,0,124,5,0,100,19,0,124,12,0,131,3,0,1,
+ 116,19,0,124,5,0,100,15,0,124,13,0,131,3,0,1,
+ 116,19,0,124,5,0,100,16,0,124,14,0,131,3,0,1,
+ 116,19,0,124,5,0,100,20,0,124,11,0,131,3,0,1,
+ 116,19,0,124,5,0,100,21,0,100,22,0,106,23,0,124,
+ 10,0,131,1,0,131,3,0,1,116,19,0,124,5,0,100,
+ 23,0,116,24,0,131,0,0,131,3,0,1,116,25,0,106,
+ 26,0,116,0,0,106,27,0,131,0,0,131,1,0,1,124,
+ 9,0,100,9,0,107,2,0,114,233,2,116,28,0,106,29,
+ 0,100,24,0,131,1,0,1,100,25,0,116,25,0,107,6,
+ 0,114,233,2,100,26,0,116,30,0,95,31,0,113,233,2,
+ 110,0,0,100,2,0,83,40,28,0,0,0,117,250,0,0,
+ 0,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,114,171,0,0,0,
+ 78,114,48,0,0,0,114,185,0,0,0,244,8,0,0,0,
+ 98,117,105,108,116,105,110,115,114,201,0,0,0,116,5,0,
+ 0,0,112,111,115,105,120,245,1,0,0,0,47,244,2,0,
+ 0,0,110,116,245,1,0,0,0,92,99,1,0,0,0,0,
+ 0,0,0,2,0,0,0,3,0,0,0,115,0,0,0,115,
+ 33,0,0,0,124,0,0,93,23,0,125,1,0,116,0,0,
+ 124,1,0,131,1,0,100,0,0,107,2,0,86,1,113,3,
+ 0,100,1,0,83,40,2,0,0,0,114,29,0,0,0,78,
+ 40,1,0,0,0,114,31,0,0,0,40,2,0,0,0,114,
+ 22,0,0,0,114,115,0,0,0,114,4,0,0,0,114,4,
+ 0,0,0,114,5,0,0,0,114,143,0,0,0,218,6,0,
+ 0,115,2,0,0,0,6,0,117,25,0,0,0,95,115,101,
+ 116,117,112,46,60,108,111,99,97,108,115,62,46,60,103,101,
+ 110,101,120,112,114,62,114,67,0,0,0,117,30,0,0,0,
105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,114,
- 101,115,32,112,111,115,105,120,32,111,114,32,110,116,117,7,
- 0,0,0,95,116,104,114,101,97,100,117,8,0,0,0,95,
- 119,101,97,107,114,101,102,117,6,0,0,0,119,105,110,114,
- 101,103,117,7,0,0,0,95,119,105,110,114,101,103,117,3,
- 0,0,0,95,111,115,117,8,0,0,0,112,97,116,104,95,
- 115,101,112,117,15,0,0,0,112,97,116,104,95,115,101,112,
- 97,114,97,116,111,114,115,117,11,0,0,0,95,114,101,108,
- 97,120,95,99,97,115,101,117,4,0,0,0,46,112,121,119,
- 117,6,0,0,0,95,100,46,112,121,100,78,40,4,0,0,
- 0,117,3,0,0,0,95,105,111,117,9,0,0,0,95,119,
- 97,114,110,105,110,103,115,117,8,0,0,0,98,117,105,108,
- 116,105,110,115,117,7,0,0,0,109,97,114,115,104,97,108,
- 84,40,35,0,0,0,117,4,0,0,0,95,105,109,112,117,
- 3,0,0,0,115,121,115,117,5,0,0,0,102,108,97,103,
- 115,117,8,0,0,0,111,112,116,105,109,105,122,101,117,27,
- 0,0,0,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,117,17,
- 0,0,0,66,89,84,69,67,79,68,69,95,83,85,70,70,
- 73,88,69,83,117,23,0,0,0,68,69,66,85,71,95,66,
- 89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,83,
- 117,4,0,0,0,116,121,112,101,117,7,0,0,0,109,111,
- 100,117,108,101,115,117,5,0,0,0,105,116,101,109,115,117,
- 10,0,0,0,105,115,105,110,115,116,97,110,99,101,117,7,
- 0,0,0,104,97,115,97,116,116,114,117,20,0,0,0,98,
- 117,105,108,116,105,110,95,109,111,100,117,108,101,95,110,97,
- 109,101,115,117,15,0,0,0,66,117,105,108,116,105,110,73,
- 109,112,111,114,116,101,114,117,10,0,0,0,95,95,108,111,
- 97,100,101,114,95,95,117,9,0,0,0,105,115,95,102,114,
- 111,122,101,110,117,14,0,0,0,70,114,111,122,101,110,73,
- 109,112,111,114,116,101,114,117,8,0,0,0,95,95,110,97,
- 109,101,95,95,117,11,0,0,0,108,111,97,100,95,109,111,
- 100,117,108,101,117,7,0,0,0,115,101,116,97,116,116,114,
- 117,3,0,0,0,97,108,108,117,14,0,0,0,65,115,115,
- 101,114,116,105,111,110,69,114,114,111,114,117,7,0,0,0,
- 118,101,114,115,105,111,110,117,11,0,0,0,73,109,112,111,
- 114,116,69,114,114,111,114,117,4,0,0,0,78,111,110,101,
- 117,3,0,0,0,115,101,116,117,16,0,0,0,95,109,97,
- 107,101,95,114,101,108,97,120,95,99,97,115,101,117,18,0,
- 0,0,69,88,84,69,78,83,73,79,78,95,83,85,70,70,
- 73,88,69,83,117,6,0,0,0,101,120,116,101,110,100,117,
- 18,0,0,0,101,120,116,101,110,115,105,111,110,95,115,117,
- 102,102,105,120,101,115,117,15,0,0,0,83,79,85,82,67,
- 69,95,83,85,70,70,73,88,69,83,117,6,0,0,0,97,
- 112,112,101,110,100,117,4,0,0,0,84,114,117,101,117,21,
- 0,0,0,87,105,110,100,111,119,115,82,101,103,105,115,116,
- 114,121,70,105,110,100,101,114,117,11,0,0,0,68,69,66,
- 85,71,95,66,85,73,76,68,40,16,0,0,0,117,10,0,
- 0,0,115,121,115,95,109,111,100,117,108,101,117,11,0,0,
- 0,95,105,109,112,95,109,111,100,117,108,101,117,11,0,0,
- 0,109,111,100,117,108,101,95,116,121,112,101,117,4,0,0,
- 0,110,97,109,101,117,6,0,0,0,109,111,100,117,108,101,
- 117,11,0,0,0,115,101,108,102,95,109,111,100,117,108,101,
- 117,12,0,0,0,98,117,105,108,116,105,110,95,110,97,109,
- 101,117,14,0,0,0,98,117,105,108,116,105,110,95,109,111,
- 100,117,108,101,117,10,0,0,0,111,115,95,100,101,116,97,
- 105,108,115,117,10,0,0,0,98,117,105,108,116,105,110,95,
- 111,115,117,15,0,0,0,112,97,116,104,95,115,101,112,97,
- 114,97,116,111,114,115,117,8,0,0,0,112,97,116,104,95,
- 115,101,112,117,9,0,0,0,111,115,95,109,111,100,117,108,
- 101,117,13,0,0,0,116,104,114,101,97,100,95,109,111,100,
- 117,108,101,117,14,0,0,0,119,101,97,107,114,101,102,95,
- 109,111,100,117,108,101,117,13,0,0,0,119,105,110,114,101,
- 103,95,109,111,100,117,108,101,40,0,0,0,0,40,0,0,
- 0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
- 109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
- 114,97,112,62,117,6,0,0,0,95,115,101,116,117,112,154,
- 6,0,0,115,106,0,0,0,0,9,6,1,6,2,12,1,
- 9,2,6,2,12,1,28,1,15,1,15,1,15,1,12,1,
- 15,1,22,2,13,1,13,1,15,1,18,2,13,1,20,2,
- 48,1,19,2,31,1,10,1,15,1,13,1,4,2,3,1,
- 15,2,27,1,13,1,5,1,13,1,12,2,12,2,3,1,
- 19,1,13,2,11,1,15,2,12,1,15,1,19,2,16,1,
- 16,1,16,1,16,1,22,2,19,1,19,1,12,1,13,1,
- 12,1,117,6,0,0,0,95,115,101,116,117,112,99,2,0,
- 0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,
- 0,0,115,136,0,0,0,116,0,0,124,0,0,124,1,0,
- 131,2,0,1,116,1,0,131,0,0,125,2,0,116,2,0,
- 106,3,0,106,4,0,116,5,0,106,6,0,124,2,0,140,
- 0,0,103,1,0,131,1,0,1,116,2,0,106,7,0,106,
- 8,0,116,9,0,131,1,0,1,116,2,0,106,7,0,106,
- 8,0,116,10,0,131,1,0,1,116,11,0,106,12,0,100,
- 1,0,107,2,0,114,116,0,116,2,0,106,7,0,106,8,
- 0,116,13,0,131,1,0,1,110,0,0,116,2,0,106,7,
- 0,106,8,0,116,14,0,131,1,0,1,100,2,0,83,40,
- 3,0,0,0,117,50,0,0,0,73,110,115,116,97,108,108,
- 32,105,109,112,111,114,116,108,105,98,32,97,115,32,116,104,
- 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
- 32,111,102,32,105,109,112,111,114,116,46,117,2,0,0,0,
- 110,116,78,40,15,0,0,0,117,6,0,0,0,95,115,101,
- 116,117,112,117,27,0,0,0,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,117,3,0,0,0,115,121,115,117,10,0,0,0,
- 112,97,116,104,95,104,111,111,107,115,117,6,0,0,0,101,
- 120,116,101,110,100,117,10,0,0,0,70,105,108,101,70,105,
- 110,100,101,114,117,9,0,0,0,112,97,116,104,95,104,111,
- 111,107,117,9,0,0,0,109,101,116,97,95,112,97,116,104,
- 117,6,0,0,0,97,112,112,101,110,100,117,15,0,0,0,
- 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,117,
- 14,0,0,0,70,114,111,122,101,110,73,109,112,111,114,116,
- 101,114,117,3,0,0,0,95,111,115,117,8,0,0,0,95,
- 95,110,97,109,101,95,95,117,21,0,0,0,87,105,110,100,
- 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,
- 114,117,10,0,0,0,80,97,116,104,70,105,110,100,101,114,
- 40,3,0,0,0,117,10,0,0,0,115,121,115,95,109,111,
- 100,117,108,101,117,11,0,0,0,95,105,109,112,95,109,111,
- 100,117,108,101,117,17,0,0,0,115,117,112,112,111,114,116,
- 101,100,95,108,111,97,100,101,114,115,40,0,0,0,0,40,
- 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
- 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
- 115,116,114,97,112,62,117,8,0,0,0,95,105,110,115,116,
- 97,108,108,233,6,0,0,115,16,0,0,0,0,2,13,1,
- 9,1,28,1,16,1,16,1,15,1,19,1,117,8,0,0,
- 0,95,105,110,115,116,97,108,108,78,40,3,0,0,0,117,
- 3,0,0,0,119,105,110,117,6,0,0,0,99,121,103,119,
- 105,110,117,6,0,0,0,100,97,114,119,105,110,40,74,0,
- 0,0,117,7,0,0,0,95,95,100,111,99,95,95,117,27,
- 0,0,0,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,117,16,
- 0,0,0,95,109,97,107,101,95,114,101,108,97,120,95,99,
- 97,115,101,117,7,0,0,0,95,119,95,108,111,110,103,117,
- 7,0,0,0,95,114,95,108,111,110,103,117,10,0,0,0,
- 95,112,97,116,104,95,106,111,105,110,117,11,0,0,0,95,
- 112,97,116,104,95,115,112,108,105,116,117,18,0,0,0,95,
- 112,97,116,104,95,105,115,95,109,111,100,101,95,116,121,112,
- 101,117,12,0,0,0,95,112,97,116,104,95,105,115,102,105,
- 108,101,117,11,0,0,0,95,112,97,116,104,95,105,115,100,
- 105,114,117,13,0,0,0,95,119,114,105,116,101,95,97,116,
- 111,109,105,99,117,5,0,0,0,95,119,114,97,112,117,4,
- 0,0,0,116,121,112,101,117,8,0,0,0,95,95,99,111,
- 100,101,95,95,117,10,0,0,0,95,99,111,100,101,95,116,
- 121,112,101,117,10,0,0,0,110,101,119,95,109,111,100,117,
- 108,101,117,13,0,0,0,95,109,111,100,117,108,101,95,108,
- 111,99,107,115,117,12,0,0,0,95,98,108,111,99,107,105,
- 110,103,95,111,110,117,12,0,0,0,82,117,110,116,105,109,
- 101,69,114,114,111,114,117,14,0,0,0,95,68,101,97,100,
- 108,111,99,107,69,114,114,111,114,117,11,0,0,0,95,77,
- 111,100,117,108,101,76,111,99,107,117,16,0,0,0,95,68,
- 117,109,109,121,77,111,100,117,108,101,76,111,99,107,117,16,
- 0,0,0,95,103,101,116,95,109,111,100,117,108,101,95,108,
- 111,99,107,117,19,0,0,0,95,108,111,99,107,95,117,110,
- 108,111,99,107,95,109,111,100,117,108,101,117,25,0,0,0,
- 95,99,97,108,108,95,119,105,116,104,95,102,114,97,109,101,
- 115,95,114,101,109,111,118,101,100,117,3,0,0,0,111,114,
- 100,117,17,0,0,0,95,82,65,87,95,77,65,71,73,67,
- 95,78,85,77,66,69,82,117,5,0,0,0,98,121,116,101,
- 115,117,5,0,0,0,114,97,110,103,101,117,12,0,0,0,
- 95,77,65,71,73,67,95,66,89,84,69,83,117,8,0,0,
- 0,95,80,89,67,65,67,72,69,117,15,0,0,0,83,79,
- 85,82,67,69,95,83,85,70,70,73,88,69,83,117,23,0,
- 0,0,68,69,66,85,71,95,66,89,84,69,67,79,68,69,
- 95,83,85,70,70,73,88,69,83,117,27,0,0,0,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,117,4,0,0,0,78,111,
- 110,101,117,17,0,0,0,99,97,99,104,101,95,102,114,111,
- 109,95,115,111,117,114,99,101,117,17,0,0,0,115,111,117,
- 114,99,101,95,102,114,111,109,95,99,97,99,104,101,117,15,
- 0,0,0,95,103,101,116,95,115,111,117,114,99,101,102,105,
- 108,101,117,16,0,0,0,95,118,101,114,98,111,115,101,95,
- 109,101,115,115,97,103,101,117,11,0,0,0,115,101,116,95,
- 112,97,99,107,97,103,101,117,10,0,0,0,115,101,116,95,
- 108,111,97,100,101,114,117,17,0,0,0,109,111,100,117,108,
- 101,95,102,111,114,95,108,111,97,100,101,114,117,11,0,0,
- 0,95,99,104,101,99,107,95,110,97,109,101,117,17,0,0,
- 0,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,
- 105,110,117,16,0,0,0,95,114,101,113,117,105,114,101,115,
- 95,102,114,111,122,101,110,117,17,0,0,0,95,102,105,110,
- 100,95,109,111,100,117,108,101,95,115,104,105,109,117,15,0,
- 0,0,66,117,105,108,116,105,110,73,109,112,111,114,116,101,
- 114,117,14,0,0,0,70,114,111,122,101,110,73,109,112,111,
- 114,116,101,114,117,21,0,0,0,87,105,110,100,111,119,115,
- 82,101,103,105,115,116,114,121,70,105,110,100,101,114,117,13,
- 0,0,0,95,76,111,97,100,101,114,66,97,115,105,99,115,
- 117,12,0,0,0,83,111,117,114,99,101,76,111,97,100,101,
- 114,117,10,0,0,0,70,105,108,101,76,111,97,100,101,114,
- 117,16,0,0,0,83,111,117,114,99,101,70,105,108,101,76,
- 111,97,100,101,114,117,20,0,0,0,83,111,117,114,99,101,
- 108,101,115,115,70,105,108,101,76,111,97,100,101,114,117,18,
- 0,0,0,69,88,84,69,78,83,73,79,78,95,83,85,70,
- 70,73,88,69,83,117,19,0,0,0,69,120,116,101,110,115,
- 105,111,110,70,105,108,101,76,111,97,100,101,114,117,14,0,
- 0,0,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
- 117,15,0,0,0,78,97,109,101,115,112,97,99,101,76,111,
- 97,100,101,114,117,10,0,0,0,80,97,116,104,70,105,110,
- 100,101,114,117,10,0,0,0,70,105,108,101,70,105,110,100,
- 101,114,117,18,0,0,0,95,73,109,112,111,114,116,76,111,
- 99,107,67,111,110,116,101,120,116,117,13,0,0,0,95,114,
- 101,115,111,108,118,101,95,110,97,109,101,117,12,0,0,0,
- 95,102,105,110,100,95,109,111,100,117,108,101,117,13,0,0,
- 0,95,115,97,110,105,116,121,95,99,104,101,99,107,117,8,
- 0,0,0,95,69,82,82,95,77,83,71,117,23,0,0,0,
- 95,102,105,110,100,95,97,110,100,95,108,111,97,100,95,117,
- 110,108,111,99,107,101,100,117,14,0,0,0,95,102,105,110,
- 100,95,97,110,100,95,108,111,97,100,117,11,0,0,0,95,
- 103,99,100,95,105,109,112,111,114,116,117,16,0,0,0,95,
- 104,97,110,100,108,101,95,102,114,111,109,108,105,115,116,117,
- 17,0,0,0,95,99,97,108,99,95,95,95,112,97,99,107,
- 97,103,101,95,95,117,27,0,0,0,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,117,10,0,0,0,95,95,105,109,112,111,
- 114,116,95,95,117,6,0,0,0,95,115,101,116,117,112,117,
- 8,0,0,0,95,105,110,115,116,97,108,108,40,0,0,0,
- 0,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
- 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
- 98,46,95,98,111,111,116,115,116,114,97,112,62,117,8,0,
- 0,0,60,109,111,100,117,108,101,62,8,0,0,0,115,132,
- 0,0,0,6,21,6,3,12,13,12,16,12,13,12,12,12,
- 12,12,10,12,6,12,7,15,22,12,8,15,3,12,12,6,
- 2,6,3,22,4,19,68,19,23,12,19,12,20,12,100,34,
- 1,37,2,6,2,9,2,9,1,9,2,15,27,12,23,12,
- 19,18,8,12,13,12,11,12,55,12,18,12,11,12,11,12,
- 17,19,57,19,54,19,50,19,83,22,134,19,29,25,49,25,
- 25,6,3,19,45,19,55,19,18,19,91,19,128,19,13,12,
- 9,12,17,12,17,6,2,12,50,12,13,18,24,12,34,12,
- 15,12,11,24,36,12,79,
+ 101,115,32,112,111,115,105,120,32,111,114,32,110,116,114,68,
+ 0,0,0,114,92,0,0,0,116,6,0,0,0,119,105,110,
+ 114,101,103,114,225,0,0,0,114,3,0,0,0,114,25,0,
+ 0,0,114,21,0,0,0,114,30,0,0,0,114,6,0,0,
+ 0,117,4,0,0,0,46,112,121,119,117,6,0,0,0,95,
+ 100,46,112,121,100,84,40,4,0,0,0,117,3,0,0,0,
+ 95,105,111,117,9,0,0,0,95,119,97,114,110,105,110,103,
+ 115,117,8,0,0,0,98,117,105,108,116,105,110,115,117,7,
+ 0,0,0,109,97,114,115,104,97,108,40,32,0,0,0,114,
+ 94,0,0,0,114,7,0,0,0,114,102,0,0,0,114,103,
+ 0,0,0,114,105,0,0,0,114,79,1,0,0,114,104,0,
+ 0,0,114,152,0,0,0,114,140,0,0,0,244,5,0,0,
+ 0,105,116,101,109,115,114,202,0,0,0,114,61,0,0,0,
+ 114,177,0,0,0,114,214,0,0,0,114,171,0,0,0,114,
+ 181,0,0,0,114,222,0,0,0,114,56,0,0,0,114,218,
+ 0,0,0,114,60,0,0,0,244,3,0,0,0,97,108,108,
+ 114,86,0,0,0,114,157,0,0,0,114,26,0,0,0,114,
+ 11,0,0,0,114,11,1,0,0,114,207,0,0,0,114,78,
+ 1,0,0,114,119,0,0,0,114,165,0,0,0,114,224,0,
+ 0,0,114,228,0,0,0,40,16,0,0,0,244,10,0,0,
+ 0,115,121,115,95,109,111,100,117,108,101,244,11,0,0,0,
+ 95,105,109,112,95,109,111,100,117,108,101,116,11,0,0,0,
+ 109,111,100,117,108,101,95,116,121,112,101,114,71,0,0,0,
+ 114,161,0,0,0,116,11,0,0,0,115,101,108,102,95,109,
+ 111,100,117,108,101,116,12,0,0,0,98,117,105,108,116,105,
+ 110,95,110,97,109,101,116,14,0,0,0,98,117,105,108,116,
+ 105,110,95,109,111,100,117,108,101,116,10,0,0,0,111,115,
+ 95,100,101,116,97,105,108,115,116,10,0,0,0,98,117,105,
+ 108,116,105,110,95,111,115,114,21,0,0,0,114,25,0,0,
+ 0,116,9,0,0,0,111,115,95,109,111,100,117,108,101,116,
+ 13,0,0,0,116,104,114,101,97,100,95,109,111,100,117,108,
+ 101,116,14,0,0,0,119,101,97,107,114,101,102,95,109,111,
+ 100,117,108,101,116,13,0,0,0,119,105,110,114,101,103,95,
+ 109,111,100,117,108,101,114,4,0,0,0,114,4,0,0,0,
+ 114,5,0,0,0,244,6,0,0,0,95,115,101,116,117,112,
+ 181,6,0,0,115,102,0,0,0,0,9,6,1,6,2,12,
+ 1,9,2,6,2,12,1,28,1,15,1,24,1,15,1,12,
+ 1,15,1,22,2,13,1,13,1,15,1,18,2,13,1,20,
+ 2,33,1,19,2,31,1,10,1,15,1,13,1,4,2,3,
+ 1,15,1,5,1,13,1,12,2,12,2,3,1,19,1,13,
+ 2,11,1,15,2,12,1,15,1,19,2,16,1,16,1,16,
+ 1,16,1,25,2,19,1,19,1,12,1,13,1,12,1,114,
+ 90,1,0,0,99,2,0,0,0,0,0,0,0,3,0,0,
+ 0,3,0,0,0,67,0,0,0,115,136,0,0,0,116,0,
+ 0,124,0,0,124,1,0,131,2,0,1,116,1,0,131,0,
+ 0,125,2,0,116,2,0,106,3,0,106,4,0,116,5,0,
+ 106,6,0,124,2,0,140,0,0,103,1,0,131,1,0,1,
+ 116,2,0,106,7,0,106,8,0,116,9,0,131,1,0,1,
+ 116,2,0,106,7,0,106,8,0,116,10,0,131,1,0,1,
+ 116,11,0,106,12,0,100,1,0,107,2,0,114,116,0,116,
+ 2,0,106,7,0,106,8,0,116,13,0,131,1,0,1,110,
+ 0,0,116,2,0,106,7,0,106,8,0,116,14,0,131,1,
+ 0,1,100,2,0,83,40,3,0,0,0,117,50,0,0,0,
+ 73,110,115,116,97,108,108,32,105,109,112,111,114,116,108,105,
+ 98,32,97,115,32,116,104,101,32,105,109,112,108,101,109,101,
+ 110,116,97,116,105,111,110,32,111,102,32,105,109,112,111,114,
+ 116,46,114,84,1,0,0,78,40,15,0,0,0,114,90,1,
+ 0,0,114,234,0,0,0,114,7,0,0,0,114,32,1,0,
+ 0,114,207,0,0,0,114,39,1,0,0,114,53,1,0,0,
+ 114,59,1,0,0,114,165,0,0,0,114,214,0,0,0,114,
+ 222,0,0,0,114,3,0,0,0,114,56,0,0,0,114,224,
+ 0,0,0,114,27,1,0,0,40,3,0,0,0,114,88,1,
+ 0,0,114,89,1,0,0,116,17,0,0,0,115,117,112,112,
+ 111,114,116,101,100,95,108,111,97,100,101,114,115,114,4,0,
+ 0,0,114,4,0,0,0,114,5,0,0,0,244,8,0,0,
+ 0,95,105,110,115,116,97,108,108,1,7,0,0,115,16,0,
+ 0,0,0,2,13,1,9,1,28,1,16,1,16,1,15,1,
+ 19,1,114,91,1,0,0,40,3,0,0,0,117,3,0,0,
+ 0,119,105,110,114,1,0,0,0,114,2,0,0,0,40,82,
+ 0,0,0,114,58,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,114,17,0,0,0,114,19,0,0,0,114,28,0,0,
+ 0,114,38,0,0,0,114,43,0,0,0,114,44,0,0,0,
+ 114,45,0,0,0,114,54,0,0,0,114,64,0,0,0,114,
+ 152,0,0,0,244,8,0,0,0,95,95,99,111,100,101,95,
+ 95,114,203,0,0,0,114,89,0,0,0,114,78,0,0,0,
+ 114,85,0,0,0,114,65,0,0,0,114,66,0,0,0,114,
+ 88,0,0,0,114,93,0,0,0,114,96,0,0,0,114,99,
+ 0,0,0,114,15,0,0,0,114,195,0,0,0,114,14,0,
+ 0,0,114,18,0,0,0,116,17,0,0,0,95,82,65,87,
+ 95,77,65,71,73,67,95,78,85,77,66,69,82,114,110,0,
+ 0,0,114,119,0,0,0,114,104,0,0,0,114,105,0,0,
+ 0,114,117,0,0,0,114,120,0,0,0,114,127,0,0,0,
+ 114,129,0,0,0,114,137,0,0,0,114,138,0,0,0,114,
+ 146,0,0,0,114,155,0,0,0,114,162,0,0,0,114,166,
+ 0,0,0,114,170,0,0,0,114,173,0,0,0,114,176,0,
+ 0,0,114,180,0,0,0,114,183,0,0,0,114,190,0,0,
+ 0,114,200,0,0,0,114,205,0,0,0,114,208,0,0,0,
+ 114,213,0,0,0,114,214,0,0,0,114,222,0,0,0,114,
+ 224,0,0,0,114,237,0,0,0,114,241,0,0,0,114,0,
+ 1,0,0,114,2,1,0,0,114,7,1,0,0,114,11,1,
+ 0,0,114,8,1,0,0,114,12,1,0,0,114,26,1,0,
+ 0,114,27,1,0,0,114,39,1,0,0,114,54,1,0,0,
+ 114,58,1,0,0,114,60,1,0,0,114,63,1,0,0,114,
+ 73,1,0,0,114,64,1,0,0,114,66,1,0,0,114,67,
+ 1,0,0,114,68,1,0,0,114,75,1,0,0,114,77,1,
+ 0,0,114,234,0,0,0,114,81,1,0,0,114,90,1,0,
+ 0,114,91,1,0,0,114,4,0,0,0,114,4,0,0,0,
+ 114,4,0,0,0,114,5,0,0,0,244,8,0,0,0,60,
+ 109,111,100,117,108,101,62,8,0,0,0,115,150,0,0,0,
+ 6,17,6,3,12,12,12,5,12,5,12,6,12,12,12,10,
+ 12,6,12,7,15,22,12,8,15,6,6,2,6,3,22,4,
+ 19,68,19,23,12,19,12,20,12,111,22,1,18,2,6,2,
+ 9,2,9,1,9,2,15,27,12,23,12,19,12,12,18,8,
+ 19,17,22,42,18,9,12,15,12,11,12,13,12,11,12,18,
+ 12,11,12,11,12,13,21,55,21,12,18,10,12,14,19,52,
+ 19,49,19,50,19,41,22,110,19,29,25,43,25,20,6,3,
+ 19,40,19,55,19,32,19,91,19,128,19,13,12,9,12,17,
+ 12,17,6,1,10,2,12,46,12,13,18,24,12,32,12,15,
+ 12,11,24,36,12,76,
};
diff --git a/Python/marshal.c b/Python/marshal.c
index a0e527f..1997e19 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -1,8 +1,10 @@
/* Write Python objects to files and read them back.
- This is intended for writing and reading compiled Python code only;
- a true persistent storage facility would be much harder, since
- it would have to take circular links and sharing into account. */
+ This is primarily intended for writing and reading compiled Python code,
+ even though dicts, lists, sets and frozensets, not commonly seen in
+ code objects, are supported.
+ Version 3 of this protocol properly supports circular links
+ and sharing. */
#define PY_SSIZE_T_CLEAN
@@ -31,16 +33,14 @@
#define TYPE_STOPITER 'S'
#define TYPE_ELLIPSIS '.'
#define TYPE_INT 'i'
-/* TYPE_INT64 is deprecated. It is not
- generated anymore, and support for reading it
- will be removed in Python 3.4. */
-#define TYPE_INT64 'I'
#define TYPE_FLOAT 'f'
#define TYPE_BINARY_FLOAT 'g'
#define TYPE_COMPLEX 'x'
#define TYPE_BINARY_COMPLEX 'y'
#define TYPE_LONG 'l'
#define TYPE_STRING 's'
+#define TYPE_INTERNED 't'
+#define TYPE_REF 'r'
#define TYPE_TUPLE '('
#define TYPE_LIST '['
#define TYPE_DICT '{'
@@ -49,6 +49,7 @@
#define TYPE_UNKNOWN '?'
#define TYPE_SET '<'
#define TYPE_FROZENSET '>'
+#define FLAG_REF '\x80' /* with a type, add obj to index */
#define WFERR_OK 0
#define WFERR_UNMARSHALLABLE 1
@@ -65,6 +66,7 @@ typedef struct {
PyObject *current_filename;
char *ptr;
char *end;
+ PyObject *refs; /* dict on marshal, list on unmarshal */
int version;
} WFILE;
@@ -158,13 +160,17 @@ w_pstring(const char *s, Py_ssize_t n, WFILE *p)
#endif
#define PyLong_MARSHAL_RATIO (PyLong_SHIFT / PyLong_MARSHAL_SHIFT)
+#define W_TYPE(t, p) do { \
+ w_byte((t) | flag, (p)); \
+} while(0)
+
static void
-w_PyLong(const PyLongObject *ob, WFILE *p)
+w_PyLong(const PyLongObject *ob, char flag, WFILE *p)
{
Py_ssize_t i, j, n, l;
digit d;
- w_byte(TYPE_LONG, p);
+ W_TYPE(TYPE_LONG, p);
if (Py_SIZE(ob) == 0) {
w_long((long)0, p);
return;
@@ -201,10 +207,64 @@ w_PyLong(const PyLongObject *ob, WFILE *p)
} while (d != 0);
}
+static int
+w_ref(PyObject *v, char *flag, WFILE *p)
+{
+ PyObject *id;
+ PyObject *idx;
+
+ if (p->version < 3 || p->refs == NULL)
+ return 0; /* not writing object references */
+
+ /* if it has only one reference, it definitely isn't shared */
+ if (Py_REFCNT(v) == 1)
+ return 0;
+
+ id = PyLong_FromVoidPtr((void*)v);
+ if (id == NULL)
+ goto err;
+ idx = PyDict_GetItem(p->refs, id);
+ if (idx != NULL) {
+ /* write the reference index to the stream */
+ long w = PyLong_AsLong(idx);
+ Py_DECREF(id);
+ if (w == -1 && PyErr_Occurred()) {
+ goto err;
+ }
+ /* we don't store "long" indices in the dict */
+ assert(0 <= w && w <= 0x7fffffff);
+ w_byte(TYPE_REF, p);
+ w_long(w, p);
+ return 1;
+ } else {
+ int ok;
+ Py_ssize_t s = PyDict_Size(p->refs);
+ /* we don't support long indices */
+ if (s >= 0x7fffffff) {
+ PyErr_SetString(PyExc_ValueError, "too many objects");
+ goto err;
+ }
+ idx = PyLong_FromSsize_t(s);
+ ok = idx && PyDict_SetItem(p->refs, id, idx) == 0;
+ Py_DECREF(id);
+ Py_XDECREF(idx);
+ if (!ok)
+ goto err;
+ *flag |= FLAG_REF;
+ return 0;
+ }
+err:
+ p->error = WFERR_UNMARSHALLABLE;
+ return 1;
+}
+
+static void
+w_complex_object(PyObject *v, char flag, WFILE *p);
+
static void
w_object(PyObject *v, WFILE *p)
{
- Py_ssize_t i, n;
+ char flag = '\0';
p->depth++;
@@ -229,24 +289,35 @@ w_object(PyObject *v, WFILE *p)
else if (v == Py_True) {
w_byte(TYPE_TRUE, p);
}
- else if (PyLong_CheckExact(v)) {
+ else if (!w_ref(v, &flag, p))
+ w_complex_object(v, flag, p);
+
+ p->depth--;
+}
+
+static void
+w_complex_object(PyObject *v, char flag, WFILE *p)
+{
+ Py_ssize_t i, n;
+
+ if (PyLong_CheckExact(v)) {
long x = PyLong_AsLong(v);
if ((x == -1) && PyErr_Occurred()) {
PyLongObject *ob = (PyLongObject *)v;
PyErr_Clear();
- w_PyLong(ob, p);
+ w_PyLong(ob, flag, p);
}
else {
#if SIZEOF_LONG > 4
long y = Py_ARITHMETIC_RIGHT_SHIFT(long, x, 31);
if (y && y != -1) {
/* Too large for TYPE_INT */
- w_PyLong((PyLongObject*)v, p);
+ w_PyLong((PyLongObject*)v, flag, p);
}
else
#endif
{
- w_byte(TYPE_INT, p);
+ W_TYPE(TYPE_INT, p);
w_long(x, p);
}
}
@@ -259,7 +330,7 @@ w_object(PyObject *v, WFILE *p)
p->error = WFERR_UNMARSHALLABLE;
return;
}
- w_byte(TYPE_BINARY_FLOAT, p);
+ W_TYPE(TYPE_BINARY_FLOAT, p);
w_string((char*)buf, 8, p);
}
else {
@@ -270,7 +341,7 @@ w_object(PyObject *v, WFILE *p)
return;
}
n = strlen(buf);
- w_byte(TYPE_FLOAT, p);
+ W_TYPE(TYPE_FLOAT, p);
w_byte((int)n, p);
w_string(buf, n, p);
PyMem_Free(buf);
@@ -284,7 +355,7 @@ w_object(PyObject *v, WFILE *p)
p->error = WFERR_UNMARSHALLABLE;
return;
}
- w_byte(TYPE_BINARY_COMPLEX, p);
+ W_TYPE(TYPE_BINARY_COMPLEX, p);
w_string((char*)buf, 8, p);
if (_PyFloat_Pack8(PyComplex_ImagAsDouble(v),
buf, 1) < 0) {
@@ -295,7 +366,7 @@ w_object(PyObject *v, WFILE *p)
}
else {
char *buf;
- w_byte(TYPE_COMPLEX, p);
+ W_TYPE(TYPE_COMPLEX, p);
buf = PyOS_double_to_string(PyComplex_RealAsDouble(v),
'g', 17, 0, NULL);
if (!buf) {
@@ -319,7 +390,7 @@ w_object(PyObject *v, WFILE *p)
}
}
else if (PyBytes_CheckExact(v)) {
- w_byte(TYPE_STRING, p);
+ W_TYPE(TYPE_STRING, p);
w_pstring(PyBytes_AS_STRING(v), PyBytes_GET_SIZE(v), p);
}
else if (PyUnicode_CheckExact(v)) {
@@ -330,12 +401,15 @@ w_object(PyObject *v, WFILE *p)
p->error = WFERR_UNMARSHALLABLE;
return;
}
- w_byte(TYPE_UNICODE, p);
+ if (p->version >= 3 && PyUnicode_CHECK_INTERNED(v))
+ W_TYPE(TYPE_INTERNED, p);
+ else
+ W_TYPE(TYPE_UNICODE, p);
w_pstring(PyBytes_AS_STRING(utf8), PyBytes_GET_SIZE(utf8), p);
Py_DECREF(utf8);
}
else if (PyTuple_CheckExact(v)) {
- w_byte(TYPE_TUPLE, p);
+ W_TYPE(TYPE_TUPLE, p);
n = PyTuple_Size(v);
W_SIZE(n, p);
for (i = 0; i < n; i++) {
@@ -343,7 +417,7 @@ w_object(PyObject *v, WFILE *p)
}
}
else if (PyList_CheckExact(v)) {
- w_byte(TYPE_LIST, p);
+ W_TYPE(TYPE_LIST, p);
n = PyList_GET_SIZE(v);
W_SIZE(n, p);
for (i = 0; i < n; i++) {
@@ -353,7 +427,7 @@ w_object(PyObject *v, WFILE *p)
else if (PyDict_CheckExact(v)) {
Py_ssize_t pos;
PyObject *key, *value;
- w_byte(TYPE_DICT, p);
+ W_TYPE(TYPE_DICT, p);
/* This one is NULL object terminated! */
pos = 0;
while (PyDict_Next(v, &pos, &key, &value)) {
@@ -366,9 +440,9 @@ w_object(PyObject *v, WFILE *p)
PyObject *value, *it;
if (PyObject_TypeCheck(v, &PySet_Type))
- w_byte(TYPE_SET, p);
+ W_TYPE(TYPE_SET, p);
else
- w_byte(TYPE_FROZENSET, p);
+ W_TYPE(TYPE_FROZENSET, p);
n = PyObject_Size(v);
if (n == -1) {
p->depth--;
@@ -395,7 +469,7 @@ w_object(PyObject *v, WFILE *p)
}
else if (PyCode_Check(v)) {
PyCodeObject *co = (PyCodeObject *)v;
- w_byte(TYPE_CODE, p);
+ W_TYPE(TYPE_CODE, p);
w_long(co->co_argcount, p);
w_long(co->co_kwonlyargcount, p);
w_long(co->co_nlocals, p);
@@ -421,15 +495,14 @@ w_object(PyObject *v, WFILE *p)
p->error = WFERR_UNMARSHALLABLE;
return;
}
- w_byte(TYPE_STRING, p);
+ W_TYPE(TYPE_STRING, p);
w_pstring(view.buf, view.len, p);
PyBuffer_Release(&view);
}
else {
- w_byte(TYPE_UNKNOWN, p);
+ W_TYPE(TYPE_UNKNOWN, p);
p->error = WFERR_UNMARSHALLABLE;
}
- p->depth--;
}
/* version currently has no effect for writing longs. */
@@ -440,6 +513,7 @@ PyMarshal_WriteLongToFile(long x, FILE *fp, int version)
wf.fp = fp;
wf.error = WFERR_OK;
wf.depth = 0;
+ wf.refs = NULL;
wf.version = version;
w_long(x, &wf);
}
@@ -451,8 +525,14 @@ PyMarshal_WriteObjectToFile(PyObject *x, FILE *fp, int version)
wf.fp = fp;
wf.error = WFERR_OK;
wf.depth = 0;
+ if (version >= 3) {
+ if ((wf.refs = PyDict_New()) == NULL)
+ return; /* caller mush check PyErr_Occurred() */
+ } else
+ wf.refs = NULL;
wf.version = version;
w_object(x, &wf);
+ Py_XDECREF(wf.refs);
}
typedef WFILE RFILE; /* Same struct with different invariants */
@@ -488,7 +568,7 @@ r_string(char *s, Py_ssize_t n, RFILE *p)
data->ob_type->tp_name);
}
else {
- read = PyBytes_GET_SIZE(data);
+ read = (int)PyBytes_GET_SIZE(data);
if (read > 0) {
if (read > n) {
PyErr_Format(PyExc_ValueError,
@@ -562,42 +642,6 @@ r_long(RFILE *p)
return x;
}
-/* r_long64 deals with the TYPE_INT64 code. On a machine with
- sizeof(long) > 4, it returns a Python int object, else a Python long
- object. Note that w_long64 writes out TYPE_INT if 32 bits is enough,
- so there's no inefficiency here in returning a PyLong on 32-bit boxes
- for everything written via TYPE_INT64 (i.e., if an int is written via
- TYPE_INT64, it *needs* more than 32 bits).
-*/
-static PyObject *
-r_long64(RFILE *p)
-{
- PyObject *result = NULL;
- long lo4 = r_long(p);
- long hi4 = r_long(p);
-
- if (!PyErr_Occurred()) {
-#if SIZEOF_LONG > 4
- long x = (hi4 << 32) | (lo4 & 0xFFFFFFFFL);
- result = PyLong_FromLong(x);
-#else
- unsigned char buf[8];
- int one = 1;
- int is_little_endian = (int)*(char*)&one;
- if (is_little_endian) {
- memcpy(buf, &lo4, 4);
- memcpy(buf+4, &hi4, 4);
- }
- else {
- memcpy(buf, &hi4, 4);
- memcpy(buf+4, &lo4, 4);
- }
- result = _PyLong_FromByteArray(buf, 8, is_little_endian, 1);
-#endif
- }
- return result;
-}
-
static PyObject *
r_PyLong(RFILE *p)
{
@@ -667,6 +711,62 @@ r_PyLong(RFILE *p)
return NULL;
}
+/* allocate the reflist index for a new object. Return -1 on failure */
+static Py_ssize_t
+r_ref_reserve(int flag, RFILE *p)
+{
+ if (flag) { /* currently only FLAG_REF is defined */
+ Py_ssize_t idx = PyList_Size(p->refs);
+ if (idx < 0)
+ return -1;
+ if (idx >= 0x7ffffffe) {
+ PyErr_SetString(PyExc_ValueError, "bad marshal data (index list too large)");
+ return -1;
+ }
+ if (PyList_Append(p->refs, Py_None) < 0)
+ return -1;
+ return idx;
+ } else
+ return 0;
+}
+
+/* insert the new object 'o' to the reflist at previously
+ * allocated index 'idx'.
+ * 'o' can be NULL, in which case nothing is done.
+ * if 'o' was non-NULL, and the function succeeds, 'o' is returned.
+ * if 'o' was non-NULL, and the function fails, 'o' is released and
+ * NULL returned. This simplifies error checking at the call site since
+ * a single test for NULL for the function result is enough.
+ */
+static PyObject *
+r_ref_insert(PyObject *o, Py_ssize_t idx, int flag, RFILE *p)
+{
+ if (o != NULL && flag) { /* currently only FLAG_REF is defined */
+ if (PyList_SetItem(p->refs, idx, o) < 0) {
+ Py_DECREF(o); /* release the new object */
+ return NULL;
+ } else {
+ Py_INCREF(o); /* a reference for the list */
+ }
+ }
+ return o;
+}
+
+/* combination of both above, used when an object can be
+ * created whenever it is seen in the file, as opposed to
+ * after having loaded its sub-objects.
+ */
+static PyObject *
+r_ref(PyObject *o, int flag, RFILE *p)
+{
+ if (o != NULL && flag) { /* currently only FLAG_REF is defined */
+ if (PyList_Append(p->refs, o) < 0) {
+ Py_DECREF(o); /* release the new object */
+ return NULL;
+ }
+ }
+ return o;
+}
static PyObject *
r_object(RFILE *p)
@@ -674,10 +774,18 @@ r_object(RFILE *p)
/* NULL is a valid return value, it does not necessarily means that
an exception is set. */
PyObject *v, *v2;
+ Py_ssize_t idx = 0;
long i, n;
- int type = r_byte(p);
+ int type, code = r_byte(p);
+ int flag;
PyObject *retval;
+ if (code == EOF) {
+ PyErr_SetString(PyExc_EOFError,
+ "EOF read where object expected");
+ return NULL;
+ }
+
p->depth++;
if (p->depth > MAX_MARSHAL_STACK_DEPTH) {
@@ -686,13 +794,15 @@ r_object(RFILE *p)
return NULL;
}
- switch (type) {
+ flag = code & FLAG_REF;
+ type = code & ~FLAG_REF;
- case EOF:
- PyErr_SetString(PyExc_EOFError,
- "EOF read where object expected");
- retval = NULL;
- break;
+#define R_REF(O) do{\
+ if (flag) \
+ O = r_ref(O, flag, p);\
+} while (0)
+
+ switch (type) {
case TYPE_NULL:
retval = NULL;
@@ -726,14 +836,12 @@ r_object(RFILE *p)
case TYPE_INT:
n = r_long(p);
retval = PyErr_Occurred() ? NULL : PyLong_FromLong(n);
- break;
-
- case TYPE_INT64:
- retval = r_long64(p);
+ R_REF(retval);
break;
case TYPE_LONG:
retval = r_PyLong(p);
+ R_REF(retval);
break;
case TYPE_FLOAT:
@@ -754,6 +862,7 @@ r_object(RFILE *p)
if (dx == -1.0 && PyErr_Occurred())
break;
retval = PyFloat_FromDouble(dx);
+ R_REF(retval);
break;
}
@@ -771,6 +880,7 @@ r_object(RFILE *p)
break;
}
retval = PyFloat_FromDouble(x);
+ R_REF(retval);
break;
}
@@ -804,6 +914,7 @@ r_object(RFILE *p)
if (c.imag == -1.0 && PyErr_Occurred())
break;
retval = PyComplex_FromCComplex(c);
+ R_REF(retval);
break;
}
@@ -830,6 +941,7 @@ r_object(RFILE *p)
break;
}
retval = PyComplex_FromCComplex(c);
+ R_REF(retval);
break;
}
@@ -855,9 +967,11 @@ r_object(RFILE *p)
break;
}
retval = v;
+ R_REF(retval);
break;
case TYPE_UNICODE:
+ case TYPE_INTERNED:
{
char *buffer;
@@ -871,19 +985,31 @@ r_object(RFILE *p)
retval = NULL;
break;
}
- buffer = PyMem_NEW(char, n);
- if (buffer == NULL) {
- retval = PyErr_NoMemory();
- break;
- }
- if (r_string(buffer, n, p) != n) {
+ if (n != 0) {
+ buffer = PyMem_NEW(char, n);
+ if (buffer == NULL) {
+ retval = PyErr_NoMemory();
+ break;
+ }
+ if (r_string(buffer, n, p) != n) {
+ PyMem_DEL(buffer);
+ retval = NULL;
+ break;
+ }
+ v = PyUnicode_DecodeUTF8(buffer, n, "surrogatepass");
PyMem_DEL(buffer);
+ }
+ else {
+ v = PyUnicode_New(0, 0);
+ }
+ if (v == NULL) {
retval = NULL;
break;
}
- v = PyUnicode_DecodeUTF8(buffer, n, "surrogatepass");
- PyMem_DEL(buffer);
+ if (type == TYPE_INTERNED)
+ PyUnicode_InternInPlace(&v);
retval = v;
+ R_REF(retval);
break;
}
@@ -899,6 +1025,7 @@ r_object(RFILE *p)
break;
}
v = PyTuple_New(n);
+ R_REF(v);
if (v == NULL) {
retval = NULL;
break;
@@ -930,6 +1057,7 @@ r_object(RFILE *p)
break;
}
v = PyList_New(n);
+ R_REF(v);
if (v == NULL) {
retval = NULL;
break;
@@ -951,6 +1079,7 @@ r_object(RFILE *p)
case TYPE_DICT:
v = PyDict_New();
+ R_REF(v);
if (v == NULL) {
retval = NULL;
break;
@@ -986,6 +1115,16 @@ r_object(RFILE *p)
break;
}
v = (type == TYPE_SET) ? PySet_New(NULL) : PyFrozenSet_New(NULL);
+ if (type == TYPE_SET) {
+ R_REF(v);
+ } else {
+ /* must use delayed registration of frozensets because they must
+ * be init with a refcount of 1
+ */
+ idx = r_ref_reserve(flag, p);
+ if (idx < 0)
+ Py_CLEAR(v); /* signal error */
+ }
if (v == NULL) {
retval = NULL;
break;
@@ -1008,6 +1147,8 @@ r_object(RFILE *p)
}
Py_DECREF(v2);
}
+ if (type != TYPE_SET)
+ v = r_ref_insert(v, idx, flag, p);
retval = v;
break;
@@ -1029,6 +1170,12 @@ r_object(RFILE *p)
int firstlineno;
PyObject *lnotab = NULL;
+ idx = r_ref_reserve(flag, p);
+ if (idx < 0) {
+ retval = NULL;
+ break;
+ }
+
v = NULL;
/* XXX ignore long->int overflows for now */
@@ -1094,6 +1241,7 @@ r_object(RFILE *p)
code, consts, names, varnames,
freevars, cellvars, filename, name,
firstlineno, lnotab);
+ v = r_ref_insert(v, idx, flag, p);
code_error:
Py_XDECREF(code);
@@ -1109,6 +1257,23 @@ r_object(RFILE *p)
retval = v;
break;
+ case TYPE_REF:
+ n = r_long(p);
+ if (n < 0 || n >= PyList_GET_SIZE(p->refs)) {
+ PyErr_SetString(PyExc_ValueError, "bad marshal data (invalid reference)");
+ retval = NULL;
+ break;
+ }
+ v = PyList_GET_ITEM(p->refs, n);
+ if (v == Py_None) {
+ PyErr_SetString(PyExc_ValueError, "bad marshal data (invalid reference)");
+ retval = NULL;
+ break;
+ }
+ Py_INCREF(v);
+ retval = v;
+ break;
+
default:
/* Bogus data got written, which isn't ideal.
This will let you keep working and recover. */
@@ -1214,7 +1379,11 @@ PyMarshal_ReadObjectFromFile(FILE *fp)
rf.current_filename = NULL;
rf.depth = 0;
rf.ptr = rf.end = NULL;
+ rf.refs = PyList_New(0);
+ if (rf.refs == NULL)
+ return NULL;
result = r_object(&rf);
+ Py_DECREF(rf.refs);
return result;
}
@@ -1229,7 +1398,11 @@ PyMarshal_ReadObjectFromString(char *str, Py_ssize_t len)
rf.ptr = str;
rf.end = str + len;
rf.depth = 0;
+ rf.refs = PyList_New(0);
+ if (rf.refs == NULL)
+ return NULL;
result = r_object(&rf);
+ Py_DECREF(rf.refs);
return result;
}
@@ -1248,7 +1421,13 @@ PyMarshal_WriteObjectToString(PyObject *x, int version)
wf.error = WFERR_OK;
wf.depth = 0;
wf.version = version;
+ if (version >= 3) {
+ if ((wf.refs = PyDict_New()) == NULL)
+ return NULL;
+ } else
+ wf.refs = NULL;
w_object(x, &wf);
+ Py_XDECREF(wf.refs);
if (wf.str != NULL) {
char *base = PyBytes_AS_STRING((PyBytesObject *)wf.str);
if (wf.ptr - base > PY_SSIZE_T_MAX) {
@@ -1320,6 +1499,8 @@ marshal_load(PyObject *self, PyObject *f)
* Make a call to the read method, but read zero bytes.
* This is to ensure that the object passed in at least
* has a read method which returns bytes.
+ * This can be removed if we guarantee good error handling
+ * for r_string()
*/
data = _PyObject_CallMethodId(f, &PyId_read, "i", 0);
if (data == NULL)
@@ -1335,7 +1516,11 @@ marshal_load(PyObject *self, PyObject *f)
rf.fp = NULL;
rf.readable = f;
rf.current_filename = NULL;
- result = read_object(&rf);
+ if ((rf.refs = PyList_New(0)) != NULL) {
+ result = read_object(&rf);
+ Py_DECREF(rf.refs);
+ } else
+ result = NULL;
}
Py_DECREF(data);
return result;
@@ -1392,8 +1577,11 @@ marshal_loads(PyObject *self, PyObject *args)
rf.ptr = s;
rf.end = s + n;
rf.depth = 0;
+ if ((rf.refs = PyList_New(0)) == NULL)
+ return NULL;
result = read_object(&rf);
PyBuffer_Release(&p);
+ Py_DECREF(rf.refs);
return result;
}
@@ -1433,6 +1621,7 @@ Variables:\n\
version -- indicates the format that the module uses. Version 0 is the\n\
historical format, version 1 shares interned strings and version 2\n\
uses a binary format for floating point numbers.\n\
+ Version 3 shares common object references (New in version 3.4).\n\
\n\
Functions:\n\
\n\
diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h
index 2d6bcda..f90a17a 100644
--- a/Python/opcode_targets.h
+++ b/Python/opcode_targets.h
@@ -68,7 +68,7 @@ static void *opcode_targets[256] = {
&&TARGET_BINARY_OR,
&&TARGET_INPLACE_POWER,
&&TARGET_GET_ITER,
- &&TARGET_STORE_LOCALS,
+ &&_unknown_opcode,
&&TARGET_PRINT_EXPR,
&&TARGET_LOAD_BUILD_CLASS,
&&TARGET_YIELD_FROM,
@@ -147,7 +147,7 @@ static void *opcode_targets[256] = {
&&TARGET_LIST_APPEND,
&&TARGET_SET_ADD,
&&TARGET_MAP_ADD,
- &&_unknown_opcode,
+ &&TARGET_LOAD_CLASSDEREF,
&&_unknown_opcode,
&&_unknown_opcode,
&&_unknown_opcode,
diff --git a/Python/peephole.c b/Python/peephole.c
index 5d53677..a49790a 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -327,37 +327,6 @@ markblocks(unsigned char *code, Py_ssize_t len)
return blocks;
}
-/* Helper to replace LOAD_NAME None/True/False with LOAD_CONST
- Returns: 0 if no change, 1 if change, -1 if error */
-static int
-load_global(unsigned char *codestr, Py_ssize_t i, char *name, PyObject *consts)
-{
- Py_ssize_t j;
- PyObject *obj;
- if (name == NULL)
- return 0;
- if (strcmp(name, "None") == 0)
- obj = Py_None;
- else if (strcmp(name, "True") == 0)
- obj = Py_True;
- else if (strcmp(name, "False") == 0)
- obj = Py_False;
- else
- return 0;
- for (j = 0; j < PyList_GET_SIZE(consts); j++) {
- if (PyList_GET_ITEM(consts, j) == obj)
- break;
- }
- if (j == PyList_GET_SIZE(consts)) {
- if (PyList_Append(consts, obj) < 0)
- return -1;
- }
- assert(PyList_GET_ITEM(consts, j) == obj);
- codestr[i] = LOAD_CONST;
- SETARG(codestr, i, j);
- return 1;
-}
-
/* Perform basic peephole optimizations to components of a code object.
The consts object should still be in list form to allow new constants
to be appended.
@@ -392,7 +361,6 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
Py_ssize_t const_stack_size = 0;
int in_consts = 0; /* whether we are in a LOAD_CONST sequence */
unsigned int *blocks = NULL;
- char *name;
/* Bail out if an exception is set */
if (PyErr_Occurred())
@@ -413,8 +381,10 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
/* Make a modifiable copy of the code string */
codestr = (unsigned char *)PyMem_Malloc(codelen);
- if (codestr == NULL)
+ if (codestr == NULL) {
+ PyErr_NoMemory();
goto exitError;
+ }
codestr = (unsigned char *)memcpy(codestr,
PyBytes_AS_STRING(code), codelen);
@@ -428,8 +398,10 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
/* Mapping to new jump targets after NOPs are removed */
addrmap = (int *)PyMem_Malloc(codelen * sizeof(int));
- if (addrmap == NULL)
+ if (addrmap == NULL) {
+ PyErr_NoMemory();
goto exitError;
+ }
blocks = markblocks(codestr, codelen);
if (blocks == NULL)
@@ -475,20 +447,6 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
codestr[i+3] = NOP;
break;
- /* Replace LOAD_GLOBAL/LOAD_NAME None/True/False
- with LOAD_CONST None/True/False */
- case LOAD_NAME:
- case LOAD_GLOBAL:
- j = GETARG(codestr, i);
- name = _PyUnicode_AsString(PyTuple_GET_ITEM(names, j));
- h = load_global(codestr, i, name, consts);
- if (h < 0)
- goto exitError;
- else if (h == 0)
- continue;
- CONST_STACK_PUSH_OP(i);
- break;
-
/* Skip over LOAD_CONST trueconst
POP_JUMP_IF_FALSE xx. This improves
"while 1" performance. */
diff --git a/Python/pyarena.c b/Python/pyarena.c
index 02a31d8..103603f 100644
--- a/Python/pyarena.c
+++ b/Python/pyarena.c
@@ -77,7 +77,7 @@ block_new(size_t size)
{
/* Allocate header and block as one unit.
ab_mem points just past header. */
- block *b = (block *)malloc(sizeof(block) + size);
+ block *b = (block *)PyMem_Malloc(sizeof(block) + size);
if (!b)
return NULL;
b->ab_size = size;
@@ -92,7 +92,7 @@ static void
block_free(block *b) {
while (b) {
block *next = b->ab_next;
- free(b);
+ PyMem_Free(b);
b = next;
}
}
@@ -127,20 +127,20 @@ block_alloc(block *b, size_t size)
PyArena *
PyArena_New()
{
- PyArena* arena = (PyArena *)malloc(sizeof(PyArena));
+ PyArena* arena = (PyArena *)PyMem_Malloc(sizeof(PyArena));
if (!arena)
return (PyArena*)PyErr_NoMemory();
arena->a_head = block_new(DEFAULT_BLOCK_SIZE);
arena->a_cur = arena->a_head;
if (!arena->a_head) {
- free((void *)arena);
+ PyMem_Free((void *)arena);
return (PyArena*)PyErr_NoMemory();
}
arena->a_objects = PyList_New(0);
if (!arena->a_objects) {
block_free(arena->a_head);
- free((void *)arena);
+ PyMem_Free((void *)arena);
return (PyArena*)PyErr_NoMemory();
}
#if defined(Py_DEBUG)
@@ -173,7 +173,7 @@ PyArena_Free(PyArena *arena)
*/
Py_DECREF(arena->a_objects);
- free(arena);
+ PyMem_Free(arena);
}
void *
diff --git a/Python/pystate.c b/Python/pystate.c
index 772aa53..40606bf 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -6,11 +6,11 @@
/* --------------------------------------------------------------------------
CAUTION
-Always use malloc() and free() directly in this file. A number of these
-functions are advertised as safe to call when the GIL isn't held, and in
-a debug build Python redirects (e.g.) PyMem_NEW (etc) to Python's debugging
-obmalloc functions. Those aren't thread-safe (they rely on the GIL to avoid
-the expense of doing their own locking).
+Always use PyMem_RawMalloc() and PyMem_RawFree() directly in this file. A
+number of these functions are advertised as safe to call when the GIL isn't
+held, and in a debug build Python redirects (e.g.) PyMem_NEW (etc) to Python's
+debugging obmalloc functions. Those aren't thread-safe (they rely on the GIL
+to avoid the expense of doing their own locking).
-------------------------------------------------------------------------- */
#ifdef HAVE_DLOPEN
@@ -60,7 +60,7 @@ PyInterpreterState *
PyInterpreterState_New(void)
{
PyInterpreterState *interp = (PyInterpreterState *)
- malloc(sizeof(PyInterpreterState));
+ PyMem_RawMalloc(sizeof(PyInterpreterState));
if (interp != NULL) {
HEAD_INIT();
@@ -148,7 +148,7 @@ PyInterpreterState_Delete(PyInterpreterState *interp)
Py_FatalError("PyInterpreterState_Delete: remaining threads");
*p = interp->next;
HEAD_UNLOCK();
- free(interp);
+ PyMem_RawFree(interp);
#ifdef WITH_THREAD
if (interp_head == NULL && head_mutex != NULL) {
PyThread_free_lock(head_mutex);
@@ -168,7 +168,7 @@ threadstate_getframe(PyThreadState *self)
static PyThreadState *
new_threadstate(PyInterpreterState *interp, int init)
{
- PyThreadState *tstate = (PyThreadState *)malloc(sizeof(PyThreadState));
+ PyThreadState *tstate = (PyThreadState *)PyMem_RawMalloc(sizeof(PyThreadState));
if (_PyThreadState_GetFrame == NULL)
_PyThreadState_GetFrame = threadstate_getframe;
@@ -213,7 +213,10 @@ new_threadstate(PyInterpreterState *interp, int init)
_PyThreadState_Init(tstate);
HEAD_LOCK();
+ tstate->prev = NULL;
tstate->next = interp->tstate_head;
+ if (tstate->next)
+ tstate->next->prev = tstate;
interp->tstate_head = tstate;
HEAD_UNLOCK();
}
@@ -349,37 +352,20 @@ static void
tstate_delete_common(PyThreadState *tstate)
{
PyInterpreterState *interp;
- PyThreadState **p;
- PyThreadState *prev_p = NULL;
if (tstate == NULL)
Py_FatalError("PyThreadState_Delete: NULL tstate");
interp = tstate->interp;
if (interp == NULL)
Py_FatalError("PyThreadState_Delete: NULL interp");
HEAD_LOCK();
- for (p = &interp->tstate_head; ; p = &(*p)->next) {
- if (*p == NULL)
- Py_FatalError(
- "PyThreadState_Delete: invalid tstate");
- if (*p == tstate)
- break;
- /* Sanity check. These states should never happen but if
- * they do we must abort. Otherwise we'll end up spinning in
- * in a tight loop with the lock held. A similar check is done
- * in thread.c find_key(). */
- if (*p == prev_p)
- Py_FatalError(
- "PyThreadState_Delete: small circular list(!)"
- " and tstate not found.");
- prev_p = *p;
- if ((*p)->next == interp->tstate_head)
- Py_FatalError(
- "PyThreadState_Delete: circular list(!) and"
- " tstate not found.");
- }
- *p = tstate->next;
+ if (tstate->prev)
+ tstate->prev->next = tstate->next;
+ else
+ interp->tstate_head = tstate->next;
+ if (tstate->next)
+ tstate->next->prev = tstate->prev;
HEAD_UNLOCK();
- free(tstate);
+ PyMem_RawFree(tstate);
}
@@ -414,6 +400,43 @@ PyThreadState_DeleteCurrent()
#endif /* WITH_THREAD */
+/*
+ * Delete all thread states except the one passed as argument.
+ * Note that, if there is a current thread state, it *must* be the one
+ * passed as argument. Also, this won't touch any other interpreters
+ * than the current one, since we don't know which thread state should
+ * be kept in those other interpreteres.
+ */
+void
+_PyThreadState_DeleteExcept(PyThreadState *tstate)
+{
+ PyInterpreterState *interp = tstate->interp;
+ PyThreadState *p, *next, *garbage;
+ HEAD_LOCK();
+ /* Remove all thread states, except tstate, from the linked list of
+ thread states. This will allow calling PyThreadState_Clear()
+ without holding the lock. */
+ garbage = interp->tstate_head;
+ if (garbage == tstate)
+ garbage = tstate->next;
+ if (tstate->prev)
+ tstate->prev->next = tstate->next;
+ if (tstate->next)
+ tstate->next->prev = tstate->prev;
+ tstate->prev = tstate->next = NULL;
+ interp->tstate_head = tstate;
+ HEAD_UNLOCK();
+ /* Clear and deallocate all stale thread states. Even if this
+ executes Python code, we should be safe since it executes
+ in the current thread, not one of the stale threads. */
+ for (p = garbage; p; p = next) {
+ next = p->next;
+ PyThreadState_Clear(p);
+ PyMem_RawFree(p);
+ }
+}
+
+
PyThreadState *
PyThreadState_Get(void)
{
@@ -697,6 +720,15 @@ PyGILState_GetThisThreadState(void)
return (PyThreadState *)PyThread_get_key_value(autoTLSkey);
}
+int
+PyGILState_Check(void)
+{
+ /* can't use PyThreadState_Get() since it will assert that it has the GIL */
+ PyThreadState *tstate = (PyThreadState*)_Py_atomic_load_relaxed(
+ &_PyThreadState_Current);
+ return tstate && (tstate == PyGILState_GetThisThreadState());
+}
+
PyGILState_STATE
PyGILState_Ensure(void)
{
diff --git a/Python/pystrtod.c b/Python/pystrtod.c
index 4ab8f08..f8d3b35 100644
--- a/Python/pystrtod.c
+++ b/Python/pystrtod.c
@@ -923,7 +923,7 @@ static char *uc_float_strings[] = {
static char *
format_float_short(double d, char format_code,
- int mode, Py_ssize_t precision,
+ int mode, int precision,
int always_add_sign, int add_dot_0_if_integer,
int use_alt_formatting, char **float_strings, int *type)
{
@@ -1059,7 +1059,7 @@ format_float_short(double d, char format_code,
/* if using an exponent, reset decimal point position to 1 and adjust
exponent accordingly.*/
if (use_exp) {
- exp = decpt - 1;
+ exp = (int)decpt - 1;
decpt = 1;
}
/* ensure vdigits_start < decpt <= vdigits_end, or vdigits_start <
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 9ef653b..18c2baa 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -35,12 +35,30 @@
#define PATH_MAX MAXPATHLEN
#endif
+#ifdef Py_REF_DEBUG
+static
+void _print_total_refs(void) {
+ PyObject *xoptions, *key, *value;
+ xoptions = PySys_GetXOptions();
+ if (xoptions == NULL)
+ return;
+ key = PyUnicode_FromString("showrefcount");
+ if (key == NULL)
+ return;
+ value = PyDict_GetItem(xoptions, key);
+ Py_DECREF(key);
+ if (value == Py_True)
+ fprintf(stderr,
+ "[%" PY_FORMAT_SIZE_T "d refs, "
+ "%" PY_FORMAT_SIZE_T "d blocks]\n",
+ _Py_GetRefTotal(), _Py_GetAllocatedBlocks());
+}
+#endif
+
#ifndef Py_REF_DEBUG
#define PRINT_TOTAL_REFS()
#else /* Py_REF_DEBUG */
-#define PRINT_TOTAL_REFS() fprintf(stderr, \
- "[%" PY_FORMAT_SIZE_T "d refs]\n", \
- _Py_GetRefTotal())
+#define PRINT_TOTAL_REFS() _print_total_refs()
#endif
#ifdef __cplusplus
@@ -68,6 +86,7 @@ static void call_py_exitfuncs(void);
static void wait_for_thread_shutdown(void);
static void call_ll_exitfuncs(void);
extern int _PyUnicode_Init(void);
+extern int _PyStructSequence_Init(void);
extern void _PyUnicode_Fini(void);
extern int _PyLong_Init(void);
extern void PyLong_Fini(void);
@@ -156,7 +175,7 @@ get_codec_name(const char *encoding)
name_utf8 = _PyUnicode_AsString(name);
if (name_utf8 == NULL)
goto error;
- name_str = strdup(name_utf8);
+ name_str = _PyMem_RawStrdup(name_utf8);
Py_DECREF(name);
if (name_str == NULL) {
PyErr_NoMemory();
@@ -309,7 +328,8 @@ _Py_InitializeEx_Private(int install_sigs, int install_importlib)
if (!PyByteArray_Init())
Py_FatalError("Py_Initialize: can't init bytearray");
- _PyFloat_Init();
+ if (!_PyFloat_Init())
+ Py_FatalError("Py_Initialize: can't init float");
interp->modules = PyDict_New();
if (interp->modules == NULL)
@@ -318,6 +338,8 @@ _Py_InitializeEx_Private(int install_sigs, int install_importlib)
/* Init Unicode implementation; relies on the codec registry */
if (_PyUnicode_Init() < 0)
Py_FatalError("Py_Initialize: can't initialize unicode");
+ if (_PyStructSequence_Init() < 0)
+ Py_FatalError("Py_Initialize: can't initialize structseq");
bimod = _PyBuiltin_Init();
if (bimod == NULL)
@@ -526,10 +548,6 @@ Py_Finalize(void)
while (PyGC_Collect() > 0)
/* nothing */;
#endif
- /* We run this while most interpreter state is still alive, so that
- debug information can be printed out */
- _PyGC_Fini();
-
/* Destroy all modules */
PyImport_Cleanup();
@@ -592,11 +610,6 @@ Py_Finalize(void)
_PyExc_Fini();
- /* Cleanup auto-thread-state */
-#ifdef WITH_THREAD
- _PyGILState_Fini();
-#endif /* WITH_THREAD */
-
/* Sundry finalizers */
PyMethod_Fini();
PyFrame_Fini();
@@ -610,17 +623,14 @@ Py_Finalize(void)
PyFloat_Fini();
PyDict_Fini();
PySlice_Fini();
+ _PyGC_Fini();
/* Cleanup Unicode implementation */
_PyUnicode_Fini();
- /* Delete current thread. After this, many C API calls become crashy. */
- PyThreadState_Swap(NULL);
- PyInterpreterState_Delete(interp);
-
/* reset file system default encoding */
if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) {
- free((char*)Py_FileSystemDefaultEncoding);
+ PyMem_RawFree((char*)Py_FileSystemDefaultEncoding);
Py_FileSystemDefaultEncoding = NULL;
}
@@ -632,6 +642,15 @@ Py_Finalize(void)
PyGrammar_RemoveAccelerators(&_PyParser_Grammar);
+ /* Cleanup auto-thread-state */
+#ifdef WITH_THREAD
+ _PyGILState_Fini();
+#endif /* WITH_THREAD */
+
+ /* Delete current thread. After this, many C API calls become crashy. */
+ PyThreadState_Swap(NULL);
+ PyInterpreterState_Delete(interp);
+
#ifdef Py_TRACE_REFS
/* Display addresses (& refcnts) of all objects still alive.
* An address can be used to find the repr of the object, printed
@@ -827,7 +846,7 @@ Py_GetPythonHome(void)
static void
initmain(PyInterpreterState *interp)
{
- PyObject *m, *d;
+ PyObject *m, *d, *loader;
m = PyImport_AddModule("__main__");
if (m == NULL)
Py_FatalError("can't create __main__ module");
@@ -848,7 +867,8 @@ initmain(PyInterpreterState *interp)
* be set if __main__ gets further initialized later in the startup
* process.
*/
- if (PyDict_GetItemString(d, "__loader__") == NULL) {
+ loader = PyDict_GetItemString(d, "__loader__");
+ if (loader == NULL || loader == Py_None) {
PyObject *loader = PyObject_GetAttrString(interp->importlib,
"BuiltinImporter");
if (loader == NULL) {
@@ -898,6 +918,7 @@ initsite(void)
PyObject *m;
m = PyImport_ImportModule("site");
if (m == NULL) {
+ fprintf(stderr, "Failed to import the site module\n");
PyErr_Print();
Py_Finalize();
exit(1);
@@ -1065,7 +1086,11 @@ initstdio(void)
encoding = Py_GETENV("PYTHONIOENCODING");
errors = NULL;
if (encoding) {
- encoding = strdup(encoding);
+ encoding = _PyMem_Strdup(encoding);
+ if (encoding == NULL) {
+ PyErr_NoMemory();
+ goto error;
+ }
errors = strchr(encoding, ':');
if (errors) {
*errors = '\0';
@@ -1124,18 +1149,24 @@ initstdio(void)
when import.c tries to write to stderr in verbose mode. */
encoding_attr = PyObject_GetAttrString(std, "encoding");
if (encoding_attr != NULL) {
- const char * encoding;
- encoding = _PyUnicode_AsString(encoding_attr);
- if (encoding != NULL) {
- PyObject *codec_info = _PyCodec_Lookup(encoding);
+ const char * std_encoding;
+ std_encoding = _PyUnicode_AsString(encoding_attr);
+ if (std_encoding != NULL) {
+ PyObject *codec_info = _PyCodec_Lookup(std_encoding);
Py_XDECREF(codec_info);
}
Py_DECREF(encoding_attr);
}
PyErr_Clear(); /* Not a fatal error if codec isn't available */
- PySys_SetObject("__stderr__", std);
- PySys_SetObject("stderr", std);
+ if (PySys_SetObject("__stderr__", std) < 0) {
+ Py_DECREF(std);
+ goto error;
+ }
+ if (PySys_SetObject("stderr", std) < 0) {
+ Py_DECREF(std);
+ goto error;
+ }
Py_DECREF(std);
#endif
@@ -1144,8 +1175,7 @@ initstdio(void)
status = -1;
}
- if (encoding)
- free(encoding);
+ PyMem_Free(encoding);
Py_XDECREF(bimod);
Py_XDECREF(iomod);
return status;
@@ -2459,6 +2489,9 @@ initsigs(void)
PyOS_setsig(SIGXFSZ, SIG_IGN);
#endif
PyOS_InitInterrupts(); /* May imply initsignal() */
+ if (PyErr_Occurred()) {
+ Py_FatalError("Py_Initialize: can't import signal");
+ }
}
diff --git a/Python/random.c b/Python/random.c
index 53518c2..1ad4c3d 100644
--- a/Python/random.c
+++ b/Python/random.c
@@ -12,13 +12,6 @@ static int _Py_HashSecret_Initialized = 0;
#endif
#ifdef MS_WINDOWS
-typedef BOOL (WINAPI *CRYPTACQUIRECONTEXTA)(HCRYPTPROV *phProv,\
- LPCSTR pszContainer, LPCSTR pszProvider, DWORD dwProvType,\
- DWORD dwFlags );
-typedef BOOL (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV hProv, DWORD dwLen,\
- BYTE *pbBuffer );
-
-static CRYPTGENRANDOM pCryptGenRandom = NULL;
/* This handle is never explicitly released. Instead, the operating
system will release it when the process terminates. */
static HCRYPTPROV hCryptProv = 0;
@@ -26,29 +19,9 @@ static HCRYPTPROV hCryptProv = 0;
static int
win32_urandom_init(int raise)
{
- HINSTANCE hAdvAPI32 = NULL;
- CRYPTACQUIRECONTEXTA pCryptAcquireContext = NULL;
-
- /* Obtain handle to the DLL containing CryptoAPI. This should not fail. */
- hAdvAPI32 = GetModuleHandle("advapi32.dll");
- if(hAdvAPI32 == NULL)
- goto error;
-
- /* Obtain pointers to the CryptoAPI functions. This will fail on some early
- versions of Win95. */
- pCryptAcquireContext = (CRYPTACQUIRECONTEXTA)GetProcAddress(
- hAdvAPI32, "CryptAcquireContextA");
- if (pCryptAcquireContext == NULL)
- goto error;
-
- pCryptGenRandom = (CRYPTGENRANDOM)GetProcAddress(hAdvAPI32,
- "CryptGenRandom");
- if (pCryptGenRandom == NULL)
- goto error;
-
/* Acquire context */
- if (! pCryptAcquireContext(&hCryptProv, NULL, NULL,
- PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
+ if (!CryptAcquireContext(&hCryptProv, NULL, NULL,
+ PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
goto error;
return 0;
@@ -77,7 +50,7 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
while (size > 0)
{
chunk = size > INT_MAX ? INT_MAX : size;
- if (!pCryptGenRandom(hCryptProv, chunk, buffer))
+ if (!CryptGenRandom(hCryptProv, chunk, buffer))
{
/* CryptGenRandom() failed */
if (raise)
diff --git a/Python/symtable.c b/Python/symtable.c
index 48495f7..183bf69 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -37,24 +37,14 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty block,
ste->ste_table = st;
ste->ste_id = k; /* ste owns reference to k */
- ste->ste_name = name;
Py_INCREF(name);
+ ste->ste_name = name;
ste->ste_symbols = NULL;
ste->ste_varnames = NULL;
ste->ste_children = NULL;
- ste->ste_symbols = PyDict_New();
- if (ste->ste_symbols == NULL)
- goto fail;
-
- ste->ste_varnames = PyList_New(0);
- if (ste->ste_varnames == NULL)
- goto fail;
-
- ste->ste_children = PyList_New(0);
- if (ste->ste_children == NULL)
- goto fail;
+ ste->ste_directives = NULL;
ste->ste_type = block;
ste->ste_unoptimized = 0;
@@ -75,6 +65,15 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty block,
ste->ste_child_free = 0;
ste->ste_generator = 0;
ste->ste_returns_value = 0;
+ ste->ste_needs_class_closure = 0;
+
+ ste->ste_symbols = PyDict_New();
+ ste->ste_varnames = PyList_New(0);
+ ste->ste_children = PyList_New(0);
+ if (ste->ste_symbols == NULL
+ || ste->ste_varnames == NULL
+ || ste->ste_children == NULL)
+ goto fail;
if (PyDict_SetItem(st->st_blocks, ste->ste_id, (PyObject *)ste) < 0)
goto fail;
@@ -102,6 +101,7 @@ ste_dealloc(PySTEntryObject *ste)
Py_XDECREF(ste->ste_symbols);
Py_XDECREF(ste->ste_varnames);
Py_XDECREF(ste->ste_children);
+ Py_XDECREF(ste->ste_directives);
PyObject_Del(ste);
}
@@ -188,7 +188,7 @@ static int symtable_visit_withitem(struct symtable *st, withitem_ty item);
static identifier top = NULL, lambda = NULL, genexpr = NULL,
listcomp = NULL, setcomp = NULL, dictcomp = NULL,
- __class__ = NULL, __locals__ = NULL;
+ __class__ = NULL;
#define GET_IDENTIFIER(VAR) \
((VAR) ? (VAR) : ((VAR) = PyUnicode_InternFromString(# VAR)))
@@ -342,6 +342,24 @@ PyST_GetScope(PySTEntryObject *ste, PyObject *name)
return (PyLong_AS_LONG(v) >> SCOPE_OFFSET) & SCOPE_MASK;
}
+static int
+error_at_directive(PySTEntryObject *ste, PyObject *name)
+{
+ Py_ssize_t i;
+ PyObject *data;
+ assert(ste->ste_directives);
+ for (i = 0; ; i++) {
+ data = PyList_GET_ITEM(ste->ste_directives, i);
+ assert(PyTuple_CheckExact(data));
+ if (PyTuple_GET_ITEM(data, 0) == name)
+ break;
+ }
+ PyErr_SyntaxLocationEx(ste->ste_table->st_filename,
+ PyLong_AsLong(PyTuple_GET_ITEM(data, 1)),
+ PyLong_AsLong(PyTuple_GET_ITEM(data, 2)));
+ return 0;
+}
+
/* Analyze raw symbol information to determine scope of each name.
@@ -416,16 +434,13 @@ analyze_name(PySTEntryObject *ste, PyObject *scopes, PyObject *name, long flags,
PyErr_Format(PyExc_SyntaxError,
"name '%U' is parameter and global",
name);
- PyErr_SyntaxLocationEx(ste->ste_table->st_filename,
- ste->ste_lineno, ste->ste_col_offset);
-
- return 0;
+ return error_at_directive(ste, name);
}
if (flags & DEF_NONLOCAL) {
PyErr_Format(PyExc_SyntaxError,
"name '%U' is nonlocal and global",
name);
- return 0;
+ return error_at_directive(ste, name);
}
SET_SCOPE(scopes, name, GLOBAL_EXPLICIT);
if (PySet_Add(global, name) < 0)
@@ -439,19 +454,19 @@ analyze_name(PySTEntryObject *ste, PyObject *scopes, PyObject *name, long flags,
PyErr_Format(PyExc_SyntaxError,
"name '%U' is parameter and nonlocal",
name);
- return 0;
+ return error_at_directive(ste, name);
}
if (!bound) {
PyErr_Format(PyExc_SyntaxError,
"nonlocal declaration not allowed at module level");
- return 0;
+ return error_at_directive(ste, name);
}
if (!PySet_Contains(bound, name)) {
PyErr_Format(PyExc_SyntaxError,
"no binding for nonlocal '%U' found",
name);
- return 0;
+ return error_at_directive(ste, name);
}
SET_SCOPE(scopes, name, FREE);
ste->ste_free = 1;
@@ -496,13 +511,10 @@ analyze_name(PySTEntryObject *ste, PyObject *scopes, PyObject *name, long flags,
Note that the current block's free variables are included in free.
That's safe because no name can be free and local in the same scope.
-
- The 'restricted' argument may be set to a string to restrict the analysis
- to the one variable whose name equals that string (e.g. "__class__").
*/
static int
-analyze_cells(PyObject *scopes, PyObject *free, const char *restricted)
+analyze_cells(PyObject *scopes, PyObject *free)
{
PyObject *name, *v, *v_cell;
int success = 0;
@@ -519,9 +531,6 @@ analyze_cells(PyObject *scopes, PyObject *free, const char *restricted)
continue;
if (!PySet_Contains(free, name))
continue;
- if (restricted != NULL &&
- PyUnicode_CompareWithASCIIString(name, restricted))
- continue;
/* Replace LOCAL with CELL for this name, and remove
from free. It is safe to replace the value of name
in the dict, because it will not cause a resize.
@@ -537,6 +546,20 @@ analyze_cells(PyObject *scopes, PyObject *free, const char *restricted)
return success;
}
+static int
+drop_class_free(PySTEntryObject *ste, PyObject *free)
+{
+ int res;
+ if (!GET_IDENTIFIER(__class__))
+ return 0;
+ res = PySet_Discard(free, __class__);
+ if (res < 0)
+ return 0;
+ if (res)
+ ste->ste_needs_class_closure = 1;
+ return 1;
+}
+
/* Check for illegal statements in unoptimized namespaces */
static int
check_unoptimized(const PySTEntryObject* ste) {
@@ -767,7 +790,6 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free,
/* Special-case __class__ */
if (!GET_IDENTIFIER(__class__))
goto error;
- assert(PySet_Contains(local, __class__) == 1);
if (PySet_Add(newbound, __class__) < 0)
goto error;
}
@@ -800,11 +822,9 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free,
Py_DECREF(temp);
/* Check if any local variables must be converted to cell variables */
- if (ste->ste_type == FunctionBlock && !analyze_cells(scopes, newfree,
- NULL))
+ if (ste->ste_type == FunctionBlock && !analyze_cells(scopes, newfree))
goto error;
- else if (ste->ste_type == ClassBlock && !analyze_cells(scopes, newfree,
- "__class__"))
+ else if (ste->ste_type == ClassBlock && !drop_class_free(ste, newfree))
goto error;
/* Records the results of the analysis in the symbol table entry */
if (!update_symbols(ste->ste_symbols, scopes, bound, newfree,
@@ -1098,6 +1118,25 @@ symtable_new_tmpname(struct symtable *st)
static int
+symtable_record_directive(struct symtable *st, identifier name, stmt_ty s)
+{
+ PyObject *data;
+ int res;
+ if (!st->st_cur->ste_directives) {
+ st->st_cur->ste_directives = PyList_New(0);
+ if (!st->st_cur->ste_directives)
+ return 0;
+ }
+ data = Py_BuildValue("(Oii)", name, s->lineno, s->col_offset);
+ if (!data)
+ return 0;
+ res = PyList_Append(st->st_cur->ste_directives, data);
+ Py_DECREF(data);
+ return res == 0;
+}
+
+
+static int
symtable_visit_stmt(struct symtable *st, stmt_ty s)
{
if (++st->recursion_depth > st->recursion_limit) {
@@ -1142,13 +1181,6 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
if (!symtable_enter_block(st, s->v.ClassDef.name, ClassBlock,
(void *)s, s->lineno, s->col_offset))
VISIT_QUIT(st, 0);
- if (!GET_IDENTIFIER(__class__) ||
- !symtable_add_def(st, __class__, DEF_LOCAL) ||
- !GET_IDENTIFIER(__locals__) ||
- !symtable_add_def(st, __locals__, DEF_PARAM)) {
- symtable_exit_block(st, s);
- VISIT_QUIT(st, 0);
- }
tmp = st->st_private;
st->st_private = s->v.ClassDef.name;
VISIT_SEQ(st, stmt, s->v.ClassDef.body);
@@ -1236,14 +1268,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
asdl_seq *seq = s->v.Global.names;
for (i = 0; i < asdl_seq_LEN(seq); i++) {
identifier name = (identifier)asdl_seq_GET(seq, i);
- long cur;
- if (st->st_cur->ste_type == ClassBlock &&
- !PyUnicode_CompareWithASCIIString(name, "__class__")) {
- PyErr_SetString(PyExc_SyntaxError, "cannot make __class__ global");
- PyErr_SyntaxLocationEx(st->st_filename, s->lineno, s->col_offset);
- return 0;
- }
- cur = symtable_lookup(st, name);
+ long cur = symtable_lookup(st, name);
if (cur < 0)
VISIT_QUIT(st, 0);
if (cur & (DEF_LOCAL | USE)) {
@@ -1264,6 +1289,8 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
}
if (!symtable_add_def(st, name, DEF_GLOBAL))
VISIT_QUIT(st, 0);
+ if (!symtable_record_directive(st, name, s))
+ VISIT_QUIT(st, 0);
}
break;
}
@@ -1293,6 +1320,8 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
}
if (!symtable_add_def(st, name, DEF_NONLOCAL))
VISIT_QUIT(st, 0);
+ if (!symtable_record_directive(st, name, s))
+ VISIT_QUIT(st, 0);
}
break;
}
@@ -1403,6 +1432,7 @@ symtable_visit_expr(struct symtable *st, expr_ty e)
case Str_kind:
case Bytes_kind:
case Ellipsis_kind:
+ case NameConstant_kind:
/* Nothing to do here. */
break;
/* The following exprs can be assignment targets. */
@@ -1495,10 +1525,10 @@ symtable_visit_annotations(struct symtable *st, stmt_ty s)
if (a->args && !symtable_visit_argannotations(st, a->args))
return 0;
- if (a->varargannotation)
- VISIT(st, expr, a->varargannotation);
- if (a->kwargannotation)
- VISIT(st, expr, a->kwargannotation);
+ if (a->vararg && a->vararg->annotation)
+ VISIT(st, expr, a->vararg->annotation);
+ if (a->kwarg && a->kwarg->annotation)
+ VISIT(st, expr, a->kwarg->annotation);
if (a->kwonlyargs && !symtable_visit_argannotations(st, a->kwonlyargs))
return 0;
if (s->v.FunctionDef.returns)
@@ -1517,12 +1547,12 @@ symtable_visit_arguments(struct symtable *st, arguments_ty a)
if (a->kwonlyargs && !symtable_visit_params(st, a->kwonlyargs))
return 0;
if (a->vararg) {
- if (!symtable_add_def(st, a->vararg, DEF_PARAM))
+ if (!symtable_add_def(st, a->vararg->arg, DEF_PARAM))
return 0;
st->st_cur->ste_varargs = 1;
}
if (a->kwarg) {
- if (!symtable_add_def(st, a->kwarg, DEF_PARAM))
+ if (!symtable_add_def(st, a->kwarg->arg, DEF_PARAM))
return 0;
st->st_cur->ste_varkeywords = 1;
}
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index edd6649..754bcfe 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -774,7 +774,7 @@ Set the flags used by the interpreter for dlopen calls, such as when the\n\
interpreter loads extension modules. Among other things, this will enable\n\
a lazy resolving of symbols when importing a module, if called as\n\
sys.setdlopenflags(0). To share symbols across extension modules, call as\n\
-sys.setdlopenflags(ctypes.RTLD_GLOBAL). Symbolic names for the flag modules\n\
+sys.setdlopenflags(os.RTLD_GLOBAL). Symbolic names for the flag modules\n\
can be found in the os module (RTLD_xxx constants, e.g. os.RTLD_LAZY).");
static PyObject *
@@ -790,7 +790,7 @@ PyDoc_STRVAR(getdlopenflags_doc,
"getdlopenflags() -> int\n\
\n\
Return the current value of the flags that are used for dlopen calls.\n\
-The flag constants are defined in the ctypes and DLFCN modules.");
+The flag constants are defined in the os module.");
#endif /* HAVE_DLOPEN */
@@ -894,6 +894,19 @@ one higher than you might expect, because it includes the (temporary)\n\
reference as an argument to getrefcount()."
);
+static PyObject *
+sys_getallocatedblocks(PyObject *self)
+{
+ return PyLong_FromSsize_t(_Py_GetAllocatedBlocks());
+}
+
+PyDoc_STRVAR(getallocatedblocks_doc,
+"getallocatedblocks() -> integer\n\
+\n\
+Return the number of memory blocks currently allocated, regardless of their\n\
+size."
+);
+
#ifdef COUNT_ALLOCS
static PyObject *
sys_getcounts(PyObject *self)
@@ -1062,6 +1075,8 @@ static PyMethodDef sys_methods[] = {
{"getdlopenflags", (PyCFunction)sys_getdlopenflags, METH_NOARGS,
getdlopenflags_doc},
#endif
+ {"getallocatedblocks", (PyCFunction)sys_getallocatedblocks, METH_NOARGS,
+ getallocatedblocks_doc},
#ifdef COUNT_ALLOCS
{"getcounts", (PyCFunction)sys_getcounts, METH_NOARGS},
#endif
@@ -1349,9 +1364,6 @@ static PyStructSequence_Field flags_fields[] = {
{"no_site", "-S"},
{"ignore_environment", "-E"},
{"verbose", "-v"},
-#ifdef RISCOS
- {"riscos_wimp", "???"},
-#endif
/* {"unbuffered", "-u"}, */
/* {"skip_first", "-x"}, */
{"bytes_warning", "-b"},
@@ -1364,11 +1376,7 @@ static PyStructSequence_Desc flags_desc = {
"sys.flags", /* name */
flags__doc__, /* doc */
flags_fields, /* fields */
-#ifdef RISCOS
- 13
-#else
12
-#endif
};
static PyObject*
@@ -1393,9 +1401,6 @@ make_flags(void)
SetFlag(Py_NoSiteFlag);
SetFlag(Py_IgnoreEnvironmentFlag);
SetFlag(Py_VerboseFlag);
-#ifdef RISCOS
- SetFlag(Py_RISCOSWimpFlag);
-#endif
/* SetFlag(saw_unbuffered_flag); */
/* SetFlag(skipfirstline); */
SetFlag(Py_BytesWarningFlag);
@@ -1560,18 +1565,24 @@ static struct PyModuleDef sysmodule = {
PyObject *
_PySys_Init(void)
{
- PyObject *m, *v, *sysdict, *version_info;
- char *s;
+ PyObject *m, *sysdict, *version_info;
m = PyModule_Create(&sysmodule);
if (m == NULL)
return NULL;
sysdict = PyModule_GetDict(m);
-#define SET_SYS_FROM_STRING(key, value) \
- v = value; \
- if (v != NULL) \
- PyDict_SetItemString(sysdict, key, v); \
- Py_XDECREF(v)
+#define SET_SYS_FROM_STRING(key, value) \
+ do { \
+ int res; \
+ PyObject *v = (value); \
+ if (v == NULL) \
+ return NULL; \
+ res = PyDict_SetItemString(sysdict, key, v); \
+ if (res < 0) { \
+ Py_DECREF(v); \
+ return NULL; \
+ } \
+ } while (0)
/* Check that stdin is not a directory
Using shell redirection, you can redirect stdin to a directory,
@@ -1593,10 +1604,10 @@ _PySys_Init(void)
/* stdin/stdout/stderr are now set by pythonrun.c */
- PyDict_SetItemString(sysdict, "__displayhook__",
- PyDict_GetItemString(sysdict, "displayhook"));
- PyDict_SetItemString(sysdict, "__excepthook__",
- PyDict_GetItemString(sysdict, "excepthook"));
+ SET_SYS_FROM_STRING("__displayhook__",
+ PyDict_GetItemString(sysdict, "displayhook"));
+ SET_SYS_FROM_STRING("__excepthook__",
+ PyDict_GetItemString(sysdict, "excepthook"));
SET_SYS_FROM_STRING("version",
PyUnicode_FromString(Py_GetVersion()));
SET_SYS_FROM_STRING("hexversion",
@@ -1630,28 +1641,24 @@ _PySys_Init(void)
SET_SYS_FROM_STRING("int_info",
PyLong_GetInfo());
/* initialize hash_info */
- if (Hash_InfoType.tp_name == 0)
- PyStructSequence_InitType(&Hash_InfoType, &hash_info_desc);
+ if (Hash_InfoType.tp_name == NULL) {
+ if (PyStructSequence_InitType2(&Hash_InfoType, &hash_info_desc) < 0)
+ return NULL;
+ }
SET_SYS_FROM_STRING("hash_info",
get_hash_info());
SET_SYS_FROM_STRING("maxunicode",
PyLong_FromLong(0x10FFFF));
SET_SYS_FROM_STRING("builtin_module_names",
list_builtin_module_names());
- {
- /* Assumes that longs are at least 2 bytes long.
- Should be safe! */
- unsigned long number = 1;
- char *value;
-
- s = (char *) &number;
- if (s[0] == 0)
- value = "big";
- else
- value = "little";
- SET_SYS_FROM_STRING("byteorder",
- PyUnicode_FromString(value));
- }
+#if PY_BIG_ENDIAN
+ SET_SYS_FROM_STRING("byteorder",
+ PyUnicode_FromString("big"));
+#else
+ SET_SYS_FROM_STRING("byteorder",
+ PyUnicode_FromString("little"));
+#endif
+
#ifdef MS_COREDLL
SET_SYS_FROM_STRING("dllhandle",
PyLong_FromVoidPtr(PyWin_DLLhModule));
@@ -1664,22 +1671,22 @@ _PySys_Init(void)
#endif
if (warnoptions == NULL) {
warnoptions = PyList_New(0);
+ if (warnoptions == NULL)
+ return NULL;
}
else {
Py_INCREF(warnoptions);
}
- if (warnoptions != NULL) {
- PyDict_SetItemString(sysdict, "warnoptions", warnoptions);
- }
+ SET_SYS_FROM_STRING("warnoptions", warnoptions);
- v = get_xoptions();
- if (v != NULL) {
- PyDict_SetItemString(sysdict, "_xoptions", v);
- }
+ SET_SYS_FROM_STRING("_xoptions", get_xoptions());
/* version_info */
- if (VersionInfoType.tp_name == 0)
- PyStructSequence_InitType(&VersionInfoType, &version_info_desc);
+ if (VersionInfoType.tp_name == NULL) {
+ if (PyStructSequence_InitType2(&VersionInfoType,
+ &version_info_desc) < 0)
+ return NULL;
+ }
version_info = make_version_info();
SET_SYS_FROM_STRING("version_info", version_info);
/* prevent user from creating new instances */
@@ -1690,8 +1697,10 @@ _PySys_Init(void)
SET_SYS_FROM_STRING("implementation", make_impl_info(version_info));
/* flags */
- if (FlagsType.tp_name == 0)
- PyStructSequence_InitType(&FlagsType, &flags_desc);
+ if (FlagsType.tp_name == 0) {
+ if (PyStructSequence_InitType2(&FlagsType, &flags_desc) < 0)
+ return NULL;
+ }
SET_SYS_FROM_STRING("flags", make_flags());
/* prevent user from creating new instances */
FlagsType.tp_init = NULL;
@@ -1701,7 +1710,9 @@ _PySys_Init(void)
#if defined(MS_WINDOWS)
/* getwindowsversion */
if (WindowsVersionType.tp_name == 0)
- PyStructSequence_InitType(&WindowsVersionType, &windows_version_desc);
+ if (PyStructSequence_InitType2(&WindowsVersionType,
+ &windows_version_desc) < 0)
+ return NULL;
/* prevent user from creating new instances */
WindowsVersionType.tp_init = NULL;
WindowsVersionType.tp_new = NULL;
diff --git a/Python/thread.c b/Python/thread.c
index e55d342..8540942 100644
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -91,10 +91,6 @@ static size_t _pythread_stacksize = 0;
#include "thread_nt.h"
#endif
-#ifdef OS2_THREADS
-#define PYTHREAD_NAME "os2"
-#include "thread_os2.h"
-#endif
/*
#ifdef FOOBAR_THREADS
@@ -235,7 +231,7 @@ find_key(int key, void *value)
assert(p == NULL);
goto Done;
}
- p = (struct key *)malloc(sizeof(struct key));
+ p = (struct key *)PyMem_RawMalloc(sizeof(struct key));
if (p != NULL) {
p->id = id;
p->key = key;
@@ -274,7 +270,7 @@ PyThread_delete_key(int key)
while ((p = *q) != NULL) {
if (p->key == key) {
*q = p->next;
- free((void *)p);
+ PyMem_RawFree((void *)p);
/* NB This does *not* free p->value! */
}
else
@@ -328,7 +324,7 @@ PyThread_delete_key_value(int key)
while ((p = *q) != NULL) {
if (p->key == key && p->id == id) {
*q = p->next;
- free((void *)p);
+ PyMem_RawFree((void *)p);
/* NB This does *not* free p->value! */
break;
}
@@ -361,7 +357,7 @@ PyThread_ReInitTLS(void)
while ((p = *q) != NULL) {
if (p->id != id) {
*q = p->next;
- free((void *)p);
+ PyMem_RawFree((void *)p);
/* NB This does *not* free p->value! */
}
else
@@ -403,8 +399,10 @@ PyThread_GetInfo(void)
int len;
#endif
- if (ThreadInfoType.tp_name == 0)
- PyStructSequence_InitType(&ThreadInfoType, &threadinfo_desc);
+ if (ThreadInfoType.tp_name == 0) {
+ if (PyStructSequence_InitType2(&ThreadInfoType, &threadinfo_desc) < 0)
+ return NULL;
+ }
threadinfo = PyStructSequence_New(&ThreadInfoType);
if (threadinfo == NULL)
diff --git a/Python/thread_nt.h b/Python/thread_nt.h
index 938bf1e..ab5a081 100644
--- a/Python/thread_nt.h
+++ b/Python/thread_nt.h
@@ -34,7 +34,7 @@ typedef NRMUTEX *PNRMUTEX;
PNRMUTEX
AllocNonRecursiveMutex()
{
- PNRMUTEX m = (PNRMUTEX)malloc(sizeof(NRMUTEX));
+ PNRMUTEX m = (PNRMUTEX)PyMem_RawMalloc(sizeof(NRMUTEX));
if (!m)
return NULL;
if (PyCOND_INIT(&m->cv))
@@ -46,7 +46,7 @@ AllocNonRecursiveMutex()
m->locked = 0;
return m;
fail:
- free(m);
+ PyMem_RawFree(m);
return NULL;
}
@@ -56,7 +56,7 @@ FreeNonRecursiveMutex(PNRMUTEX mutex)
if (mutex) {
PyCOND_FINI(&mutex->cv);
PyMUTEX_FINI(&mutex->cs);
- free(mutex);
+ PyMem_RawFree(mutex);
}
}
@@ -107,7 +107,7 @@ LeaveNonRecursiveMutex(PNRMUTEX mutex)
result = PyCOND_SIGNAL(&mutex->cv);
result &= PyMUTEX_UNLOCK(&mutex->cs);
return result;
-}
+}
#else /* if ! _PY_USE_CV_LOCKS */
@@ -130,7 +130,7 @@ FreeNonRecursiveMutex(PNRMUTEX mutex)
DWORD
EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds)
{
- return WaitForSingleObject(mutex, milliseconds);
+ return WaitForSingleObjectEx(mutex, milliseconds, FALSE);
}
BOOL
diff --git a/Python/thread_os2.h b/Python/thread_os2.h
deleted file mode 100644
index 1b264b5..0000000
--- a/Python/thread_os2.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/* This code implemented by cvale@netcom.com */
-
-#define INCL_DOSPROCESS
-#define INCL_DOSSEMAPHORES
-#include "os2.h"
-#include "limits.h"
-
-#include "process.h"
-
-#if defined(PYCC_GCC)
-#include <sys/builtin.h>
-#include <sys/fmutex.h>
-#else
-long PyThread_get_thread_ident(void);
-#endif
-
-/* default thread stack size of 64kB */
-#if !defined(THREAD_STACK_SIZE)
-#define THREAD_STACK_SIZE 0x10000
-#endif
-
-#define OS2_STACKSIZE(x) (x ? x : THREAD_STACK_SIZE)
-
-/*
- * Initialization of the C package, should not be needed.
- */
-static void
-PyThread__init_thread(void)
-{
-}
-
-/*
- * Thread support.
- */
-long
-PyThread_start_new_thread(void (*func)(void *), void *arg)
-{
- int thread_id;
-
- thread_id = _beginthread(func,
- NULL,
- OS2_STACKSIZE(_pythread_stacksize),
- arg);
-
- if (thread_id == -1) {
- dprintf(("_beginthread failed. return %ld\n", errno));
- }
-
- return thread_id;
-}
-
-long
-PyThread_get_thread_ident(void)
-{
-#if !defined(PYCC_GCC)
- PPIB pib;
- PTIB tib;
-#endif
-
- if (!initialized)
- PyThread_init_thread();
-
-#if defined(PYCC_GCC)
- return _gettid();
-#else
- DosGetInfoBlocks(&tib, &pib);
- return tib->tib_ptib2->tib2_ultid;
-#endif
-}
-
-void
-PyThread_exit_thread(void)
-{
- dprintf(("%ld: PyThread_exit_thread called\n",
- PyThread_get_thread_ident()));
- if (!initialized)
- exit(0);
- _endthread();
-}
-
-/*
- * Lock support. This is implemented with an event semaphore and critical
- * sections to make it behave more like a posix mutex than its OS/2
- * counterparts.
- */
-
-typedef struct os2_lock_t {
- int is_set;
- HEV changed;
-} *type_os2_lock;
-
-PyThread_type_lock
-PyThread_allocate_lock(void)
-{
-#if defined(PYCC_GCC)
- _fmutex *sem = malloc(sizeof(_fmutex));
- if (!initialized)
- PyThread_init_thread();
- dprintf(("%ld: PyThread_allocate_lock() -> %lx\n",
- PyThread_get_thread_ident(),
- (long)sem));
- if (_fmutex_create(sem, 0)) {
- free(sem);
- sem = NULL;
- }
- return (PyThread_type_lock)sem;
-#else
- APIRET rc;
- type_os2_lock lock = (type_os2_lock)malloc(sizeof(struct os2_lock_t));
-
- dprintf(("PyThread_allocate_lock called\n"));
- if (!initialized)
- PyThread_init_thread();
-
- lock->is_set = 0;
-
- DosCreateEventSem(NULL, &lock->changed, 0, 0);
-
- dprintf(("%ld: PyThread_allocate_lock() -> %p\n",
- PyThread_get_thread_ident(),
- lock->changed));
-
- return (PyThread_type_lock)lock;
-#endif
-}
-
-void
-PyThread_free_lock(PyThread_type_lock aLock)
-{
-#if !defined(PYCC_GCC)
- type_os2_lock lock = (type_os2_lock)aLock;
-#endif
-
- dprintf(("%ld: PyThread_free_lock(%p) called\n",
- PyThread_get_thread_ident(),aLock));
-
-#if defined(PYCC_GCC)
- if (aLock) {
- _fmutex_close((_fmutex *)aLock);
- free((_fmutex *)aLock);
- }
-#else
- DosCloseEventSem(lock->changed);
- free(aLock);
-#endif
-}
-
-/*
- * Return 1 on success if the lock was acquired
- *
- * and 0 if the lock was not acquired.
- */
-int
-PyThread_acquire_lock(PyThread_type_lock aLock, int waitflag)
-{
-#if !defined(PYCC_GCC)
- int done = 0;
- ULONG count;
- PID pid = 0;
- TID tid = 0;
- type_os2_lock lock = (type_os2_lock)aLock;
-#endif
-
- dprintf(("%ld: PyThread_acquire_lock(%p, %d) called\n",
- PyThread_get_thread_ident(),
- aLock,
- waitflag));
-
-#if defined(PYCC_GCC)
- /* always successful if the lock doesn't exist */
- if (aLock &&
- _fmutex_request((_fmutex *)aLock, waitflag ? 0 : _FMR_NOWAIT))
- return 0;
-#else
- while (!done) {
- /* if the lock is currently set, we have to wait for
- * the state to change
- */
- if (lock->is_set) {
- if (!waitflag)
- return 0;
- DosWaitEventSem(lock->changed, SEM_INDEFINITE_WAIT);
- }
-
- /* enter a critical section and try to get the semaphore. If
- * it is still locked, we will try again.
- */
- if (DosEnterCritSec())
- return 0;
-
- if (!lock->is_set) {
- lock->is_set = 1;
- DosResetEventSem(lock->changed, &count);
- done = 1;
- }
-
- DosExitCritSec();
- }
-#endif
-
- return 1;
-}
-
-void
-PyThread_release_lock(PyThread_type_lock aLock)
-{
-#if !defined(PYCC_GCC)
- type_os2_lock lock = (type_os2_lock)aLock;
-#endif
-
- dprintf(("%ld: PyThread_release_lock(%p) called\n",
- PyThread_get_thread_ident(),
- aLock));
-
-#if defined(PYCC_GCC)
- if (aLock)
- _fmutex_release((_fmutex *)aLock);
-#else
- if (!lock->is_set) {
- dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n",
- PyThread_get_thread_ident(),
- aLock,
- GetLastError()));
- return;
- }
-
- if (DosEnterCritSec()) {
- dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n",
- PyThread_get_thread_ident(),
- aLock,
- GetLastError()));
- return;
- }
-
- lock->is_set = 0;
- DosPostEventSem(lock->changed);
-
- DosExitCritSec();
-#endif
-}
-
-/* minimum/maximum thread stack sizes supported */
-#define THREAD_MIN_STACKSIZE 0x8000 /* 32kB */
-#define THREAD_MAX_STACKSIZE 0x2000000 /* 32MB */
-
-/* set the thread stack size.
- * Return 0 if size is valid, -1 otherwise.
- */
-static int
-_pythread_os2_set_stacksize(size_t size)
-{
- /* set to default */
- if (size == 0) {
- _pythread_stacksize = 0;
- return 0;
- }
-
- /* valid range? */
- if (size >= THREAD_MIN_STACKSIZE && size < THREAD_MAX_STACKSIZE) {
- _pythread_stacksize = size;
- return 0;
- }
-
- return -1;
-}
-
-#define THREAD_SET_STACKSIZE(x) _pythread_os2_set_stacksize(x)
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index e90ae7e..20f8535 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -282,14 +282,14 @@ PyThread_allocate_lock(void)
if (!initialized)
PyThread_init_thread();
- lock = (sem_t *)malloc(sizeof(sem_t));
+ lock = (sem_t *)PyMem_RawMalloc(sizeof(sem_t));
if (lock) {
status = sem_init(lock,0,1);
CHECK_STATUS("sem_init");
if (error) {
- free((void *)lock);
+ PyMem_RawFree((void *)lock);
lock = NULL;
}
}
@@ -313,7 +313,7 @@ PyThread_free_lock(PyThread_type_lock lock)
status = sem_destroy(thelock);
CHECK_STATUS("sem_destroy");
- free((void *)thelock);
+ PyMem_RawFree((void *)thelock);
}
/*
@@ -410,7 +410,7 @@ PyThread_allocate_lock(void)
if (!initialized)
PyThread_init_thread();
- lock = (pthread_lock *) malloc(sizeof(pthread_lock));
+ lock = (pthread_lock *) PyMem_RawMalloc(sizeof(pthread_lock));
if (lock) {
memset((void *)lock, '\0', sizeof(pthread_lock));
lock->locked = 0;
@@ -430,7 +430,7 @@ PyThread_allocate_lock(void)
CHECK_STATUS("pthread_cond_init");
if (error) {
- free((void *)lock);
+ PyMem_RawFree((void *)lock);
lock = 0;
}
}
@@ -457,7 +457,7 @@ PyThread_free_lock(PyThread_type_lock lock)
status = pthread_mutex_destroy( &thelock->mut );
CHECK_STATUS("pthread_mutex_destroy");
- free((void *)thelock);
+ PyMem_RawFree((void *)thelock);
}
PyLockStatus
diff --git a/Python/traceback.c b/Python/traceback.c
index 74075c9..4f2e732 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -13,7 +13,7 @@
#define OFF(x) offsetof(PyTracebackObject, x)
-#define PUTS(fd, str) write(fd, str, strlen(str))
+#define PUTS(fd, str) write(fd, str, (int)strlen(str))
#define MAX_STRING_LENGTH 500
#define MAX_FRAME_DEPTH 100
#define MAX_NTHREADS 100
@@ -246,10 +246,12 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
binary = _PyObject_CallMethodId(io, &PyId_open, "Os", filename, "rb");
if (binary == NULL) {
+ PyErr_Clear();
+
binary = _Py_FindSourceFile(filename, buf, sizeof(buf), io);
if (binary == NULL) {
Py_DECREF(io);
- return 0;
+ return -1;
}
}