diff options
Diffstat (limited to 'Python')
| -rw-r--r-- | Python/Python-ast.c | 167 | ||||
| -rw-r--r-- | Python/ast.c | 1055 | ||||
| -rw-r--r-- | Python/bltinmodule.c | 13 | ||||
| -rw-r--r-- | Python/ceval.c | 72 | ||||
| -rw-r--r-- | Python/compile.c | 89 | ||||
| -rw-r--r-- | Python/dynload_win.c | 6 | ||||
| -rw-r--r-- | Python/frozenmain.c | 4 | ||||
| -rw-r--r-- | Python/graminit.c | 106 | ||||
| -rw-r--r-- | Python/importlib_external.h | 4979 | ||||
| -rw-r--r-- | Python/opcode_targets.h | 2 | ||||
| -rw-r--r-- | Python/pylifecycle.c | 55 | ||||
| -rw-r--r-- | Python/pystate.c | 2 | ||||
| -rw-r--r-- | Python/pythonrun.c | 10 | ||||
| -rw-r--r-- | Python/pytime.c | 274 | ||||
| -rw-r--r-- | Python/random.c | 2 | ||||
| -rw-r--r-- | Python/symtable.c | 8 | ||||
| -rw-r--r-- | Python/sysmodule.c | 8 | 
17 files changed, 4093 insertions, 2759 deletions
diff --git a/Python/Python-ast.c b/Python/Python-ast.c index edfcbad..07d9b3e 100644 --- a/Python/Python-ast.c +++ b/Python/Python-ast.c @@ -285,6 +285,18 @@ _Py_IDENTIFIER(s);  static char *Str_fields[]={      "s",  }; +static PyTypeObject *FormattedValue_type; +_Py_IDENTIFIER(conversion); +_Py_IDENTIFIER(format_spec); +static char *FormattedValue_fields[]={ +    "value", +    "conversion", +    "format_spec", +}; +static PyTypeObject *JoinedStr_type; +static char *JoinedStr_fields[]={ +    "values", +};  static PyTypeObject *Bytes_type;  static char *Bytes_fields[]={      "s", @@ -769,7 +781,7 @@ static int obj2ast_int(PyObject* obj, int* out, PyArena* arena)          return 1;      } -    i = (int)PyLong_AsLong(obj); +    i = _PyLong_AsInt(obj);      if (i == -1 && PyErr_Occurred())          return 1;      *out = i; @@ -917,6 +929,11 @@ static int init_types(void)      if (!Num_type) return 0;      Str_type = make_type("Str", expr_type, Str_fields, 1);      if (!Str_type) return 0; +    FormattedValue_type = make_type("FormattedValue", expr_type, +                                    FormattedValue_fields, 3); +    if (!FormattedValue_type) return 0; +    JoinedStr_type = make_type("JoinedStr", expr_type, JoinedStr_fields, 1); +    if (!JoinedStr_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, @@ -2063,6 +2080,42 @@ Str(string s, int lineno, int col_offset, PyArena *arena)  }  expr_ty +FormattedValue(expr_ty value, int conversion, expr_ty format_spec, int lineno, +               int col_offset, PyArena *arena) +{ +    expr_ty p; +    if (!value) { +        PyErr_SetString(PyExc_ValueError, +                        "field value is required for FormattedValue"); +        return NULL; +    } +    p = (expr_ty)PyArena_Malloc(arena, sizeof(*p)); +    if (!p) +        return NULL; +    p->kind = FormattedValue_kind; +    p->v.FormattedValue.value = value; +    p->v.FormattedValue.conversion = conversion; +    p->v.FormattedValue.format_spec = format_spec; +    p->lineno = lineno; +    p->col_offset = col_offset; +    return p; +} + +expr_ty +JoinedStr(asdl_seq * values, int lineno, int col_offset, PyArena *arena) +{ +    expr_ty p; +    p = (expr_ty)PyArena_Malloc(arena, sizeof(*p)); +    if (!p) +        return NULL; +    p->kind = JoinedStr_kind; +    p->v.JoinedStr.values = values; +    p->lineno = lineno; +    p->col_offset = col_offset; +    return p; +} + +expr_ty  Bytes(bytes s, int lineno, int col_offset, PyArena *arena)  {      expr_ty p; @@ -3164,6 +3217,34 @@ ast2obj_expr(void* _o)              goto failed;          Py_DECREF(value);          break; +    case FormattedValue_kind: +        result = PyType_GenericNew(FormattedValue_type, NULL, NULL); +        if (!result) goto failed; +        value = ast2obj_expr(o->v.FormattedValue.value); +        if (!value) goto failed; +        if (_PyObject_SetAttrId(result, &PyId_value, value) == -1) +            goto failed; +        Py_DECREF(value); +        value = ast2obj_int(o->v.FormattedValue.conversion); +        if (!value) goto failed; +        if (_PyObject_SetAttrId(result, &PyId_conversion, value) == -1) +            goto failed; +        Py_DECREF(value); +        value = ast2obj_expr(o->v.FormattedValue.format_spec); +        if (!value) goto failed; +        if (_PyObject_SetAttrId(result, &PyId_format_spec, value) == -1) +            goto failed; +        Py_DECREF(value); +        break; +    case JoinedStr_kind: +        result = PyType_GenericNew(JoinedStr_type, NULL, NULL); +        if (!result) goto failed; +        value = ast2obj_list(o->v.JoinedStr.values, ast2obj_expr); +        if (!value) goto failed; +        if (_PyObject_SetAttrId(result, &PyId_values, value) == -1) +            goto failed; +        Py_DECREF(value); +        break;      case Bytes_kind:          result = PyType_GenericNew(Bytes_type, NULL, NULL);          if (!result) goto failed; @@ -6025,6 +6106,86 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)          if (*out == NULL) goto failed;          return 0;      } +    isinstance = PyObject_IsInstance(obj, (PyObject*)FormattedValue_type); +    if (isinstance == -1) { +        return 1; +    } +    if (isinstance) { +        expr_ty value; +        int conversion; +        expr_ty format_spec; + +        if (_PyObject_HasAttrId(obj, &PyId_value)) { +            int res; +            tmp = _PyObject_GetAttrId(obj, &PyId_value); +            if (tmp == NULL) goto failed; +            res = obj2ast_expr(tmp, &value, arena); +            if (res != 0) goto failed; +            Py_CLEAR(tmp); +        } else { +            PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from FormattedValue"); +            return 1; +        } +        if (exists_not_none(obj, &PyId_conversion)) { +            int res; +            tmp = _PyObject_GetAttrId(obj, &PyId_conversion); +            if (tmp == NULL) goto failed; +            res = obj2ast_int(tmp, &conversion, arena); +            if (res != 0) goto failed; +            Py_CLEAR(tmp); +        } else { +            conversion = 0; +        } +        if (exists_not_none(obj, &PyId_format_spec)) { +            int res; +            tmp = _PyObject_GetAttrId(obj, &PyId_format_spec); +            if (tmp == NULL) goto failed; +            res = obj2ast_expr(tmp, &format_spec, arena); +            if (res != 0) goto failed; +            Py_CLEAR(tmp); +        } else { +            format_spec = NULL; +        } +        *out = FormattedValue(value, conversion, format_spec, lineno, +                              col_offset, arena); +        if (*out == NULL) goto failed; +        return 0; +    } +    isinstance = PyObject_IsInstance(obj, (PyObject*)JoinedStr_type); +    if (isinstance == -1) { +        return 1; +    } +    if (isinstance) { +        asdl_seq* values; + +        if (_PyObject_HasAttrId(obj, &PyId_values)) { +            int res; +            Py_ssize_t len; +            Py_ssize_t i; +            tmp = _PyObject_GetAttrId(obj, &PyId_values); +            if (tmp == NULL) goto failed; +            if (!PyList_Check(tmp)) { +                PyErr_Format(PyExc_TypeError, "JoinedStr field \"values\" must be a list, not a %.200s", tmp->ob_type->tp_name); +                goto failed; +            } +            len = PyList_GET_SIZE(tmp); +            values = _Py_asdl_seq_new(len, arena); +            if (values == 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(values, i, value); +            } +            Py_CLEAR(tmp); +        } else { +            PyErr_SetString(PyExc_TypeError, "required field \"values\" missing from JoinedStr"); +            return 1; +        } +        *out = JoinedStr(values, lineno, col_offset, arena); +        if (*out == NULL) goto failed; +        return 0; +    }      isinstance = PyObject_IsInstance(obj, (PyObject*)Bytes_type);      if (isinstance == -1) {          return 1; @@ -7346,6 +7507,10 @@ PyInit__ast(void)      if (PyDict_SetItemString(d, "Call", (PyObject*)Call_type) < 0) return NULL;      if (PyDict_SetItemString(d, "Num", (PyObject*)Num_type) < 0) return NULL;      if (PyDict_SetItemString(d, "Str", (PyObject*)Str_type) < 0) return NULL; +    if (PyDict_SetItemString(d, "FormattedValue", +        (PyObject*)FormattedValue_type) < 0) return NULL; +    if (PyDict_SetItemString(d, "JoinedStr", (PyObject*)JoinedStr_type) < 0) +        return NULL;      if (PyDict_SetItemString(d, "Bytes", (PyObject*)Bytes_type) < 0) return          NULL;      if (PyDict_SetItemString(d, "NameConstant", (PyObject*)NameConstant_type) < diff --git a/Python/ast.c b/Python/ast.c index 7743c31..77ebc83 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -257,6 +257,14 @@ validate_expr(expr_ty exp, expr_context_ty ctx)          }          return 1;      } +    case JoinedStr_kind: +        return validate_exprs(exp->v.JoinedStr.values, Load, 0); +    case FormattedValue_kind: +        if (validate_expr(exp->v.FormattedValue.value, Load) == 0) +            return 0; +        if (exp->v.FormattedValue.format_spec) +            return validate_expr(exp->v.FormattedValue.format_spec, Load); +        return 1;      case Bytes_kind: {          PyObject *b = exp->v.Bytes.s;          if (!PyBytes_CheckExact(b)) { @@ -513,7 +521,7 @@ PyAST_Validate(mod_ty mod)  /* Data structure used internally */  struct compiling {      char *c_encoding; /* source encoding */ -    PyArena *c_arena; /* arena for allocating memeory */ +    PyArena *c_arena; /* Arena for allocating memory. */      PyObject *c_filename; /* filename */      PyObject *c_normalize; /* Normalization function from unicodedata. */      PyObject *c_normalize_args; /* Normalization argument tuple. */ @@ -535,9 +543,7 @@ static stmt_ty ast_for_for_stmt(struct compiling *, const node *, int);  static expr_ty ast_for_call(struct compiling *, const node *, expr_ty);  static PyObject *parsenumber(struct compiling *, const char *); -static PyObject *parsestr(struct compiling *, const node *n, int *bytesmode); -static PyObject *parsestrplus(struct compiling *, const node *n, -                              int *bytesmode); +static expr_ty parsestrplus(struct compiling *, const node *n);  #define COMP_GENEXP   0  #define COMP_LISTCOMP 1 @@ -986,6 +992,8 @@ set_context(struct compiling *c, expr_ty e, expr_context_ty ctx, const node *n)          case Num_kind:          case Str_kind:          case Bytes_kind: +        case JoinedStr_kind: +        case FormattedValue_kind:              expr_name = "literal";              break;          case NameConstant_kind: @@ -1259,16 +1267,20 @@ ast_for_arguments(struct compiling *c, const node *n)         and varargslist (lambda definition).         parameters: '(' [typedargslist] ')' -       typedargslist: ((tfpdef ['=' test] ',')* -           ('*' [tfpdef] (',' tfpdef ['=' test])* [',' '**' tfpdef] -           | '**' tfpdef) -           | tfpdef ['=' test] (',' tfpdef ['=' test])* [',']) +       typedargslist: (tfpdef ['=' test] (',' tfpdef ['=' test])* [',' [ +               '*' [tfpdef] (',' tfpdef ['=' test])* [',' ['**' tfpdef [',']]] +             | '**' tfpdef [',']]] +         | '*' [tfpdef] (',' tfpdef ['=' test])* [',' ['**' tfpdef [',']]] +         | '**' tfpdef [','])         tfpdef: NAME [':' test] -       varargslist: ((vfpdef ['=' test] ',')* -           ('*' [vfpdef] (',' vfpdef ['=' test])*  [',' '**' vfpdef] -           | '**' vfpdef) -           | vfpdef ['=' test] (',' vfpdef ['=' test])* [',']) +       varargslist: (vfpdef ['=' test] (',' vfpdef ['=' test])* [',' [ +               '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]] +             | '**' vfpdef [',']]] +         | '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]] +         | '**' vfpdef [','] +       )         vfpdef: NAME +      */      int i, j, k, nposargs = 0, nkwonlyargs = 0;      int nposdefaults = 0, found_default = 0; @@ -1370,7 +1382,8 @@ ast_for_arguments(struct compiling *c, const node *n)                  i += 2; /* the name and the comma */                  break;              case STAR: -                if (i+1 >= NCH(n)) { +                if (i+1 >= NCH(n) || +                    (i+2 == NCH(n) && TYPE(CHILD(n, i+1)) == COMMA)) {                      ast_error(c, CHILD(n, i),                          "named arguments must follow bare *");                      return NULL; @@ -1993,7 +2006,6 @@ ast_for_atom(struct compiling *c, const node *n)         | '...' | 'None' | 'True' | 'False'      */      node *ch = CHILD(n, 0); -    int bytesmode = 0;      switch (TYPE(ch)) {      case NAME: { @@ -2015,7 +2027,7 @@ ast_for_atom(struct compiling *c, const node *n)          return Name(name, Load, LINENO(n), n->n_col_offset, c->c_arena);      }      case STRING: { -        PyObject *str = parsestrplus(c, n, &bytesmode); +        expr_ty str = parsestrplus(c, n);          if (!str) {              const char *errtype = NULL;              if (PyErr_ExceptionMatches(PyExc_UnicodeError)) @@ -2032,6 +2044,7 @@ ast_for_atom(struct compiling *c, const node *n)                      PyOS_snprintf(buf, sizeof(buf), "(%s) %s", errtype, s);                      Py_DECREF(errstr);                  } else { +                    PyErr_Clear();                      PyOS_snprintf(buf, sizeof(buf), "(%s) unknown error", errtype);                  }                  ast_error(c, n, buf); @@ -2041,14 +2054,7 @@ ast_for_atom(struct compiling *c, const node *n)              }              return NULL;          } -        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 -            return Str(str, LINENO(n), n->n_col_offset, c->c_arena); +        return str;      }      case NUMBER: {          PyObject *pynum = parsenumber(c, STR(ch)); @@ -3935,7 +3941,7 @@ decode_utf8(struct compiling *c, const char **sPtr, const char *end)  }  static PyObject * -decode_unicode(struct compiling *c, const char *s, size_t len, int rawmode, const char *encoding) +decode_unicode(struct compiling *c, const char *s, size_t len, const char *encoding)  {      PyObject *v, *u;      char *buf; @@ -3991,20 +3997,878 @@ decode_unicode(struct compiling *c, const char *s, size_t len, int rawmode, cons          len = p - buf;          s = buf;      } -    if (rawmode) -        v = PyUnicode_DecodeRawUnicodeEscape(s, len, NULL); -    else -        v = PyUnicode_DecodeUnicodeEscape(s, len, NULL); +    v = PyUnicode_DecodeUnicodeEscape(s, len, NULL);      Py_XDECREF(u);      return v;  } -/* s is a Python string literal, including the bracketing quote characters, - * and r &/or b prefixes (if any), and embedded escape sequences (if any). - * parsestr parses it, and returns the decoded Python string object. - */ +/* Compile this expression in to an expr_ty. We know that we can +   temporarily modify the character before the start of this string +   (it's '{'), and we know we can temporarily modify the character +   after this string (it is a '}').  Leverage this to create a +   sub-string with enough room for us to add parens around the +   expression. This is to allow strings with embedded newlines, for +   example. */ +static expr_ty +fstring_compile_expr(PyObject *str, Py_ssize_t expr_start, +                     Py_ssize_t expr_end, struct compiling *c, const node *n) + +{ +    PyCompilerFlags cf; +    mod_ty mod; +    char *utf_expr; +    Py_ssize_t i; +    Py_UCS4 end_ch = -1; +    int all_whitespace; +    PyObject *sub = NULL; + +    /* We only decref sub if we allocated it with a PyUnicode_Substring. +       decref_sub records that. */ +    int decref_sub = 0; + +    assert(str); + +    assert(expr_start >= 0 && expr_start < PyUnicode_GET_LENGTH(str)); +    assert(expr_end >= 0 && expr_end < PyUnicode_GET_LENGTH(str)); +    assert(expr_end >= expr_start); + +    /* There has to be at least one character on each side of the +       expression inside this str. This will have been caught before +       we're called. */ +    assert(expr_start >= 1); +    assert(expr_end <= PyUnicode_GET_LENGTH(str)-1); + +    /* If the substring is all whitespace, it's an error. We need to +        catch this here, and not when we call PyParser_ASTFromString, +        because turning the expression '' in to '()' would go from +        being invalid to valid. */ +    /* Note that this code says an empty string is all +        whitespace. That's important. There's a test for it: f'{}'. */ +    all_whitespace = 1; +    for (i = expr_start; i < expr_end; i++) { +        if (!Py_UNICODE_ISSPACE(PyUnicode_READ_CHAR(str, i))) { +            all_whitespace = 0; +            break; +        } +    } +    if (all_whitespace) { +        ast_error(c, n, "f-string: empty expression not allowed"); +        goto error; +    } + +    /* If the substring will be the entire source string, we can't use +        PyUnicode_Substring, since it will return another reference to +        our original string. Because we're modifying the string in +        place, that's a no-no. So, detect that case and just use our +        string directly. */ + +    if (expr_start-1 == 0 && expr_end+1 == PyUnicode_GET_LENGTH(str)) { +        /* If str is well formed, then the first and last chars must +           be '{' and '}', respectively. But, if there's a syntax +           error, for example f'{3!', then the last char won't be a +           closing brace. So, remember the last character we read in +           order for us to restore it. */ +        end_ch = PyUnicode_ReadChar(str, expr_end-expr_start+1); +        assert(end_ch != (Py_UCS4)-1); + +        /* In all cases, however, start_ch must be '{'. */ +        assert(PyUnicode_ReadChar(str, 0) == '{'); + +        sub = str; +    } else { +        /* Create a substring object. It must be a new object, with +           refcount==1, so that we can modify it. */ +        sub = PyUnicode_Substring(str, expr_start-1, expr_end+1); +        if (!sub) +            goto error; +        assert(sub != str);  /* Make sure it's a new string. */ +        decref_sub = 1;      /* Remember to deallocate it on error. */ +    } + +    /* Put () around the expression. */ +    if (PyUnicode_WriteChar(sub, 0, '(') < 0 || +        PyUnicode_WriteChar(sub, expr_end-expr_start+1, ')') < 0) +        goto error; + +    /* No need to free the memory returned here: it's managed by the +       string. */ +    utf_expr = PyUnicode_AsUTF8(sub); +    if (!utf_expr) +        goto error; + +    cf.cf_flags = PyCF_ONLY_AST; +    mod = PyParser_ASTFromString(utf_expr, "<fstring>", +                                 Py_eval_input, &cf, c->c_arena); +    if (!mod) +        goto error; + +    if (sub != str) +        /* Clear instead of decref in case we ever modify this code to change +           the error handling: this is safest because the XDECREF won't try +           and decref it when it's NULL. */ +        /* No need to restore the chars in sub, since we know it's getting +           ready to get deleted (refcount must be 1, since we got a new string +           in PyUnicode_Substring). */ +        Py_CLEAR(sub); +    else { +        assert(!decref_sub); +        assert(end_ch != (Py_UCS4)-1); +        /* Restore str, which we earlier modified directly. */ +        if (PyUnicode_WriteChar(str, 0, '{') < 0 || +            PyUnicode_WriteChar(str, expr_end-expr_start+1, end_ch) < 0) +            goto error; +    } +    return mod->v.Expression.body; + +error: +    /* Only decref sub if it was the result of a call to SubString. */ +    if (decref_sub) +        Py_XDECREF(sub); + +    if (end_ch != (Py_UCS4)-1) { +        /* We only get here if we modified str. Make sure that's the +           case: str will be equal to sub. */ +        if (str == sub) { +            /* Don't check the error, because we've already set the +               error state (that's why we're in 'error', after +               all). */ +            PyUnicode_WriteChar(str, 0, '{'); +            PyUnicode_WriteChar(str, expr_end-expr_start+1, end_ch); +        } +    } +    return NULL; +} + +/* Return -1 on error. + +   Return 0 if we reached the end of the literal. + +   Return 1 if we haven't reached the end of the literal, but we want +   the caller to process the literal up to this point. Used for +   doubled braces. +*/ +static int +fstring_find_literal(PyObject *str, Py_ssize_t *ofs, PyObject **literal, +                     int recurse_lvl, struct compiling *c, const node *n) +{ +    /* Get any literal string. It ends when we hit an un-doubled brace, or the +       end of the string. */ + +    Py_ssize_t literal_start, literal_end; +    int result = 0; + +    enum PyUnicode_Kind kind = PyUnicode_KIND(str); +    void *data = PyUnicode_DATA(str); + +    assert(*literal == NULL); + +    literal_start = *ofs; +    for (; *ofs < PyUnicode_GET_LENGTH(str); *ofs += 1) { +        Py_UCS4 ch = PyUnicode_READ(kind, data, *ofs); +        if (ch == '{' || ch == '}') { +            /* Check for doubled braces, but only at the top level. If +               we checked at every level, then f'{0:{3}}' would fail +               with the two closing braces. */ +            if (recurse_lvl == 0) { +                if (*ofs + 1 < PyUnicode_GET_LENGTH(str) && +                    PyUnicode_READ(kind, data, *ofs + 1) == ch) { +                    /* We're going to tell the caller that the literal ends +                       here, but that they should continue scanning. But also +                       skip over the second brace when we resume scanning. */ +                    literal_end = *ofs + 1; +                    *ofs += 2; +                    result = 1; +                    goto done; +                } + +                /* Where a single '{' is the start of a new expression, a +                   single '}' is not allowed. */ +                if (ch == '}') { +                    ast_error(c, n, "f-string: single '}' is not allowed"); +                    return -1; +                } +            } + +            /* We're either at a '{', which means we're starting another +               expression; or a '}', which means we're at the end of this +               f-string (for a nested format_spec). */ +            break; +        } +    } +    literal_end = *ofs; + +    assert(*ofs == PyUnicode_GET_LENGTH(str) || +           PyUnicode_READ(kind, data, *ofs) == '{' || +           PyUnicode_READ(kind, data, *ofs) == '}'); +done: +    if (literal_start != literal_end) { +        *literal = PyUnicode_Substring(str, literal_start, literal_end); +        if (!*literal) +            return -1; +    } + +    return result; +} + +/* Forward declaration because parsing is recursive. */ +static expr_ty +fstring_parse(PyObject *str, Py_ssize_t *ofs, int recurse_lvl, +              struct compiling *c, const node *n); + +/* Parse the f-string str, starting at ofs. We know *ofs starts an +   expression (so it must be a '{'). Returns the FormattedValue node, +   which includes the expression, conversion character, and +   format_spec expression. + +   Note that I don't do a perfect job here: I don't make sure that a +   closing brace doesn't match an opening paren, for example. It +   doesn't need to error on all invalid expressions, just correctly +   find the end of all valid ones. Any errors inside the expression +   will be caught when we parse it later. */ +static int +fstring_find_expr(PyObject *str, Py_ssize_t *ofs, int recurse_lvl, +                  expr_ty *expression, struct compiling *c, const node *n) +{ +    /* Return -1 on error, else 0. */ + +    Py_ssize_t expr_start; +    Py_ssize_t expr_end; +    expr_ty simple_expression; +    expr_ty format_spec = NULL; /* Optional format specifier. */ +    Py_UCS4 conversion = -1; /* The conversion char. -1 if not specified. */ + +    enum PyUnicode_Kind kind = PyUnicode_KIND(str); +    void *data = PyUnicode_DATA(str); + +    /* 0 if we're not in a string, else the quote char we're trying to +       match (single or double quote). */ +    Py_UCS4 quote_char = 0; + +    /* If we're inside a string, 1=normal, 3=triple-quoted. */ +    int string_type = 0; + +    /* Keep track of nesting level for braces/parens/brackets in +       expressions. */ +    Py_ssize_t nested_depth = 0; + +    /* Can only nest one level deep. */ +    if (recurse_lvl >= 2) { +        ast_error(c, n, "f-string: expressions nested too deeply"); +        return -1; +    } + +    /* The first char must be a left brace, or we wouldn't have gotten +       here. Skip over it. */ +    assert(PyUnicode_READ(kind, data, *ofs) == '{'); +    *ofs += 1; + +    expr_start = *ofs; +    for (; *ofs < PyUnicode_GET_LENGTH(str); *ofs += 1) { +        Py_UCS4 ch; + +        /* Loop invariants. */ +        assert(nested_depth >= 0); +        assert(*ofs >= expr_start); +        if (quote_char) +            assert(string_type == 1 || string_type == 3); +        else +            assert(string_type == 0); + +        ch = PyUnicode_READ(kind, data, *ofs); +        if (quote_char) { +            /* We're inside a string. See if we're at the end. */ +            /* This code needs to implement the same non-error logic +               as tok_get from tokenizer.c, at the letter_quote +               label. To actually share that code would be a +               nightmare. But, it's unlikely to change and is small, +               so duplicate it here. Note we don't need to catch all +               of the errors, since they'll be caught when parsing the +               expression. We just need to match the non-error +               cases. Thus we can ignore \n in single-quoted strings, +               for example. Or non-terminated strings. */ +            if (ch == quote_char) { +                /* Does this match the string_type (single or triple +                   quoted)? */ +                if (string_type == 3) { +                    if (*ofs+2 < PyUnicode_GET_LENGTH(str) && +                        PyUnicode_READ(kind, data, *ofs+1) == ch && +                        PyUnicode_READ(kind, data, *ofs+2) == ch) { +                        /* We're at the end of a triple quoted string. */ +                        *ofs += 2; +                        string_type = 0; +                        quote_char = 0; +                        continue; +                    } +                } else { +                    /* We're at the end of a normal string. */ +                    quote_char = 0; +                    string_type = 0; +                    continue; +                } +            } +            /* We're inside a string, and not finished with the +               string. If this is a backslash, skip the next char (it +               might be an end quote that needs skipping). Otherwise, +               just consume this character normally. */ +            if (ch == '\\' && *ofs+1 < PyUnicode_GET_LENGTH(str)) { +                /* Just skip the next char, whatever it is. */ +                *ofs += 1; +            } +        } else if (ch == '\'' || ch == '"') { +            /* Is this a triple quoted string? */ +            if (*ofs+2 < PyUnicode_GET_LENGTH(str) && +                PyUnicode_READ(kind, data, *ofs+1) == ch && +                PyUnicode_READ(kind, data, *ofs+2) == ch) { +                string_type = 3; +                *ofs += 2; +            } else { +                /* Start of a normal string. */ +                string_type = 1; +            } +            /* Start looking for the end of the string. */ +            quote_char = ch; +        } else if (ch == '[' || ch == '{' || ch == '(') { +            nested_depth++; +        } else if (nested_depth != 0 && +                   (ch == ']' || ch == '}' || ch == ')')) { +            nested_depth--; +        } else if (ch == '#') { +            /* Error: can't include a comment character, inside parens +               or not. */ +            ast_error(c, n, "f-string cannot include '#'"); +            return -1; +        } else if (nested_depth == 0 && +                   (ch == '!' || ch == ':' || ch == '}')) { +            /* First, test for the special case of "!=". Since '=' is +               not an allowed conversion character, nothing is lost in +               this test. */ +            if (ch == '!' && *ofs+1 < PyUnicode_GET_LENGTH(str) && +                  PyUnicode_READ(kind, data, *ofs+1) == '=') +                /* This isn't a conversion character, just continue. */ +                continue; + +            /* Normal way out of this loop. */ +            break; +        } else { +            /* Just consume this char and loop around. */ +        } +    } +    expr_end = *ofs; +    /* If we leave this loop in a string or with mismatched parens, we +       don't care. We'll get a syntax error when compiling the +       expression. But, we can produce a better error message, so +       let's just do that.*/ +    if (quote_char) { +        ast_error(c, n, "f-string: unterminated string"); +        return -1; +    } +    if (nested_depth) { +        ast_error(c, n, "f-string: mismatched '(', '{', or '['"); +        return -1; +    } + +    if (*ofs >= PyUnicode_GET_LENGTH(str)) +        goto unexpected_end_of_string; + +    /* Compile the expression as soon as possible, so we show errors +       related to the expression before errors related to the +       conversion or format_spec. */ +    simple_expression = fstring_compile_expr(str, expr_start, expr_end, c, n); +    if (!simple_expression) +        return -1; + +    /* Check for a conversion char, if present. */ +    if (PyUnicode_READ(kind, data, *ofs) == '!') { +        *ofs += 1; +        if (*ofs >= PyUnicode_GET_LENGTH(str)) +            goto unexpected_end_of_string; + +        conversion = PyUnicode_READ(kind, data, *ofs); +        *ofs += 1; + +        /* Validate the conversion. */ +        if (!(conversion == 's' || conversion == 'r' +              || conversion == 'a')) { +            ast_error(c, n, "f-string: invalid conversion character: " +                            "expected 's', 'r', or 'a'"); +            return -1; +        } +    } + +    /* Check for the format spec, if present. */ +    if (*ofs >= PyUnicode_GET_LENGTH(str)) +        goto unexpected_end_of_string; +    if (PyUnicode_READ(kind, data, *ofs) == ':') { +        *ofs += 1; +        if (*ofs >= PyUnicode_GET_LENGTH(str)) +            goto unexpected_end_of_string; + +        /* Parse the format spec. */ +        format_spec = fstring_parse(str, ofs, recurse_lvl+1, c, n); +        if (!format_spec) +            return -1; +    } + +    if (*ofs >= PyUnicode_GET_LENGTH(str) || +          PyUnicode_READ(kind, data, *ofs) != '}') +        goto unexpected_end_of_string; + +    /* We're at a right brace. Consume it. */ +    assert(*ofs < PyUnicode_GET_LENGTH(str)); +    assert(PyUnicode_READ(kind, data, *ofs) == '}'); +    *ofs += 1; + +    /* And now create the FormattedValue node that represents this entire +       expression with the conversion and format spec. */ +    *expression = FormattedValue(simple_expression, (int)conversion, +                                 format_spec, LINENO(n), n->n_col_offset, +                                 c->c_arena); +    if (!*expression) +        return -1; + +    return 0; + +unexpected_end_of_string: +    ast_error(c, n, "f-string: expecting '}'"); +    return -1; +} + +/* Return -1 on error. + +   Return 0 if we have a literal (possible zero length) and an +   expression (zero length if at the end of the string. + +   Return 1 if we have a literal, but no expression, and we want the +   caller to call us again. This is used to deal with doubled +   braces. + +   When called multiple times on the string 'a{{b{0}c', this function +   will return: + +   1. the literal 'a{' with no expression, and a return value +      of 1. Despite the fact that there's no expression, the return +      value of 1 means we're not finished yet. + +   2. the literal 'b' and the expression '0', with a return value of +      0. The fact that there's an expression means we're not finished. + +   3. literal 'c' with no expression and a return value of 0. The +      combination of the return value of 0 with no expression means +      we're finished. +*/ +static int +fstring_find_literal_and_expr(PyObject *str, Py_ssize_t *ofs, int recurse_lvl, +                              PyObject **literal, expr_ty *expression, +                              struct compiling *c, const node *n) +{ +    int result; + +    assert(*literal == NULL && *expression == NULL); + +    /* Get any literal string. */ +    result = fstring_find_literal(str, ofs, literal, recurse_lvl, c, n); +    if (result < 0) +        goto error; + +    assert(result == 0 || result == 1); + +    if (result == 1) +        /* We have a literal, but don't look at the expression. */ +        return 1; + +    assert(*ofs <= PyUnicode_GET_LENGTH(str)); + +    if (*ofs >= PyUnicode_GET_LENGTH(str) || +        PyUnicode_READ_CHAR(str, *ofs) == '}') +        /* We're at the end of the string or the end of a nested +           f-string: no expression. The top-level error case where we +           expect to be at the end of the string but we're at a '}' is +           handled later. */ +        return 0; + +    /* We must now be the start of an expression, on a '{'. */ +    assert(*ofs < PyUnicode_GET_LENGTH(str) && +           PyUnicode_READ_CHAR(str, *ofs) == '{'); + +    if (fstring_find_expr(str, ofs, recurse_lvl, expression, c, n) < 0) +        goto error; + +    return 0; + +error: +    Py_XDECREF(*literal); +    *literal = NULL; +    return -1; +} + +#define EXPRLIST_N_CACHED  64 + +typedef struct { +    /* Incrementally build an array of expr_ty, so be used in an +       asdl_seq. Cache some small but reasonably sized number of +       expr_ty's, and then after that start dynamically allocating, +       doubling the number allocated each time. Note that the f-string +       f'{0}a{1}' contains 3 expr_ty's: 2 FormattedValue's, and one +       Str for the literal 'a'. So you add expr_ty's about twice as +       fast as you add exressions in an f-string. */ + +    Py_ssize_t allocated;  /* Number we've allocated. */ +    Py_ssize_t size;       /* Number we've used. */ +    expr_ty    *p;         /* Pointer to the memory we're actually +                              using. Will point to 'data' until we +                              start dynamically allocating. */ +    expr_ty    data[EXPRLIST_N_CACHED]; +} ExprList; + +#ifdef NDEBUG +#define ExprList_check_invariants(l) +#else +static void +ExprList_check_invariants(ExprList *l) +{ +    /* Check our invariants. Make sure this object is "live", and +       hasn't been deallocated. */ +    assert(l->size >= 0); +    assert(l->p != NULL); +    if (l->size <= EXPRLIST_N_CACHED) +        assert(l->data == l->p); +} +#endif + +static void +ExprList_Init(ExprList *l) +{ +    l->allocated = EXPRLIST_N_CACHED; +    l->size = 0; + +    /* Until we start allocating dynamically, p points to data. */ +    l->p = l->data; + +    ExprList_check_invariants(l); +} + +static int +ExprList_Append(ExprList *l, expr_ty exp) +{ +    ExprList_check_invariants(l); +    if (l->size >= l->allocated) { +        /* We need to alloc (or realloc) the memory. */ +        Py_ssize_t new_size = l->allocated * 2; + +        /* See if we've ever allocated anything dynamically. */ +        if (l->p == l->data) { +            Py_ssize_t i; +            /* We're still using the cached data. Switch to +               alloc-ing. */ +            l->p = PyMem_RawMalloc(sizeof(expr_ty) * new_size); +            if (!l->p) +                return -1; +            /* Copy the cached data into the new buffer. */ +            for (i = 0; i < l->size; i++) +                l->p[i] = l->data[i]; +        } else { +            /* Just realloc. */ +            expr_ty *tmp = PyMem_RawRealloc(l->p, sizeof(expr_ty) * new_size); +            if (!tmp) { +                PyMem_RawFree(l->p); +                l->p = NULL; +                return -1; +            } +            l->p = tmp; +        } + +        l->allocated = new_size; +        assert(l->allocated == 2 * l->size); +    } + +    l->p[l->size++] = exp; + +    ExprList_check_invariants(l); +    return 0; +} + +static void +ExprList_Dealloc(ExprList *l) +{ +    ExprList_check_invariants(l); + +    /* If there's been an error, or we've never dynamically allocated, +       do nothing. */ +    if (!l->p || l->p == l->data) { +        /* Do nothing. */ +    } else { +        /* We have dynamically allocated. Free the memory. */ +        PyMem_RawFree(l->p); +    } +    l->p = NULL; +    l->size = -1; +} + +static asdl_seq * +ExprList_Finish(ExprList *l, PyArena *arena) +{ +    asdl_seq *seq; + +    ExprList_check_invariants(l); + +    /* Allocate the asdl_seq and copy the expressions in to it. */ +    seq = _Py_asdl_seq_new(l->size, arena); +    if (seq) { +        Py_ssize_t i; +        for (i = 0; i < l->size; i++) +            asdl_seq_SET(seq, i, l->p[i]); +    } +    ExprList_Dealloc(l); +    return seq; +} + +/* The FstringParser is designed to add a mix of strings and +   f-strings, and concat them together as needed. Ultimately, it +   generates an expr_ty. */ +typedef struct { +    PyObject *last_str; +    ExprList expr_list; +} FstringParser; + +#ifdef NDEBUG +#define FstringParser_check_invariants(state) +#else +static void +FstringParser_check_invariants(FstringParser *state) +{ +    if (state->last_str) +        assert(PyUnicode_CheckExact(state->last_str)); +    ExprList_check_invariants(&state->expr_list); +} +#endif + +static void +FstringParser_Init(FstringParser *state) +{ +    state->last_str = NULL; +    ExprList_Init(&state->expr_list); +    FstringParser_check_invariants(state); +} + +static void +FstringParser_Dealloc(FstringParser *state) +{ +    FstringParser_check_invariants(state); + +    Py_XDECREF(state->last_str); +    ExprList_Dealloc(&state->expr_list); +} + +/* Make a Str node, but decref the PyUnicode object being added. */ +static expr_ty +make_str_node_and_del(PyObject **str, struct compiling *c, const node* n) +{ +    PyObject *s = *str; +    *str = NULL; +    assert(PyUnicode_CheckExact(s)); +    if (PyArena_AddPyObject(c->c_arena, s) < 0) { +        Py_DECREF(s); +        return NULL; +    } +    return Str(s, LINENO(n), n->n_col_offset, c->c_arena); +} + +/* Add a non-f-string (that is, a regular literal string). str is +   decref'd. */ +static int +FstringParser_ConcatAndDel(FstringParser *state, PyObject *str) +{ +    FstringParser_check_invariants(state); + +    assert(PyUnicode_CheckExact(str)); + +    if (PyUnicode_GET_LENGTH(str) == 0) { +        Py_DECREF(str); +        return 0; +    } + +    if (!state->last_str) { +        /* We didn't have a string before, so just remember this one. */ +        state->last_str = str; +    } else { +        /* Concatenate this with the previous string. */ +        PyObject *temp = PyUnicode_Concat(state->last_str, str); +        Py_DECREF(state->last_str); +        Py_DECREF(str); +        state->last_str = temp; +        if (!temp) +            return -1; +    } +    FstringParser_check_invariants(state); +    return 0; +} + +/* Parse an f-string. The f-string is in str, starting at ofs, with no 'f' +   or quotes. str is not decref'd, since we don't know if it's used elsewhere. +   And if we're only looking at a part of a string, then decref'ing is +   definitely not the right thing to do! */ +static int +FstringParser_ConcatFstring(FstringParser *state, PyObject *str, +                            Py_ssize_t *ofs, int recurse_lvl, +                            struct compiling *c, const node *n) +{ +    FstringParser_check_invariants(state); + +    /* Parse the f-string. */ +    while (1) { +        PyObject *literal = NULL; +        expr_ty expression = NULL; + +        /* If there's a zero length literal in front of the +           expression, literal will be NULL. If we're at the end of +           the f-string, expression will be NULL (unless result == 1, +           see below). */ +        int result = fstring_find_literal_and_expr(str, ofs, recurse_lvl, +                                                   &literal, &expression, +                                                   c, n); +        if (result < 0) +            return -1; + +        /* Add the literal, if any. */ +        if (!literal) { +            /* Do nothing. Just leave last_str alone (and possibly +               NULL). */ +        } else if (!state->last_str) { +            state->last_str = literal; +            literal = NULL; +        } else { +            /* We have a literal, concatenate it. */ +            assert(PyUnicode_GET_LENGTH(literal) != 0); +            if (FstringParser_ConcatAndDel(state, literal) < 0) +                return -1; +            literal = NULL; +        } +        assert(!state->last_str || +               PyUnicode_GET_LENGTH(state->last_str) != 0); + +        /* We've dealt with the literal now. It can't be leaked on further +           errors. */ +        assert(literal == NULL); + +        /* See if we should just loop around to get the next literal +           and expression, while ignoring the expression this +           time. This is used for un-doubling braces, as an +           optimization. */ +        if (result == 1) +            continue; + +        if (!expression) +            /* We're done with this f-string. */ +            break; + +        /* We know we have an expression. Convert any existing string +           to a Str node. */ +        if (!state->last_str) { +            /* Do nothing. No previous literal. */ +        } else { +            /* Convert the existing last_str literal to a Str node. */ +            expr_ty str = make_str_node_and_del(&state->last_str, c, n); +            if (!str || ExprList_Append(&state->expr_list, str) < 0) +                return -1; +        } + +        if (ExprList_Append(&state->expr_list, expression) < 0) +            return -1; +    } + +    assert(*ofs <= PyUnicode_GET_LENGTH(str)); + +    /* If recurse_lvl is zero, then we must be at the end of the +       string. Otherwise, we must be at a right brace. */ + +    if (recurse_lvl == 0 && *ofs < PyUnicode_GET_LENGTH(str)) { +        ast_error(c, n, "f-string: unexpected end of string"); +        return -1; +    } +    if (recurse_lvl != 0 && PyUnicode_READ_CHAR(str, *ofs) != '}') { +        ast_error(c, n, "f-string: expecting '}'"); +        return -1; +    } + +    FstringParser_check_invariants(state); +    return 0; +} + +/* Convert the partial state reflected in last_str and expr_list to an +   expr_ty. The expr_ty can be a Str, or a JoinedStr. */ +static expr_ty +FstringParser_Finish(FstringParser *state, struct compiling *c, +                     const node *n) +{ +    asdl_seq *seq; + +    FstringParser_check_invariants(state); + +    /* If we're just a constant string with no expressions, return +       that. */ +    if(state->expr_list.size == 0) { +        if (!state->last_str) { +            /* Create a zero length string. */ +            state->last_str = PyUnicode_FromStringAndSize(NULL, 0); +            if (!state->last_str) +                goto error; +        } +        return make_str_node_and_del(&state->last_str, c, n); +    } + +    /* Create a Str node out of last_str, if needed. It will be the +       last node in our expression list. */ +    if (state->last_str) { +        expr_ty str = make_str_node_and_del(&state->last_str, c, n); +        if (!str || ExprList_Append(&state->expr_list, str) < 0) +            goto error; +    } +    /* This has already been freed. */ +    assert(state->last_str == NULL); + +    seq = ExprList_Finish(&state->expr_list, c->c_arena); +    if (!seq) +        goto error; + +    /* If there's only one expression, return it. Otherwise, we need +       to join them together. */ +    if (seq->size == 1) +        return seq->elements[0]; + +    return JoinedStr(seq, LINENO(n), n->n_col_offset, c->c_arena); + +error: +    FstringParser_Dealloc(state); +    return NULL; +} + +/* Given an f-string (with no 'f' or quotes) that's in str starting at +   ofs, parse it into an expr_ty. Return NULL on error. Does not +   decref str. */ +static expr_ty +fstring_parse(PyObject *str, Py_ssize_t *ofs, int recurse_lvl, +              struct compiling *c, const node *n) +{ +    FstringParser state; + +    FstringParser_Init(&state); +    if (FstringParser_ConcatFstring(&state, str, ofs, recurse_lvl, +                                    c, n) < 0) { +        FstringParser_Dealloc(&state); +        return NULL; +    } + +    return FstringParser_Finish(&state, c, n); +} + +/* n is a Python string literal, including the bracketing quote +   characters, and r, b, u, &/or f prefixes (if any), and embedded +   escape sequences (if any). parsestr parses it, and returns the +   decoded Python string object.  If the string is an f-string, set +   *fmode and return the unparsed string object. +*/  static PyObject * -parsestr(struct compiling *c, const node *n, int *bytesmode) +parsestr(struct compiling *c, const node *n, int *bytesmode, int *fmode)  {      size_t len;      const char *s = STR(n); @@ -4024,15 +4888,24 @@ parsestr(struct compiling *c, const node *n, int *bytesmode)                  quote = *++s;                  rawmode = 1;              } +            else if (quote == 'f' || quote == 'F') { +                quote = *++s; +                *fmode = 1; +            }              else {                  break;              }          }      } +    if (*fmode && *bytesmode) { +        PyErr_BadInternalCall(); +        return NULL; +    }      if (quote != '\'' && quote != '\"') {          PyErr_BadInternalCall();          return NULL;      } +    /* Skip the leading quote char. */      s++;      len = strlen(s);      if (len > INT_MAX) { @@ -4041,19 +4914,24 @@ parsestr(struct compiling *c, const node *n, int *bytesmode)          return NULL;      }      if (s[--len] != quote) { +        /* Last quote char must match the first. */          PyErr_BadInternalCall();          return NULL;      }      if (len >= 4 && s[0] == quote && s[1] == quote) { +        /* A triple quoted string. We've already skipped one quote at +           the start and one at the end of the string. Now skip the +           two at the start. */          s += 2;          len -= 2; +        /* And check that the last two match. */          if (s[--len] != quote || s[--len] != quote) {              PyErr_BadInternalCall();              return NULL;          }      }      if (!*bytesmode && !rawmode) { -        return decode_unicode(c, s, len, rawmode, c->c_encoding); +        return decode_unicode(c, s, len, c->c_encoding);      }      if (*bytesmode) {          /* Disallow non-ascii characters (but not escapes) */ @@ -4085,51 +4963,84 @@ parsestr(struct compiling *c, const node *n, int *bytesmode)          }      }      return PyBytes_DecodeEscape(s, len, NULL, 1, -                                 need_encoding ? c->c_encoding : NULL); +                                need_encoding ? c->c_encoding : NULL);  } -/* Build a Python string object out of a STRING+ atom.  This takes care of - * compile-time literal catenation, calling parsestr() on each piece, and - * pasting the intermediate results together. - */ -static PyObject * -parsestrplus(struct compiling *c, const node *n, int *bytesmode) +/* Accepts a STRING+ atom, and produces an expr_ty node. Run through +   each STRING atom, and process it as needed. For bytes, just +   concatenate them together, and the result will be a Bytes node. For +   normal strings and f-strings, concatenate them together. The result +   will be a Str node if there were no f-strings; a FormattedValue +   node if there's just an f-string (with no leading or trailing +   literals), or a JoinedStr node if there are multiple f-strings or +   any literals involved. */ +static expr_ty +parsestrplus(struct compiling *c, const node *n)  { -    PyObject *v; +    int bytesmode = 0; +    PyObject *bytes_str = NULL;      int i; -    REQ(CHILD(n, 0), STRING); -    v = parsestr(c, CHILD(n, 0), bytesmode); -    if (v != NULL) { -        /* String literal concatenation */ -        for (i = 1; i < NCH(n); i++) { -            PyObject *s; -            int subbm = 0; -            s = parsestr(c, CHILD(n, i), &subbm); -            if (s == NULL) -                goto onError; -            if (*bytesmode != subbm) { -                ast_error(c, n, "cannot mix bytes and nonbytes literals"); -                Py_DECREF(s); -                goto onError; -            } -            if (PyBytes_Check(v) && PyBytes_Check(s)) { -                PyBytes_ConcatAndDel(&v, s); -                if (v == NULL) -                    goto onError; -            } -            else { -                PyObject *temp = PyUnicode_Concat(v, s); -                Py_DECREF(s); -                Py_DECREF(v); -                v = temp; -                if (v == NULL) -                    goto onError; + +    FstringParser state; +    FstringParser_Init(&state); + +    for (i = 0; i < NCH(n); i++) { +        int this_bytesmode = 0; +        int this_fmode = 0; +        PyObject *s; + +        REQ(CHILD(n, i), STRING); +        s = parsestr(c, CHILD(n, i), &this_bytesmode, &this_fmode); +        if (!s) +            goto error; + +        /* Check that we're not mixing bytes with unicode. */ +        if (i != 0 && bytesmode != this_bytesmode) { +            ast_error(c, n, "cannot mix bytes and nonbytes literals"); +            Py_DECREF(s); +            goto error; +        } +        bytesmode = this_bytesmode; + +        assert(bytesmode ? PyBytes_CheckExact(s) : PyUnicode_CheckExact(s)); + +        if (bytesmode) { +            /* For bytes, concat as we go. */ +            if (i == 0) { +                /* First time, just remember this value. */ +                bytes_str = s; +            } else { +                PyBytes_ConcatAndDel(&bytes_str, s); +                if (!bytes_str) +                    goto error;              } +        } else if (this_fmode) { +            /* This is an f-string. Concatenate and decref it. */ +            Py_ssize_t ofs = 0; +            int result = FstringParser_ConcatFstring(&state, s, &ofs, 0, c, n); +            Py_DECREF(s); +            if (result < 0) +                goto error; +        } else { +            /* This is a regular string. Concatenate it. */ +            if (FstringParser_ConcatAndDel(&state, s) < 0) +                goto error;          }      } -    return v; +    if (bytesmode) { +        /* Just return the bytes object and we're done. */ +        if (PyArena_AddPyObject(c->c_arena, bytes_str) < 0) +            goto error; +        return Bytes(bytes_str, LINENO(n), n->n_col_offset, c->c_arena); +    } + +    /* We're not a bytes string, bytes_str should never have been set. */ +    assert(bytes_str == NULL); + +    return FstringParser_Finish(&state, c, n); -  onError: -    Py_XDECREF(v); +error: +    Py_XDECREF(bytes_str); +    FstringParser_Dealloc(&state);      return NULL;  } diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index a06ef61..31d9e0e 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -331,7 +331,7 @@ builtin_any(PyModuleDef *module, PyObject *iterable)              Py_DECREF(it);              return NULL;          } -        if (cmp == 1) { +        if (cmp > 0) {              Py_DECREF(it);              Py_RETURN_TRUE;          } @@ -469,6 +469,7 @@ filter_next(filterobject *lz)      PyObject *it = lz->it;      long ok;      PyObject *(*iternext)(PyObject *); +    int checktrue = lz->func == Py_None || lz->func == (PyObject *)&PyBool_Type;      iternext = *Py_TYPE(it)->tp_iternext;      for (;;) { @@ -476,12 +477,11 @@ filter_next(filterobject *lz)          if (item == NULL)              return NULL; -        if (lz->func == Py_None || lz->func == (PyObject *)&PyBool_Type) { +        if (checktrue) {              ok = PyObject_IsTrue(item);          } else {              PyObject *good; -            good = PyObject_CallFunctionObjArgs(lz->func, -                                                item, NULL); +            good = PyObject_CallFunctionObjArgs(lz->func, item, NULL);              if (good == NULL) {                  Py_DECREF(item);                  return NULL; @@ -1174,13 +1174,14 @@ map_next(mapobject *lz)      PyObject *result;      Py_ssize_t numargs, i; -    numargs = PyTuple_Size(lz->iters); +    numargs = PyTuple_GET_SIZE(lz->iters);      argtuple = PyTuple_New(numargs);      if (argtuple == NULL)          return NULL;      for (i=0 ; i<numargs ; i++) { -        val = PyIter_Next(PyTuple_GET_ITEM(lz->iters, i)); +        PyObject *it = PyTuple_GET_ITEM(lz->iters, i); +        val = Py_TYPE(it)->tp_iternext(it);          if (val == NULL) {              Py_DECREF(argtuple);              return NULL; diff --git a/Python/ceval.c b/Python/ceval.c index beabfeb..1d65649 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2307,7 +2307,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)              }              else {                  v = PyObject_GetItem(locals, name); -                if (v == NULL && _PyErr_OCCURRED()) { +                if (v == NULL) {                      if (!PyErr_ExceptionMatches(PyExc_KeyError))                          goto error;                      PyErr_Clear(); @@ -2347,26 +2347,33 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)              PyObject *name = GETITEM(names, oparg);              PyObject *v;              if (PyDict_CheckExact(f->f_globals) -                && PyDict_CheckExact(f->f_builtins)) { +                && PyDict_CheckExact(f->f_builtins)) +            {                  v = _PyDict_LoadGlobal((PyDictObject *)f->f_globals,                                         (PyDictObject *)f->f_builtins,                                         name);                  if (v == NULL) { -                    if (!_PyErr_OCCURRED()) +                    if (!_PyErr_OCCURRED()) { +                        /* _PyDict_LoadGlobal() returns NULL without raising +                         * an exception if the key doesn't exist */                          format_exc_check_arg(PyExc_NameError,                                               NAME_ERROR_MSG, name); +                    }                      goto error;                  }                  Py_INCREF(v);              }              else {                  /* Slow-path if globals or builtins is not a dict */ + +                /* namespace 1: globals */                  v = PyObject_GetItem(f->f_globals, name);                  if (v == NULL) {                      if (!PyErr_ExceptionMatches(PyExc_KeyError))                          goto error;                      PyErr_Clear(); +                    /* namespace 2: builtins */                      v = PyObject_GetItem(f->f_builtins, name);                      if (v == NULL) {                          if (PyErr_ExceptionMatches(PyExc_KeyError)) @@ -2426,7 +2433,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)              }              else {                  value = PyObject_GetItem(locals, name); -                if (value == NULL && PyErr_Occurred()) { +                if (value == NULL) {                      if (!PyErr_ExceptionMatches(PyExc_KeyError))                          goto error;                      PyErr_Clear(); @@ -3367,6 +3374,63 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)              DISPATCH();          } +        TARGET(FORMAT_VALUE) { +            /* Handles f-string value formatting. */ +            PyObject *result; +            PyObject *fmt_spec; +            PyObject *value; +            PyObject *(*conv_fn)(PyObject *); +            int which_conversion = oparg & FVC_MASK; +            int have_fmt_spec = (oparg & FVS_MASK) == FVS_HAVE_SPEC; + +            fmt_spec = have_fmt_spec ? POP() : NULL; +            value = TOP(); + +            /* See if any conversion is specified. */ +            switch (which_conversion) { +            case FVC_STR:   conv_fn = PyObject_Str;   break; +            case FVC_REPR:  conv_fn = PyObject_Repr;  break; +            case FVC_ASCII: conv_fn = PyObject_ASCII; break; + +            /* Must be 0 (meaning no conversion), since only four +               values are allowed by (oparg & FVC_MASK). */ +            default:        conv_fn = NULL;           break; +            } + +            /* If there's a conversion function, call it and replace +               value with that result. Otherwise, just use value, +               without conversion. */ +            if (conv_fn) { +                result = conv_fn(value); +                Py_DECREF(value); +                if (!result) { +                    Py_XDECREF(fmt_spec); +                    goto error; +                } +                value = result; +            } + +            /* If value is a unicode object, and there's no fmt_spec, +               then we know the result of format(value) is value +               itself. In that case, skip calling format(). I plan to +               move this optimization in to PyObject_Format() +               itself. */ +            if (PyUnicode_CheckExact(value) && fmt_spec == NULL) { +                /* Do nothing, just transfer ownership to result. */ +                result = value; +            } else { +                /* Actually call format(). */ +                result = PyObject_Format(value, fmt_spec); +                Py_DECREF(value); +                Py_XDECREF(fmt_spec); +                if (!result) +                    goto error; +            } + +            SET_TOP(result); +            DISPATCH(); +        } +          TARGET(EXTENDED_ARG) {              opcode = NEXTOP();              oparg = oparg<<16 | NEXTARG(); diff --git a/Python/compile.c b/Python/compile.c index 4befaa7..030afed 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -731,6 +731,7 @@ compiler_set_qualname(struct compiler *c)      return 1;  } +  /* Allocate a new block and return a pointer to it.     Returns NULL on error.  */ @@ -1066,6 +1067,10 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg)              return 1;          case GET_YIELD_FROM_ITER:              return 0; +        case FORMAT_VALUE: +            /* If there's a fmt_spec on the stack, we go from 2->1, +               else 1->1. */ +            return (oparg & FVS_MASK) == FVS_HAVE_SPEC ? -1 : 0;          default:              return PY_INVALID_STACK_EFFECT;      } @@ -3209,6 +3214,81 @@ compiler_call(struct compiler *c, expr_ty e)                                  e->v.Call.keywords);  } +static int +compiler_joined_str(struct compiler *c, expr_ty e) +{ +    /* Concatenate parts of a string using ''.join(parts). There are +       probably better ways of doing this. + +       This is used for constructs like "'x=' f'{42}'", which have to +       be evaluated at compile time. */ + +    static PyObject *empty_string; +    static PyObject *join_string; + +    if (!empty_string) { +        empty_string = PyUnicode_FromString(""); +        if (!empty_string) +            return 0; +    } +    if (!join_string) { +        join_string = PyUnicode_FromString("join"); +        if (!join_string) +            return 0; +    } + +    ADDOP_O(c, LOAD_CONST, empty_string, consts); +    ADDOP_NAME(c, LOAD_ATTR, join_string, names); +    VISIT_SEQ(c, expr, e->v.JoinedStr.values); +    ADDOP_I(c, BUILD_LIST, asdl_seq_LEN(e->v.JoinedStr.values)); +    ADDOP_I(c, CALL_FUNCTION, 1); +    return 1; +} + +/* Used to implement f-strings. Format a single value. */ +static int +compiler_formatted_value(struct compiler *c, expr_ty e) +{ +    /* Our oparg encodes 2 pieces of information: the conversion +       character, and whether or not a format_spec was provided. + +       Convert the conversion char to 2 bits: +       None: 000  0x0  FVC_NONE +       !s  : 001  0x1  FVC_STR +       !r  : 010  0x2  FVC_REPR +       !a  : 011  0x3  FVC_ASCII + +       next bit is whether or not we have a format spec: +       yes : 100  0x4 +       no  : 000  0x0 +    */ + +    int oparg; + +    /* Evaluate the expression to be formatted. */ +    VISIT(c, expr, e->v.FormattedValue.value); + +    switch (e->v.FormattedValue.conversion) { +    case 's': oparg = FVC_STR;   break; +    case 'r': oparg = FVC_REPR;  break; +    case 'a': oparg = FVC_ASCII; break; +    case -1:  oparg = FVC_NONE;  break; +    default: +        PyErr_SetString(PyExc_SystemError, +                        "Unrecognized conversion character"); +        return 0; +    } +    if (e->v.FormattedValue.format_spec) { +        /* Evaluate the format spec, and update our opcode arg. */ +        VISIT(c, expr, e->v.FormattedValue.format_spec); +        oparg |= FVS_HAVE_SPEC; +    } + +    /* And push our opcode and oparg */ +    ADDOP_I(c, FORMAT_VALUE, oparg); +    return 1; +} +  /* shared code between compiler_call and compiler_class */  static int  compiler_call_helper(struct compiler *c, @@ -3628,9 +3708,9 @@ expr_constant(struct compiler *c, expr_ty e)         BLOCK     finally:         if an exception was raised: -       exc = copy of (exception, instance, traceback) +           exc = copy of (exception, instance, traceback)         else: -       exc = (None, None, None) +           exc = (None, None, None)         if not (await exit(*exc)):             raise   */ @@ -3878,6 +3958,10 @@ compiler_visit_expr(struct compiler *c, expr_ty e)      case Str_kind:          ADDOP_O(c, LOAD_CONST, e->v.Str.s, consts);          break; +    case JoinedStr_kind: +        return compiler_joined_str(c, e); +    case FormattedValue_kind: +        return compiler_formatted_value(c, e);      case Bytes_kind:          ADDOP_O(c, LOAD_CONST, e->v.Bytes.s, consts);          break; @@ -4784,4 +4868,3 @@ PyAST_Compile(mod_ty mod, const char *filename, PyCompilerFlags *flags,  {      return PyAST_CompileEx(mod, filename, flags, -1, arena);  } - diff --git a/Python/dynload_win.c b/Python/dynload_win.c index f2c796e..9fb0525 100644 --- a/Python/dynload_win.c +++ b/Python/dynload_win.c @@ -24,12 +24,10 @@ void _Py_DeactivateActCtx(ULONG_PTR cookie);  #define PYD_DEBUG_SUFFIX ""  #endif -#define STRINGIZE2(x) #x -#define STRINGIZE(x) STRINGIZE2(x)  #ifdef PYD_PLATFORM_TAG -#define PYD_TAGGED_SUFFIX PYD_DEBUG_SUFFIX ".cp" STRINGIZE(PY_MAJOR_VERSION) STRINGIZE(PY_MINOR_VERSION) "-" PYD_PLATFORM_TAG ".pyd" +#define PYD_TAGGED_SUFFIX PYD_DEBUG_SUFFIX ".cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) "-" PYD_PLATFORM_TAG ".pyd"  #else -#define PYD_TAGGED_SUFFIX PYD_DEBUG_SUFFIX ".cp" STRINGIZE(PY_MAJOR_VERSION) STRINGIZE(PY_MINOR_VERSION) ".pyd" +#define PYD_TAGGED_SUFFIX PYD_DEBUG_SUFFIX ".cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) ".pyd"  #endif  #define PYD_UNTAGGED_SUFFIX PYD_DEBUG_SUFFIX ".pyd" diff --git a/Python/frozenmain.c b/Python/frozenmain.c index de8bd35..769b33d 100644 --- a/Python/frozenmain.c +++ b/Python/frozenmain.c @@ -99,7 +99,9 @@ Py_FrozenMain(int argc, char **argv)  #ifdef MS_WINDOWS      PyWinFreeze_ExeTerm();  #endif -    Py_Finalize(); +    if (Py_FinalizeEx() < 0) { +        sts = 120; +    }  error:      PyMem_RawFree(argv_copy); diff --git a/Python/graminit.c b/Python/graminit.c index 8212b2a..354dc12 100644 --- a/Python/graminit.c +++ b/Python/graminit.c @@ -204,11 +204,13 @@ static arc arcs_9_6[2] = {      {32, 7},      {0, 6},  }; -static arc arcs_9_7[2] = { +static arc arcs_9_7[3] = {      {30, 12},      {34, 3}, +    {0, 7},  }; -static arc arcs_9_8[1] = { +static arc arcs_9_8[2] = { +    {32, 13},      {0, 8},  };  static arc arcs_9_9[2] = { @@ -221,35 +223,39 @@ static arc arcs_9_10[3] = {      {0, 10},  };  static arc arcs_9_11[3] = { -    {30, 13}, -    {32, 14}, +    {30, 14}, +    {32, 15},      {0, 11},  };  static arc arcs_9_12[3] = {      {32, 7}, -    {31, 15}, +    {31, 16},      {0, 12},  }; -static arc arcs_9_13[2] = { -    {32, 14}, +static arc arcs_9_13[1] = {      {0, 13},  };  static arc arcs_9_14[2] = { -    {30, 16}, +    {32, 15}, +    {0, 14}, +}; +static arc arcs_9_15[3] = { +    {30, 17},      {34, 3}, +    {0, 15},  }; -static arc arcs_9_15[1] = { +static arc arcs_9_16[1] = {      {26, 6},  }; -static arc arcs_9_16[3] = { -    {32, 14}, -    {31, 17}, -    {0, 16}, +static arc arcs_9_17[3] = { +    {32, 15}, +    {31, 18}, +    {0, 17},  }; -static arc arcs_9_17[1] = { -    {26, 13}, +static arc arcs_9_18[1] = { +    {26, 14},  }; -static state states_9[18] = { +static state states_9[19] = {      {3, arcs_9_0},      {3, arcs_9_1},      {3, arcs_9_2}, @@ -257,17 +263,18 @@ static state states_9[18] = {      {1, arcs_9_4},      {4, arcs_9_5},      {2, arcs_9_6}, -    {2, arcs_9_7}, -    {1, arcs_9_8}, +    {3, arcs_9_7}, +    {2, arcs_9_8},      {2, arcs_9_9},      {3, arcs_9_10},      {3, arcs_9_11},      {3, arcs_9_12}, -    {2, arcs_9_13}, +    {1, arcs_9_13},      {2, arcs_9_14}, -    {1, arcs_9_15}, -    {3, arcs_9_16}, -    {1, arcs_9_17}, +    {3, arcs_9_15}, +    {1, arcs_9_16}, +    {3, arcs_9_17}, +    {1, arcs_9_18},  };  static arc arcs_10_0[1] = {      {23, 1}, @@ -319,11 +326,13 @@ static arc arcs_11_6[2] = {      {32, 7},      {0, 6},  }; -static arc arcs_11_7[2] = { +static arc arcs_11_7[3] = {      {36, 12},      {34, 3}, +    {0, 7},  }; -static arc arcs_11_8[1] = { +static arc arcs_11_8[2] = { +    {32, 13},      {0, 8},  };  static arc arcs_11_9[2] = { @@ -336,35 +345,39 @@ static arc arcs_11_10[3] = {      {0, 10},  };  static arc arcs_11_11[3] = { -    {36, 13}, -    {32, 14}, +    {36, 14}, +    {32, 15},      {0, 11},  };  static arc arcs_11_12[3] = {      {32, 7}, -    {31, 15}, +    {31, 16},      {0, 12},  }; -static arc arcs_11_13[2] = { -    {32, 14}, +static arc arcs_11_13[1] = {      {0, 13},  };  static arc arcs_11_14[2] = { -    {36, 16}, +    {32, 15}, +    {0, 14}, +}; +static arc arcs_11_15[3] = { +    {36, 17},      {34, 3}, +    {0, 15},  }; -static arc arcs_11_15[1] = { +static arc arcs_11_16[1] = {      {26, 6},  }; -static arc arcs_11_16[3] = { -    {32, 14}, -    {31, 17}, -    {0, 16}, +static arc arcs_11_17[3] = { +    {32, 15}, +    {31, 18}, +    {0, 17},  }; -static arc arcs_11_17[1] = { -    {26, 13}, +static arc arcs_11_18[1] = { +    {26, 14},  }; -static state states_11[18] = { +static state states_11[19] = {      {3, arcs_11_0},      {3, arcs_11_1},      {3, arcs_11_2}, @@ -372,17 +385,18 @@ static state states_11[18] = {      {1, arcs_11_4},      {4, arcs_11_5},      {2, arcs_11_6}, -    {2, arcs_11_7}, -    {1, arcs_11_8}, +    {3, arcs_11_7}, +    {2, arcs_11_8},      {2, arcs_11_9},      {3, arcs_11_10},      {3, arcs_11_11},      {3, arcs_11_12}, -    {2, arcs_11_13}, +    {1, arcs_11_13},      {2, arcs_11_14}, -    {1, arcs_11_15}, -    {3, arcs_11_16}, -    {1, arcs_11_17}, +    {3, arcs_11_15}, +    {1, arcs_11_16}, +    {3, arcs_11_17}, +    {1, arcs_11_18},  };  static arc arcs_12_0[1] = {      {23, 1}, @@ -1879,11 +1893,11 @@ static dfa dfas[85] = {       "\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},      {264, "parameters", 0, 4, states_8,       "\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, -    {265, "typedargslist", 0, 18, states_9, +    {265, "typedargslist", 0, 19, states_9,       "\000\000\200\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},      {266, "tfpdef", 0, 4, states_10,       "\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, -    {267, "varargslist", 0, 18, states_11, +    {267, "varargslist", 0, 19, states_11,       "\000\000\200\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},      {268, "vfpdef", 0, 2, states_12,       "\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"}, diff --git a/Python/importlib_external.h b/Python/importlib_external.h index b20ce17..dd322a9 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -1,8 +1,8 @@  /* Auto-generated by Programs/_freeze_importlib.c */  const unsigned char _Py_M__importlib_external[] = {      99,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0, -    0,64,0,0,0,115,228,2,0,0,100,0,0,90,0,0, -    100,96,0,90,1,0,100,4,0,100,5,0,132,0,0,90, +    0,64,0,0,0,115,210,2,0,0,100,0,0,90,0,0, +    100,92,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, @@ -20,563 +20,541 @@ const unsigned char _Py_M__importlib_external[] = {      1,1,90,26,0,100,37,0,100,38,0,132,0,0,90,27,      0,100,39,0,100,40,0,132,0,0,90,28,0,100,41,0,      100,42,0,132,0,0,90,29,0,100,43,0,100,44,0,132, -    0,0,90,30,0,100,45,0,100,46,0,100,47,0,100,48, -    0,132,0,1,90,31,0,100,49,0,100,50,0,132,0,0, -    90,32,0,100,51,0,100,52,0,132,0,0,90,33,0,100, -    33,0,100,33,0,100,33,0,100,53,0,100,54,0,132,3, -    0,90,34,0,100,33,0,100,33,0,100,33,0,100,55,0, -    100,56,0,132,3,0,90,35,0,100,57,0,100,57,0,100, -    58,0,100,59,0,132,2,0,90,36,0,100,60,0,100,61, -    0,132,0,0,90,37,0,101,38,0,131,0,0,90,39,0, -    100,33,0,100,62,0,100,33,0,100,63,0,101,39,0,100, -    64,0,100,65,0,132,1,2,90,40,0,71,100,66,0,100, -    67,0,132,0,0,100,67,0,131,2,0,90,41,0,71,100, -    68,0,100,69,0,132,0,0,100,69,0,131,2,0,90,42, -    0,71,100,70,0,100,71,0,132,0,0,100,71,0,101,42, -    0,131,3,0,90,43,0,71,100,72,0,100,73,0,132,0, -    0,100,73,0,131,2,0,90,44,0,71,100,74,0,100,75, -    0,132,0,0,100,75,0,101,44,0,101,43,0,131,4,0, -    90,45,0,71,100,76,0,100,77,0,132,0,0,100,77,0, -    101,44,0,101,42,0,131,4,0,90,46,0,103,0,0,90, -    47,0,71,100,78,0,100,79,0,132,0,0,100,79,0,101, -    44,0,101,42,0,131,4,0,90,48,0,71,100,80,0,100, -    81,0,132,0,0,100,81,0,131,2,0,90,49,0,71,100, -    82,0,100,83,0,132,0,0,100,83,0,131,2,0,90,50, -    0,71,100,84,0,100,85,0,132,0,0,100,85,0,131,2, -    0,90,51,0,71,100,86,0,100,87,0,132,0,0,100,87, -    0,131,2,0,90,52,0,100,33,0,100,88,0,100,89,0, -    132,1,0,90,53,0,100,90,0,100,91,0,132,0,0,90, -    54,0,100,92,0,100,93,0,132,0,0,90,55,0,100,94, -    0,100,95,0,132,0,0,90,56,0,100,33,0,83,41,97, -    97,94,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,112,97,116,104, -    45,98,97,115,101,100,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,218,3,119,105,110,218,6,99,121,103,119,105,110, -    218,6,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,41,4,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,41,2,122, -    53,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,41,2,218,3,95,111,115,90,7, -    101,110,118,105,114,111,110,169,0,114,4,0,0,0,114,4, -    0,0,0,250,38,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,95,101,120,116,101,114,110,97,108,62,218,11,95,114,101, -    108,97,120,95,99,97,115,101,30,0,0,0,115,2,0,0, -    0,0,2,122,37,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,41,2,122,53,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,41,4,218,3,115, -    121,115,218,8,112,108,97,116,102,111,114,109,218,10,115,116, -    97,114,116,115,119,105,116,104,218,27,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,41,1,114,6,0,0,0,114,4,0,0, -    0,114,4,0,0,0,114,5,0,0,0,218,16,95,109,97, -    107,101,95,114,101,108,97,120,95,99,97,115,101,28,0,0, -    0,115,8,0,0,0,0,1,18,1,15,4,12,3,114,11, +    0,0,90,30,0,100,45,0,100,46,0,132,0,0,90,31, +    0,100,47,0,100,48,0,132,0,0,90,32,0,100,33,0, +    100,33,0,100,33,0,100,49,0,100,50,0,132,3,0,90, +    33,0,100,33,0,100,33,0,100,33,0,100,51,0,100,52, +    0,132,3,0,90,34,0,100,53,0,100,53,0,100,54,0, +    100,55,0,132,2,0,90,35,0,100,56,0,100,57,0,132, +    0,0,90,36,0,101,37,0,131,0,0,90,38,0,100,33, +    0,100,58,0,100,33,0,100,59,0,101,38,0,100,60,0, +    100,61,0,132,1,2,90,39,0,71,100,62,0,100,63,0, +    132,0,0,100,63,0,131,2,0,90,40,0,71,100,64,0, +    100,65,0,132,0,0,100,65,0,131,2,0,90,41,0,71, +    100,66,0,100,67,0,132,0,0,100,67,0,101,41,0,131, +    3,0,90,42,0,71,100,68,0,100,69,0,132,0,0,100, +    69,0,131,2,0,90,43,0,71,100,70,0,100,71,0,132, +    0,0,100,71,0,101,43,0,101,42,0,131,4,0,90,44, +    0,71,100,72,0,100,73,0,132,0,0,100,73,0,101,43, +    0,101,41,0,131,4,0,90,45,0,103,0,0,90,46,0, +    71,100,74,0,100,75,0,132,0,0,100,75,0,101,43,0, +    101,41,0,131,4,0,90,47,0,71,100,76,0,100,77,0, +    132,0,0,100,77,0,131,2,0,90,48,0,71,100,78,0, +    100,79,0,132,0,0,100,79,0,131,2,0,90,49,0,71, +    100,80,0,100,81,0,132,0,0,100,81,0,131,2,0,90, +    50,0,71,100,82,0,100,83,0,132,0,0,100,83,0,131, +    2,0,90,51,0,100,33,0,100,84,0,100,85,0,132,1, +    0,90,52,0,100,86,0,100,87,0,132,0,0,90,53,0, +    100,88,0,100,89,0,132,0,0,90,54,0,100,90,0,100, +    91,0,132,0,0,90,55,0,100,33,0,83,41,93,97,94, +    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,112,97,116,104,45,98, +    97,115,101,100,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,218,3,119,105,110,218,6,99,121,103,119,105,110,218,6, +    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,41,4,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,41,2,122,53,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,41,2,218,3,95,111,115,90,7,101,110, +    118,105,114,111,110,169,0,114,4,0,0,0,114,4,0,0, +    0,250,38,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,95, +    101,120,116,101,114,110,97,108,62,218,11,95,114,101,108,97, +    120,95,99,97,115,101,30,0,0,0,115,2,0,0,0,0, +    2,122,37,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,41,2,122,53,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,41,4,218,3,115,121,115, +    218,8,112,108,97,116,102,111,114,109,218,10,115,116,97,114, +    116,115,119,105,116,104,218,27,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,41,1,114,6,0,0,0,114,4,0,0,0,114, +    4,0,0,0,114,5,0,0,0,218,16,95,109,97,107,101, +    95,114,101,108,97,120,95,99,97,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,41,4,122,42,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,218,6,108,105,116,116,108,101,41,2,218,3,105, +    110,116,218,8,116,111,95,98,121,116,101,115,41,1,218,1, +    120,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    218,7,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,41,2,122,47,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,41,2,114,14,0, +    0,0,218,10,102,114,111,109,95,98,121,116,101,115,41,1, +    90,9,105,110,116,95,98,121,116,101,115,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,218,7,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,41,3,122,31,82,101,112,108,97, +    99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,97, +    116,104,46,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,41,2, +    218,6,114,115,116,114,105,112,218,15,112,97,116,104,95,115, +    101,112,97,114,97,116,111,114,115,41,2,218,2,46,48,218, +    4,112,97,114,116,114,4,0,0,0,114,4,0,0,0,114, +    5,0,0,0,250,10,60,108,105,115,116,99,111,109,112,62, +    52,0,0,0,115,2,0,0,0,9,1,122,30,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,41,2,218,8,112, +    97,116,104,95,115,101,112,218,4,106,111,105,110,41,1,218, +    10,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,218,10,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,41,4,122,32,82,101,112,108, +    97,99,101,109,101,110,116,32,102,111,114,32,111,115,46,112, +    97,116,104,46,115,112,108,105,116,40,41,46,233,1,0,0, +    0,90,8,109,97,120,115,112,108,105,116,218,0,41,6,218, +    3,108,101,110,114,21,0,0,0,218,10,114,112,97,114,116, +    105,116,105,111,110,114,25,0,0,0,218,8,114,101,118,101, +    114,115,101,100,218,6,114,115,112,108,105,116,41,5,218,4, +    112,97,116,104,90,5,102,114,111,110,116,218,1,95,218,4, +    116,97,105,108,114,16,0,0,0,114,4,0,0,0,114,4, +    0,0,0,114,5,0,0,0,218,11,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,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,41,4,122,42,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,218,6,108,105,116,116,108,101,41,2,218, -    3,105,110,116,218,8,116,111,95,98,121,116,101,115,41,1, -    218,1,120,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,218,7,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,41,2,122,47,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,41,2,114, -    14,0,0,0,218,10,102,114,111,109,95,98,121,116,101,115, -    41,1,90,9,105,110,116,95,98,121,116,101,115,114,4,0, -    0,0,114,4,0,0,0,114,5,0,0,0,218,7,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,41,3,122,31,82,101,112, +    2,0,0,0,67,0,0,0,115,13,0,0,0,116,0,0, +    106,1,0,124,0,0,131,1,0,83,41,1,122,126,83,116, +    97,116,32,116,104,101,32,112,97,116,104,46,10,10,32,32, +    32,32,77,97,100,101,32,97,32,115,101,112,97,114,97,116, +    101,32,102,117,110,99,116,105,111,110,32,116,111,32,109,97, +    107,101,32,105,116,32,101,97,115,105,101,114,32,116,111,32, +    111,118,101,114,114,105,100,101,32,105,110,32,101,120,112,101, +    114,105,109,101,110,116,115,10,32,32,32,32,40,101,46,103, +    46,32,99,97,99,104,101,32,115,116,97,116,32,114,101,115, +    117,108,116,115,41,46,10,10,32,32,32,32,41,2,114,3, +    0,0,0,90,4,115,116,97,116,41,1,114,35,0,0,0, +    114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,218, +    10,95,112,97,116,104,95,115,116,97,116,68,0,0,0,115, +    2,0,0,0,0,7,114,39,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,58,0,0,0,121,16,0,116,0,0,124,0,0,131,1, +    0,125,2,0,87,110,22,0,4,116,1,0,107,10,0,114, +    40,0,1,1,1,100,1,0,83,89,110,1,0,88,124,2, +    0,106,2,0,100,2,0,64,124,1,0,107,2,0,83,41, +    3,122,49,84,101,115,116,32,119,104,101,116,104,101,114,32, +    116,104,101,32,112,97,116,104,32,105,115,32,116,104,101,32, +    115,112,101,99,105,102,105,101,100,32,109,111,100,101,32,116, +    121,112,101,46,70,105,0,240,0,0,41,3,114,39,0,0, +    0,218,7,79,83,69,114,114,111,114,218,7,115,116,95,109, +    111,100,101,41,3,114,35,0,0,0,218,4,109,111,100,101, +    90,9,115,116,97,116,95,105,110,102,111,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,218,18,95,112,97,116, +    104,95,105,115,95,109,111,100,101,95,116,121,112,101,78,0, +    0,0,115,10,0,0,0,0,2,3,1,16,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,41,2,122, +    31,82,101,112,108,97,99,101,109,101,110,116,32,102,111,114, +    32,111,115,46,112,97,116,104,46,105,115,102,105,108,101,46, +    105,0,128,0,0,41,1,114,43,0,0,0,41,1,114,35, +    0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, +    0,0,218,12,95,112,97,116,104,95,105,115,102,105,108,101, +    87,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,31,0,0,0,124,0,0,115,18,0, +    116,0,0,106,1,0,131,0,0,125,0,0,116,2,0,124, +    0,0,100,1,0,131,2,0,83,41,2,122,30,82,101,112,      108,97,99,101,109,101,110,116,32,102,111,114,32,111,115,46, -    112,97,116,104,46,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, -    41,2,218,6,114,115,116,114,105,112,218,15,112,97,116,104, -    95,115,101,112,97,114,97,116,111,114,115,41,2,218,2,46, -    48,218,4,112,97,114,116,114,4,0,0,0,114,4,0,0, -    0,114,5,0,0,0,250,10,60,108,105,115,116,99,111,109, -    112,62,52,0,0,0,115,2,0,0,0,9,1,122,30,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,41,2,218, -    8,112,97,116,104,95,115,101,112,218,4,106,111,105,110,41, -    1,218,10,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,218,10,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,41,4,122,32,82,101, -    112,108,97,99,101,109,101,110,116,32,102,111,114,32,111,115, -    46,112,97,116,104,46,115,112,108,105,116,40,41,46,233,1, -    0,0,0,90,8,109,97,120,115,112,108,105,116,218,0,41, -    6,218,3,108,101,110,114,21,0,0,0,218,10,114,112,97, -    114,116,105,116,105,111,110,114,25,0,0,0,218,8,114,101, -    118,101,114,115,101,100,218,6,114,115,112,108,105,116,41,5, -    218,4,112,97,116,104,90,5,102,114,111,110,116,218,1,95, -    218,4,116,97,105,108,114,16,0,0,0,114,4,0,0,0, +    112,97,116,104,46,105,115,100,105,114,46,105,0,64,0,0, +    41,3,114,3,0,0,0,218,6,103,101,116,99,119,100,114, +    43,0,0,0,41,1,114,35,0,0,0,114,4,0,0,0,      114,4,0,0,0,114,5,0,0,0,218,11,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,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,116, -    0,0,106,1,0,124,0,0,131,1,0,83,41,1,122,126, -    83,116,97,116,32,116,104,101,32,112,97,116,104,46,10,10, -    32,32,32,32,77,97,100,101,32,97,32,115,101,112,97,114, -    97,116,101,32,102,117,110,99,116,105,111,110,32,116,111,32, -    109,97,107,101,32,105,116,32,101,97,115,105,101,114,32,116, -    111,32,111,118,101,114,114,105,100,101,32,105,110,32,101,120, -    112,101,114,105,109,101,110,116,115,10,32,32,32,32,40,101, -    46,103,46,32,99,97,99,104,101,32,115,116,97,116,32,114, -    101,115,117,108,116,115,41,46,10,10,32,32,32,32,41,2, -    114,3,0,0,0,90,4,115,116,97,116,41,1,114,35,0, -    0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,218,10,95,112,97,116,104,95,115,116,97,116,68,0,0, -    0,115,2,0,0,0,0,7,114,39,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,58,0,0,0,121,16,0,116,0,0,124,0,0, -    131,1,0,125,2,0,87,110,22,0,4,116,1,0,107,10, -    0,114,40,0,1,1,1,100,1,0,83,89,110,1,0,88, -    124,2,0,106,2,0,100,2,0,64,124,1,0,107,2,0, -    83,41,3,122,49,84,101,115,116,32,119,104,101,116,104,101, -    114,32,116,104,101,32,112,97,116,104,32,105,115,32,116,104, -    101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,101, -    32,116,121,112,101,46,70,105,0,240,0,0,41,3,114,39, -    0,0,0,218,7,79,83,69,114,114,111,114,218,7,115,116, -    95,109,111,100,101,41,3,114,35,0,0,0,218,4,109,111, -    100,101,90,9,115,116,97,116,95,105,110,102,111,114,4,0, -    0,0,114,4,0,0,0,114,5,0,0,0,218,18,95,112, -    97,116,104,95,105,115,95,109,111,100,101,95,116,121,112,101, -    78,0,0,0,115,10,0,0,0,0,2,3,1,16,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,41, -    2,122,31,82,101,112,108,97,99,101,109,101,110,116,32,102, -    111,114,32,111,115,46,112,97,116,104,46,105,115,102,105,108, -    101,46,105,0,128,0,0,41,1,114,43,0,0,0,41,1, -    114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,218,12,95,112,97,116,104,95,105,115,102,105, -    108,101,87,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,31,0,0,0,124,0,0,115, -    18,0,116,0,0,106,1,0,131,0,0,125,0,0,116,2, -    0,124,0,0,100,1,0,131,2,0,83,41,2,122,30,82, -    101,112,108,97,99,101,109,101,110,116,32,102,111,114,32,111, -    115,46,112,97,116,104,46,105,115,100,105,114,46,105,0,64, -    0,0,41,3,114,3,0,0,0,218,6,103,101,116,99,119, -    100,114,43,0,0,0,41,1,114,35,0,0,0,114,4,0, -    0,0,114,4,0,0,0,114,5,0,0,0,218,11,95,112, -    97,116,104,95,105,115,100,105,114,92,0,0,0,115,6,0, -    0,0,0,2,6,1,12,1,114,46,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,193,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,61, -    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,82,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,188,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,180,0,1,1,1,89,110,1,0, -    88,130,0,0,89,110,1,0,88,100,4,0,83,41,5,122, -    162,66,101,115,116,45,101,102,102,111,114,116,32,102,117,110, -    99,116,105,111,110,32,116,111,32,119,114,105,116,101,32,100, -    97,116,97,32,116,111,32,97,32,112,97,116,104,32,97,116, -    111,109,105,99,97,108,108,121,46,10,32,32,32,32,66,101, -    32,112,114,101,112,97,114,101,100,32,116,111,32,104,97,110, -    100,108,101,32,97,32,70,105,108,101,69,120,105,115,116,115, -    69,114,114,111,114,32,105,102,32,99,111,110,99,117,114,114, -    101,110,116,32,119,114,105,116,105,110,103,32,111,102,32,116, -    104,101,10,32,32,32,32,116,101,109,112,111,114,97,114,121, -    32,102,105,108,101,32,105,115,32,97,116,116,101,109,112,116, -    101,100,46,122,5,123,125,46,123,125,105,182,1,0,0,90, -    2,119,98,78,41,13,218,6,102,111,114,109,97,116,218,2, -    105,100,114,3,0,0,0,90,4,111,112,101,110,90,6,79, -    95,69,88,67,76,90,7,79,95,67,82,69,65,84,90,8, -    79,95,87,82,79,78,76,89,218,3,95,105,111,218,6,70, -    105,108,101,73,79,218,5,119,114,105,116,101,218,7,114,101, -    112,108,97,99,101,114,40,0,0,0,90,6,117,110,108,105, -    110,107,41,6,114,35,0,0,0,218,4,100,97,116,97,114, -    42,0,0,0,90,8,112,97,116,104,95,116,109,112,90,2, -    102,100,218,4,102,105,108,101,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,218,13,95,119,114,105,116,101,95, -    97,116,111,109,105,99,99,0,0,0,115,26,0,0,0,0, -    5,24,1,9,1,33,1,3,3,21,1,20,1,20,1,13, -    1,3,1,17,1,13,1,5,1,114,55,0,0,0,105,22, -    13,0,0,233,2,0,0,0,114,13,0,0,0,115,2,0, -    0,0,13,10,90,11,95,95,112,121,99,97,99,104,101,95, -    95,122,4,111,112,116,45,122,3,46,112,121,122,4,46,112, -    121,99,78,218,12,111,112,116,105,109,105,122,97,116,105,111, -    110,99,2,0,0,0,1,0,0,0,11,0,0,0,6,0, -    0,0,67,0,0,0,115,87,1,0,0,124,1,0,100,1, -    0,107,9,0,114,76,0,116,0,0,106,1,0,100,2,0, -    116,2,0,131,2,0,1,124,2,0,100,1,0,107,9,0, -    114,58,0,100,3,0,125,3,0,116,3,0,124,3,0,131, -    1,0,130,1,0,124,1,0,114,70,0,100,4,0,110,3, -    0,100,5,0,125,2,0,116,4,0,124,0,0,131,1,0, -    92,2,0,125,4,0,125,5,0,124,5,0,106,5,0,100, -    6,0,131,1,0,92,3,0,125,6,0,125,7,0,125,8, -    0,116,6,0,106,7,0,106,8,0,125,9,0,124,9,0, -    100,1,0,107,8,0,114,154,0,116,9,0,100,7,0,131, -    1,0,130,1,0,100,4,0,106,10,0,124,6,0,114,172, -    0,124,6,0,110,3,0,124,8,0,124,7,0,124,9,0, -    103,3,0,131,1,0,125,10,0,124,2,0,100,1,0,107, -    8,0,114,241,0,116,6,0,106,11,0,106,12,0,100,8, -    0,107,2,0,114,229,0,100,4,0,125,2,0,110,12,0, -    116,6,0,106,11,0,106,12,0,125,2,0,116,13,0,124, -    2,0,131,1,0,125,2,0,124,2,0,100,4,0,107,3, -    0,114,63,1,124,2,0,106,14,0,131,0,0,115,42,1, -    116,15,0,100,9,0,106,16,0,124,2,0,131,1,0,131, -    1,0,130,1,0,100,10,0,106,16,0,124,10,0,116,17, -    0,124,2,0,131,3,0,125,10,0,116,18,0,124,4,0, -    116,19,0,124,10,0,116,20,0,100,8,0,25,23,131,3, -    0,83,41,11,97,254,2,0,0,71,105,118,101,110,32,116, -    104,101,32,112,97,116,104,32,116,111,32,97,32,46,112,121, -    32,102,105,108,101,44,32,114,101,116,117,114,110,32,116,104, -    101,32,112,97,116,104,32,116,111,32,105,116,115,32,46,112, -    121,99,32,102,105,108,101,46,10,10,32,32,32,32,84,104, -    101,32,46,112,121,32,102,105,108,101,32,100,111,101,115,32, -    110,111,116,32,110,101,101,100,32,116,111,32,101,120,105,115, -    116,59,32,116,104,105,115,32,115,105,109,112,108,121,32,114, -    101,116,117,114,110,115,32,116,104,101,32,112,97,116,104,32, -    116,111,32,116,104,101,10,32,32,32,32,46,112,121,99,32, -    102,105,108,101,32,99,97,108,99,117,108,97,116,101,100,32, -    97,115,32,105,102,32,116,104,101,32,46,112,121,32,102,105, -    108,101,32,119,101,114,101,32,105,109,112,111,114,116,101,100, -    46,10,10,32,32,32,32,84,104,101,32,39,111,112,116,105, -    109,105,122,97,116,105,111,110,39,32,112,97,114,97,109,101, -    116,101,114,32,99,111,110,116,114,111,108,115,32,116,104,101, -    32,112,114,101,115,117,109,101,100,32,111,112,116,105,109,105, -    122,97,116,105,111,110,32,108,101,118,101,108,32,111,102,10, -    32,32,32,32,116,104,101,32,98,121,116,101,99,111,100,101, -    32,102,105,108,101,46,32,73,102,32,39,111,112,116,105,109, -    105,122,97,116,105,111,110,39,32,105,115,32,110,111,116,32, -    78,111,110,101,44,32,116,104,101,32,115,116,114,105,110,103, -    32,114,101,112,114,101,115,101,110,116,97,116,105,111,110,10, -    32,32,32,32,111,102,32,116,104,101,32,97,114,103,117,109, -    101,110,116,32,105,115,32,116,97,107,101,110,32,97,110,100, -    32,118,101,114,105,102,105,101,100,32,116,111,32,98,101,32, -    97,108,112,104,97,110,117,109,101,114,105,99,32,40,101,108, -    115,101,32,86,97,108,117,101,69,114,114,111,114,10,32,32, -    32,32,105,115,32,114,97,105,115,101,100,41,46,10,10,32, -    32,32,32,84,104,101,32,100,101,98,117,103,95,111,118,101, -    114,114,105,100,101,32,112,97,114,97,109,101,116,101,114,32, -    105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,73, -    102,32,100,101,98,117,103,95,111,118,101,114,114,105,100,101, -    32,105,115,32,110,111,116,32,78,111,110,101,44,10,32,32, -    32,32,97,32,84,114,117,101,32,118,97,108,117,101,32,105, -    115,32,116,104,101,32,115,97,109,101,32,97,115,32,115,101, -    116,116,105,110,103,32,39,111,112,116,105,109,105,122,97,116, -    105,111,110,39,32,116,111,32,116,104,101,32,101,109,112,116, -    121,32,115,116,114,105,110,103,10,32,32,32,32,119,104,105, -    108,101,32,97,32,70,97,108,115,101,32,118,97,108,117,101, -    32,105,115,32,101,113,117,105,118,97,108,101,110,116,32,116, -    111,32,115,101,116,116,105,110,103,32,39,111,112,116,105,109, -    105,122,97,116,105,111,110,39,32,116,111,32,39,49,39,46, -    10,10,32,32,32,32,73,102,32,115,121,115,46,105,109,112, -    108,101,109,101,110,116,97,116,105,111,110,46,99,97,99,104, -    101,95,116,97,103,32,105,115,32,78,111,110,101,32,116,104, -    101,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101, -    100,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, -    46,10,10,32,32,32,32,78,122,70,116,104,101,32,100,101, -    98,117,103,95,111,118,101,114,114,105,100,101,32,112,97,114, -    97,109,101,116,101,114,32,105,115,32,100,101,112,114,101,99, -    97,116,101,100,59,32,117,115,101,32,39,111,112,116,105,109, -    105,122,97,116,105,111,110,39,32,105,110,115,116,101,97,100, -    122,50,100,101,98,117,103,95,111,118,101,114,114,105,100,101, -    32,111,114,32,111,112,116,105,109,105,122,97,116,105,111,110, -    32,109,117,115,116,32,98,101,32,115,101,116,32,116,111,32, -    78,111,110,101,114,30,0,0,0,114,29,0,0,0,218,1, -    46,122,36,115,121,115,46,105,109,112,108,101,109,101,110,116, -    97,116,105,111,110,46,99,97,99,104,101,95,116,97,103,32, -    105,115,32,78,111,110,101,233,0,0,0,0,122,24,123,33, -    114,125,32,105,115,32,110,111,116,32,97,108,112,104,97,110, -    117,109,101,114,105,99,122,7,123,125,46,123,125,123,125,41, -    21,218,9,95,119,97,114,110,105,110,103,115,218,4,119,97, -    114,110,218,18,68,101,112,114,101,99,97,116,105,111,110,87, -    97,114,110,105,110,103,218,9,84,121,112,101,69,114,114,111, -    114,114,38,0,0,0,114,32,0,0,0,114,7,0,0,0, -    218,14,105,109,112,108,101,109,101,110,116,97,116,105,111,110, -    218,9,99,97,99,104,101,95,116,97,103,218,19,78,111,116, -    73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114, -    114,26,0,0,0,218,5,102,108,97,103,115,218,8,111,112, -    116,105,109,105,122,101,218,3,115,116,114,218,7,105,115,97, -    108,110,117,109,218,10,86,97,108,117,101,69,114,114,111,114, -    114,47,0,0,0,218,4,95,79,80,84,114,28,0,0,0, -    218,8,95,80,89,67,65,67,72,69,218,17,66,89,84,69, -    67,79,68,69,95,83,85,70,70,73,88,69,83,41,11,114, -    35,0,0,0,90,14,100,101,98,117,103,95,111,118,101,114, -    114,105,100,101,114,57,0,0,0,218,7,109,101,115,115,97, -    103,101,218,4,104,101,97,100,114,37,0,0,0,90,4,98, -    97,115,101,218,3,115,101,112,218,4,114,101,115,116,90,3, -    116,97,103,90,15,97,108,109,111,115,116,95,102,105,108,101, -    110,97,109,101,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,218,17,99,97,99,104,101,95,102,114,111,109,95, -    115,111,117,114,99,101,243,0,0,0,115,46,0,0,0,0, -    18,12,1,9,1,7,1,12,1,6,1,12,1,18,1,18, -    1,24,1,12,1,12,1,12,1,36,1,12,1,18,1,9, -    2,12,1,12,1,12,1,12,1,21,1,21,1,114,79,0, -    0,0,99,1,0,0,0,0,0,0,0,8,0,0,0,5, -    0,0,0,67,0,0,0,115,62,1,0,0,116,0,0,106, -    1,0,106,2,0,100,1,0,107,8,0,114,30,0,116,3, -    0,100,2,0,131,1,0,130,1,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,102,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,124,2,0,106,8,0,100,4,0,131,1,0,125,4, -    0,124,4,0,100,11,0,107,7,0,114,153,0,116,6,0, -    100,7,0,106,7,0,124,2,0,131,1,0,131,1,0,130, -    1,0,110,125,0,124,4,0,100,6,0,107,2,0,114,22, -    1,124,2,0,106,9,0,100,4,0,100,5,0,131,2,0, -    100,12,0,25,125,5,0,124,5,0,106,10,0,116,11,0, -    131,1,0,115,223,0,116,6,0,100,8,0,106,7,0,116, -    11,0,131,1,0,131,1,0,130,1,0,124,5,0,116,12, -    0,116,11,0,131,1,0,100,1,0,133,2,0,25,125,6, -    0,124,6,0,106,13,0,131,0,0,115,22,1,116,6,0, -    100,9,0,106,7,0,124,5,0,131,1,0,131,1,0,130, -    1,0,124,2,0,106,14,0,100,4,0,131,1,0,100,10, -    0,25,125,7,0,116,15,0,124,1,0,124,7,0,116,16, -    0,100,10,0,25,23,131,2,0,83,41,13,97,110,1,0, -    0,71,105,118,101,110,32,116,104,101,32,112,97,116,104,32, -    116,111,32,97,32,46,112,121,99,46,32,102,105,108,101,44, -    32,114,101,116,117,114,110,32,116,104,101,32,112,97,116,104, -    32,116,111,32,105,116,115,32,46,112,121,32,102,105,108,101, -    46,10,10,32,32,32,32,84,104,101,32,46,112,121,99,32, -    102,105,108,101,32,100,111,101,115,32,110,111,116,32,110,101, -    101,100,32,116,111,32,101,120,105,115,116,59,32,116,104,105, -    115,32,115,105,109,112,108,121,32,114,101,116,117,114,110,115, -    32,116,104,101,32,112,97,116,104,32,116,111,10,32,32,32, -    32,116,104,101,32,46,112,121,32,102,105,108,101,32,99,97, -    108,99,117,108,97,116,101,100,32,116,111,32,99,111,114,114, -    101,115,112,111,110,100,32,116,111,32,116,104,101,32,46,112, -    121,99,32,102,105,108,101,46,32,32,73,102,32,112,97,116, -    104,32,100,111,101,115,10,32,32,32,32,110,111,116,32,99, -    111,110,102,111,114,109,32,116,111,32,80,69,80,32,51,49, -    52,55,47,52,56,56,32,102,111,114,109,97,116,44,32,86, -    97,108,117,101,69,114,114,111,114,32,119,105,108,108,32,98, -    101,32,114,97,105,115,101,100,46,32,73,102,10,32,32,32, -    32,115,121,115,46,105,109,112,108,101,109,101,110,116,97,116, +    104,95,105,115,100,105,114,92,0,0,0,115,6,0,0,0, +    0,2,6,1,12,1,114,46,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,193,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,61,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,82,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,188,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,180,0,1,1,1,89,110,1,0,88,130, +    0,0,89,110,1,0,88,100,4,0,83,41,5,122,162,66, +    101,115,116,45,101,102,102,111,114,116,32,102,117,110,99,116, +    105,111,110,32,116,111,32,119,114,105,116,101,32,100,97,116, +    97,32,116,111,32,97,32,112,97,116,104,32,97,116,111,109, +    105,99,97,108,108,121,46,10,32,32,32,32,66,101,32,112, +    114,101,112,97,114,101,100,32,116,111,32,104,97,110,100,108, +    101,32,97,32,70,105,108,101,69,120,105,115,116,115,69,114, +    114,111,114,32,105,102,32,99,111,110,99,117,114,114,101,110, +    116,32,119,114,105,116,105,110,103,32,111,102,32,116,104,101, +    10,32,32,32,32,116,101,109,112,111,114,97,114,121,32,102, +    105,108,101,32,105,115,32,97,116,116,101,109,112,116,101,100, +    46,122,5,123,125,46,123,125,105,182,1,0,0,90,2,119, +    98,78,41,13,218,6,102,111,114,109,97,116,218,2,105,100, +    114,3,0,0,0,90,4,111,112,101,110,90,6,79,95,69, +    88,67,76,90,7,79,95,67,82,69,65,84,90,8,79,95, +    87,82,79,78,76,89,218,3,95,105,111,218,6,70,105,108, +    101,73,79,218,5,119,114,105,116,101,218,7,114,101,112,108, +    97,99,101,114,40,0,0,0,90,6,117,110,108,105,110,107, +    41,6,114,35,0,0,0,218,4,100,97,116,97,114,42,0, +    0,0,90,8,112,97,116,104,95,116,109,112,90,2,102,100, +    218,4,102,105,108,101,114,4,0,0,0,114,4,0,0,0, +    114,5,0,0,0,218,13,95,119,114,105,116,101,95,97,116, +    111,109,105,99,99,0,0,0,115,26,0,0,0,0,5,24, +    1,9,1,33,1,3,3,21,1,20,1,20,1,13,1,3, +    1,17,1,13,1,5,1,114,55,0,0,0,105,32,13,0, +    0,233,2,0,0,0,114,13,0,0,0,115,2,0,0,0, +    13,10,90,11,95,95,112,121,99,97,99,104,101,95,95,122, +    4,111,112,116,45,122,3,46,112,121,122,4,46,112,121,99, +    78,218,12,111,112,116,105,109,105,122,97,116,105,111,110,99, +    2,0,0,0,1,0,0,0,11,0,0,0,6,0,0,0, +    67,0,0,0,115,87,1,0,0,124,1,0,100,1,0,107, +    9,0,114,76,0,116,0,0,106,1,0,100,2,0,116,2, +    0,131,2,0,1,124,2,0,100,1,0,107,9,0,114,58, +    0,100,3,0,125,3,0,116,3,0,124,3,0,131,1,0, +    130,1,0,124,1,0,114,70,0,100,4,0,110,3,0,100, +    5,0,125,2,0,116,4,0,124,0,0,131,1,0,92,2, +    0,125,4,0,125,5,0,124,5,0,106,5,0,100,6,0, +    131,1,0,92,3,0,125,6,0,125,7,0,125,8,0,116, +    6,0,106,7,0,106,8,0,125,9,0,124,9,0,100,1, +    0,107,8,0,114,154,0,116,9,0,100,7,0,131,1,0, +    130,1,0,100,4,0,106,10,0,124,6,0,114,172,0,124, +    6,0,110,3,0,124,8,0,124,7,0,124,9,0,103,3, +    0,131,1,0,125,10,0,124,2,0,100,1,0,107,8,0, +    114,241,0,116,6,0,106,11,0,106,12,0,100,8,0,107, +    2,0,114,229,0,100,4,0,125,2,0,110,12,0,116,6, +    0,106,11,0,106,12,0,125,2,0,116,13,0,124,2,0, +    131,1,0,125,2,0,124,2,0,100,4,0,107,3,0,114, +    63,1,124,2,0,106,14,0,131,0,0,115,42,1,116,15, +    0,100,9,0,106,16,0,124,2,0,131,1,0,131,1,0, +    130,1,0,100,10,0,106,16,0,124,10,0,116,17,0,124, +    2,0,131,3,0,125,10,0,116,18,0,124,4,0,116,19, +    0,124,10,0,116,20,0,100,8,0,25,23,131,3,0,83, +    41,11,97,254,2,0,0,71,105,118,101,110,32,116,104,101, +    32,112,97,116,104,32,116,111,32,97,32,46,112,121,32,102, +    105,108,101,44,32,114,101,116,117,114,110,32,116,104,101,32, +    112,97,116,104,32,116,111,32,105,116,115,32,46,112,121,99, +    32,102,105,108,101,46,10,10,32,32,32,32,84,104,101,32, +    46,112,121,32,102,105,108,101,32,100,111,101,115,32,110,111, +    116,32,110,101,101,100,32,116,111,32,101,120,105,115,116,59, +    32,116,104,105,115,32,115,105,109,112,108,121,32,114,101,116, +    117,114,110,115,32,116,104,101,32,112,97,116,104,32,116,111, +    32,116,104,101,10,32,32,32,32,46,112,121,99,32,102,105, +    108,101,32,99,97,108,99,117,108,97,116,101,100,32,97,115, +    32,105,102,32,116,104,101,32,46,112,121,32,102,105,108,101, +    32,119,101,114,101,32,105,109,112,111,114,116,101,100,46,10, +    10,32,32,32,32,84,104,101,32,39,111,112,116,105,109,105, +    122,97,116,105,111,110,39,32,112,97,114,97,109,101,116,101, +    114,32,99,111,110,116,114,111,108,115,32,116,104,101,32,112, +    114,101,115,117,109,101,100,32,111,112,116,105,109,105,122,97, +    116,105,111,110,32,108,101,118,101,108,32,111,102,10,32,32, +    32,32,116,104,101,32,98,121,116,101,99,111,100,101,32,102, +    105,108,101,46,32,73,102,32,39,111,112,116,105,109,105,122, +    97,116,105,111,110,39,32,105,115,32,110,111,116,32,78,111, +    110,101,44,32,116,104,101,32,115,116,114,105,110,103,32,114, +    101,112,114,101,115,101,110,116,97,116,105,111,110,10,32,32, +    32,32,111,102,32,116,104,101,32,97,114,103,117,109,101,110, +    116,32,105,115,32,116,97,107,101,110,32,97,110,100,32,118, +    101,114,105,102,105,101,100,32,116,111,32,98,101,32,97,108, +    112,104,97,110,117,109,101,114,105,99,32,40,101,108,115,101, +    32,86,97,108,117,101,69,114,114,111,114,10,32,32,32,32, +    105,115,32,114,97,105,115,101,100,41,46,10,10,32,32,32, +    32,84,104,101,32,100,101,98,117,103,95,111,118,101,114,114, +    105,100,101,32,112,97,114,97,109,101,116,101,114,32,105,115, +    32,100,101,112,114,101,99,97,116,101,100,46,32,73,102,32, +    100,101,98,117,103,95,111,118,101,114,114,105,100,101,32,105, +    115,32,110,111,116,32,78,111,110,101,44,10,32,32,32,32, +    97,32,84,114,117,101,32,118,97,108,117,101,32,105,115,32, +    116,104,101,32,115,97,109,101,32,97,115,32,115,101,116,116, +    105,110,103,32,39,111,112,116,105,109,105,122,97,116,105,111, +    110,39,32,116,111,32,116,104,101,32,101,109,112,116,121,32, +    115,116,114,105,110,103,10,32,32,32,32,119,104,105,108,101, +    32,97,32,70,97,108,115,101,32,118,97,108,117,101,32,105, +    115,32,101,113,117,105,118,97,108,101,110,116,32,116,111,32, +    115,101,116,116,105,110,103,32,39,111,112,116,105,109,105,122, +    97,116,105,111,110,39,32,116,111,32,39,49,39,46,10,10, +    32,32,32,32,73,102,32,115,121,115,46,105,109,112,108,101, +    109,101,110,116,97,116,105,111,110,46,99,97,99,104,101,95, +    116,97,103,32,105,115,32,78,111,110,101,32,116,104,101,110, +    32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69, +    114,114,111,114,32,105,115,32,114,97,105,115,101,100,46,10, +    10,32,32,32,32,78,122,70,116,104,101,32,100,101,98,117, +    103,95,111,118,101,114,114,105,100,101,32,112,97,114,97,109, +    101,116,101,114,32,105,115,32,100,101,112,114,101,99,97,116, +    101,100,59,32,117,115,101,32,39,111,112,116,105,109,105,122, +    97,116,105,111,110,39,32,105,110,115,116,101,97,100,122,50, +    100,101,98,117,103,95,111,118,101,114,114,105,100,101,32,111, +    114,32,111,112,116,105,109,105,122,97,116,105,111,110,32,109, +    117,115,116,32,98,101,32,115,101,116,32,116,111,32,78,111, +    110,101,114,30,0,0,0,114,29,0,0,0,218,1,46,122, +    36,115,121,115,46,105,109,112,108,101,109,101,110,116,97,116,      105,111,110,46,99,97,99,104,101,95,116,97,103,32,105,115, -    32,78,111,110,101,32,116,104,101,110,32,78,111,116,73,109, -    112,108,101,109,101,110,116,101,100,69,114,114,111,114,32,105, -    115,32,114,97,105,115,101,100,46,10,10,32,32,32,32,78, -    122,36,115,121,115,46,105,109,112,108,101,109,101,110,116,97, -    116,105,111,110,46,99,97,99,104,101,95,116,97,103,32,105, -    115,32,78,111,110,101,122,37,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,58,0, -    0,0,114,56,0,0,0,233,3,0,0,0,122,33,101,120, -    112,101,99,116,101,100,32,111,110,108,121,32,50,32,111,114, -    32,51,32,100,111,116,115,32,105,110,32,123,33,114,125,122, -    57,111,112,116,105,109,105,122,97,116,105,111,110,32,112,111, -    114,116,105,111,110,32,111,102,32,102,105,108,101,110,97,109, -    101,32,100,111,101,115,32,110,111,116,32,115,116,97,114,116, -    32,119,105,116,104,32,123,33,114,125,122,52,111,112,116,105, -    109,105,122,97,116,105,111,110,32,108,101,118,101,108,32,123, -    33,114,125,32,105,115,32,110,111,116,32,97,110,32,97,108, -    112,104,97,110,117,109,101,114,105,99,32,118,97,108,117,101, -    114,59,0,0,0,62,2,0,0,0,114,56,0,0,0,114, -    80,0,0,0,233,254,255,255,255,41,17,114,7,0,0,0, -    114,64,0,0,0,114,65,0,0,0,114,66,0,0,0,114, -    38,0,0,0,114,73,0,0,0,114,71,0,0,0,114,47, -    0,0,0,218,5,99,111,117,110,116,114,34,0,0,0,114, -    9,0,0,0,114,72,0,0,0,114,31,0,0,0,114,70, -    0,0,0,218,9,112,97,114,116,105,116,105,111,110,114,28, -    0,0,0,218,15,83,79,85,82,67,69,95,83,85,70,70, -    73,88,69,83,41,8,114,35,0,0,0,114,76,0,0,0, -    90,16,112,121,99,97,99,104,101,95,102,105,108,101,110,97, -    109,101,90,7,112,121,99,97,99,104,101,90,9,100,111,116, -    95,99,111,117,110,116,114,57,0,0,0,90,9,111,112,116, -    95,108,101,118,101,108,90,13,98,97,115,101,95,102,105,108, -    101,110,97,109,101,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,218,17,115,111,117,114,99,101,95,102,114,111, -    109,95,99,97,99,104,101,31,1,0,0,115,44,0,0,0, -    0,9,18,1,12,1,18,1,18,1,12,1,9,1,15,1, -    15,1,12,1,9,1,15,1,12,1,22,1,15,1,9,1, -    12,1,22,1,12,1,9,1,12,1,19,1,114,85,0,0, -    0,99,1,0,0,0,0,0,0,0,5,0,0,0,12,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,41, -    10,122,188,67,111,110,118,101,114,116,32,97,32,98,121,116, -    101,99,111,100,101,32,102,105,108,101,32,112,97,116,104,32, -    116,111,32,97,32,115,111,117,114,99,101,32,112,97,116,104, -    32,40,105,102,32,112,111,115,115,105,98,108,101,41,46,10, -    10,32,32,32,32,84,104,105,115,32,102,117,110,99,116,105, -    111,110,32,101,120,105,115,116,115,32,112,117,114,101,108,121, -    32,102,111,114,32,98,97,99,107,119,97,114,100,115,45,99, -    111,109,112,97,116,105,98,105,108,105,116,121,32,102,111,114, -    10,32,32,32,32,80,121,73,109,112,111,114,116,95,69,120, -    101,99,67,111,100,101,77,111,100,117,108,101,87,105,116,104, -    70,105,108,101,110,97,109,101,115,40,41,32,105,110,32,116, -    104,101,32,67,32,65,80,73,46,10,10,32,32,32,32,114, -    59,0,0,0,78,114,58,0,0,0,114,80,0,0,0,114, -    29,0,0,0,90,2,112,121,233,253,255,255,255,233,255,255, -    255,255,114,87,0,0,0,41,7,114,31,0,0,0,114,32, -    0,0,0,218,5,108,111,119,101,114,114,85,0,0,0,114, -    66,0,0,0,114,71,0,0,0,114,44,0,0,0,41,5, -    218,13,98,121,116,101,99,111,100,101,95,112,97,116,104,114, -    78,0,0,0,114,36,0,0,0,90,9,101,120,116,101,110, -    115,105,111,110,218,11,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, -    218,15,95,103,101,116,95,115,111,117,114,99,101,102,105,108, -    101,64,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,91, -    0,0,0,99,1,0,0,0,0,0,0,0,1,0,0,0, -    11,0,0,0,67,0,0,0,115,92,0,0,0,124,0,0, -    106,0,0,116,1,0,116,2,0,131,1,0,131,1,0,114, -    59,0,121,14,0,116,3,0,124,0,0,131,1,0,83,87, -    113,88,0,4,116,4,0,107,10,0,114,55,0,1,1,1, -    89,113,88,0,88,110,29,0,124,0,0,106,0,0,116,1, -    0,116,5,0,131,1,0,131,1,0,114,84,0,124,0,0, -    83,100,0,0,83,100,0,0,83,41,1,78,41,6,218,8, -    101,110,100,115,119,105,116,104,218,5,116,117,112,108,101,114, -    84,0,0,0,114,79,0,0,0,114,66,0,0,0,114,74, -    0,0,0,41,1,218,8,102,105,108,101,110,97,109,101,114, -    4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,11, -    95,103,101,116,95,99,97,99,104,101,100,83,1,0,0,115, -    16,0,0,0,0,1,21,1,3,1,14,1,13,1,8,1, -    21,1,4,2,114,95,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,60, -    0,0,0,121,19,0,116,0,0,124,0,0,131,1,0,106, -    1,0,125,1,0,87,110,24,0,4,116,2,0,107,10,0, -    114,45,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,41, -    3,122,51,67,97,108,99,117,108,97,116,101,32,116,104,101, -    32,109,111,100,101,32,112,101,114,109,105,115,115,105,111,110, -    115,32,102,111,114,32,97,32,98,121,116,101,99,111,100,101, -    32,102,105,108,101,46,105,182,1,0,0,233,128,0,0,0, -    41,3,114,39,0,0,0,114,41,0,0,0,114,40,0,0, -    0,41,2,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,218,10,95,99, -    97,108,99,95,109,111,100,101,95,1,0,0,115,12,0,0, -    0,0,2,3,1,19,1,13,1,11,3,10,1,114,97,0, -    0,0,218,9,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,75,0,0,0,116,0,0,106, -    1,0,106,2,0,124,1,0,107,5,0,114,71,0,124,0, -    0,106,3,0,100,6,0,131,1,0,115,43,0,100,3,0, -    124,0,0,23,125,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,100,5,0,83,41,7,122,61,80,114,105,110,116, -    32,116,104,101,32,109,101,115,115,97,103,101,32,116,111,32, -    115,116,100,101,114,114,32,105,102,32,45,118,47,80,89,84, -    72,79,78,86,69,82,66,79,83,69,32,105,115,32,116,117, -    114,110,101,100,32,111,110,46,250,1,35,250,7,105,109,112, -    111,114,116,32,122,2,35,32,114,54,0,0,0,78,41,2, -    114,99,0,0,0,114,100,0,0,0,41,7,114,7,0,0, -    0,114,67,0,0,0,218,7,118,101,114,98,111,115,101,114, -    9,0,0,0,218,5,112,114,105,110,116,114,47,0,0,0, -    218,6,115,116,100,101,114,114,41,3,114,75,0,0,0,114, -    98,0,0,0,218,4,97,114,103,115,114,4,0,0,0,114, -    4,0,0,0,114,5,0,0,0,218,16,95,118,101,114,98, -    111,115,101,95,109,101,115,115,97,103,101,107,1,0,0,115, -    8,0,0,0,0,2,18,1,15,1,10,1,114,105,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,84,0,0,0,100,1,0,135,0, -    0,102,1,0,100,2,0,100,3,0,134,1,0,125,1,0, -    121,13,0,116,0,0,106,1,0,125,2,0,87,110,30,0, -    4,116,2,0,107,10,0,114,66,0,1,1,1,100,4,0, -    100,5,0,132,0,0,125,2,0,89,110,1,0,88,124,2, -    0,124,1,0,136,0,0,131,2,0,1,124,1,0,83,41, -    6,122,252,68,101,99,111,114,97,116,111,114,32,116,111,32, -    118,101,114,105,102,121,32,116,104,97,116,32,116,104,101,32, -    109,111,100,117,108,101,32,98,101,105,110,103,32,114,101,113, -    117,101,115,116,101,100,32,109,97,116,99,104,101,115,32,116, -    104,101,32,111,110,101,32,116,104,101,10,32,32,32,32,108, -    111,97,100,101,114,32,99,97,110,32,104,97,110,100,108,101, -    46,10,10,32,32,32,32,84,104,101,32,102,105,114,115,116, -    32,97,114,103,117,109,101,110,116,32,40,115,101,108,102,41, -    32,109,117,115,116,32,100,101,102,105,110,101,32,95,110,97, -    109,101,32,119,104,105,99,104,32,116,104,101,32,115,101,99, -    111,110,100,32,97,114,103,117,109,101,110,116,32,105,115,10, -    32,32,32,32,99,111,109,112,97,114,101,100,32,97,103,97, -    105,110,115,116,46,32,73,102,32,116,104,101,32,99,111,109, -    112,97,114,105,115,111,110,32,102,97,105,108,115,32,116,104, -    101,110,32,73,109,112,111,114,116,69,114,114,111,114,32,105, -    115,32,114,97,105,115,101,100,46,10,10,32,32,32,32,78, -    99,2,0,0,0,0,0,0,0,4,0,0,0,5,0,0, -    0,31,0,0,0,115,89,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, -    46,0,124,0,0,106,0,0,124,1,0,107,3,0,114,70, -    0,116,1,0,100,1,0,124,0,0,106,0,0,124,1,0, -    102,2,0,22,100,2,0,124,1,0,131,1,1,130,1,0, -    136,0,0,124,0,0,124,1,0,124,2,0,124,3,0,142, -    2,0,83,41,3,78,122,30,108,111,97,100,101,114,32,102, -    111,114,32,37,115,32,99,97,110,110,111,116,32,104,97,110, -    100,108,101,32,37,115,218,4,110,97,109,101,41,2,114,106, -    0,0,0,218,11,73,109,112,111,114,116,69,114,114,111,114, -    41,4,218,4,115,101,108,102,114,106,0,0,0,114,104,0, -    0,0,90,6,107,119,97,114,103,115,41,1,218,6,109,101, +    32,78,111,110,101,233,0,0,0,0,122,24,123,33,114,125, +    32,105,115,32,110,111,116,32,97,108,112,104,97,110,117,109, +    101,114,105,99,122,7,123,125,46,123,125,123,125,41,21,218, +    9,95,119,97,114,110,105,110,103,115,218,4,119,97,114,110, +    218,18,68,101,112,114,101,99,97,116,105,111,110,87,97,114, +    110,105,110,103,218,9,84,121,112,101,69,114,114,111,114,114, +    38,0,0,0,114,32,0,0,0,114,7,0,0,0,218,14, +    105,109,112,108,101,109,101,110,116,97,116,105,111,110,218,9, +    99,97,99,104,101,95,116,97,103,218,19,78,111,116,73,109, +    112,108,101,109,101,110,116,101,100,69,114,114,111,114,114,26, +    0,0,0,218,5,102,108,97,103,115,218,8,111,112,116,105, +    109,105,122,101,218,3,115,116,114,218,7,105,115,97,108,110, +    117,109,218,10,86,97,108,117,101,69,114,114,111,114,114,47, +    0,0,0,218,4,95,79,80,84,114,28,0,0,0,218,8, +    95,80,89,67,65,67,72,69,218,17,66,89,84,69,67,79, +    68,69,95,83,85,70,70,73,88,69,83,41,11,114,35,0, +    0,0,90,14,100,101,98,117,103,95,111,118,101,114,114,105, +    100,101,114,57,0,0,0,218,7,109,101,115,115,97,103,101, +    218,4,104,101,97,100,114,37,0,0,0,90,4,98,97,115, +    101,218,3,115,101,112,218,4,114,101,115,116,90,3,116,97, +    103,90,15,97,108,109,111,115,116,95,102,105,108,101,110,97, +    109,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0, +    0,218,17,99,97,99,104,101,95,102,114,111,109,95,115,111, +    117,114,99,101,244,0,0,0,115,46,0,0,0,0,18,12, +    1,9,1,7,1,12,1,6,1,12,1,18,1,18,1,24, +    1,12,1,12,1,12,1,36,1,12,1,18,1,9,2,12, +    1,12,1,12,1,12,1,21,1,21,1,114,79,0,0,0, +    99,1,0,0,0,0,0,0,0,8,0,0,0,5,0,0, +    0,67,0,0,0,115,62,1,0,0,116,0,0,106,1,0, +    106,2,0,100,1,0,107,8,0,114,30,0,116,3,0,100, +    2,0,131,1,0,130,1,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,102,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, +    124,2,0,106,8,0,100,4,0,131,1,0,125,4,0,124, +    4,0,100,11,0,107,7,0,114,153,0,116,6,0,100,7, +    0,106,7,0,124,2,0,131,1,0,131,1,0,130,1,0, +    110,125,0,124,4,0,100,6,0,107,2,0,114,22,1,124, +    2,0,106,9,0,100,4,0,100,5,0,131,2,0,100,12, +    0,25,125,5,0,124,5,0,106,10,0,116,11,0,131,1, +    0,115,223,0,116,6,0,100,8,0,106,7,0,116,11,0, +    131,1,0,131,1,0,130,1,0,124,5,0,116,12,0,116, +    11,0,131,1,0,100,1,0,133,2,0,25,125,6,0,124, +    6,0,106,13,0,131,0,0,115,22,1,116,6,0,100,9, +    0,106,7,0,124,5,0,131,1,0,131,1,0,130,1,0, +    124,2,0,106,14,0,100,4,0,131,1,0,100,10,0,25, +    125,7,0,116,15,0,124,1,0,124,7,0,116,16,0,100, +    10,0,25,23,131,2,0,83,41,13,97,110,1,0,0,71, +    105,118,101,110,32,116,104,101,32,112,97,116,104,32,116,111, +    32,97,32,46,112,121,99,46,32,102,105,108,101,44,32,114, +    101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,116, +    111,32,105,116,115,32,46,112,121,32,102,105,108,101,46,10, +    10,32,32,32,32,84,104,101,32,46,112,121,99,32,102,105, +    108,101,32,100,111,101,115,32,110,111,116,32,110,101,101,100, +    32,116,111,32,101,120,105,115,116,59,32,116,104,105,115,32, +    115,105,109,112,108,121,32,114,101,116,117,114,110,115,32,116, +    104,101,32,112,97,116,104,32,116,111,10,32,32,32,32,116, +    104,101,32,46,112,121,32,102,105,108,101,32,99,97,108,99, +    117,108,97,116,101,100,32,116,111,32,99,111,114,114,101,115, +    112,111,110,100,32,116,111,32,116,104,101,32,46,112,121,99, +    32,102,105,108,101,46,32,32,73,102,32,112,97,116,104,32, +    100,111,101,115,10,32,32,32,32,110,111,116,32,99,111,110, +    102,111,114,109,32,116,111,32,80,69,80,32,51,49,52,55, +    47,52,56,56,32,102,111,114,109,97,116,44,32,86,97,108, +    117,101,69,114,114,111,114,32,119,105,108,108,32,98,101,32, +    114,97,105,115,101,100,46,32,73,102,10,32,32,32,32,115, +    121,115,46,105,109,112,108,101,109,101,110,116,97,116,105,111, +    110,46,99,97,99,104,101,95,116,97,103,32,105,115,32,78, +    111,110,101,32,116,104,101,110,32,78,111,116,73,109,112,108, +    101,109,101,110,116,101,100,69,114,114,111,114,32,105,115,32, +    114,97,105,115,101,100,46,10,10,32,32,32,32,78,122,36, +    115,121,115,46,105,109,112,108,101,109,101,110,116,97,116,105, +    111,110,46,99,97,99,104,101,95,116,97,103,32,105,115,32, +    78,111,110,101,122,37,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,58,0,0,0, +    114,56,0,0,0,233,3,0,0,0,122,33,101,120,112,101, +    99,116,101,100,32,111,110,108,121,32,50,32,111,114,32,51, +    32,100,111,116,115,32,105,110,32,123,33,114,125,122,57,111, +    112,116,105,109,105,122,97,116,105,111,110,32,112,111,114,116, +    105,111,110,32,111,102,32,102,105,108,101,110,97,109,101,32, +    100,111,101,115,32,110,111,116,32,115,116,97,114,116,32,119, +    105,116,104,32,123,33,114,125,122,52,111,112,116,105,109,105, +    122,97,116,105,111,110,32,108,101,118,101,108,32,123,33,114, +    125,32,105,115,32,110,111,116,32,97,110,32,97,108,112,104, +    97,110,117,109,101,114,105,99,32,118,97,108,117,101,114,59, +    0,0,0,62,2,0,0,0,114,56,0,0,0,114,80,0, +    0,0,233,254,255,255,255,41,17,114,7,0,0,0,114,64, +    0,0,0,114,65,0,0,0,114,66,0,0,0,114,38,0, +    0,0,114,73,0,0,0,114,71,0,0,0,114,47,0,0, +    0,218,5,99,111,117,110,116,114,34,0,0,0,114,9,0, +    0,0,114,72,0,0,0,114,31,0,0,0,114,70,0,0, +    0,218,9,112,97,114,116,105,116,105,111,110,114,28,0,0, +    0,218,15,83,79,85,82,67,69,95,83,85,70,70,73,88, +    69,83,41,8,114,35,0,0,0,114,76,0,0,0,90,16, +    112,121,99,97,99,104,101,95,102,105,108,101,110,97,109,101, +    90,7,112,121,99,97,99,104,101,90,9,100,111,116,95,99, +    111,117,110,116,114,57,0,0,0,90,9,111,112,116,95,108, +    101,118,101,108,90,13,98,97,115,101,95,102,105,108,101,110, +    97,109,101,114,4,0,0,0,114,4,0,0,0,114,5,0, +    0,0,218,17,115,111,117,114,99,101,95,102,114,111,109,95, +    99,97,99,104,101,32,1,0,0,115,44,0,0,0,0,9, +    18,1,12,1,18,1,18,1,12,1,9,1,15,1,15,1, +    12,1,9,1,15,1,12,1,22,1,15,1,9,1,12,1, +    22,1,12,1,9,1,12,1,19,1,114,85,0,0,0,99, +    1,0,0,0,0,0,0,0,5,0,0,0,12,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,41,10,122, +    188,67,111,110,118,101,114,116,32,97,32,98,121,116,101,99, +    111,100,101,32,102,105,108,101,32,112,97,116,104,32,116,111, +    32,97,32,115,111,117,114,99,101,32,112,97,116,104,32,40, +    105,102,32,112,111,115,115,105,98,108,101,41,46,10,10,32, +    32,32,32,84,104,105,115,32,102,117,110,99,116,105,111,110, +    32,101,120,105,115,116,115,32,112,117,114,101,108,121,32,102, +    111,114,32,98,97,99,107,119,97,114,100,115,45,99,111,109, +    112,97,116,105,98,105,108,105,116,121,32,102,111,114,10,32, +    32,32,32,80,121,73,109,112,111,114,116,95,69,120,101,99, +    67,111,100,101,77,111,100,117,108,101,87,105,116,104,70,105, +    108,101,110,97,109,101,115,40,41,32,105,110,32,116,104,101, +    32,67,32,65,80,73,46,10,10,32,32,32,32,114,59,0, +    0,0,78,114,58,0,0,0,114,80,0,0,0,114,29,0, +    0,0,90,2,112,121,233,253,255,255,255,233,255,255,255,255, +    114,87,0,0,0,41,7,114,31,0,0,0,114,32,0,0, +    0,218,5,108,111,119,101,114,114,85,0,0,0,114,66,0, +    0,0,114,71,0,0,0,114,44,0,0,0,41,5,218,13, +    98,121,116,101,99,111,100,101,95,112,97,116,104,114,78,0, +    0,0,114,36,0,0,0,90,9,101,120,116,101,110,115,105, +    111,110,218,11,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,218,15, +    95,103,101,116,95,115,111,117,114,99,101,102,105,108,101,65, +    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,91,0,0, +    0,99,1,0,0,0,0,0,0,0,1,0,0,0,11,0, +    0,0,67,0,0,0,115,92,0,0,0,124,0,0,106,0, +    0,116,1,0,116,2,0,131,1,0,131,1,0,114,59,0, +    121,14,0,116,3,0,124,0,0,131,1,0,83,87,113,88, +    0,4,116,4,0,107,10,0,114,55,0,1,1,1,89,113, +    88,0,88,110,29,0,124,0,0,106,0,0,116,1,0,116, +    5,0,131,1,0,131,1,0,114,84,0,124,0,0,83,100, +    0,0,83,100,0,0,83,41,1,78,41,6,218,8,101,110, +    100,115,119,105,116,104,218,5,116,117,112,108,101,114,84,0, +    0,0,114,79,0,0,0,114,66,0,0,0,114,74,0,0, +    0,41,1,218,8,102,105,108,101,110,97,109,101,114,4,0, +    0,0,114,4,0,0,0,114,5,0,0,0,218,11,95,103, +    101,116,95,99,97,99,104,101,100,84,1,0,0,115,16,0, +    0,0,0,1,21,1,3,1,14,1,13,1,8,1,21,1, +    4,2,114,95,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,60,0,0, +    0,121,19,0,116,0,0,124,0,0,131,1,0,106,1,0, +    125,1,0,87,110,24,0,4,116,2,0,107,10,0,114,45, +    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,41,3,122, +    51,67,97,108,99,117,108,97,116,101,32,116,104,101,32,109, +    111,100,101,32,112,101,114,109,105,115,115,105,111,110,115,32, +    102,111,114,32,97,32,98,121,116,101,99,111,100,101,32,102, +    105,108,101,46,105,182,1,0,0,233,128,0,0,0,41,3, +    114,39,0,0,0,114,41,0,0,0,114,40,0,0,0,41, +    2,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,218,10,95,99,97,108, +    99,95,109,111,100,101,96,1,0,0,115,12,0,0,0,0, +    2,3,1,19,1,13,1,11,3,10,1,114,97,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,84,0,0,0,100,1,0,135,0,0, +    102,1,0,100,2,0,100,3,0,134,1,0,125,1,0,121, +    13,0,116,0,0,106,1,0,125,2,0,87,110,30,0,4, +    116,2,0,107,10,0,114,66,0,1,1,1,100,4,0,100, +    5,0,132,0,0,125,2,0,89,110,1,0,88,124,2,0, +    124,1,0,136,0,0,131,2,0,1,124,1,0,83,41,6, +    122,252,68,101,99,111,114,97,116,111,114,32,116,111,32,118, +    101,114,105,102,121,32,116,104,97,116,32,116,104,101,32,109, +    111,100,117,108,101,32,98,101,105,110,103,32,114,101,113,117, +    101,115,116,101,100,32,109,97,116,99,104,101,115,32,116,104, +    101,32,111,110,101,32,116,104,101,10,32,32,32,32,108,111, +    97,100,101,114,32,99,97,110,32,104,97,110,100,108,101,46, +    10,10,32,32,32,32,84,104,101,32,102,105,114,115,116,32, +    97,114,103,117,109,101,110,116,32,40,115,101,108,102,41,32, +    109,117,115,116,32,100,101,102,105,110,101,32,95,110,97,109, +    101,32,119,104,105,99,104,32,116,104,101,32,115,101,99,111, +    110,100,32,97,114,103,117,109,101,110,116,32,105,115,10,32, +    32,32,32,99,111,109,112,97,114,101,100,32,97,103,97,105, +    110,115,116,46,32,73,102,32,116,104,101,32,99,111,109,112, +    97,114,105,115,111,110,32,102,97,105,108,115,32,116,104,101, +    110,32,73,109,112,111,114,116,69,114,114,111,114,32,105,115, +    32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,99, +    2,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0, +    31,0,0,0,115,89,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,46, +    0,124,0,0,106,0,0,124,1,0,107,3,0,114,70,0, +    116,1,0,100,1,0,124,0,0,106,0,0,124,1,0,102, +    2,0,22,100,2,0,124,1,0,131,1,1,130,1,0,136, +    0,0,124,0,0,124,1,0,124,2,0,124,3,0,142,2, +    0,83,41,3,78,122,30,108,111,97,100,101,114,32,102,111, +    114,32,37,115,32,99,97,110,110,111,116,32,104,97,110,100, +    108,101,32,37,115,218,4,110,97,109,101,41,2,114,98,0, +    0,0,218,11,73,109,112,111,114,116,69,114,114,111,114,41, +    4,218,4,115,101,108,102,114,98,0,0,0,218,4,97,114, +    103,115,90,6,107,119,97,114,103,115,41,1,218,6,109,101,      116,104,111,100,114,4,0,0,0,114,5,0,0,0,218,19,      95,99,104,101,99,107,95,110,97,109,101,95,119,114,97,112, -    112,101,114,123,1,0,0,115,12,0,0,0,0,1,12,1, +    112,101,114,116,1,0,0,115,12,0,0,0,0,1,12,1,      12,1,15,1,6,1,25,1,122,40,95,99,104,101,99,107,      95,110,97,109,101,46,60,108,111,99,97,108,115,62,46,95,      99,104,101,99,107,95,110,97,109,101,95,119,114,97,112,112, @@ -595,17 +573,17 @@ const unsigned char _Py_M__importlib_external[] = {      116,97,116,116,114,218,8,95,95,100,105,99,116,95,95,218,      6,117,112,100,97,116,101,41,3,90,3,110,101,119,90,3,      111,108,100,114,52,0,0,0,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,218,5,95,119,114,97,112,134,1, +    0,0,114,5,0,0,0,218,5,95,119,114,97,112,127,1,      0,0,115,8,0,0,0,0,1,25,1,15,1,29,1,122,      26,95,99,104,101,99,107,95,110,97,109,101,46,60,108,111,      99,97,108,115,62,46,95,119,114,97,112,41,3,218,10,95, -    98,111,111,116,115,116,114,97,112,114,120,0,0,0,218,9, -    78,97,109,101,69,114,114,111,114,41,3,114,109,0,0,0, -    114,110,0,0,0,114,120,0,0,0,114,4,0,0,0,41, -    1,114,109,0,0,0,114,5,0,0,0,218,11,95,99,104, -    101,99,107,95,110,97,109,101,115,1,0,0,115,14,0,0, +    98,111,111,116,115,116,114,97,112,114,113,0,0,0,218,9, +    78,97,109,101,69,114,114,111,114,41,3,114,102,0,0,0, +    114,103,0,0,0,114,113,0,0,0,114,4,0,0,0,41, +    1,114,102,0,0,0,114,5,0,0,0,218,11,95,99,104, +    101,99,107,95,110,97,109,101,108,1,0,0,115,14,0,0,      0,0,8,21,7,3,1,13,1,13,2,17,5,13,1,114, -    123,0,0,0,99,2,0,0,0,0,0,0,0,5,0,0, +    116,0,0,0,99,2,0,0,0,0,0,0,0,5,0,0,      0,4,0,0,0,67,0,0,0,115,84,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,80,0,116, @@ -628,14 +606,14 @@ const unsigned char _Py_M__importlib_external[] = {      114,59,0,0,0,41,6,218,11,102,105,110,100,95,108,111,      97,100,101,114,114,31,0,0,0,114,60,0,0,0,114,61,      0,0,0,114,47,0,0,0,218,13,73,109,112,111,114,116, -    87,97,114,110,105,110,103,41,5,114,108,0,0,0,218,8, +    87,97,114,110,105,110,103,41,5,114,100,0,0,0,218,8,      102,117,108,108,110,97,109,101,218,6,108,111,97,100,101,114,      218,8,112,111,114,116,105,111,110,115,218,3,109,115,103,114,      4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,17,      95,102,105,110,100,95,109,111,100,117,108,101,95,115,104,105, -    109,143,1,0,0,115,10,0,0,0,0,10,21,1,24,1, -    6,1,29,1,114,130,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,240, +    109,136,1,0,0,115,10,0,0,0,0,10,21,1,24,1, +    6,1,29,1,114,123,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,252,      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, @@ -643,1955 +621,1960 @@ const unsigned char _Py_M__importlib_external[] = {      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,100, -    9,0,124,8,0,131,2,0,1,116,3,0,124,8,0,124, -    4,0,141,1,0,130,1,0,110,119,0,116,4,0,124,6, -    0,131,1,0,100,5,0,107,3,0,114,229,0,100,10,0, -    106,1,0,124,2,0,131,1,0,125,8,0,116,2,0,100, -    9,0,124,8,0,131,2,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,31,1,100,11,0,106,1,0, -    124,2,0,131,1,0,125,8,0,116,2,0,100,9,0,124, -    8,0,131,2,0,1,116,5,0,124,8,0,131,1,0,130, -    1,0,124,1,0,100,1,0,107,9,0,114,226,1,121,20, -    0,116,6,0,124,1,0,100,12,0,25,131,1,0,125,9, -    0,87,110,18,0,4,116,7,0,107,10,0,114,83,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,145,1,100,13,0,106,1,0,124, -    2,0,131,1,0,125,8,0,116,2,0,100,9,0,124,8, -    0,131,2,0,1,116,3,0,124,8,0,124,4,0,141,1, -    0,130,1,0,121,18,0,124,1,0,100,14,0,25,100,15, -    0,64,125,10,0,87,110,18,0,4,116,7,0,107,10,0, -    114,183,1,1,1,1,89,110,43,0,88,116,8,0,124,7, -    0,131,1,0,124,10,0,107,3,0,114,226,1,116,3,0, -    100,13,0,106,1,0,124,2,0,131,1,0,124,4,0,141, -    1,0,130,1,0,124,0,0,100,7,0,100,1,0,133,2, -    0,25,83,41,16,97,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,106,0,0,0,122,10,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,122,30,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,122,2,123,125,122,43, -    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,122,48,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,218,5,109, -    116,105,109,101,122,26,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, -    218,4,115,105,122,101,108,3,0,0,0,255,127,255,127,3, -    0,41,9,218,12,77,65,71,73,67,95,78,85,77,66,69, -    82,114,47,0,0,0,114,105,0,0,0,114,107,0,0,0, -    114,31,0,0,0,218,8,69,79,70,69,114,114,111,114,114, -    14,0,0,0,218,8,75,101,121,69,114,114,111,114,114,19, -    0,0,0,41,11,114,53,0,0,0,218,12,115,111,117,114, -    99,101,95,115,116,97,116,115,114,106,0,0,0,114,35,0, -    0,0,90,11,101,120,99,95,100,101,116,97,105,108,115,90, -    5,109,97,103,105,99,90,13,114,97,119,95,116,105,109,101, -    115,116,97,109,112,90,8,114,97,119,95,115,105,122,101,114, -    75,0,0,0,218,12,115,111,117,114,99,101,95,109,116,105, -    109,101,218,11,115,111,117,114,99,101,95,115,105,122,101,114, -    4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,25, -    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,160,1,0,0,115,76,0, -    0,0,0,11,6,1,12,1,13,3,6,1,12,1,10,1, -    16,1,16,1,16,1,12,1,18,1,13,1,18,1,18,1, -    15,1,13,1,15,1,18,1,15,1,13,1,12,1,12,1, -    3,1,20,1,13,1,5,2,18,1,15,1,13,1,15,1, -    3,1,18,1,13,1,5,2,18,1,15,1,9,1,114,141, -    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,112,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,75,0,116,4,0,100,1, -    0,124,2,0,131,2,0,1,124,3,0,100,2,0,107,9, -    0,114,71,0,116,5,0,106,6,0,124,4,0,124,3,0, -    131,2,0,1,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,41,6,122, -    60,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,122,21,99, -    111,100,101,32,111,98,106,101,99,116,32,102,114,111,109,32, -    123,33,114,125,78,122,23,78,111,110,45,99,111,100,101,32, -    111,98,106,101,99,116,32,105,110,32,123,33,114,125,114,106, -    0,0,0,114,35,0,0,0,41,9,218,7,109,97,114,115, -    104,97,108,90,5,108,111,97,100,115,218,10,105,115,105,110, -    115,116,97,110,99,101,218,10,95,99,111,100,101,95,116,121, -    112,101,114,105,0,0,0,218,4,95,105,109,112,90,16,95, -    102,105,120,95,99,111,95,102,105,108,101,110,97,109,101,114, -    107,0,0,0,114,47,0,0,0,41,5,114,53,0,0,0, -    114,106,0,0,0,114,89,0,0,0,114,90,0,0,0,218, -    4,99,111,100,101,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,218,17,95,99,111,109,112,105,108,101,95,98, -    121,116,101,99,111,100,101,215,1,0,0,115,16,0,0,0, -    0,2,15,1,15,1,13,1,12,1,16,1,4,2,18,1, -    114,147,0,0,0,114,59,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, -    41,1,122,80,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,41,6,218,9,98,121,116,101,97,114,114,97, -    121,114,135,0,0,0,218,6,101,120,116,101,110,100,114,17, -    0,0,0,114,142,0,0,0,90,5,100,117,109,112,115,41, -    4,114,146,0,0,0,114,133,0,0,0,114,140,0,0,0, -    114,53,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,218,17,95,99,111,100,101,95,116,111,95,98, -    121,116,101,99,111,100,101,227,1,0,0,115,10,0,0,0, -    0,3,12,1,19,1,19,1,22,1,114,150,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,41,4,122,121,68,101,99,111,100,101,32,98,121,116, -    101,115,32,114,101,112,114,101,115,101,110,116,105,110,103,32, -    115,111,117,114,99,101,32,99,111,100,101,32,97,110,100,32, -    114,101,116,117,114,110,32,116,104,101,32,115,116,114,105,110, -    103,46,10,10,32,32,32,32,85,110,105,118,101,114,115,97, -    108,32,110,101,119,108,105,110,101,32,115,117,112,112,111,114, -    116,32,105,115,32,117,115,101,100,32,105,110,32,116,104,101, -    32,100,101,99,111,100,105,110,103,46,10,32,32,32,32,114, -    59,0,0,0,78,84,41,7,218,8,116,111,107,101,110,105, -    122,101,114,49,0,0,0,90,7,66,121,116,101,115,73,79, -    90,8,114,101,97,100,108,105,110,101,90,15,100,101,116,101, -    99,116,95,101,110,99,111,100,105,110,103,90,25,73,110,99, -    114,101,109,101,110,116,97,108,78,101,119,108,105,110,101,68, -    101,99,111,100,101,114,218,6,100,101,99,111,100,101,41,5, -    218,12,115,111,117,114,99,101,95,98,121,116,101,115,114,151, -    0,0,0,90,21,115,111,117,114,99,101,95,98,121,116,101, -    115,95,114,101,97,100,108,105,110,101,218,8,101,110,99,111, -    100,105,110,103,90,15,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,218,13,100,101,99,111,100,101,95,115,111,117, -    114,99,101,237,1,0,0,115,10,0,0,0,0,5,12,1, -    18,1,15,1,18,1,114,155,0,0,0,114,127,0,0,0, -    218,26,115,117,98,109,111,100,117,108,101,95,115,101,97,114, -    99,104,95,108,111,99,97,116,105,111,110,115,99,2,0,0, -    0,2,0,0,0,9,0,0,0,19,0,0,0,67,0,0, -    0,115,89,1,0,0,124,1,0,100,1,0,107,8,0,114, -    73,0,100,2,0,125,1,0,116,0,0,124,2,0,100,3, -    0,131,2,0,114,73,0,121,19,0,124,2,0,106,1,0, -    124,0,0,131,1,0,125,1,0,87,110,18,0,4,116,2, -    0,107,10,0,114,72,0,1,1,1,89,110,1,0,88,116, -    3,0,106,4,0,124,0,0,124,2,0,100,4,0,124,1, -    0,131,2,1,125,4,0,100,5,0,124,4,0,95,5,0, -    124,2,0,100,1,0,107,8,0,114,194,0,120,73,0,116, -    6,0,131,0,0,68,93,58,0,92,2,0,125,5,0,125, -    6,0,124,1,0,106,7,0,116,8,0,124,6,0,131,1, -    0,131,1,0,114,128,0,124,5,0,124,0,0,124,1,0, -    131,2,0,125,2,0,124,2,0,124,4,0,95,9,0,80, -    113,128,0,87,100,1,0,83,124,3,0,116,10,0,107,8, -    0,114,23,1,116,0,0,124,2,0,100,6,0,131,2,0, -    114,32,1,121,19,0,124,2,0,106,11,0,124,0,0,131, -    1,0,125,7,0,87,110,18,0,4,116,2,0,107,10,0, -    114,4,1,1,1,1,89,113,32,1,88,124,7,0,114,32, -    1,103,0,0,124,4,0,95,12,0,110,9,0,124,3,0, -    124,4,0,95,12,0,124,4,0,106,12,0,103,0,0,107, -    2,0,114,85,1,124,1,0,114,85,1,116,13,0,124,1, -    0,131,1,0,100,7,0,25,125,8,0,124,4,0,106,12, -    0,106,14,0,124,8,0,131,1,0,1,124,4,0,83,41, -    8,97,61,1,0,0,82,101,116,117,114,110,32,97,32,109, -    111,100,117,108,101,32,115,112,101,99,32,98,97,115,101,100, -    32,111,110,32,97,32,102,105,108,101,32,108,111,99,97,116, -    105,111,110,46,10,10,32,32,32,32,84,111,32,105,110,100, -    105,99,97,116,101,32,116,104,97,116,32,116,104,101,32,109, -    111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97, -    103,101,44,32,115,101,116,10,32,32,32,32,115,117,98,109, -    111,100,117,108,101,95,115,101,97,114,99,104,95,108,111,99, -    97,116,105,111,110,115,32,116,111,32,97,32,108,105,115,116, -    32,111,102,32,100,105,114,101,99,116,111,114,121,32,112,97, -    116,104,115,46,32,32,65,110,10,32,32,32,32,101,109,112, -    116,121,32,108,105,115,116,32,105,115,32,115,117,102,102,105, -    99,105,101,110,116,44,32,116,104,111,117,103,104,32,105,116, -    115,32,110,111,116,32,111,116,104,101,114,119,105,115,101,32, -    117,115,101,102,117,108,32,116,111,32,116,104,101,10,32,32, -    32,32,105,109,112,111,114,116,32,115,121,115,116,101,109,46, -    10,10,32,32,32,32,84,104,101,32,108,111,97,100,101,114, -    32,109,117,115,116,32,116,97,107,101,32,97,32,115,112,101, -    99,32,97,115,32,105,116,115,32,111,110,108,121,32,95,95, -    105,110,105,116,95,95,40,41,32,97,114,103,46,10,10,32, -    32,32,32,78,122,9,60,117,110,107,110,111,119,110,62,218, -    12,103,101,116,95,102,105,108,101,110,97,109,101,218,6,111, -    114,105,103,105,110,84,218,10,105,115,95,112,97,99,107,97, -    103,101,114,59,0,0,0,41,15,114,115,0,0,0,114,157, -    0,0,0,114,107,0,0,0,114,121,0,0,0,218,10,77, -    111,100,117,108,101,83,112,101,99,90,13,95,115,101,116,95, -    102,105,108,101,97,116,116,114,218,27,95,103,101,116,95,115, -    117,112,112,111,114,116,101,100,95,102,105,108,101,95,108,111, -    97,100,101,114,115,114,92,0,0,0,114,93,0,0,0,114, -    127,0,0,0,218,9,95,80,79,80,85,76,65,84,69,114, -    159,0,0,0,114,156,0,0,0,114,38,0,0,0,218,6, -    97,112,112,101,110,100,41,9,114,106,0,0,0,90,8,108, -    111,99,97,116,105,111,110,114,127,0,0,0,114,156,0,0, -    0,218,4,115,112,101,99,218,12,108,111,97,100,101,114,95, -    99,108,97,115,115,218,8,115,117,102,102,105,120,101,115,114, -    159,0,0,0,90,7,100,105,114,110,97,109,101,114,4,0, -    0,0,114,4,0,0,0,114,5,0,0,0,218,23,115,112, -    101,99,95,102,114,111,109,95,102,105,108,101,95,108,111,99, -    97,116,105,111,110,254,1,0,0,115,60,0,0,0,0,12, -    12,4,6,1,15,2,3,1,19,1,13,1,5,8,24,1, -    9,3,12,1,22,1,21,1,15,1,9,1,5,2,4,3, -    12,2,15,1,3,1,19,1,13,1,5,2,6,1,12,2, -    9,1,15,1,6,1,16,1,16,2,114,167,0,0,0,99, -    0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, -    64,0,0,0,115,121,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,9,0,100,10,0,100,11,0, -    132,2,0,131,1,0,90,10,0,101,7,0,100,9,0,100, -    12,0,100,13,0,132,1,0,131,1,0,90,11,0,100,9, -    0,83,41,14,218,21,87,105,110,100,111,119,115,82,101,103, -    105,115,116,114,121,70,105,110,100,101,114,122,62,77,101,116, -    97,32,112,97,116,104,32,102,105,110,100,101,114,32,102,111, -    114,32,109,111,100,117,108,101,115,32,100,101,99,108,97,114, -    101,100,32,105,110,32,116,104,101,32,87,105,110,100,111,119, -    115,32,114,101,103,105,115,116,114,121,46,122,59,83,111,102, -    116,119,97,114,101,92,80,121,116,104,111,110,92,80,121,116, -    104,111,110,67,111,114,101,92,123,115,121,115,95,118,101,114, -    115,105,111,110,125,92,77,111,100,117,108,101,115,92,123,102, -    117,108,108,110,97,109,101,125,122,65,83,111,102,116,119,97, -    114,101,92,80,121,116,104,111,110,92,80,121,116,104,111,110, -    67,111,114,101,92,123,115,121,115,95,118,101,114,115,105,111, -    110,125,92,77,111,100,117,108,101,115,92,123,102,117,108,108, -    110,97,109,101,125,92,68,101,98,117,103,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,41,1,78,41,5,218,7, -    95,119,105,110,114,101,103,90,7,79,112,101,110,75,101,121, -    90,17,72,75,69,89,95,67,85,82,82,69,78,84,95,85, -    83,69,82,114,40,0,0,0,90,18,72,75,69,89,95,76, -    79,67,65,76,95,77,65,67,72,73,78,69,41,2,218,3, -    99,108,115,218,3,107,101,121,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,218,14,95,111,112,101,110,95,114, -    101,103,105,115,116,114,121,76,2,0,0,115,8,0,0,0, -    0,2,3,1,23,1,13,1,122,36,87,105,110,100,111,119, -    115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46, -    95,111,112,101,110,95,114,101,103,105,115,116,114,121,99,2, -    0,0,0,0,0,0,0,6,0,0,0,16,0,0,0,67, -    0,0,0,115,143,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,47,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,82,88,87,110,22,0,4,116,9, -    0,107,10,0,114,138,0,1,1,1,100,0,0,83,89,110, -    1,0,88,124,5,0,83,41,5,78,114,126,0,0,0,90, -    11,115,121,115,95,118,101,114,115,105,111,110,114,80,0,0, -    0,114,30,0,0,0,41,10,218,11,68,69,66,85,71,95, -    66,85,73,76,68,218,18,82,69,71,73,83,84,82,89,95, -    75,69,89,95,68,69,66,85,71,218,12,82,69,71,73,83, -    84,82,89,95,75,69,89,114,47,0,0,0,114,7,0,0, -    0,218,7,118,101,114,115,105,111,110,114,172,0,0,0,114, -    169,0,0,0,90,10,81,117,101,114,121,86,97,108,117,101, -    114,40,0,0,0,41,6,114,170,0,0,0,114,126,0,0, -    0,90,12,114,101,103,105,115,116,114,121,95,107,101,121,114, -    171,0,0,0,90,4,104,107,101,121,218,8,102,105,108,101, -    112,97,116,104,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,218,16,95,115,101,97,114,99,104,95,114,101,103, -    105,115,116,114,121,83,2,0,0,115,22,0,0,0,0,2, -    9,1,12,2,9,1,15,1,22,1,3,1,18,1,29,1, -    13,1,9,1,122,38,87,105,110,100,111,119,115,82,101,103, -    105,115,116,114,121,70,105,110,100,101,114,46,95,115,101,97, -    114,99,104,95,114,101,103,105,115,116,114,121,78,99,4,0, -    0,0,0,0,0,0,8,0,0,0,14,0,0,0,67,0, -    0,0,115,158,0,0,0,124,0,0,106,0,0,124,1,0, -    131,1,0,125,4,0,124,4,0,100,0,0,107,8,0,114, -    31,0,100,0,0,83,121,14,0,116,1,0,124,4,0,131, -    1,0,1,87,110,22,0,4,116,2,0,107,10,0,114,69, -    0,1,1,1,100,0,0,83,89,110,1,0,88,120,81,0, -    116,3,0,131,0,0,68,93,70,0,92,2,0,125,5,0, -    125,6,0,124,4,0,106,4,0,116,5,0,124,6,0,131, -    1,0,131,1,0,114,80,0,116,6,0,106,7,0,124,1, -    0,124,5,0,124,1,0,124,4,0,131,2,0,100,1,0, -    124,4,0,131,2,1,125,7,0,124,7,0,83,113,80,0, -    87,100,0,0,83,41,2,78,114,158,0,0,0,41,8,114, -    178,0,0,0,114,39,0,0,0,114,40,0,0,0,114,161, -    0,0,0,114,92,0,0,0,114,93,0,0,0,114,121,0, -    0,0,218,16,115,112,101,99,95,102,114,111,109,95,108,111, -    97,100,101,114,41,8,114,170,0,0,0,114,126,0,0,0, -    114,35,0,0,0,218,6,116,97,114,103,101,116,114,177,0, -    0,0,114,127,0,0,0,114,166,0,0,0,114,164,0,0, -    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    218,9,102,105,110,100,95,115,112,101,99,98,2,0,0,115, -    26,0,0,0,0,2,15,1,12,1,4,1,3,1,14,1, -    13,1,9,1,22,1,21,1,9,1,15,1,9,1,122,31, +    0,116,0,0,107,3,0,114,171,0,100,8,0,106,1,0, +    124,2,0,124,5,0,131,2,0,125,8,0,116,2,0,106, +    3,0,100,9,0,124,8,0,131,2,0,1,116,4,0,124, +    8,0,124,4,0,141,1,0,130,1,0,110,125,0,116,5, +    0,124,6,0,131,1,0,100,5,0,107,3,0,114,235,0, +    100,10,0,106,1,0,124,2,0,131,1,0,125,8,0,116, +    2,0,106,3,0,100,9,0,124,8,0,131,2,0,1,116, +    6,0,124,8,0,131,1,0,130,1,0,110,61,0,116,5, +    0,124,7,0,131,1,0,100,5,0,107,3,0,114,40,1, +    100,11,0,106,1,0,124,2,0,131,1,0,125,8,0,116, +    2,0,106,3,0,100,9,0,124,8,0,131,2,0,1,116, +    6,0,124,8,0,131,1,0,130,1,0,124,1,0,100,1, +    0,107,9,0,114,238,1,121,20,0,116,7,0,124,1,0, +    100,12,0,25,131,1,0,125,9,0,87,110,18,0,4,116, +    8,0,107,10,0,114,92,1,1,1,1,89,110,65,0,88, +    116,9,0,124,6,0,131,1,0,124,9,0,107,3,0,114, +    157,1,100,13,0,106,1,0,124,2,0,131,1,0,125,8, +    0,116,2,0,106,3,0,100,9,0,124,8,0,131,2,0, +    1,116,4,0,124,8,0,124,4,0,141,1,0,130,1,0, +    121,18,0,124,1,0,100,14,0,25,100,15,0,64,125,10, +    0,87,110,18,0,4,116,8,0,107,10,0,114,195,1,1, +    1,1,89,110,43,0,88,116,9,0,124,7,0,131,1,0, +    124,10,0,107,3,0,114,238,1,116,4,0,100,13,0,106, +    1,0,124,2,0,131,1,0,124,4,0,141,1,0,130,1, +    0,124,0,0,100,7,0,100,1,0,133,2,0,25,83,41, +    16,97,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,98,0,0,0,122,10,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,122,30,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,122,2,123,125,122,43,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,122,48,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,218,5,109,116,105,109,101, +    122,26,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,218,4,115,105, +    122,101,108,3,0,0,0,255,127,255,127,3,0,41,10,218, +    12,77,65,71,73,67,95,78,85,77,66,69,82,114,47,0, +    0,0,114,114,0,0,0,218,16,95,118,101,114,98,111,115, +    101,95,109,101,115,115,97,103,101,114,99,0,0,0,114,31, +    0,0,0,218,8,69,79,70,69,114,114,111,114,114,14,0, +    0,0,218,8,75,101,121,69,114,114,111,114,114,19,0,0, +    0,41,11,114,53,0,0,0,218,12,115,111,117,114,99,101, +    95,115,116,97,116,115,114,98,0,0,0,114,35,0,0,0, +    90,11,101,120,99,95,100,101,116,97,105,108,115,90,5,109, +    97,103,105,99,90,13,114,97,119,95,116,105,109,101,115,116, +    97,109,112,90,8,114,97,119,95,115,105,122,101,114,75,0, +    0,0,218,12,115,111,117,114,99,101,95,109,116,105,109,101, +    218,11,115,111,117,114,99,101,95,115,105,122,101,114,4,0, +    0,0,114,4,0,0,0,114,5,0,0,0,218,25,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,153,1,0,0,115,76,0,0,0, +    0,11,6,1,12,1,13,3,6,1,12,1,10,1,16,1, +    16,1,16,1,12,1,18,1,16,1,18,1,18,1,15,1, +    16,1,15,1,18,1,15,1,16,1,12,1,12,1,3,1, +    20,1,13,1,5,2,18,1,15,1,16,1,15,1,3,1, +    18,1,13,1,5,2,18,1,15,1,9,1,114,135,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,106,5,0,100, +    1,0,124,2,0,131,2,0,1,124,3,0,100,2,0,107, +    9,0,114,74,0,116,6,0,106,7,0,124,4,0,124,3, +    0,131,2,0,1,124,4,0,83,116,8,0,100,3,0,106, +    9,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,41,6, +    122,60,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,122,21, +    99,111,100,101,32,111,98,106,101,99,116,32,102,114,111,109, +    32,123,33,114,125,78,122,23,78,111,110,45,99,111,100,101, +    32,111,98,106,101,99,116,32,105,110,32,123,33,114,125,114, +    98,0,0,0,114,35,0,0,0,41,10,218,7,109,97,114, +    115,104,97,108,90,5,108,111,97,100,115,218,10,105,115,105, +    110,115,116,97,110,99,101,218,10,95,99,111,100,101,95,116, +    121,112,101,114,114,0,0,0,114,129,0,0,0,218,4,95, +    105,109,112,90,16,95,102,105,120,95,99,111,95,102,105,108, +    101,110,97,109,101,114,99,0,0,0,114,47,0,0,0,41, +    5,114,53,0,0,0,114,98,0,0,0,114,89,0,0,0, +    114,90,0,0,0,218,4,99,111,100,101,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,218,17,95,99,111,109, +    112,105,108,101,95,98,121,116,101,99,111,100,101,208,1,0, +    0,115,16,0,0,0,0,2,15,1,15,1,16,1,12,1, +    16,1,4,2,18,1,114,141,0,0,0,114,59,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,41,1,122,80,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,41,6,218,9,98,121, +    116,101,97,114,114,97,121,114,128,0,0,0,218,6,101,120, +    116,101,110,100,114,17,0,0,0,114,136,0,0,0,90,5, +    100,117,109,112,115,41,4,114,140,0,0,0,114,126,0,0, +    0,114,134,0,0,0,114,53,0,0,0,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,218,17,95,99,111,100, +    101,95,116,111,95,98,121,116,101,99,111,100,101,220,1,0, +    0,115,10,0,0,0,0,3,12,1,19,1,19,1,22,1, +    114,144,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,41,4,122,121,68,101,99,111, +    100,101,32,98,121,116,101,115,32,114,101,112,114,101,115,101, +    110,116,105,110,103,32,115,111,117,114,99,101,32,99,111,100, +    101,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101, +    32,115,116,114,105,110,103,46,10,10,32,32,32,32,85,110, +    105,118,101,114,115,97,108,32,110,101,119,108,105,110,101,32, +    115,117,112,112,111,114,116,32,105,115,32,117,115,101,100,32, +    105,110,32,116,104,101,32,100,101,99,111,100,105,110,103,46, +    10,32,32,32,32,114,59,0,0,0,78,84,41,7,218,8, +    116,111,107,101,110,105,122,101,114,49,0,0,0,90,7,66, +    121,116,101,115,73,79,90,8,114,101,97,100,108,105,110,101, +    90,15,100,101,116,101,99,116,95,101,110,99,111,100,105,110, +    103,90,25,73,110,99,114,101,109,101,110,116,97,108,78,101, +    119,108,105,110,101,68,101,99,111,100,101,114,218,6,100,101, +    99,111,100,101,41,5,218,12,115,111,117,114,99,101,95,98, +    121,116,101,115,114,145,0,0,0,90,21,115,111,117,114,99, +    101,95,98,121,116,101,115,95,114,101,97,100,108,105,110,101, +    218,8,101,110,99,111,100,105,110,103,90,15,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,218,13,100,101,99,111, +    100,101,95,115,111,117,114,99,101,230,1,0,0,115,10,0, +    0,0,0,5,12,1,18,1,15,1,18,1,114,149,0,0, +    0,114,120,0,0,0,218,26,115,117,98,109,111,100,117,108, +    101,95,115,101,97,114,99,104,95,108,111,99,97,116,105,111, +    110,115,99,2,0,0,0,2,0,0,0,9,0,0,0,19, +    0,0,0,67,0,0,0,115,89,1,0,0,124,1,0,100, +    1,0,107,8,0,114,73,0,100,2,0,125,1,0,116,0, +    0,124,2,0,100,3,0,131,2,0,114,73,0,121,19,0, +    124,2,0,106,1,0,124,0,0,131,1,0,125,1,0,87, +    110,18,0,4,116,2,0,107,10,0,114,72,0,1,1,1, +    89,110,1,0,88,116,3,0,106,4,0,124,0,0,124,2, +    0,100,4,0,124,1,0,131,2,1,125,4,0,100,5,0, +    124,4,0,95,5,0,124,2,0,100,1,0,107,8,0,114, +    194,0,120,73,0,116,6,0,131,0,0,68,93,58,0,92, +    2,0,125,5,0,125,6,0,124,1,0,106,7,0,116,8, +    0,124,6,0,131,1,0,131,1,0,114,128,0,124,5,0, +    124,0,0,124,1,0,131,2,0,125,2,0,124,2,0,124, +    4,0,95,9,0,80,113,128,0,87,100,1,0,83,124,3, +    0,116,10,0,107,8,0,114,23,1,116,0,0,124,2,0, +    100,6,0,131,2,0,114,32,1,121,19,0,124,2,0,106, +    11,0,124,0,0,131,1,0,125,7,0,87,110,18,0,4, +    116,2,0,107,10,0,114,4,1,1,1,1,89,113,32,1, +    88,124,7,0,114,32,1,103,0,0,124,4,0,95,12,0, +    110,9,0,124,3,0,124,4,0,95,12,0,124,4,0,106, +    12,0,103,0,0,107,2,0,114,85,1,124,1,0,114,85, +    1,116,13,0,124,1,0,131,1,0,100,7,0,25,125,8, +    0,124,4,0,106,12,0,106,14,0,124,8,0,131,1,0, +    1,124,4,0,83,41,8,97,61,1,0,0,82,101,116,117, +    114,110,32,97,32,109,111,100,117,108,101,32,115,112,101,99, +    32,98,97,115,101,100,32,111,110,32,97,32,102,105,108,101, +    32,108,111,99,97,116,105,111,110,46,10,10,32,32,32,32, +    84,111,32,105,110,100,105,99,97,116,101,32,116,104,97,116, +    32,116,104,101,32,109,111,100,117,108,101,32,105,115,32,97, +    32,112,97,99,107,97,103,101,44,32,115,101,116,10,32,32, +    32,32,115,117,98,109,111,100,117,108,101,95,115,101,97,114, +    99,104,95,108,111,99,97,116,105,111,110,115,32,116,111,32, +    97,32,108,105,115,116,32,111,102,32,100,105,114,101,99,116, +    111,114,121,32,112,97,116,104,115,46,32,32,65,110,10,32, +    32,32,32,101,109,112,116,121,32,108,105,115,116,32,105,115, +    32,115,117,102,102,105,99,105,101,110,116,44,32,116,104,111, +    117,103,104,32,105,116,115,32,110,111,116,32,111,116,104,101, +    114,119,105,115,101,32,117,115,101,102,117,108,32,116,111,32, +    116,104,101,10,32,32,32,32,105,109,112,111,114,116,32,115, +    121,115,116,101,109,46,10,10,32,32,32,32,84,104,101,32, +    108,111,97,100,101,114,32,109,117,115,116,32,116,97,107,101, +    32,97,32,115,112,101,99,32,97,115,32,105,116,115,32,111, +    110,108,121,32,95,95,105,110,105,116,95,95,40,41,32,97, +    114,103,46,10,10,32,32,32,32,78,122,9,60,117,110,107, +    110,111,119,110,62,218,12,103,101,116,95,102,105,108,101,110, +    97,109,101,218,6,111,114,105,103,105,110,84,218,10,105,115, +    95,112,97,99,107,97,103,101,114,59,0,0,0,41,15,114, +    108,0,0,0,114,151,0,0,0,114,99,0,0,0,114,114, +    0,0,0,218,10,77,111,100,117,108,101,83,112,101,99,90, +    13,95,115,101,116,95,102,105,108,101,97,116,116,114,218,27, +    95,103,101,116,95,115,117,112,112,111,114,116,101,100,95,102, +    105,108,101,95,108,111,97,100,101,114,115,114,92,0,0,0, +    114,93,0,0,0,114,120,0,0,0,218,9,95,80,79,80, +    85,76,65,84,69,114,153,0,0,0,114,150,0,0,0,114, +    38,0,0,0,218,6,97,112,112,101,110,100,41,9,114,98, +    0,0,0,90,8,108,111,99,97,116,105,111,110,114,120,0, +    0,0,114,150,0,0,0,218,4,115,112,101,99,218,12,108, +    111,97,100,101,114,95,99,108,97,115,115,218,8,115,117,102, +    102,105,120,101,115,114,153,0,0,0,90,7,100,105,114,110, +    97,109,101,114,4,0,0,0,114,4,0,0,0,114,5,0, +    0,0,218,23,115,112,101,99,95,102,114,111,109,95,102,105, +    108,101,95,108,111,99,97,116,105,111,110,247,1,0,0,115, +    60,0,0,0,0,12,12,4,6,1,15,2,3,1,19,1, +    13,1,5,8,24,1,9,3,12,1,22,1,21,1,15,1, +    9,1,5,2,4,3,12,2,15,1,3,1,19,1,13,1, +    5,2,6,1,12,2,9,1,15,1,6,1,16,1,16,2, +    114,161,0,0,0,99,0,0,0,0,0,0,0,0,0,0, +    0,0,5,0,0,0,64,0,0,0,115,121,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,9,0, +    100,10,0,100,11,0,132,2,0,131,1,0,90,10,0,101, +    7,0,100,9,0,100,12,0,100,13,0,132,1,0,131,1, +    0,90,11,0,100,9,0,83,41,14,218,21,87,105,110,100, +    111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101, +    114,122,62,77,101,116,97,32,112,97,116,104,32,102,105,110, +    100,101,114,32,102,111,114,32,109,111,100,117,108,101,115,32, +    100,101,99,108,97,114,101,100,32,105,110,32,116,104,101,32, +    87,105,110,100,111,119,115,32,114,101,103,105,115,116,114,121, +    46,122,59,83,111,102,116,119,97,114,101,92,80,121,116,104, +    111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,115, +    121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,117, +    108,101,115,92,123,102,117,108,108,110,97,109,101,125,122,65, +    83,111,102,116,119,97,114,101,92,80,121,116,104,111,110,92, +    80,121,116,104,111,110,67,111,114,101,92,123,115,121,115,95, +    118,101,114,115,105,111,110,125,92,77,111,100,117,108,101,115, +    92,123,102,117,108,108,110,97,109,101,125,92,68,101,98,117, +    103,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,41, +    1,78,41,5,218,7,95,119,105,110,114,101,103,90,7,79, +    112,101,110,75,101,121,90,17,72,75,69,89,95,67,85,82, +    82,69,78,84,95,85,83,69,82,114,40,0,0,0,90,18, +    72,75,69,89,95,76,79,67,65,76,95,77,65,67,72,73, +    78,69,41,2,218,3,99,108,115,218,3,107,101,121,114,4, +    0,0,0,114,4,0,0,0,114,5,0,0,0,218,14,95, +    111,112,101,110,95,114,101,103,105,115,116,114,121,69,2,0, +    0,115,8,0,0,0,0,2,3,1,23,1,13,1,122,36,      87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,70, -    105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,99, -    3,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, -    67,0,0,0,115,45,0,0,0,124,0,0,106,0,0,124, -    1,0,124,2,0,131,2,0,125,3,0,124,3,0,100,1, -    0,107,9,0,114,37,0,124,3,0,106,1,0,83,100,1, -    0,83,100,1,0,83,41,2,122,108,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,10,10,32,32, -    32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,111, -    100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46, -    32,32,85,115,101,32,101,120,101,99,95,109,111,100,117,108, -    101,40,41,32,105,110,115,116,101,97,100,46,10,10,32,32, -    32,32,32,32,32,32,78,41,2,114,181,0,0,0,114,127, -    0,0,0,41,4,114,170,0,0,0,114,126,0,0,0,114, -    35,0,0,0,114,164,0,0,0,114,4,0,0,0,114,4, -    0,0,0,114,5,0,0,0,218,11,102,105,110,100,95,109, -    111,100,117,108,101,114,2,0,0,115,8,0,0,0,0,7, -    18,1,12,1,7,2,122,33,87,105,110,100,111,119,115,82, -    101,103,105,115,116,114,121,70,105,110,100,101,114,46,102,105, -    110,100,95,109,111,100,117,108,101,41,12,114,112,0,0,0, -    114,111,0,0,0,114,113,0,0,0,114,114,0,0,0,114, -    175,0,0,0,114,174,0,0,0,114,173,0,0,0,218,11, -    99,108,97,115,115,109,101,116,104,111,100,114,172,0,0,0, -    114,178,0,0,0,114,181,0,0,0,114,182,0,0,0,114, -    4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,168,0,0,0,64,2,0,0,115,20,0,0, -    0,12,2,6,3,6,3,6,2,6,2,18,7,18,15,3, -    1,21,15,3,1,114,168,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,41,11,218,13,95,76, -    111,97,100,101,114,66,97,115,105,99,115,122,83,66,97,115, -    101,32,99,108,97,115,115,32,111,102,32,99,111,109,109,111, -    110,32,99,111,100,101,32,110,101,101,100,101,100,32,98,121, -    32,98,111,116,104,32,83,111,117,114,99,101,76,111,97,100, -    101,114,32,97,110,100,10,32,32,32,32,83,111,117,114,99, -    101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,46, -    99,2,0,0,0,0,0,0,0,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,41,6,122,141,67,111,110,99,114,101,116,101,32,105, -    109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102, -    32,73,110,115,112,101,99,116,76,111,97,100,101,114,46,105, -    115,95,112,97,99,107,97,103,101,32,98,121,32,99,104,101, -    99,107,105,110,103,32,105,102,10,32,32,32,32,32,32,32, -    32,116,104,101,32,112,97,116,104,32,114,101,116,117,114,110, -    101,100,32,98,121,32,103,101,116,95,102,105,108,101,110,97, -    109,101,32,104,97,115,32,97,32,102,105,108,101,110,97,109, -    101,32,111,102,32,39,95,95,105,110,105,116,95,95,46,112, -    121,39,46,114,29,0,0,0,114,58,0,0,0,114,59,0, -    0,0,114,56,0,0,0,218,8,95,95,105,110,105,116,95, -    95,41,4,114,38,0,0,0,114,157,0,0,0,114,34,0, -    0,0,114,32,0,0,0,41,5,114,108,0,0,0,114,126, -    0,0,0,114,94,0,0,0,90,13,102,105,108,101,110,97, -    109,101,95,98,97,115,101,90,9,116,97,105,108,95,110,97, -    109,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,114,159,0,0,0,133,2,0,0,115,8,0,0,0,0, -    3,25,1,22,1,19,1,122,24,95,76,111,97,100,101,114, -    66,97,115,105,99,115,46,105,115,95,112,97,99,107,97,103, -    101,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0, -    0,0,67,0,0,0,115,4,0,0,0,100,1,0,83,41, -    2,122,42,85,115,101,32,100,101,102,97,117,108,116,32,115, -    101,109,97,110,116,105,99,115,32,102,111,114,32,109,111,100, -    117,108,101,32,99,114,101,97,116,105,111,110,46,78,114,4, -    0,0,0,41,2,114,108,0,0,0,114,164,0,0,0,114, -    4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,13, -    99,114,101,97,116,101,95,109,111,100,117,108,101,141,2,0, -    0,115,0,0,0,0,122,27,95,76,111,97,100,101,114,66, -    97,115,105,99,115,46,99,114,101,97,116,101,95,109,111,100, -    117,108,101,99,2,0,0,0,0,0,0,0,3,0,0,0, -    4,0,0,0,67,0,0,0,115,80,0,0,0,124,0,0, -    106,0,0,124,1,0,106,1,0,131,1,0,125,2,0,124, -    2,0,100,1,0,107,8,0,114,54,0,116,2,0,100,2, -    0,106,3,0,124,1,0,106,1,0,131,1,0,131,1,0, -    130,1,0,116,4,0,106,5,0,116,6,0,124,2,0,124, -    1,0,106,7,0,131,3,0,1,100,1,0,83,41,3,122, -    19,69,120,101,99,117,116,101,32,116,104,101,32,109,111,100, -    117,108,101,46,78,122,52,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,41,8,218,8,103, -    101,116,95,99,111,100,101,114,112,0,0,0,114,107,0,0, -    0,114,47,0,0,0,114,121,0,0,0,218,25,95,99,97, -    108,108,95,119,105,116,104,95,102,114,97,109,101,115,95,114, -    101,109,111,118,101,100,218,4,101,120,101,99,114,118,0,0, -    0,41,3,114,108,0,0,0,218,6,109,111,100,117,108,101, -    114,146,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,218,11,101,120,101,99,95,109,111,100,117,108, -    101,144,2,0,0,115,10,0,0,0,0,2,18,1,12,1, -    9,1,15,1,122,25,95,76,111,97,100,101,114,66,97,115, -    105,99,115,46,101,120,101,99,95,109,111,100,117,108,101,99, -    2,0,0,0,0,0,0,0,2,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,124,1,0,131,2,0,83,41,1,78,41,2,114,121, -    0,0,0,218,17,95,108,111,97,100,95,109,111,100,117,108, -    101,95,115,104,105,109,41,2,114,108,0,0,0,114,126,0, -    0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,218,11,108,111,97,100,95,109,111,100,117,108,101,152,2, -    0,0,115,2,0,0,0,0,1,122,25,95,76,111,97,100, -    101,114,66,97,115,105,99,115,46,108,111,97,100,95,109,111, -    100,117,108,101,78,41,8,114,112,0,0,0,114,111,0,0, -    0,114,113,0,0,0,114,114,0,0,0,114,159,0,0,0, -    114,186,0,0,0,114,191,0,0,0,114,193,0,0,0,114, -    4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,184,0,0,0,128,2,0,0,115,10,0,0, -    0,12,3,6,2,12,8,12,3,12,8,114,184,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,41,19,218,12,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,41,2,122,178,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,41, -    1,218,7,73,79,69,114,114,111,114,41,2,114,108,0,0, -    0,114,35,0,0,0,114,4,0,0,0,114,4,0,0,0, -    114,5,0,0,0,218,10,112,97,116,104,95,109,116,105,109, -    101,158,2,0,0,115,2,0,0,0,0,6,122,23,83,111, -    117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,95, -    109,116,105,109,101,99,2,0,0,0,0,0,0,0,2,0, -    0,0,3,0,0,0,67,0,0,0,115,19,0,0,0,100, -    1,0,124,0,0,106,0,0,124,1,0,131,1,0,105,1, -    0,83,41,2,97,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,133,0,0,0,41,1,114,196,0,0,0,41, -    2,114,108,0,0,0,114,35,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,218,10,112,97,116,104, -    95,115,116,97,116,115,166,2,0,0,115,2,0,0,0,0, -    11,122,23,83,111,117,114,99,101,76,111,97,100,101,114,46, -    112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,0, -    0,0,0,4,0,0,0,3,0,0,0,67,0,0,0,115, -    16,0,0,0,124,0,0,106,0,0,124,2,0,124,3,0, -    131,2,0,83,41,1,122,228,79,112,116,105,111,110,97,108, -    32,109,101,116,104,111,100,32,119,104,105,99,104,32,119,114, -    105,116,101,115,32,100,97,116,97,32,40,98,121,116,101,115, -    41,32,116,111,32,97,32,102,105,108,101,32,112,97,116,104, -    32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,32, -    32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,32, -    116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,111, -    119,115,32,102,111,114,32,116,104,101,32,119,114,105,116,105, -    110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,102, -    105,108,101,115,46,10,10,32,32,32,32,32,32,32,32,84, -    104,101,32,115,111,117,114,99,101,32,112,97,116,104,32,105, -    115,32,110,101,101,100,101,100,32,105,110,32,111,114,100,101, -    114,32,116,111,32,99,111,114,114,101,99,116,108,121,32,116, -    114,97,110,115,102,101,114,32,112,101,114,109,105,115,115,105, -    111,110,115,10,32,32,32,32,32,32,32,32,41,1,218,8, -    115,101,116,95,100,97,116,97,41,4,114,108,0,0,0,114, -    90,0,0,0,90,10,99,97,99,104,101,95,112,97,116,104, -    114,53,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,218,15,95,99,97,99,104,101,95,98,121,116, -    101,99,111,100,101,179,2,0,0,115,2,0,0,0,0,8, -    122,28,83,111,117,114,99,101,76,111,97,100,101,114,46,95, -    99,97,99,104,101,95,98,121,116,101,99,111,100,101,99,3, -    0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,67, -    0,0,0,115,4,0,0,0,100,1,0,83,41,2,122,150, -    79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,32, -    119,104,105,99,104,32,119,114,105,116,101,115,32,100,97,116, -    97,32,40,98,121,116,101,115,41,32,116,111,32,97,32,102, -    105,108,101,32,112,97,116,104,32,40,97,32,115,116,114,41, -    46,10,10,32,32,32,32,32,32,32,32,73,109,112,108,101, -    109,101,110,116,105,110,103,32,116,104,105,115,32,109,101,116, -    104,111,100,32,97,108,108,111,119,115,32,102,111,114,32,116, -    104,101,32,119,114,105,116,105,110,103,32,111,102,32,98,121, -    116,101,99,111,100,101,32,102,105,108,101,115,46,10,32,32, -    32,32,32,32,32,32,78,114,4,0,0,0,41,3,114,108, -    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,198,0,0, -    0,189,2,0,0,115,0,0,0,0,122,21,83,111,117,114, -    99,101,76,111,97,100,101,114,46,115,101,116,95,100,97,116, -    97,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,41,4,122,52,67,111,110,99,114,101,116,101, -    32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32, -    111,102,32,73,110,115,112,101,99,116,76,111,97,100,101,114, -    46,103,101,116,95,115,111,117,114,99,101,46,122,39,115,111, -    117,114,99,101,32,110,111,116,32,97,118,97,105,108,97,98, -    108,101,32,116,104,114,111,117,103,104,32,103,101,116,95,100, -    97,116,97,40,41,114,106,0,0,0,78,41,5,114,157,0, -    0,0,218,8,103,101,116,95,100,97,116,97,114,40,0,0, -    0,114,107,0,0,0,114,155,0,0,0,41,5,114,108,0, -    0,0,114,126,0,0,0,114,35,0,0,0,114,153,0,0, -    0,218,3,101,120,99,114,4,0,0,0,114,4,0,0,0, -    114,5,0,0,0,218,10,103,101,116,95,115,111,117,114,99, -    101,196,2,0,0,115,14,0,0,0,0,2,15,1,3,1, -    19,1,18,1,9,1,31,1,122,23,83,111,117,114,99,101, -    76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99, -    101,218,9,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,34,0,0,0,116,0,0,106,1, -    0,116,2,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,41,5,122, -    130,82,101,116,117,114,110,32,116,104,101,32,99,111,100,101, -    32,111,98,106,101,99,116,32,99,111,109,112,105,108,101,100, -    32,102,114,111,109,32,115,111,117,114,99,101,46,10,10,32, -    32,32,32,32,32,32,32,84,104,101,32,39,100,97,116,97, -    39,32,97,114,103,117,109,101,110,116,32,99,97,110,32,98, -    101,32,97,110,121,32,111,98,106,101,99,116,32,116,121,112, -    101,32,116,104,97,116,32,99,111,109,112,105,108,101,40,41, -    32,115,117,112,112,111,114,116,115,46,10,32,32,32,32,32, -    32,32,32,114,189,0,0,0,218,12,100,111,110,116,95,105, -    110,104,101,114,105,116,84,114,68,0,0,0,41,3,114,121, -    0,0,0,114,188,0,0,0,218,7,99,111,109,112,105,108, -    101,41,4,114,108,0,0,0,114,53,0,0,0,114,35,0, -    0,0,114,203,0,0,0,114,4,0,0,0,114,4,0,0, -    0,114,5,0,0,0,218,14,115,111,117,114,99,101,95,116, -    111,95,99,111,100,101,206,2,0,0,115,4,0,0,0,0, -    5,21,1,122,27,83,111,117,114,99,101,76,111,97,100,101, -    114,46,115,111,117,114,99,101,95,116,111,95,99,111,100,101, -    99,2,0,0,0,0,0,0,0,10,0,0,0,43,0,0, -    0,67,0,0,0,115,174,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,170,1,124,4,0,100,1, -    0,107,9,0,114,170,1,124,3,0,100,1,0,107,9,0, -    114,170,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,110, -    18,0,4,116,2,0,107,10,0,114,169,1,1,1,1,89, -    110,1,0,88,124,9,0,83,41,11,122,190,67,111,110,99, +    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,143,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,47,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,82,88,87, +    110,22,0,4,116,9,0,107,10,0,114,138,0,1,1,1, +    100,0,0,83,89,110,1,0,88,124,5,0,83,41,5,78, +    114,119,0,0,0,90,11,115,121,115,95,118,101,114,115,105, +    111,110,114,80,0,0,0,114,30,0,0,0,41,10,218,11, +    68,69,66,85,71,95,66,85,73,76,68,218,18,82,69,71, +    73,83,84,82,89,95,75,69,89,95,68,69,66,85,71,218, +    12,82,69,71,73,83,84,82,89,95,75,69,89,114,47,0, +    0,0,114,7,0,0,0,218,7,118,101,114,115,105,111,110, +    114,166,0,0,0,114,163,0,0,0,90,10,81,117,101,114, +    121,86,97,108,117,101,114,40,0,0,0,41,6,114,164,0, +    0,0,114,119,0,0,0,90,12,114,101,103,105,115,116,114, +    121,95,107,101,121,114,165,0,0,0,90,4,104,107,101,121, +    218,8,102,105,108,101,112,97,116,104,114,4,0,0,0,114, +    4,0,0,0,114,5,0,0,0,218,16,95,115,101,97,114, +    99,104,95,114,101,103,105,115,116,114,121,76,2,0,0,115, +    22,0,0,0,0,2,9,1,12,2,9,1,15,1,22,1, +    3,1,18,1,29,1,13,1,9,1,122,38,87,105,110,100, +    111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101, +    114,46,95,115,101,97,114,99,104,95,114,101,103,105,115,116, +    114,121,78,99,4,0,0,0,0,0,0,0,8,0,0,0, +    14,0,0,0,67,0,0,0,115,158,0,0,0,124,0,0, +    106,0,0,124,1,0,131,1,0,125,4,0,124,4,0,100, +    0,0,107,8,0,114,31,0,100,0,0,83,121,14,0,116, +    1,0,124,4,0,131,1,0,1,87,110,22,0,4,116,2, +    0,107,10,0,114,69,0,1,1,1,100,0,0,83,89,110, +    1,0,88,120,81,0,116,3,0,131,0,0,68,93,70,0, +    92,2,0,125,5,0,125,6,0,124,4,0,106,4,0,116, +    5,0,124,6,0,131,1,0,131,1,0,114,80,0,116,6, +    0,106,7,0,124,1,0,124,5,0,124,1,0,124,4,0, +    131,2,0,100,1,0,124,4,0,131,2,1,125,7,0,124, +    7,0,83,113,80,0,87,100,0,0,83,41,2,78,114,152, +    0,0,0,41,8,114,172,0,0,0,114,39,0,0,0,114, +    40,0,0,0,114,155,0,0,0,114,92,0,0,0,114,93, +    0,0,0,114,114,0,0,0,218,16,115,112,101,99,95,102, +    114,111,109,95,108,111,97,100,101,114,41,8,114,164,0,0, +    0,114,119,0,0,0,114,35,0,0,0,218,6,116,97,114, +    103,101,116,114,171,0,0,0,114,120,0,0,0,114,160,0, +    0,0,114,158,0,0,0,114,4,0,0,0,114,4,0,0, +    0,114,5,0,0,0,218,9,102,105,110,100,95,115,112,101, +    99,91,2,0,0,115,26,0,0,0,0,2,15,1,12,1, +    4,1,3,1,14,1,13,1,9,1,22,1,21,1,9,1, +    15,1,9,1,122,31,87,105,110,100,111,119,115,82,101,103, +    105,115,116,114,121,70,105,110,100,101,114,46,102,105,110,100, +    95,115,112,101,99,99,3,0,0,0,0,0,0,0,4,0, +    0,0,3,0,0,0,67,0,0,0,115,45,0,0,0,124, +    0,0,106,0,0,124,1,0,124,2,0,131,2,0,125,3, +    0,124,3,0,100,1,0,107,9,0,114,37,0,124,3,0, +    106,1,0,83,100,1,0,83,100,1,0,83,41,2,122,108, +    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,10,10,32,32,32,32,32,32,32,32,84,104,105,115, +    32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101, +    99,97,116,101,100,46,32,32,85,115,101,32,101,120,101,99, +    95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97, +    100,46,10,10,32,32,32,32,32,32,32,32,78,41,2,114, +    175,0,0,0,114,120,0,0,0,41,4,114,164,0,0,0, +    114,119,0,0,0,114,35,0,0,0,114,158,0,0,0,114, +    4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,11, +    102,105,110,100,95,109,111,100,117,108,101,107,2,0,0,115, +    8,0,0,0,0,7,18,1,12,1,7,2,122,33,87,105, +    110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,110, +    100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,41, +    12,114,105,0,0,0,114,104,0,0,0,114,106,0,0,0, +    114,107,0,0,0,114,169,0,0,0,114,168,0,0,0,114, +    167,0,0,0,218,11,99,108,97,115,115,109,101,116,104,111, +    100,114,166,0,0,0,114,172,0,0,0,114,175,0,0,0, +    114,176,0,0,0,114,4,0,0,0,114,4,0,0,0,114, +    4,0,0,0,114,5,0,0,0,114,162,0,0,0,57,2, +    0,0,115,20,0,0,0,12,2,6,3,6,3,6,2,6, +    2,18,7,18,15,3,1,21,15,3,1,114,162,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, +    41,11,218,13,95,76,111,97,100,101,114,66,97,115,105,99, +    115,122,83,66,97,115,101,32,99,108,97,115,115,32,111,102, +    32,99,111,109,109,111,110,32,99,111,100,101,32,110,101,101, +    100,101,100,32,98,121,32,98,111,116,104,32,83,111,117,114, +    99,101,76,111,97,100,101,114,32,97,110,100,10,32,32,32, +    32,83,111,117,114,99,101,108,101,115,115,70,105,108,101,76, +    111,97,100,101,114,46,99,2,0,0,0,0,0,0,0,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,41,6,122,141,67,111,110,99,      114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,      105,111,110,32,111,102,32,73,110,115,112,101,99,116,76,111, -    97,100,101,114,46,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,133,0,0,0, -    114,138,0,0,0,114,106,0,0,0,114,35,0,0,0,122, -    13,123,125,32,109,97,116,99,104,101,115,32,123,125,114,89, -    0,0,0,114,90,0,0,0,122,19,99,111,100,101,32,111, -    98,106,101,99,116,32,102,114,111,109,32,123,125,122,10,119, -    114,111,116,101,32,123,33,114,125,41,19,114,157,0,0,0, -    114,79,0,0,0,114,66,0,0,0,114,197,0,0,0,114, -    195,0,0,0,114,14,0,0,0,114,200,0,0,0,114,40, -    0,0,0,114,141,0,0,0,114,107,0,0,0,114,136,0, -    0,0,114,105,0,0,0,114,147,0,0,0,114,206,0,0, -    0,114,7,0,0,0,218,19,100,111,110,116,95,119,114,105, -    116,101,95,98,121,116,101,99,111,100,101,114,150,0,0,0, -    114,31,0,0,0,114,199,0,0,0,41,10,114,108,0,0, -    0,114,126,0,0,0,114,90,0,0,0,114,139,0,0,0, -    114,89,0,0,0,218,2,115,116,114,53,0,0,0,218,10, -    98,121,116,101,115,95,100,97,116,97,114,153,0,0,0,90, -    11,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,187,0,0,0, -    214,2,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,5,1,122,21,83,111,117,114,99,101,76, -    111,97,100,101,114,46,103,101,116,95,99,111,100,101,78,114, -    87,0,0,0,41,10,114,112,0,0,0,114,111,0,0,0, -    114,113,0,0,0,114,196,0,0,0,114,197,0,0,0,114, -    199,0,0,0,114,198,0,0,0,114,202,0,0,0,114,206, -    0,0,0,114,187,0,0,0,114,4,0,0,0,114,4,0, -    0,0,114,4,0,0,0,114,5,0,0,0,114,194,0,0, -    0,156,2,0,0,115,14,0,0,0,12,2,12,8,12,13, -    12,10,12,7,12,10,18,8,114,194,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,112,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,101,7,0, -    135,0,0,102,1,0,100,8,0,100,9,0,134,0,0,131, -    1,0,90,8,0,101,7,0,100,10,0,100,11,0,132,0, -    0,131,1,0,90,9,0,100,12,0,100,13,0,132,0,0, -    90,10,0,135,0,0,83,41,14,218,10,70,105,108,101,76, -    111,97,100,101,114,122,103,66,97,115,101,32,102,105,108,101, -    32,108,111,97,100,101,114,32,99,108,97,115,115,32,119,104, -    105,99,104,32,105,109,112,108,101,109,101,110,116,115,32,116, -    104,101,32,108,111,97,100,101,114,32,112,114,111,116,111,99, -    111,108,32,109,101,116,104,111,100,115,32,116,104,97,116,10, -    32,32,32,32,114,101,113,117,105,114,101,32,102,105,108,101, -    32,115,121,115,116,101,109,32,117,115,97,103,101,46,99,3, -    0,0,0,0,0,0,0,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,1,0,83,41,2, -    122,75,67,97,99,104,101,32,116,104,101,32,109,111,100,117, -    108,101,32,110,97,109,101,32,97,110,100,32,116,104,101,32, -    112,97,116,104,32,116,111,32,116,104,101,32,102,105,108,101, -    32,102,111,117,110,100,32,98,121,32,116,104,101,10,32,32, -    32,32,32,32,32,32,102,105,110,100,101,114,46,78,41,2, -    114,106,0,0,0,114,35,0,0,0,41,3,114,108,0,0, -    0,114,126,0,0,0,114,35,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,114,185,0,0,0,15, -    3,0,0,115,4,0,0,0,0,3,9,1,122,19,70,105, -    108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,95, -    95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0, -    0,0,67,0,0,0,115,34,0,0,0,124,0,0,106,0, -    0,124,1,0,106,0,0,107,2,0,111,33,0,124,0,0, -    106,1,0,124,1,0,106,1,0,107,2,0,83,41,1,78, -    41,2,218,9,95,95,99,108,97,115,115,95,95,114,118,0, -    0,0,41,2,114,108,0,0,0,218,5,111,116,104,101,114, -    114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,218, -    6,95,95,101,113,95,95,21,3,0,0,115,4,0,0,0, -    0,1,18,1,122,17,70,105,108,101,76,111,97,100,101,114, -    46,95,95,101,113,95,95,99,1,0,0,0,0,0,0,0, -    1,0,0,0,3,0,0,0,67,0,0,0,115,26,0,0, -    0,116,0,0,124,0,0,106,1,0,131,1,0,116,0,0, -    124,0,0,106,2,0,131,1,0,65,83,41,1,78,41,3, -    218,4,104,97,115,104,114,106,0,0,0,114,35,0,0,0, -    41,1,114,108,0,0,0,114,4,0,0,0,114,4,0,0, -    0,114,5,0,0,0,218,8,95,95,104,97,115,104,95,95, -    25,3,0,0,115,2,0,0,0,0,1,122,19,70,105,108, -    101,76,111,97,100,101,114,46,95,95,104,97,115,104,95,95, -    99,2,0,0,0,0,0,0,0,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, -    41,1,122,100,76,111,97,100,32,97,32,109,111,100,117,108, -    101,32,102,114,111,109,32,97,32,102,105,108,101,46,10,10, -    32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,116, -    104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101, -    100,46,32,32,85,115,101,32,101,120,101,99,95,109,111,100, -    117,108,101,40,41,32,105,110,115,116,101,97,100,46,10,10, -    32,32,32,32,32,32,32,32,41,3,218,5,115,117,112,101, -    114,114,210,0,0,0,114,193,0,0,0,41,2,114,108,0, -    0,0,114,126,0,0,0,41,1,114,211,0,0,0,114,4, -    0,0,0,114,5,0,0,0,114,193,0,0,0,28,3,0, -    0,115,2,0,0,0,0,10,122,22,70,105,108,101,76,111, -    97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,101, -    99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, -    0,67,0,0,0,115,7,0,0,0,124,0,0,106,0,0, -    83,41,1,122,58,82,101,116,117,114,110,32,116,104,101,32, -    112,97,116,104,32,116,111,32,116,104,101,32,115,111,117,114, -    99,101,32,102,105,108,101,32,97,115,32,102,111,117,110,100, -    32,98,121,32,116,104,101,32,102,105,110,100,101,114,46,41, -    1,114,35,0,0,0,41,2,114,108,0,0,0,114,126,0, -    0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,114,157,0,0,0,40,3,0,0,115,2,0,0,0,0, -    3,122,23,70,105,108,101,76,111,97,100,101,114,46,103,101, -    116,95,102,105,108,101,110,97,109,101,99,2,0,0,0,0, -    0,0,0,3,0,0,0,9,0,0,0,67,0,0,0,115, -    42,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,82,88,100,2,0,83,41,3, -    122,39,82,101,116,117,114,110,32,116,104,101,32,100,97,116, -    97,32,102,114,111,109,32,112,97,116,104,32,97,115,32,114, -    97,119,32,98,121,116,101,115,46,218,1,114,78,41,3,114, -    49,0,0,0,114,50,0,0,0,90,4,114,101,97,100,41, -    3,114,108,0,0,0,114,35,0,0,0,114,54,0,0,0, -    114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    200,0,0,0,45,3,0,0,115,4,0,0,0,0,2,21, -    1,122,19,70,105,108,101,76,111,97,100,101,114,46,103,101, -    116,95,100,97,116,97,41,11,114,112,0,0,0,114,111,0, -    0,0,114,113,0,0,0,114,114,0,0,0,114,185,0,0, -    0,114,213,0,0,0,114,215,0,0,0,114,123,0,0,0, -    114,193,0,0,0,114,157,0,0,0,114,200,0,0,0,114, -    4,0,0,0,114,4,0,0,0,41,1,114,211,0,0,0, -    114,5,0,0,0,114,210,0,0,0,10,3,0,0,115,14, -    0,0,0,12,3,6,2,12,6,12,4,12,3,24,12,18, -    5,114,210,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,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, -    41,11,218,16,83,111,117,114,99,101,70,105,108,101,76,111, -    97,100,101,114,122,62,67,111,110,99,114,101,116,101,32,105, -    109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102, -    32,83,111,117,114,99,101,76,111,97,100,101,114,32,117,115, -    105,110,103,32,116,104,101,32,102,105,108,101,32,115,121,115, -    116,101,109,46,99,2,0,0,0,0,0,0,0,3,0,0, -    0,4,0,0,0,67,0,0,0,115,34,0,0,0,116,0, -    0,124,1,0,131,1,0,125,2,0,100,1,0,124,2,0, -    106,1,0,100,2,0,124,2,0,106,2,0,105,2,0,83, -    41,3,122,33,82,101,116,117,114,110,32,116,104,101,32,109, -    101,116,97,100,97,116,97,32,102,111,114,32,116,104,101,32, -    112,97,116,104,46,114,133,0,0,0,114,134,0,0,0,41, -    3,114,39,0,0,0,218,8,115,116,95,109,116,105,109,101, -    90,7,115,116,95,115,105,122,101,41,3,114,108,0,0,0, -    114,35,0,0,0,114,208,0,0,0,114,4,0,0,0,114, -    4,0,0,0,114,5,0,0,0,114,197,0,0,0,55,3, -    0,0,115,4,0,0,0,0,2,12,1,122,27,83,111,117, -    114,99,101,70,105,108,101,76,111,97,100,101,114,46,112,97, -    116,104,95,115,116,97,116,115,99,4,0,0,0,0,0,0, -    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,41,2,78,218,5,95,109,111,100,101,41,2, -    114,97,0,0,0,114,198,0,0,0,41,5,114,108,0,0, -    0,114,90,0,0,0,114,89,0,0,0,114,53,0,0,0, -    114,42,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,199,0,0,0,60,3,0,0,115,4,0, -    0,0,0,2,12,1,122,32,83,111,117,114,99,101,70,105, -    108,101,76,111,97,100,101,114,46,95,99,97,99,104,101,95, -    98,121,116,101,99,111,100,101,114,220,0,0,0,105,182,1, -    0,0,99,3,0,0,0,1,0,0,0,9,0,0,0,17, -    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,41,4,122,27,87,114,105,116,101,32,98,121,116,101,115, -    32,100,97,116,97,32,116,111,32,97,32,102,105,108,101,46, -    122,27,99,111,117,108,100,32,110,111,116,32,99,114,101,97, -    116,101,32,123,33,114,125,58,32,123,33,114,125,78,122,12, -    99,114,101,97,116,101,100,32,123,33,114,125,41,11,114,38, -    0,0,0,114,46,0,0,0,114,163,0,0,0,114,33,0, -    0,0,114,28,0,0,0,114,3,0,0,0,90,5,109,107, -    100,105,114,218,15,70,105,108,101,69,120,105,115,116,115,69, -    114,114,111,114,114,40,0,0,0,114,105,0,0,0,114,55, -    0,0,0,41,9,114,108,0,0,0,114,35,0,0,0,114, -    53,0,0,0,114,220,0,0,0,218,6,112,97,114,101,110, -    116,114,94,0,0,0,114,27,0,0,0,114,23,0,0,0, -    114,201,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,198,0,0,0,65,3,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,122,25,83,111,117,114,99,101, -    70,105,108,101,76,111,97,100,101,114,46,115,101,116,95,100, -    97,116,97,78,41,7,114,112,0,0,0,114,111,0,0,0, -    114,113,0,0,0,114,114,0,0,0,114,197,0,0,0,114, -    199,0,0,0,114,198,0,0,0,114,4,0,0,0,114,4, -    0,0,0,114,4,0,0,0,114,5,0,0,0,114,218,0, -    0,0,51,3,0,0,115,8,0,0,0,12,2,6,2,12, -    5,12,5,114,218,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,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, -    41,7,218,20,83,111,117,114,99,101,108,101,115,115,70,105, -    108,101,76,111,97,100,101,114,122,45,76,111,97,100,101,114, -    32,119,104,105,99,104,32,104,97,110,100,108,101,115,32,115, -    111,117,114,99,101,108,101,115,115,32,102,105,108,101,32,105, -    109,112,111,114,116,115,46,99,2,0,0,0,0,0,0,0, -    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,41,4,78, -    114,106,0,0,0,114,35,0,0,0,114,89,0,0,0,41, -    4,114,157,0,0,0,114,200,0,0,0,114,141,0,0,0, -    114,147,0,0,0,41,5,114,108,0,0,0,114,126,0,0, -    0,114,35,0,0,0,114,53,0,0,0,114,209,0,0,0, -    114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    187,0,0,0,98,3,0,0,115,8,0,0,0,0,1,15, -    1,15,1,24,1,122,29,83,111,117,114,99,101,108,101,115, -    115,70,105,108,101,76,111,97,100,101,114,46,103,101,116,95, -    99,111,100,101,99,2,0,0,0,0,0,0,0,2,0,0, +    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,58, +    0,0,0,114,59,0,0,0,114,56,0,0,0,218,8,95, +    95,105,110,105,116,95,95,41,4,114,38,0,0,0,114,151, +    0,0,0,114,34,0,0,0,114,32,0,0,0,41,5,114, +    100,0,0,0,114,119,0,0,0,114,94,0,0,0,90,13, +    102,105,108,101,110,97,109,101,95,98,97,115,101,90,9,116, +    97,105,108,95,110,97,109,101,114,4,0,0,0,114,4,0, +    0,0,114,5,0,0,0,114,153,0,0,0,126,2,0,0, +    115,8,0,0,0,0,3,25,1,22,1,19,1,122,24,95, +    76,111,97,100,101,114,66,97,115,105,99,115,46,105,115,95, +    112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,0, +    2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0, +    0,100,1,0,83,41,2,122,42,85,115,101,32,100,101,102, +    97,117,108,116,32,115,101,109,97,110,116,105,99,115,32,102, +    111,114,32,109,111,100,117,108,101,32,99,114,101,97,116,105, +    111,110,46,78,114,4,0,0,0,41,2,114,100,0,0,0, +    114,158,0,0,0,114,4,0,0,0,114,4,0,0,0,114, +    5,0,0,0,218,13,99,114,101,97,116,101,95,109,111,100, +    117,108,101,134,2,0,0,115,0,0,0,0,122,27,95,76, +    111,97,100,101,114,66,97,115,105,99,115,46,99,114,101,97, +    116,101,95,109,111,100,117,108,101,99,2,0,0,0,0,0, +    0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,80, +    0,0,0,124,0,0,106,0,0,124,1,0,106,1,0,131, +    1,0,125,2,0,124,2,0,100,1,0,107,8,0,114,54, +    0,116,2,0,100,2,0,106,3,0,124,1,0,106,1,0, +    131,1,0,131,1,0,130,1,0,116,4,0,106,5,0,116, +    6,0,124,2,0,124,1,0,106,7,0,131,3,0,1,100, +    1,0,83,41,3,122,19,69,120,101,99,117,116,101,32,116, +    104,101,32,109,111,100,117,108,101,46,78,122,52,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,41,8,218,8,103,101,116,95,99,111,100,101,114,105,0, +    0,0,114,99,0,0,0,114,47,0,0,0,114,114,0,0, +    0,218,25,95,99,97,108,108,95,119,105,116,104,95,102,114, +    97,109,101,115,95,114,101,109,111,118,101,100,218,4,101,120, +    101,99,114,111,0,0,0,41,3,114,100,0,0,0,218,6, +    109,111,100,117,108,101,114,140,0,0,0,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,218,11,101,120,101,99, +    95,109,111,100,117,108,101,137,2,0,0,115,10,0,0,0, +    0,2,18,1,12,1,9,1,15,1,122,25,95,76,111,97, +    100,101,114,66,97,115,105,99,115,46,101,120,101,99,95,109, +    111,100,117,108,101,99,2,0,0,0,0,0,0,0,2,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,124,1,0,131,2,0,83,41, +    1,78,41,2,114,114,0,0,0,218,17,95,108,111,97,100, +    95,109,111,100,117,108,101,95,115,104,105,109,41,2,114,100, +    0,0,0,114,119,0,0,0,114,4,0,0,0,114,4,0, +    0,0,114,5,0,0,0,218,11,108,111,97,100,95,109,111, +    100,117,108,101,145,2,0,0,115,2,0,0,0,0,1,122, +    25,95,76,111,97,100,101,114,66,97,115,105,99,115,46,108, +    111,97,100,95,109,111,100,117,108,101,78,41,8,114,105,0, +    0,0,114,104,0,0,0,114,106,0,0,0,114,107,0,0, +    0,114,153,0,0,0,114,180,0,0,0,114,185,0,0,0, +    114,187,0,0,0,114,4,0,0,0,114,4,0,0,0,114, +    4,0,0,0,114,5,0,0,0,114,178,0,0,0,121,2, +    0,0,115,10,0,0,0,12,3,6,2,12,8,12,3,12, +    8,114,178,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,41,19,218,12,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,41,2, +    122,178,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,41,1,218,7,73,79,69,114,114,111,114, +    41,2,114,100,0,0,0,114,35,0,0,0,114,4,0,0, +    0,114,4,0,0,0,114,5,0,0,0,218,10,112,97,116, +    104,95,109,116,105,109,101,151,2,0,0,115,2,0,0,0, +    0,6,122,23,83,111,117,114,99,101,76,111,97,100,101,114, +    46,112,97,116,104,95,109,116,105,109,101,99,2,0,0,0, +    0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0, +    115,19,0,0,0,100,1,0,124,0,0,106,0,0,124,1, +    0,131,1,0,105,1,0,83,41,2,97,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,126,0,0,0,41,1, +    114,190,0,0,0,41,2,114,100,0,0,0,114,35,0,0, +    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    218,10,112,97,116,104,95,115,116,97,116,115,159,2,0,0, +    115,2,0,0,0,0,11,122,23,83,111,117,114,99,101,76, +    111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,115, +    99,4,0,0,0,0,0,0,0,4,0,0,0,3,0,0, +    0,67,0,0,0,115,16,0,0,0,124,0,0,106,0,0, +    124,2,0,124,3,0,131,2,0,83,41,1,122,228,79,112, +    116,105,111,110,97,108,32,109,101,116,104,111,100,32,119,104, +    105,99,104,32,119,114,105,116,101,115,32,100,97,116,97,32, +    40,98,121,116,101,115,41,32,116,111,32,97,32,102,105,108, +    101,32,112,97,116,104,32,40,97,32,115,116,114,41,46,10, +    10,32,32,32,32,32,32,32,32,73,109,112,108,101,109,101, +    110,116,105,110,103,32,116,104,105,115,32,109,101,116,104,111, +    100,32,97,108,108,111,119,115,32,102,111,114,32,116,104,101, +    32,119,114,105,116,105,110,103,32,111,102,32,98,121,116,101, +    99,111,100,101,32,102,105,108,101,115,46,10,10,32,32,32, +    32,32,32,32,32,84,104,101,32,115,111,117,114,99,101,32, +    112,97,116,104,32,105,115,32,110,101,101,100,101,100,32,105, +    110,32,111,114,100,101,114,32,116,111,32,99,111,114,114,101, +    99,116,108,121,32,116,114,97,110,115,102,101,114,32,112,101, +    114,109,105,115,115,105,111,110,115,10,32,32,32,32,32,32, +    32,32,41,1,218,8,115,101,116,95,100,97,116,97,41,4, +    114,100,0,0,0,114,90,0,0,0,90,10,99,97,99,104, +    101,95,112,97,116,104,114,53,0,0,0,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,218,15,95,99,97,99, +    104,101,95,98,121,116,101,99,111,100,101,172,2,0,0,115, +    2,0,0,0,0,8,122,28,83,111,117,114,99,101,76,111, +    97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,101, +    99,111,100,101,99,3,0,0,0,0,0,0,0,3,0,0,      0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, -    0,83,41,2,122,39,82,101,116,117,114,110,32,78,111,110, -    101,32,97,115,32,116,104,101,114,101,32,105,115,32,110,111, -    32,115,111,117,114,99,101,32,99,111,100,101,46,78,114,4, -    0,0,0,41,2,114,108,0,0,0,114,126,0,0,0,114, -    4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,202, -    0,0,0,104,3,0,0,115,2,0,0,0,0,2,122,31, -    83,111,117,114,99,101,108,101,115,115,70,105,108,101,76,111, -    97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,78, -    41,6,114,112,0,0,0,114,111,0,0,0,114,113,0,0, -    0,114,114,0,0,0,114,187,0,0,0,114,202,0,0,0, -    114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,223,0,0,0,94,3,0,0,115,6,0, -    0,0,12,2,6,2,12,6,114,223,0,0,0,99,0,0, -    0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,0, -    0,0,115,136,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,101,12,0,100,18,0,100, -    19,0,132,0,0,131,1,0,90,13,0,100,20,0,83,41, -    21,218,19,69,120,116,101,110,115,105,111,110,70,105,108,101, -    76,111,97,100,101,114,122,93,76,111,97,100,101,114,32,102, -    111,114,32,101,120,116,101,110,115,105,111,110,32,109,111,100, -    117,108,101,115,46,10,10,32,32,32,32,84,104,101,32,99, -    111,110,115,116,114,117,99,116,111,114,32,105,115,32,100,101, -    115,105,103,110,101,100,32,116,111,32,119,111,114,107,32,119, -    105,116,104,32,70,105,108,101,70,105,110,100,101,114,46,10, -    10,32,32,32,32,99,3,0,0,0,0,0,0,0,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,41,1,78,41,2,114,106,0,0,0,114, -    35,0,0,0,41,3,114,108,0,0,0,114,106,0,0,0, -    114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,185,0,0,0,121,3,0,0,115,4,0, -    0,0,0,1,9,1,122,28,69,120,116,101,110,115,105,111, -    110,70,105,108,101,76,111,97,100,101,114,46,95,95,105,110, -    105,116,95,95,99,2,0,0,0,0,0,0,0,2,0,0, -    0,2,0,0,0,67,0,0,0,115,34,0,0,0,124,0, -    0,106,0,0,124,1,0,106,0,0,107,2,0,111,33,0, -    124,0,0,106,1,0,124,1,0,106,1,0,107,2,0,83, -    41,1,78,41,2,114,211,0,0,0,114,118,0,0,0,41, -    2,114,108,0,0,0,114,212,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,114,213,0,0,0,125, -    3,0,0,115,4,0,0,0,0,1,18,1,122,26,69,120, -    116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101, -    114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,0, -    0,1,0,0,0,3,0,0,0,67,0,0,0,115,26,0, -    0,0,116,0,0,124,0,0,106,1,0,131,1,0,116,0, -    0,124,0,0,106,2,0,131,1,0,65,83,41,1,78,41, -    3,114,214,0,0,0,114,106,0,0,0,114,35,0,0,0, -    41,1,114,108,0,0,0,114,4,0,0,0,114,4,0,0, -    0,114,5,0,0,0,114,215,0,0,0,129,3,0,0,115, -    2,0,0,0,0,1,122,28,69,120,116,101,110,115,105,111, -    110,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97, -    115,104,95,95,99,2,0,0,0,0,0,0,0,3,0,0, -    0,4,0,0,0,67,0,0,0,115,47,0,0,0,116,0, -    0,106,1,0,116,2,0,106,3,0,124,1,0,131,2,0, -    125,2,0,116,4,0,100,1,0,124,1,0,106,5,0,124, -    0,0,106,6,0,131,3,0,1,124,2,0,83,41,2,122, -    38,67,114,101,97,116,101,32,97,110,32,117,110,105,116,105, -    97,108,105,122,101,100,32,101,120,116,101,110,115,105,111,110, -    32,109,111,100,117,108,101,122,38,101,120,116,101,110,115,105, -    111,110,32,109,111,100,117,108,101,32,123,33,114,125,32,108, -    111,97,100,101,100,32,102,114,111,109,32,123,33,114,125,41, -    7,114,121,0,0,0,114,188,0,0,0,114,145,0,0,0, -    90,14,99,114,101,97,116,101,95,100,121,110,97,109,105,99, -    114,105,0,0,0,114,106,0,0,0,114,35,0,0,0,41, -    3,114,108,0,0,0,114,164,0,0,0,114,190,0,0,0, +    0,83,41,2,122,150,79,112,116,105,111,110,97,108,32,109, +    101,116,104,111,100,32,119,104,105,99,104,32,119,114,105,116, +    101,115,32,100,97,116,97,32,40,98,121,116,101,115,41,32, +    116,111,32,97,32,102,105,108,101,32,112,97,116,104,32,40, +    97,32,115,116,114,41,46,10,10,32,32,32,32,32,32,32, +    32,73,109,112,108,101,109,101,110,116,105,110,103,32,116,104, +    105,115,32,109,101,116,104,111,100,32,97,108,108,111,119,115, +    32,102,111,114,32,116,104,101,32,119,114,105,116,105,110,103, +    32,111,102,32,98,121,116,101,99,111,100,101,32,102,105,108, +    101,115,46,10,32,32,32,32,32,32,32,32,78,114,4,0, +    0,0,41,3,114,100,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,192,0,0,0,182,2,0,0,115,0,0,0,0, +    122,21,83,111,117,114,99,101,76,111,97,100,101,114,46,115, +    101,116,95,100,97,116,97,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,41,4,122,52,67,111, +    110,99,114,101,116,101,32,105,109,112,108,101,109,101,110,116, +    97,116,105,111,110,32,111,102,32,73,110,115,112,101,99,116, +    76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99, +    101,46,122,39,115,111,117,114,99,101,32,110,111,116,32,97, +    118,97,105,108,97,98,108,101,32,116,104,114,111,117,103,104, +    32,103,101,116,95,100,97,116,97,40,41,114,98,0,0,0, +    78,41,5,114,151,0,0,0,218,8,103,101,116,95,100,97, +    116,97,114,40,0,0,0,114,99,0,0,0,114,149,0,0, +    0,41,5,114,100,0,0,0,114,119,0,0,0,114,35,0, +    0,0,114,147,0,0,0,218,3,101,120,99,114,4,0,0, +    0,114,4,0,0,0,114,5,0,0,0,218,10,103,101,116, +    95,115,111,117,114,99,101,189,2,0,0,115,14,0,0,0, +    0,2,15,1,3,1,19,1,18,1,9,1,31,1,122,23, +    83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116, +    95,115,111,117,114,99,101,218,9,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,34,0,0, +    0,116,0,0,106,1,0,116,2,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,41,5,122,130,82,101,116,117,114,110,32,116,104, +    101,32,99,111,100,101,32,111,98,106,101,99,116,32,99,111, +    109,112,105,108,101,100,32,102,114,111,109,32,115,111,117,114, +    99,101,46,10,10,32,32,32,32,32,32,32,32,84,104,101, +    32,39,100,97,116,97,39,32,97,114,103,117,109,101,110,116, +    32,99,97,110,32,98,101,32,97,110,121,32,111,98,106,101, +    99,116,32,116,121,112,101,32,116,104,97,116,32,99,111,109, +    112,105,108,101,40,41,32,115,117,112,112,111,114,116,115,46, +    10,32,32,32,32,32,32,32,32,114,183,0,0,0,218,12, +    100,111,110,116,95,105,110,104,101,114,105,116,84,114,68,0, +    0,0,41,3,114,114,0,0,0,114,182,0,0,0,218,7, +    99,111,109,112,105,108,101,41,4,114,100,0,0,0,114,53, +    0,0,0,114,35,0,0,0,114,197,0,0,0,114,4,0, +    0,0,114,4,0,0,0,114,5,0,0,0,218,14,115,111, +    117,114,99,101,95,116,111,95,99,111,100,101,199,2,0,0, +    115,4,0,0,0,0,5,21,1,122,27,83,111,117,114,99, +    101,76,111,97,100,101,114,46,115,111,117,114,99,101,95,116, +    111,95,99,111,100,101,99,2,0,0,0,0,0,0,0,10, +    0,0,0,43,0,0,0,67,0,0,0,115,183,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,205,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,165,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,109,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,48,0,88,116,11,0, +    106,12,0,100,6,0,124,4,0,124,2,0,131,3,0,1, +    116,13,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,14, +    0,124,8,0,124,2,0,131,2,0,125,9,0,116,11,0, +    106,12,0,100,9,0,124,2,0,131,2,0,1,116,15,0, +    106,16,0,12,114,179,1,124,4,0,100,1,0,107,9,0, +    114,179,1,124,3,0,100,1,0,107,9,0,114,179,1,116, +    17,0,124,9,0,124,3,0,116,18,0,124,8,0,131,1, +    0,131,3,0,125,6,0,121,39,0,124,0,0,106,19,0, +    124,2,0,124,4,0,124,6,0,131,3,0,1,116,11,0, +    106,12,0,100,10,0,124,4,0,131,2,0,1,87,110,18, +    0,4,116,2,0,107,10,0,114,178,1,1,1,1,89,110, +    1,0,88,124,9,0,83,41,11,122,190,67,111,110,99,114, +    101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,105, +    111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,97, +    100,101,114,46,103,101,116,95,99,111,100,101,46,10,10,32, +    32,32,32,32,32,32,32,82,101,97,100,105,110,103,32,111, +    102,32,98,121,116,101,99,111,100,101,32,114,101,113,117,105, +    114,101,115,32,112,97,116,104,95,115,116,97,116,115,32,116, +    111,32,98,101,32,105,109,112,108,101,109,101,110,116,101,100, +    46,32,84,111,32,119,114,105,116,101,10,32,32,32,32,32, +    32,32,32,98,121,116,101,99,111,100,101,44,32,115,101,116, +    95,100,97,116,97,32,109,117,115,116,32,97,108,115,111,32, +    98,101,32,105,109,112,108,101,109,101,110,116,101,100,46,10, +    10,32,32,32,32,32,32,32,32,78,114,126,0,0,0,114, +    132,0,0,0,114,98,0,0,0,114,35,0,0,0,122,13, +    123,125,32,109,97,116,99,104,101,115,32,123,125,114,89,0, +    0,0,114,90,0,0,0,122,19,99,111,100,101,32,111,98, +    106,101,99,116,32,102,114,111,109,32,123,125,122,10,119,114, +    111,116,101,32,123,33,114,125,41,20,114,151,0,0,0,114, +    79,0,0,0,114,66,0,0,0,114,191,0,0,0,114,189, +    0,0,0,114,14,0,0,0,114,194,0,0,0,114,40,0, +    0,0,114,135,0,0,0,114,99,0,0,0,114,130,0,0, +    0,114,114,0,0,0,114,129,0,0,0,114,141,0,0,0, +    114,200,0,0,0,114,7,0,0,0,218,19,100,111,110,116, +    95,119,114,105,116,101,95,98,121,116,101,99,111,100,101,114, +    144,0,0,0,114,31,0,0,0,114,193,0,0,0,41,10, +    114,100,0,0,0,114,119,0,0,0,114,90,0,0,0,114, +    133,0,0,0,114,89,0,0,0,218,2,115,116,114,53,0, +    0,0,218,10,98,121,116,101,115,95,100,97,116,97,114,147, +    0,0,0,90,11,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, -    186,0,0,0,132,3,0,0,115,10,0,0,0,0,2,6, -    1,15,1,6,1,16,1,122,33,69,120,116,101,110,115,105, -    111,110,70,105,108,101,76,111,97,100,101,114,46,99,114,101, -    97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,0, -    0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115, -    45,0,0,0,116,0,0,106,1,0,116,2,0,106,3,0, -    124,1,0,131,2,0,1,116,4,0,100,1,0,124,0,0, -    106,5,0,124,0,0,106,6,0,131,3,0,1,100,2,0, -    83,41,3,122,30,73,110,105,116,105,97,108,105,122,101,32, -    97,110,32,101,120,116,101,110,115,105,111,110,32,109,111,100, -    117,108,101,122,40,101,120,116,101,110,115,105,111,110,32,109, -    111,100,117,108,101,32,123,33,114,125,32,101,120,101,99,117, -    116,101,100,32,102,114,111,109,32,123,33,114,125,78,41,7, -    114,121,0,0,0,114,188,0,0,0,114,145,0,0,0,90, -    12,101,120,101,99,95,100,121,110,97,109,105,99,114,105,0, -    0,0,114,106,0,0,0,114,35,0,0,0,41,2,114,108, -    0,0,0,114,190,0,0,0,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,114,191,0,0,0,140,3,0,0, -    115,6,0,0,0,0,2,19,1,6,1,122,31,69,120,116, -    101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, -    46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0, -    0,0,0,0,0,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,41,4,122,49,82,101,116,117,114,110, -    32,84,114,117,101,32,105,102,32,116,104,101,32,101,120,116, -    101,110,115,105,111,110,32,109,111,100,117,108,101,32,105,115, -    32,97,32,112,97,99,107,97,103,101,46,114,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,41,2,114,185,0,0,0, -    78,114,4,0,0,0,41,2,114,22,0,0,0,218,6,115, -    117,102,102,105,120,41,1,218,9,102,105,108,101,95,110,97, -    109,101,114,4,0,0,0,114,5,0,0,0,250,9,60,103, -    101,110,101,120,112,114,62,149,3,0,0,115,2,0,0,0, -    6,1,122,49,69,120,116,101,110,115,105,111,110,70,105,108, -    101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,97, -    103,101,46,60,108,111,99,97,108,115,62,46,60,103,101,110, -    101,120,112,114,62,41,4,114,38,0,0,0,114,35,0,0, -    0,218,3,97,110,121,218,18,69,88,84,69,78,83,73,79, -    78,95,83,85,70,70,73,88,69,83,41,2,114,108,0,0, -    0,114,126,0,0,0,114,4,0,0,0,41,1,114,226,0, -    0,0,114,5,0,0,0,114,159,0,0,0,146,3,0,0, -    115,6,0,0,0,0,2,19,1,18,1,122,30,69,120,116, -    101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, -    46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,0, -    0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, -    115,4,0,0,0,100,1,0,83,41,2,122,63,82,101,116, -    117,114,110,32,78,111,110,101,32,97,115,32,97,110,32,101, -    120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, -    99,97,110,110,111,116,32,99,114,101,97,116,101,32,97,32, -    99,111,100,101,32,111,98,106,101,99,116,46,78,114,4,0, -    0,0,41,2,114,108,0,0,0,114,126,0,0,0,114,4, -    0,0,0,114,4,0,0,0,114,5,0,0,0,114,187,0, -    0,0,152,3,0,0,115,2,0,0,0,0,2,122,28,69, -    120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100, -    101,114,46,103,101,116,95,99,111,100,101,99,2,0,0,0, -    0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, -    115,4,0,0,0,100,1,0,83,41,2,122,53,82,101,116, -    117,114,110,32,78,111,110,101,32,97,115,32,101,120,116,101, -    110,115,105,111,110,32,109,111,100,117,108,101,115,32,104,97, -    118,101,32,110,111,32,115,111,117,114,99,101,32,99,111,100, -    101,46,78,114,4,0,0,0,41,2,114,108,0,0,0,114, -    126,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,202,0,0,0,156,3,0,0,115,2,0,0, -    0,0,2,122,30,69,120,116,101,110,115,105,111,110,70,105, -    108,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117, -    114,99,101,99,2,0,0,0,0,0,0,0,2,0,0,0, -    1,0,0,0,67,0,0,0,115,7,0,0,0,124,0,0, -    106,0,0,83,41,1,122,58,82,101,116,117,114,110,32,116, -    104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,115, -    111,117,114,99,101,32,102,105,108,101,32,97,115,32,102,111, -    117,110,100,32,98,121,32,116,104,101,32,102,105,110,100,101, -    114,46,41,1,114,35,0,0,0,41,2,114,108,0,0,0, -    114,126,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,157,0,0,0,160,3,0,0,115,2,0, -    0,0,0,3,122,32,69,120,116,101,110,115,105,111,110,70, -    105,108,101,76,111,97,100,101,114,46,103,101,116,95,102,105, -    108,101,110,97,109,101,78,41,14,114,112,0,0,0,114,111, -    0,0,0,114,113,0,0,0,114,114,0,0,0,114,185,0, -    0,0,114,213,0,0,0,114,215,0,0,0,114,186,0,0, -    0,114,191,0,0,0,114,159,0,0,0,114,187,0,0,0, -    114,202,0,0,0,114,123,0,0,0,114,157,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,113,3,0,0,115,20,0,0, -    0,12,6,6,2,12,4,12,4,12,3,12,8,12,6,12, -    6,12,4,12,4,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, -    130,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0, +    181,0,0,0,207,2,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,12,1,7,1,15,1,6, +    1,7,1,15,1,18,1,16,1,22,1,12,1,9,1,15, +    1,3,1,19,1,20,1,13,1,5,1,122,21,83,111,117, +    114,99,101,76,111,97,100,101,114,46,103,101,116,95,99,111, +    100,101,78,114,87,0,0,0,41,10,114,105,0,0,0,114, +    104,0,0,0,114,106,0,0,0,114,190,0,0,0,114,191, +    0,0,0,114,193,0,0,0,114,192,0,0,0,114,196,0, +    0,0,114,200,0,0,0,114,181,0,0,0,114,4,0,0, +    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    114,188,0,0,0,149,2,0,0,115,14,0,0,0,12,2, +    12,8,12,13,12,10,12,7,12,10,18,8,114,188,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,112,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,101,7,0,135,0,0,102,1,0,100,8,0,100,9,0, +    134,0,0,131,1,0,90,8,0,101,7,0,100,10,0,100, +    11,0,132,0,0,131,1,0,90,9,0,100,12,0,100,13, +    0,132,0,0,90,10,0,135,0,0,83,41,14,218,10,70, +    105,108,101,76,111,97,100,101,114,122,103,66,97,115,101,32, +    102,105,108,101,32,108,111,97,100,101,114,32,99,108,97,115, +    115,32,119,104,105,99,104,32,105,109,112,108,101,109,101,110, +    116,115,32,116,104,101,32,108,111,97,100,101,114,32,112,114, +    111,116,111,99,111,108,32,109,101,116,104,111,100,115,32,116, +    104,97,116,10,32,32,32,32,114,101,113,117,105,114,101,32, +    102,105,108,101,32,115,121,115,116,101,109,32,117,115,97,103, +    101,46,99,3,0,0,0,0,0,0,0,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,1, +    0,83,41,2,122,75,67,97,99,104,101,32,116,104,101,32, +    109,111,100,117,108,101,32,110,97,109,101,32,97,110,100,32, +    116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32, +    102,105,108,101,32,102,111,117,110,100,32,98,121,32,116,104, +    101,10,32,32,32,32,32,32,32,32,102,105,110,100,101,114, +    46,78,41,2,114,98,0,0,0,114,35,0,0,0,41,3, +    114,100,0,0,0,114,119,0,0,0,114,35,0,0,0,114, +    4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,179, +    0,0,0,8,3,0,0,115,4,0,0,0,0,3,9,1, +    122,19,70,105,108,101,76,111,97,100,101,114,46,95,95,105, +    110,105,116,95,95,99,2,0,0,0,0,0,0,0,2,0, +    0,0,2,0,0,0,67,0,0,0,115,34,0,0,0,124, +    0,0,106,0,0,124,1,0,106,0,0,107,2,0,111,33, +    0,124,0,0,106,1,0,124,1,0,106,1,0,107,2,0, +    83,41,1,78,41,2,218,9,95,95,99,108,97,115,115,95, +    95,114,111,0,0,0,41,2,114,100,0,0,0,218,5,111, +    116,104,101,114,114,4,0,0,0,114,4,0,0,0,114,5, +    0,0,0,218,6,95,95,101,113,95,95,14,3,0,0,115, +    4,0,0,0,0,1,18,1,122,17,70,105,108,101,76,111, +    97,100,101,114,46,95,95,101,113,95,95,99,1,0,0,0, +    0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0, +    115,26,0,0,0,116,0,0,124,0,0,106,1,0,131,1, +    0,116,0,0,124,0,0,106,2,0,131,1,0,65,83,41, +    1,78,41,3,218,4,104,97,115,104,114,98,0,0,0,114, +    35,0,0,0,41,1,114,100,0,0,0,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,218,8,95,95,104,97, +    115,104,95,95,18,3,0,0,115,2,0,0,0,0,1,122, +    19,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97, +    115,104,95,95,99,2,0,0,0,0,0,0,0,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,41,1,122,100,76,111,97,100,32,97,32,109, +    111,100,117,108,101,32,102,114,111,109,32,97,32,102,105,108, +    101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115, +    32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101, +    99,97,116,101,100,46,32,32,85,115,101,32,101,120,101,99, +    95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97, +    100,46,10,10,32,32,32,32,32,32,32,32,41,3,218,5, +    115,117,112,101,114,114,204,0,0,0,114,187,0,0,0,41, +    2,114,100,0,0,0,114,119,0,0,0,41,1,114,205,0, +    0,0,114,4,0,0,0,114,5,0,0,0,114,187,0,0, +    0,21,3,0,0,115,2,0,0,0,0,10,122,22,70,105, +    108,101,76,111,97,100,101,114,46,108,111,97,100,95,109,111, +    100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,0, +    0,1,0,0,0,67,0,0,0,115,7,0,0,0,124,0, +    0,106,0,0,83,41,1,122,58,82,101,116,117,114,110,32, +    116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32, +    115,111,117,114,99,101,32,102,105,108,101,32,97,115,32,102, +    111,117,110,100,32,98,121,32,116,104,101,32,102,105,110,100, +    101,114,46,41,1,114,35,0,0,0,41,2,114,100,0,0, +    0,114,119,0,0,0,114,4,0,0,0,114,4,0,0,0, +    114,5,0,0,0,114,151,0,0,0,33,3,0,0,115,2, +    0,0,0,0,3,122,23,70,105,108,101,76,111,97,100,101, +    114,46,103,101,116,95,102,105,108,101,110,97,109,101,99,2, +    0,0,0,0,0,0,0,3,0,0,0,9,0,0,0,67, +    0,0,0,115,42,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,82,88,100,2, +    0,83,41,3,122,39,82,101,116,117,114,110,32,116,104,101, +    32,100,97,116,97,32,102,114,111,109,32,112,97,116,104,32, +    97,115,32,114,97,119,32,98,121,116,101,115,46,218,1,114, +    78,41,3,114,49,0,0,0,114,50,0,0,0,90,4,114, +    101,97,100,41,3,114,100,0,0,0,114,35,0,0,0,114, +    54,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, +    0,0,0,114,194,0,0,0,38,3,0,0,115,4,0,0, +    0,0,2,21,1,122,19,70,105,108,101,76,111,97,100,101, +    114,46,103,101,116,95,100,97,116,97,41,11,114,105,0,0, +    0,114,104,0,0,0,114,106,0,0,0,114,107,0,0,0, +    114,179,0,0,0,114,207,0,0,0,114,209,0,0,0,114, +    116,0,0,0,114,187,0,0,0,114,151,0,0,0,114,194, +    0,0,0,114,4,0,0,0,114,4,0,0,0,41,1,114, +    205,0,0,0,114,5,0,0,0,114,204,0,0,0,3,3, +    0,0,115,14,0,0,0,12,3,6,2,12,6,12,4,12, +    3,24,12,18,5,114,204,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, +    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,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,41,21,218,14,95,78,97,109,101,115, -    112,97,99,101,80,97,116,104,97,38,1,0,0,82,101,112, -    114,101,115,101,110,116,115,32,97,32,110,97,109,101,115,112, -    97,99,101,32,112,97,99,107,97,103,101,39,115,32,112,97, -    116,104,46,32,32,73,116,32,117,115,101,115,32,116,104,101, -    32,109,111,100,117,108,101,32,110,97,109,101,10,32,32,32, -    32,116,111,32,102,105,110,100,32,105,116,115,32,112,97,114, -    101,110,116,32,109,111,100,117,108,101,44,32,97,110,100,32, -    102,114,111,109,32,116,104,101,114,101,32,105,116,32,108,111, -    111,107,115,32,117,112,32,116,104,101,32,112,97,114,101,110, -    116,39,115,10,32,32,32,32,95,95,112,97,116,104,95,95, -    46,32,32,87,104,101,110,32,116,104,105,115,32,99,104,97, -    110,103,101,115,44,32,116,104,101,32,109,111,100,117,108,101, -    39,115,32,111,119,110,32,112,97,116,104,32,105,115,32,114, -    101,99,111,109,112,117,116,101,100,44,10,32,32,32,32,117, -    115,105,110,103,32,112,97,116,104,95,102,105,110,100,101,114, -    46,32,32,70,111,114,32,116,111,112,45,108,101,118,101,108, -    32,109,111,100,117,108,101,115,44,32,116,104,101,32,112,97, -    114,101,110,116,32,109,111,100,117,108,101,39,115,32,112,97, -    116,104,10,32,32,32,32,105,115,32,115,121,115,46,112,97, -    116,104,46,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,41,1,78,41,6,218,5,95,110,97,109,101,218,5,95, -    112,97,116,104,114,93,0,0,0,218,16,95,103,101,116,95, -    112,97,114,101,110,116,95,112,97,116,104,218,17,95,108,97, -    115,116,95,112,97,114,101,110,116,95,112,97,116,104,218,12, -    95,112,97,116,104,95,102,105,110,100,101,114,41,4,114,108, -    0,0,0,114,106,0,0,0,114,35,0,0,0,218,11,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,185,0,0,0,173,3, -    0,0,115,8,0,0,0,0,1,9,1,9,1,21,1,122, -    23,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, -    95,95,105,110,105,116,95,95,99,1,0,0,0,0,0,0, -    0,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,41,7,122,62,82,101,116,117,114, -    110,115,32,97,32,116,117,112,108,101,32,111,102,32,40,112, -    97,114,101,110,116,45,109,111,100,117,108,101,45,110,97,109, -    101,44,32,112,97,114,101,110,116,45,112,97,116,104,45,97, -    116,116,114,45,110,97,109,101,41,114,58,0,0,0,114,30, -    0,0,0,114,7,0,0,0,114,35,0,0,0,90,8,95, -    95,112,97,116,104,95,95,41,2,122,3,115,121,115,122,4, -    112,97,116,104,41,2,114,231,0,0,0,114,32,0,0,0, -    41,4,114,108,0,0,0,114,222,0,0,0,218,3,100,111, -    116,90,2,109,101,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,218,23,95,102,105,110,100,95,112,97,114,101, -    110,116,95,112,97,116,104,95,110,97,109,101,115,179,3,0, -    0,115,8,0,0,0,0,2,27,1,12,2,4,3,122,38, -    95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95, -    102,105,110,100,95,112,97,114,101,110,116,95,112,97,116,104, -    95,110,97,109,101,115,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,41,1,78,41,4,114,238,0,0,0, -    114,117,0,0,0,114,7,0,0,0,218,7,109,111,100,117, -    108,101,115,41,3,114,108,0,0,0,90,18,112,97,114,101, -    110,116,95,109,111,100,117,108,101,95,110,97,109,101,90,14, -    112,97,116,104,95,97,116,116,114,95,110,97,109,101,114,4, -    0,0,0,114,4,0,0,0,114,5,0,0,0,114,233,0, -    0,0,189,3,0,0,115,4,0,0,0,0,1,18,1,122, -    31,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, -    95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,104, -    99,1,0,0,0,0,0,0,0,3,0,0,0,3,0,0, -    0,67,0,0,0,115,118,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,111,0,124,0,0,106,3, -    0,124,0,0,106,4,0,124,1,0,131,2,0,125,2,0, -    124,2,0,100,0,0,107,9,0,114,102,0,124,2,0,106, -    5,0,100,0,0,107,8,0,114,102,0,124,2,0,106,6, -    0,114,102,0,124,2,0,106,6,0,124,0,0,95,7,0, -    124,1,0,124,0,0,95,2,0,124,0,0,106,7,0,83, -    41,1,78,41,8,114,93,0,0,0,114,233,0,0,0,114, -    234,0,0,0,114,235,0,0,0,114,231,0,0,0,114,127, -    0,0,0,114,156,0,0,0,114,232,0,0,0,41,3,114, -    108,0,0,0,90,11,112,97,114,101,110,116,95,112,97,116, -    104,114,164,0,0,0,114,4,0,0,0,114,4,0,0,0, -    114,5,0,0,0,218,12,95,114,101,99,97,108,99,117,108, -    97,116,101,193,3,0,0,115,16,0,0,0,0,2,18,1, -    15,1,21,3,27,1,9,1,12,1,9,1,122,27,95,78, -    97,109,101,115,112,97,99,101,80,97,116,104,46,95,114,101, -    99,97,108,99,117,108,97,116,101,99,1,0,0,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,41,1,78,41,2,218,4,105,116,101,114,114,240, -    0,0,0,41,1,114,108,0,0,0,114,4,0,0,0,114, -    4,0,0,0,114,5,0,0,0,218,8,95,95,105,116,101, -    114,95,95,206,3,0,0,115,2,0,0,0,0,1,122,23, -    95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95, -    95,105,116,101,114,95,95,99,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,41,1,78,41,2,114,31,0,0,0,114,240,0,0,0, -    41,1,114,108,0,0,0,114,4,0,0,0,114,4,0,0, -    0,114,5,0,0,0,218,7,95,95,108,101,110,95,95,209, -    3,0,0,115,2,0,0,0,0,1,122,22,95,78,97,109, -    101,115,112,97,99,101,80,97,116,104,46,95,95,108,101,110, -    95,95,99,1,0,0,0,0,0,0,0,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,41,2,78,122, -    20,95,78,97,109,101,115,112,97,99,101,80,97,116,104,40, -    123,33,114,125,41,41,2,114,47,0,0,0,114,232,0,0, -    0,41,1,114,108,0,0,0,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,218,8,95,95,114,101,112,114,95, -    95,212,3,0,0,115,2,0,0,0,0,1,122,23,95,78, -    97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,114, -    101,112,114,95,95,99,2,0,0,0,0,0,0,0,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,41, -    1,78,41,1,114,240,0,0,0,41,2,114,108,0,0,0, -    218,4,105,116,101,109,114,4,0,0,0,114,4,0,0,0, -    114,5,0,0,0,218,12,95,95,99,111,110,116,97,105,110, -    115,95,95,215,3,0,0,115,2,0,0,0,0,1,122,27, -    95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95, -    95,99,111,110,116,97,105,110,115,95,95,99,2,0,0,0, -    0,0,0,0,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,41,1,78,41,2,114,232, -    0,0,0,114,163,0,0,0,41,2,114,108,0,0,0,114, -    245,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,163,0,0,0,218,3,0,0,115,2,0,0, -    0,0,1,122,21,95,78,97,109,101,115,112,97,99,101,80, -    97,116,104,46,97,112,112,101,110,100,78,41,13,114,112,0, -    0,0,114,111,0,0,0,114,113,0,0,0,114,114,0,0, -    0,114,185,0,0,0,114,238,0,0,0,114,233,0,0,0, -    114,240,0,0,0,114,242,0,0,0,114,243,0,0,0,114, -    244,0,0,0,114,246,0,0,0,114,163,0,0,0,114,4, -    0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,114,230,0,0,0,166,3,0,0,115,20,0,0,0, -    12,5,6,2,12,6,12,10,12,4,12,13,12,3,12,3, -    12,3,12,3,114,230,0,0,0,99,0,0,0,0,0,0, -    0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,118, -    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,100,16,0,132, -    0,0,90,11,0,100,17,0,83,41,18,218,16,95,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, -    41,1,78,41,2,114,230,0,0,0,114,232,0,0,0,41, -    4,114,108,0,0,0,114,106,0,0,0,114,35,0,0,0, -    114,236,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,185,0,0,0,224,3,0,0,115,2,0, -    0,0,0,1,122,25,95,78,97,109,101,115,112,97,99,101, -    76,111,97,100,101,114,46,95,95,105,110,105,116,95,95,99, -    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,41,2,122,115,82,101,116, -    117,114,110,32,114,101,112,114,32,102,111,114,32,116,104,101, -    32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32, -    32,32,84,104,101,32,109,101,116,104,111,100,32,105,115,32, -    100,101,112,114,101,99,97,116,101,100,46,32,32,84,104,101, -    32,105,109,112,111,114,116,32,109,97,99,104,105,110,101,114, -    121,32,100,111,101,115,32,116,104,101,32,106,111,98,32,105, -    116,115,101,108,102,46,10,10,32,32,32,32,32,32,32,32, -    122,25,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,41,2,114,47,0, -    0,0,114,112,0,0,0,41,2,114,170,0,0,0,114,190, -    0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,218,11,109,111,100,117,108,101,95,114,101,112,114,227, -    3,0,0,115,2,0,0,0,0,7,122,28,95,78,97,109, -    101,115,112,97,99,101,76,111,97,100,101,114,46,109,111,100, -    117,108,101,95,114,101,112,114,99,2,0,0,0,0,0,0, -    0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0, -    0,0,100,1,0,83,41,2,78,84,114,4,0,0,0,41, -    2,114,108,0,0,0,114,126,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,114,159,0,0,0,236, -    3,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109, -    101,115,112,97,99,101,76,111,97,100,101,114,46,105,115,95, +    0,100,7,0,100,8,0,100,9,0,132,0,1,90,6,0, +    100,10,0,83,41,11,218,16,83,111,117,114,99,101,70,105, +    108,101,76,111,97,100,101,114,122,62,67,111,110,99,114,101, +    116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111, +    110,32,111,102,32,83,111,117,114,99,101,76,111,97,100,101, +    114,32,117,115,105,110,103,32,116,104,101,32,102,105,108,101, +    32,115,121,115,116,101,109,46,99,2,0,0,0,0,0,0, +    0,3,0,0,0,4,0,0,0,67,0,0,0,115,34,0, +    0,0,116,0,0,124,1,0,131,1,0,125,2,0,100,1, +    0,124,2,0,106,1,0,100,2,0,124,2,0,106,2,0, +    105,2,0,83,41,3,122,33,82,101,116,117,114,110,32,116, +    104,101,32,109,101,116,97,100,97,116,97,32,102,111,114,32, +    116,104,101,32,112,97,116,104,46,114,126,0,0,0,114,127, +    0,0,0,41,3,114,39,0,0,0,218,8,115,116,95,109, +    116,105,109,101,90,7,115,116,95,115,105,122,101,41,3,114, +    100,0,0,0,114,35,0,0,0,114,202,0,0,0,114,4, +    0,0,0,114,4,0,0,0,114,5,0,0,0,114,191,0, +    0,0,48,3,0,0,115,4,0,0,0,0,2,12,1,122, +    27,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101, +    114,46,112,97,116,104,95,115,116,97,116,115,99,4,0,0, +    0,0,0,0,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,41,2,78,218,5,95,109,111, +    100,101,41,2,114,97,0,0,0,114,192,0,0,0,41,5, +    114,100,0,0,0,114,90,0,0,0,114,89,0,0,0,114, +    53,0,0,0,114,42,0,0,0,114,4,0,0,0,114,4, +    0,0,0,114,5,0,0,0,114,193,0,0,0,53,3,0, +    0,115,4,0,0,0,0,2,12,1,122,32,83,111,117,114, +    99,101,70,105,108,101,76,111,97,100,101,114,46,95,99,97, +    99,104,101,95,98,121,116,101,99,111,100,101,114,214,0,0, +    0,105,182,1,0,0,99,3,0,0,0,1,0,0,0,9, +    0,0,0,17,0,0,0,67,0,0,0,115,62,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,135,0,116,3,0,124,6,0,131,1,0,68,93,121, +    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,214,0,1,125,8,0,1,122,28,0,116,9,0, +    106,10,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,36,0,116,11, +    0,124,1,0,124,2,0,124,3,0,131,3,0,1,116,9, +    0,106,10,0,100,3,0,124,1,0,131,2,0,1,87,110, +    56,0,4,116,8,0,107,10,0,114,57,1,1,125,8,0, +    1,122,24,0,116,9,0,106,10,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,41,4, +    122,27,87,114,105,116,101,32,98,121,116,101,115,32,100,97, +    116,97,32,116,111,32,97,32,102,105,108,101,46,122,27,99, +    111,117,108,100,32,110,111,116,32,99,114,101,97,116,101,32, +    123,33,114,125,58,32,123,33,114,125,78,122,12,99,114,101, +    97,116,101,100,32,123,33,114,125,41,12,114,38,0,0,0, +    114,46,0,0,0,114,157,0,0,0,114,33,0,0,0,114, +    28,0,0,0,114,3,0,0,0,90,5,109,107,100,105,114, +    218,15,70,105,108,101,69,120,105,115,116,115,69,114,114,111, +    114,114,40,0,0,0,114,114,0,0,0,114,129,0,0,0, +    114,55,0,0,0,41,9,114,100,0,0,0,114,35,0,0, +    0,114,53,0,0,0,114,214,0,0,0,218,6,112,97,114, +    101,110,116,114,94,0,0,0,114,27,0,0,0,114,23,0, +    0,0,114,195,0,0,0,114,4,0,0,0,114,4,0,0, +    0,114,5,0,0,0,114,192,0,0,0,58,3,0,0,115, +    42,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,9,1, +    10,1,27,1,3,1,16,1,20,1,18,2,12,1,122,25, +    83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,114, +    46,115,101,116,95,100,97,116,97,78,41,7,114,105,0,0, +    0,114,104,0,0,0,114,106,0,0,0,114,107,0,0,0, +    114,191,0,0,0,114,193,0,0,0,114,192,0,0,0,114, +    4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, +    0,0,0,114,212,0,0,0,44,3,0,0,115,8,0,0, +    0,12,2,6,2,12,5,12,5,114,212,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,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,41,7,218,20,83,111,117,114,99,101, +    108,101,115,115,70,105,108,101,76,111,97,100,101,114,122,45, +    76,111,97,100,101,114,32,119,104,105,99,104,32,104,97,110, +    100,108,101,115,32,115,111,117,114,99,101,108,101,115,115,32, +    102,105,108,101,32,105,109,112,111,114,116,115,46,99,2,0, +    0,0,0,0,0,0,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,41,4,78,114,98,0,0,0,114,35,0,0,0, +    114,89,0,0,0,41,4,114,151,0,0,0,114,194,0,0, +    0,114,135,0,0,0,114,141,0,0,0,41,5,114,100,0, +    0,0,114,119,0,0,0,114,35,0,0,0,114,53,0,0, +    0,114,203,0,0,0,114,4,0,0,0,114,4,0,0,0, +    114,5,0,0,0,114,181,0,0,0,93,3,0,0,115,8, +    0,0,0,0,1,15,1,15,1,24,1,122,29,83,111,117, +    114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101, +    114,46,103,101,116,95,99,111,100,101,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,41,2,122,39,82,101,116,117, +    114,110,32,78,111,110,101,32,97,115,32,116,104,101,114,101, +    32,105,115,32,110,111,32,115,111,117,114,99,101,32,99,111, +    100,101,46,78,114,4,0,0,0,41,2,114,100,0,0,0, +    114,119,0,0,0,114,4,0,0,0,114,4,0,0,0,114, +    5,0,0,0,114,196,0,0,0,99,3,0,0,115,2,0, +    0,0,0,2,122,31,83,111,117,114,99,101,108,101,115,115, +    70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,115, +    111,117,114,99,101,78,41,6,114,105,0,0,0,114,104,0, +    0,0,114,106,0,0,0,114,107,0,0,0,114,181,0,0, +    0,114,196,0,0,0,114,4,0,0,0,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,114,217,0,0,0,89, +    3,0,0,115,6,0,0,0,12,2,6,2,12,6,114,217, +    0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, +    3,0,0,0,64,0,0,0,115,136,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,101, +    12,0,100,18,0,100,19,0,132,0,0,131,1,0,90,13, +    0,100,20,0,83,41,21,218,19,69,120,116,101,110,115,105, +    111,110,70,105,108,101,76,111,97,100,101,114,122,93,76,111, +    97,100,101,114,32,102,111,114,32,101,120,116,101,110,115,105, +    111,110,32,109,111,100,117,108,101,115,46,10,10,32,32,32, +    32,84,104,101,32,99,111,110,115,116,114,117,99,116,111,114, +    32,105,115,32,100,101,115,105,103,110,101,100,32,116,111,32, +    119,111,114,107,32,119,105,116,104,32,70,105,108,101,70,105, +    110,100,101,114,46,10,10,32,32,32,32,99,3,0,0,0, +    0,0,0,0,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,41,1,78,41,2, +    114,98,0,0,0,114,35,0,0,0,41,3,114,100,0,0, +    0,114,98,0,0,0,114,35,0,0,0,114,4,0,0,0, +    114,4,0,0,0,114,5,0,0,0,114,179,0,0,0,116, +    3,0,0,115,4,0,0,0,0,1,9,1,122,28,69,120, +    116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101, +    114,46,95,95,105,110,105,116,95,95,99,2,0,0,0,0, +    0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115, +    34,0,0,0,124,0,0,106,0,0,124,1,0,106,0,0, +    107,2,0,111,33,0,124,0,0,106,1,0,124,1,0,106, +    1,0,107,2,0,83,41,1,78,41,2,114,205,0,0,0, +    114,111,0,0,0,41,2,114,100,0,0,0,114,206,0,0, +    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    114,207,0,0,0,120,3,0,0,115,4,0,0,0,0,1, +    18,1,122,26,69,120,116,101,110,115,105,111,110,70,105,108, +    101,76,111,97,100,101,114,46,95,95,101,113,95,95,99,1, +    0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,67, +    0,0,0,115,26,0,0,0,116,0,0,124,0,0,106,1, +    0,131,1,0,116,0,0,124,0,0,106,2,0,131,1,0, +    65,83,41,1,78,41,3,114,208,0,0,0,114,98,0,0, +    0,114,35,0,0,0,41,1,114,100,0,0,0,114,4,0, +    0,0,114,4,0,0,0,114,5,0,0,0,114,209,0,0, +    0,124,3,0,0,115,2,0,0,0,0,1,122,28,69,120, +    116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101, +    114,46,95,95,104,97,115,104,95,95,99,2,0,0,0,0, +    0,0,0,3,0,0,0,4,0,0,0,67,0,0,0,115, +    50,0,0,0,116,0,0,106,1,0,116,2,0,106,3,0, +    124,1,0,131,2,0,125,2,0,116,0,0,106,4,0,100, +    1,0,124,1,0,106,5,0,124,0,0,106,6,0,131,3, +    0,1,124,2,0,83,41,2,122,38,67,114,101,97,116,101, +    32,97,110,32,117,110,105,116,105,97,108,105,122,101,100,32, +    101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101, +    122,38,101,120,116,101,110,115,105,111,110,32,109,111,100,117, +    108,101,32,123,33,114,125,32,108,111,97,100,101,100,32,102, +    114,111,109,32,123,33,114,125,41,7,114,114,0,0,0,114, +    182,0,0,0,114,139,0,0,0,90,14,99,114,101,97,116, +    101,95,100,121,110,97,109,105,99,114,129,0,0,0,114,98, +    0,0,0,114,35,0,0,0,41,3,114,100,0,0,0,114, +    158,0,0,0,114,184,0,0,0,114,4,0,0,0,114,4, +    0,0,0,114,5,0,0,0,114,180,0,0,0,127,3,0, +    0,115,10,0,0,0,0,2,6,1,15,1,9,1,16,1, +    122,33,69,120,116,101,110,115,105,111,110,70,105,108,101,76, +    111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,100, +    117,108,101,99,2,0,0,0,0,0,0,0,2,0,0,0, +    4,0,0,0,67,0,0,0,115,48,0,0,0,116,0,0, +    106,1,0,116,2,0,106,3,0,124,1,0,131,2,0,1, +    116,0,0,106,4,0,100,1,0,124,0,0,106,5,0,124, +    0,0,106,6,0,131,3,0,1,100,2,0,83,41,3,122, +    30,73,110,105,116,105,97,108,105,122,101,32,97,110,32,101, +    120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,122, +    40,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, +    101,32,123,33,114,125,32,101,120,101,99,117,116,101,100,32, +    102,114,111,109,32,123,33,114,125,78,41,7,114,114,0,0, +    0,114,182,0,0,0,114,139,0,0,0,90,12,101,120,101, +    99,95,100,121,110,97,109,105,99,114,129,0,0,0,114,98, +    0,0,0,114,35,0,0,0,41,2,114,100,0,0,0,114, +    184,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, +    0,0,0,114,185,0,0,0,135,3,0,0,115,6,0,0, +    0,0,2,19,1,9,1,122,31,69,120,116,101,110,115,105, +    111,110,70,105,108,101,76,111,97,100,101,114,46,101,120,101, +    99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, +    0,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,41,4,122,49,82,101,116,117,114,110,32,84,114,117, +    101,32,105,102,32,116,104,101,32,101,120,116,101,110,115,105, +    111,110,32,109,111,100,117,108,101,32,105,115,32,97,32,112, +    97,99,107,97,103,101,46,114,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,41,2,114,179,0,0,0,78,114,4,0, +    0,0,41,2,114,22,0,0,0,218,6,115,117,102,102,105, +    120,41,1,218,9,102,105,108,101,95,110,97,109,101,114,4, +    0,0,0,114,5,0,0,0,250,9,60,103,101,110,101,120, +    112,114,62,144,3,0,0,115,2,0,0,0,6,1,122,49, +    69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, +    100,101,114,46,105,115,95,112,97,99,107,97,103,101,46,60, +    108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114, +    62,41,4,114,38,0,0,0,114,35,0,0,0,218,3,97, +    110,121,218,18,69,88,84,69,78,83,73,79,78,95,83,85, +    70,70,73,88,69,83,41,2,114,100,0,0,0,114,119,0, +    0,0,114,4,0,0,0,41,1,114,220,0,0,0,114,5, +    0,0,0,114,153,0,0,0,141,3,0,0,115,6,0,0, +    0,0,2,19,1,18,1,122,30,69,120,116,101,110,115,105, +    111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,      112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,      2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0, -    0,100,1,0,83,41,2,78,114,30,0,0,0,114,4,0, -    0,0,41,2,114,108,0,0,0,114,126,0,0,0,114,4, -    0,0,0,114,4,0,0,0,114,5,0,0,0,114,202,0, -    0,0,239,3,0,0,115,2,0,0,0,0,1,122,27,95, -    78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46, -    103,101,116,95,115,111,117,114,99,101,99,2,0,0,0,0, -    0,0,0,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,41,6,78,114,30,0, -    0,0,122,8,60,115,116,114,105,110,103,62,114,189,0,0, -    0,114,204,0,0,0,84,41,1,114,205,0,0,0,41,2, -    114,108,0,0,0,114,126,0,0,0,114,4,0,0,0,114, -    4,0,0,0,114,5,0,0,0,114,187,0,0,0,242,3, -    0,0,115,2,0,0,0,0,1,122,25,95,78,97,109,101, -    115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95, -    99,111,100,101,99,2,0,0,0,0,0,0,0,2,0,0, -    0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, -    0,83,41,2,122,42,85,115,101,32,100,101,102,97,117,108, -    116,32,115,101,109,97,110,116,105,99,115,32,102,111,114,32, -    109,111,100,117,108,101,32,99,114,101,97,116,105,111,110,46, -    78,114,4,0,0,0,41,2,114,108,0,0,0,114,164,0, -    0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,114,186,0,0,0,245,3,0,0,115,0,0,0,0,122, -    30,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101, -    114,46,99,114,101,97,116,101,95,109,111,100,117,108,101,99, +    0,100,1,0,83,41,2,122,63,82,101,116,117,114,110,32, +    78,111,110,101,32,97,115,32,97,110,32,101,120,116,101,110, +    115,105,111,110,32,109,111,100,117,108,101,32,99,97,110,110, +    111,116,32,99,114,101,97,116,101,32,97,32,99,111,100,101, +    32,111,98,106,101,99,116,46,78,114,4,0,0,0,41,2, +    114,100,0,0,0,114,119,0,0,0,114,4,0,0,0,114, +    4,0,0,0,114,5,0,0,0,114,181,0,0,0,147,3, +    0,0,115,2,0,0,0,0,2,122,28,69,120,116,101,110, +    115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,103, +    101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,0, +    2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0, +    0,100,1,0,83,41,2,122,53,82,101,116,117,114,110,32, +    78,111,110,101,32,97,115,32,101,120,116,101,110,115,105,111, +    110,32,109,111,100,117,108,101,115,32,104,97,118,101,32,110, +    111,32,115,111,117,114,99,101,32,99,111,100,101,46,78,114, +    4,0,0,0,41,2,114,100,0,0,0,114,119,0,0,0, +    114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, +    196,0,0,0,151,3,0,0,115,2,0,0,0,0,2,122, +    30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111, +    97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,      2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0, -    67,0,0,0,115,4,0,0,0,100,0,0,83,41,1,78, -    114,4,0,0,0,41,2,114,108,0,0,0,114,190,0,0, -    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    114,191,0,0,0,248,3,0,0,115,2,0,0,0,0,1, -    122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,100, -    101,114,46,101,120,101,99,95,109,111,100,117,108,101,99,2, -    0,0,0,0,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,116,2,0,106,3,0,124,0, -    0,124,1,0,131,2,0,83,41,2,122,98,76,111,97,100, -    32,97,32,110,97,109,101,115,112,97,99,101,32,109,111,100, -    117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104, -    105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,112, -    114,101,99,97,116,101,100,46,32,32,85,115,101,32,101,120, -    101,99,95,109,111,100,117,108,101,40,41,32,105,110,115,116, -    101,97,100,46,10,10,32,32,32,32,32,32,32,32,122,38, -    110,97,109,101,115,112,97,99,101,32,109,111,100,117,108,101, -    32,108,111,97,100,101,100,32,119,105,116,104,32,112,97,116, -    104,32,123,33,114,125,41,4,114,105,0,0,0,114,232,0, -    0,0,114,121,0,0,0,114,192,0,0,0,41,2,114,108, -    0,0,0,114,126,0,0,0,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,114,193,0,0,0,251,3,0,0, -    115,4,0,0,0,0,7,16,1,122,28,95,78,97,109,101, -    115,112,97,99,101,76,111,97,100,101,114,46,108,111,97,100, -    95,109,111,100,117,108,101,78,41,12,114,112,0,0,0,114, -    111,0,0,0,114,113,0,0,0,114,185,0,0,0,114,183, -    0,0,0,114,248,0,0,0,114,159,0,0,0,114,202,0, -    0,0,114,187,0,0,0,114,186,0,0,0,114,191,0,0, -    0,114,193,0,0,0,114,4,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,114,247,0,0,0,223, -    3,0,0,115,16,0,0,0,12,1,12,3,18,9,12,3, -    12,3,12,3,12,3,12,3,114,247,0,0,0,99,0,0, -    0,0,0,0,0,0,0,0,0,0,5,0,0,0,64,0, -    0,0,115,160,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,101,4,0,100,10,0,100,10,0,100, -    13,0,100,14,0,132,2,0,131,1,0,90,10,0,101,4, -    0,100,10,0,100,15,0,100,16,0,132,1,0,131,1,0, -    90,11,0,100,10,0,83,41,17,218,10,80,97,116,104,70, -    105,110,100,101,114,122,62,77,101,116,97,32,112,97,116,104, -    32,102,105,110,100,101,114,32,102,111,114,32,115,121,115,46, -    112,97,116,104,32,97,110,100,32,112,97,99,107,97,103,101, -    32,95,95,112,97,116,104,95,95,32,97,116,116,114,105,98, -    117,116,101,115,46,99,1,0,0,0,0,0,0,0,2,0, -    0,0,4,0,0,0,67,0,0,0,115,55,0,0,0,120, -    48,0,116,0,0,106,1,0,106,2,0,131,0,0,68,93, -    31,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,87,100,2,0,83,41,3,122,125,67,97,108,108,32,116, -    104,101,32,105,110,118,97,108,105,100,97,116,101,95,99,97, -    99,104,101,115,40,41,32,109,101,116,104,111,100,32,111,110, -    32,97,108,108,32,112,97,116,104,32,101,110,116,114,121,32, -    102,105,110,100,101,114,115,10,32,32,32,32,32,32,32,32, -    115,116,111,114,101,100,32,105,110,32,115,121,115,46,112,97, -    116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104, -    101,115,32,40,119,104,101,114,101,32,105,109,112,108,101,109, -    101,110,116,101,100,41,46,218,17,105,110,118,97,108,105,100, -    97,116,101,95,99,97,99,104,101,115,78,41,5,114,7,0, -    0,0,218,19,112,97,116,104,95,105,109,112,111,114,116,101, -    114,95,99,97,99,104,101,218,6,118,97,108,117,101,115,114, -    115,0,0,0,114,250,0,0,0,41,2,114,170,0,0,0, -    218,6,102,105,110,100,101,114,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,114,250,0,0,0,12,4,0,0, -    115,6,0,0,0,0,4,22,1,15,1,122,28,80,97,116, -    104,70,105,110,100,101,114,46,105,110,118,97,108,105,100,97, -    116,101,95,99,97,99,104,101,115,99,2,0,0,0,0,0, -    0,0,3,0,0,0,12,0,0,0,67,0,0,0,115,107, -    0,0,0,116,0,0,106,1,0,100,1,0,107,9,0,114, -    41,0,116,0,0,106,1,0,12,114,41,0,116,2,0,106, -    3,0,100,2,0,116,4,0,131,2,0,1,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,51,0,4,116,5, -    0,107,10,0,114,94,0,1,1,1,119,51,0,89,113,51, -    0,88,113,51,0,87,100,1,0,83,100,1,0,83,41,3, -    122,113,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,78,122,23,115,121,115,46,112,97,116,104,95,104, -    111,111,107,115,32,105,115,32,101,109,112,116,121,41,6,114, -    7,0,0,0,218,10,112,97,116,104,95,104,111,111,107,115, -    114,60,0,0,0,114,61,0,0,0,114,125,0,0,0,114, -    107,0,0,0,41,3,114,170,0,0,0,114,35,0,0,0, -    90,4,104,111,111,107,114,4,0,0,0,114,4,0,0,0, -    114,5,0,0,0,218,11,95,112,97,116,104,95,104,111,111, -    107,115,20,4,0,0,115,16,0,0,0,0,7,25,1,16, -    1,16,1,3,1,14,1,13,1,12,2,122,22,80,97,116, -    104,70,105,110,100,101,114,46,95,112,97,116,104,95,104,111, -    111,107,115,99,2,0,0,0,0,0,0,0,3,0,0,0, -    19,0,0,0,67,0,0,0,115,123,0,0,0,124,1,0, -    100,1,0,107,2,0,114,53,0,121,16,0,116,0,0,106, -    1,0,131,0,0,125,1,0,87,110,22,0,4,116,2,0, -    107,10,0,114,52,0,1,1,1,100,2,0,83,89,110,1, -    0,88,121,17,0,116,3,0,106,4,0,124,1,0,25,125, -    2,0,87,110,46,0,4,116,5,0,107,10,0,114,118,0, -    1,1,1,124,0,0,106,6,0,124,1,0,131,1,0,125, -    2,0,124,2,0,116,3,0,106,4,0,124,1,0,60,89, -    110,1,0,88,124,2,0,83,41,3,122,210,71,101,116,32, -    116,104,101,32,102,105,110,100,101,114,32,102,111,114,32,116, -    104,101,32,112,97,116,104,32,101,110,116,114,121,32,102,114, -    111,109,32,115,121,115,46,112,97,116,104,95,105,109,112,111, -    114,116,101,114,95,99,97,99,104,101,46,10,10,32,32,32, -    32,32,32,32,32,73,102,32,116,104,101,32,112,97,116,104, -    32,101,110,116,114,121,32,105,115,32,110,111,116,32,105,110, -    32,116,104,101,32,99,97,99,104,101,44,32,102,105,110,100, -    32,116,104,101,32,97,112,112,114,111,112,114,105,97,116,101, -    32,102,105,110,100,101,114,10,32,32,32,32,32,32,32,32, -    97,110,100,32,99,97,99,104,101,32,105,116,46,32,73,102, -    32,110,111,32,102,105,110,100,101,114,32,105,115,32,97,118, -    97,105,108,97,98,108,101,44,32,115,116,111,114,101,32,78, -    111,110,101,46,10,10,32,32,32,32,32,32,32,32,114,30, -    0,0,0,78,41,7,114,3,0,0,0,114,45,0,0,0, -    218,17,70,105,108,101,78,111,116,70,111,117,110,100,69,114, -    114,111,114,114,7,0,0,0,114,251,0,0,0,114,137,0, -    0,0,114,255,0,0,0,41,3,114,170,0,0,0,114,35, -    0,0,0,114,253,0,0,0,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,218,20,95,112,97,116,104,95,105, -    109,112,111,114,116,101,114,95,99,97,99,104,101,37,4,0, -    0,115,22,0,0,0,0,8,12,1,3,1,16,1,13,3, -    9,1,3,1,17,1,13,1,15,1,18,1,122,31,80,97, -    116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,105, -    109,112,111,114,116,101,114,95,99,97,99,104,101,99,3,0, -    0,0,0,0,0,0,6,0,0,0,3,0,0,0,67,0, -    0,0,115,119,0,0,0,116,0,0,124,2,0,100,1,0, -    131,2,0,114,39,0,124,2,0,106,1,0,124,1,0,131, -    1,0,92,2,0,125,3,0,125,4,0,110,21,0,124,2, -    0,106,2,0,124,1,0,131,1,0,125,3,0,103,0,0, -    125,4,0,124,3,0,100,0,0,107,9,0,114,88,0,116, -    3,0,106,4,0,124,1,0,124,3,0,131,2,0,83,116, -    3,0,106,5,0,124,1,0,100,0,0,131,2,0,125,5, -    0,124,4,0,124,5,0,95,6,0,124,5,0,83,41,2, -    78,114,124,0,0,0,41,7,114,115,0,0,0,114,124,0, -    0,0,114,182,0,0,0,114,121,0,0,0,114,179,0,0, -    0,114,160,0,0,0,114,156,0,0,0,41,6,114,170,0, -    0,0,114,126,0,0,0,114,253,0,0,0,114,127,0,0, -    0,114,128,0,0,0,114,164,0,0,0,114,4,0,0,0, -    114,4,0,0,0,114,5,0,0,0,218,16,95,108,101,103, -    97,99,121,95,103,101,116,95,115,112,101,99,59,4,0,0, -    115,18,0,0,0,0,4,15,1,24,2,15,1,6,1,12, -    1,16,1,18,1,9,1,122,27,80,97,116,104,70,105,110, -    100,101,114,46,95,108,101,103,97,99,121,95,103,101,116,95, -    115,112,101,99,78,99,4,0,0,0,0,0,0,0,9,0, -    0,0,5,0,0,0,67,0,0,0,115,243,0,0,0,103, -    0,0,125,4,0,120,230,0,124,2,0,68,93,191,0,125, -    5,0,116,0,0,124,5,0,116,1,0,116,2,0,102,2, -    0,131,2,0,115,43,0,113,13,0,124,0,0,106,3,0, -    124,5,0,131,1,0,125,6,0,124,6,0,100,1,0,107, -    9,0,114,13,0,116,4,0,124,6,0,100,2,0,131,2, -    0,114,106,0,124,6,0,106,5,0,124,1,0,124,3,0, -    131,2,0,125,7,0,110,18,0,124,0,0,106,6,0,124, -    1,0,124,6,0,131,2,0,125,7,0,124,7,0,100,1, -    0,107,8,0,114,139,0,113,13,0,124,7,0,106,7,0, -    100,1,0,107,9,0,114,158,0,124,7,0,83,124,7,0, -    106,8,0,125,8,0,124,8,0,100,1,0,107,8,0,114, -    191,0,116,9,0,100,3,0,131,1,0,130,1,0,124,4, -    0,106,10,0,124,8,0,131,1,0,1,113,13,0,87,116, -    11,0,106,12,0,124,1,0,100,1,0,131,2,0,125,7, -    0,124,4,0,124,7,0,95,8,0,124,7,0,83,100,1, -    0,83,41,4,122,63,70,105,110,100,32,116,104,101,32,108, -    111,97,100,101,114,32,111,114,32,110,97,109,101,115,112,97, -    99,101,95,112,97,116,104,32,102,111,114,32,116,104,105,115, -    32,109,111,100,117,108,101,47,112,97,99,107,97,103,101,32, -    110,97,109,101,46,78,114,181,0,0,0,122,19,115,112,101, -    99,32,109,105,115,115,105,110,103,32,108,111,97,100,101,114, -    41,13,114,143,0,0,0,114,69,0,0,0,218,5,98,121, -    116,101,115,114,1,1,0,0,114,115,0,0,0,114,181,0, -    0,0,114,2,1,0,0,114,127,0,0,0,114,156,0,0, -    0,114,107,0,0,0,114,149,0,0,0,114,121,0,0,0, -    114,160,0,0,0,41,9,114,170,0,0,0,114,126,0,0, -    0,114,35,0,0,0,114,180,0,0,0,218,14,110,97,109, -    101,115,112,97,99,101,95,112,97,116,104,90,5,101,110,116, -    114,121,114,253,0,0,0,114,164,0,0,0,114,128,0,0, +    67,0,0,0,115,7,0,0,0,124,0,0,106,0,0,83, +    41,1,122,58,82,101,116,117,114,110,32,116,104,101,32,112, +    97,116,104,32,116,111,32,116,104,101,32,115,111,117,114,99, +    101,32,102,105,108,101,32,97,115,32,102,111,117,110,100,32, +    98,121,32,116,104,101,32,102,105,110,100,101,114,46,41,1, +    114,35,0,0,0,41,2,114,100,0,0,0,114,119,0,0,      0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    218,9,95,103,101,116,95,115,112,101,99,74,4,0,0,115, -    40,0,0,0,0,5,6,1,13,1,21,1,3,1,15,1, -    12,1,15,1,21,2,18,1,12,1,3,1,15,1,4,1, -    9,1,12,1,12,5,17,2,18,1,9,1,122,20,80,97, -    116,104,70,105,110,100,101,114,46,95,103,101,116,95,115,112, -    101,99,99,4,0,0,0,0,0,0,0,6,0,0,0,4, -    0,0,0,67,0,0,0,115,140,0,0,0,124,2,0,100, -    1,0,107,8,0,114,21,0,116,0,0,106,1,0,125,2, -    0,124,0,0,106,2,0,124,1,0,124,2,0,124,3,0, -    131,3,0,125,4,0,124,4,0,100,1,0,107,8,0,114, -    58,0,100,1,0,83,124,4,0,106,3,0,100,1,0,107, -    8,0,114,132,0,124,4,0,106,4,0,125,5,0,124,5, -    0,114,125,0,100,2,0,124,4,0,95,5,0,116,6,0, -    124,1,0,124,5,0,124,0,0,106,2,0,131,3,0,124, -    4,0,95,4,0,124,4,0,83,100,1,0,83,110,4,0, -    124,4,0,83,100,1,0,83,41,3,122,98,102,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,90, -    9,110,97,109,101,115,112,97,99,101,41,7,114,7,0,0, -    0,114,35,0,0,0,114,5,1,0,0,114,127,0,0,0, -    114,156,0,0,0,114,158,0,0,0,114,230,0,0,0,41, -    6,114,170,0,0,0,114,126,0,0,0,114,35,0,0,0, -    114,180,0,0,0,114,164,0,0,0,114,4,1,0,0,114, -    4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,181, -    0,0,0,106,4,0,0,115,26,0,0,0,0,4,12,1, -    9,1,21,1,12,1,4,1,15,1,9,1,6,3,9,1, -    24,1,4,2,7,2,122,20,80,97,116,104,70,105,110,100, -    101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,0, -    0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,0, -    0,115,41,0,0,0,124,0,0,106,0,0,124,1,0,124, -    2,0,131,2,0,125,3,0,124,3,0,100,1,0,107,8, -    0,114,34,0,100,1,0,83,124,3,0,106,1,0,83,41, -    2,122,170,102,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,10,10,32,32,32,32,32,32,32,32,84, -    104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101, -    112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,102, -    105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101, -    97,100,46,10,10,32,32,32,32,32,32,32,32,78,41,2, -    114,181,0,0,0,114,127,0,0,0,41,4,114,170,0,0, -    0,114,126,0,0,0,114,35,0,0,0,114,164,0,0,0, +    114,151,0,0,0,155,3,0,0,115,2,0,0,0,0,3, +    122,32,69,120,116,101,110,115,105,111,110,70,105,108,101,76, +    111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97, +    109,101,78,41,14,114,105,0,0,0,114,104,0,0,0,114, +    106,0,0,0,114,107,0,0,0,114,179,0,0,0,114,207, +    0,0,0,114,209,0,0,0,114,180,0,0,0,114,185,0, +    0,0,114,153,0,0,0,114,181,0,0,0,114,196,0,0, +    0,114,116,0,0,0,114,151,0,0,0,114,4,0,0,0,      114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    182,0,0,0,128,4,0,0,115,8,0,0,0,0,8,18, -    1,12,1,4,1,122,22,80,97,116,104,70,105,110,100,101, -    114,46,102,105,110,100,95,109,111,100,117,108,101,41,12,114, -    112,0,0,0,114,111,0,0,0,114,113,0,0,0,114,114, -    0,0,0,114,183,0,0,0,114,250,0,0,0,114,255,0, -    0,0,114,1,1,0,0,114,2,1,0,0,114,5,1,0, -    0,114,181,0,0,0,114,182,0,0,0,114,4,0,0,0, +    218,0,0,0,108,3,0,0,115,20,0,0,0,12,6,6, +    2,12,4,12,4,12,3,12,8,12,6,12,6,12,4,12, +    4,114,218,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,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,41,21,218,14,95,78,97,109,101,115,112,97,99,101, +    80,97,116,104,97,38,1,0,0,82,101,112,114,101,115,101, +    110,116,115,32,97,32,110,97,109,101,115,112,97,99,101,32, +    112,97,99,107,97,103,101,39,115,32,112,97,116,104,46,32, +    32,73,116,32,117,115,101,115,32,116,104,101,32,109,111,100, +    117,108,101,32,110,97,109,101,10,32,32,32,32,116,111,32, +    102,105,110,100,32,105,116,115,32,112,97,114,101,110,116,32, +    109,111,100,117,108,101,44,32,97,110,100,32,102,114,111,109, +    32,116,104,101,114,101,32,105,116,32,108,111,111,107,115,32, +    117,112,32,116,104,101,32,112,97,114,101,110,116,39,115,10, +    32,32,32,32,95,95,112,97,116,104,95,95,46,32,32,87, +    104,101,110,32,116,104,105,115,32,99,104,97,110,103,101,115, +    44,32,116,104,101,32,109,111,100,117,108,101,39,115,32,111, +    119,110,32,112,97,116,104,32,105,115,32,114,101,99,111,109, +    112,117,116,101,100,44,10,32,32,32,32,117,115,105,110,103, +    32,112,97,116,104,95,102,105,110,100,101,114,46,32,32,70, +    111,114,32,116,111,112,45,108,101,118,101,108,32,109,111,100, +    117,108,101,115,44,32,116,104,101,32,112,97,114,101,110,116, +    32,109,111,100,117,108,101,39,115,32,112,97,116,104,10,32, +    32,32,32,105,115,32,115,121,115,46,112,97,116,104,46,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,41,1,78, +    41,6,218,5,95,110,97,109,101,218,5,95,112,97,116,104, +    114,93,0,0,0,218,16,95,103,101,116,95,112,97,114,101, +    110,116,95,112,97,116,104,218,17,95,108,97,115,116,95,112, +    97,114,101,110,116,95,112,97,116,104,218,12,95,112,97,116, +    104,95,102,105,110,100,101,114,41,4,114,100,0,0,0,114, +    98,0,0,0,114,35,0,0,0,218,11,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,179,0,0,0,168,3,0,0,115,8, +    0,0,0,0,1,9,1,9,1,21,1,122,23,95,78,97, +    109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,110, +    105,116,95,95,99,1,0,0,0,0,0,0,0,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,41,7,122,62,82,101,116,117,114,110,115,32,97, +    32,116,117,112,108,101,32,111,102,32,40,112,97,114,101,110, +    116,45,109,111,100,117,108,101,45,110,97,109,101,44,32,112, +    97,114,101,110,116,45,112,97,116,104,45,97,116,116,114,45, +    110,97,109,101,41,114,58,0,0,0,114,30,0,0,0,114, +    7,0,0,0,114,35,0,0,0,90,8,95,95,112,97,116, +    104,95,95,41,2,122,3,115,121,115,122,4,112,97,116,104, +    41,2,114,225,0,0,0,114,32,0,0,0,41,4,114,100, +    0,0,0,114,216,0,0,0,218,3,100,111,116,90,2,109, +    101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    218,23,95,102,105,110,100,95,112,97,114,101,110,116,95,112, +    97,116,104,95,110,97,109,101,115,174,3,0,0,115,8,0, +    0,0,0,2,27,1,12,2,4,3,122,38,95,78,97,109, +    101,115,112,97,99,101,80,97,116,104,46,95,102,105,110,100, +    95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,109, +    101,115,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,41,1,78,41,4,114,232,0,0,0,114,110,0,0, +    0,114,7,0,0,0,218,7,109,111,100,117,108,101,115,41, +    3,114,100,0,0,0,90,18,112,97,114,101,110,116,95,109, +    111,100,117,108,101,95,110,97,109,101,90,14,112,97,116,104, +    95,97,116,116,114,95,110,97,109,101,114,4,0,0,0,114, +    4,0,0,0,114,5,0,0,0,114,227,0,0,0,184,3, +    0,0,115,4,0,0,0,0,1,18,1,122,31,95,78,97, +    109,101,115,112,97,99,101,80,97,116,104,46,95,103,101,116, +    95,112,97,114,101,110,116,95,112,97,116,104,99,1,0,0, +    0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0, +    0,115,118,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,111,0,124,0,0,106,3,0,124,0,0, +    106,4,0,124,1,0,131,2,0,125,2,0,124,2,0,100, +    0,0,107,9,0,114,102,0,124,2,0,106,5,0,100,0, +    0,107,8,0,114,102,0,124,2,0,106,6,0,114,102,0, +    124,2,0,106,6,0,124,0,0,95,7,0,124,1,0,124, +    0,0,95,2,0,124,0,0,106,7,0,83,41,1,78,41, +    8,114,93,0,0,0,114,227,0,0,0,114,228,0,0,0, +    114,229,0,0,0,114,225,0,0,0,114,120,0,0,0,114, +    150,0,0,0,114,226,0,0,0,41,3,114,100,0,0,0, +    90,11,112,97,114,101,110,116,95,112,97,116,104,114,158,0, +    0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, +    0,218,12,95,114,101,99,97,108,99,117,108,97,116,101,188, +    3,0,0,115,16,0,0,0,0,2,18,1,15,1,21,3, +    27,1,9,1,12,1,9,1,122,27,95,78,97,109,101,115, +    112,97,99,101,80,97,116,104,46,95,114,101,99,97,108,99, +    117,108,97,116,101,99,1,0,0,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,41, +    1,78,41,2,218,4,105,116,101,114,114,234,0,0,0,41, +    1,114,100,0,0,0,114,4,0,0,0,114,4,0,0,0, +    114,5,0,0,0,218,8,95,95,105,116,101,114,95,95,201, +    3,0,0,115,2,0,0,0,0,1,122,23,95,78,97,109, +    101,115,112,97,99,101,80,97,116,104,46,95,95,105,116,101, +    114,95,95,99,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,41,1,78, +    41,2,114,31,0,0,0,114,234,0,0,0,41,1,114,100, +    0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, +    0,0,218,7,95,95,108,101,110,95,95,204,3,0,0,115, +    2,0,0,0,0,1,122,22,95,78,97,109,101,115,112,97, +    99,101,80,97,116,104,46,95,95,108,101,110,95,95,99,1, +    0,0,0,0,0,0,0,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,41,2,78,122,20,95,78,97, +    109,101,115,112,97,99,101,80,97,116,104,40,123,33,114,125, +    41,41,2,114,47,0,0,0,114,226,0,0,0,41,1,114, +    100,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, +    0,0,0,218,8,95,95,114,101,112,114,95,95,207,3,0, +    0,115,2,0,0,0,0,1,122,23,95,78,97,109,101,115, +    112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,95, +    95,99,2,0,0,0,0,0,0,0,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,41,1,78,41,1, +    114,234,0,0,0,41,2,114,100,0,0,0,218,4,105,116, +    101,109,114,4,0,0,0,114,4,0,0,0,114,5,0,0, +    0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,210, +    3,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109, +    101,115,112,97,99,101,80,97,116,104,46,95,95,99,111,110, +    116,97,105,110,115,95,95,99,2,0,0,0,0,0,0,0, +    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,41,1,78,41,2,114,226,0,0,0,114, +    157,0,0,0,41,2,114,100,0,0,0,114,239,0,0,0,      114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    249,0,0,0,8,4,0,0,115,22,0,0,0,12,2,6, -    2,18,8,18,17,18,22,18,15,3,1,18,31,3,1,21, -    21,3,1,114,249,0,0,0,99,0,0,0,0,0,0,0, -    0,0,0,0,0,3,0,0,0,64,0,0,0,115,133,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,100,10,0,100,11,0, -    100,12,0,132,1,0,90,10,0,100,13,0,100,14,0,132, -    0,0,90,11,0,101,12,0,100,15,0,100,16,0,132,0, -    0,131,1,0,90,13,0,100,17,0,100,18,0,132,0,0, -    90,14,0,100,10,0,83,41,19,218,10,70,105,108,101,70, -    105,110,100,101,114,122,172,70,105,108,101,45,98,97,115,101, -    100,32,102,105,110,100,101,114,46,10,10,32,32,32,32,73, -    110,116,101,114,97,99,116,105,111,110,115,32,119,105,116,104, -    32,116,104,101,32,102,105,108,101,32,115,121,115,116,101,109, -    32,97,114,101,32,99,97,99,104,101,100,32,102,111,114,32, -    112,101,114,102,111,114,109,97,110,99,101,44,32,98,101,105, -    110,103,10,32,32,32,32,114,101,102,114,101,115,104,101,100, -    32,119,104,101,110,32,116,104,101,32,100,105,114,101,99,116, -    111,114,121,32,116,104,101,32,102,105,110,100,101,114,32,105, -    115,32,104,97,110,100,108,105,110,103,32,104,97,115,32,98, -    101,101,110,32,109,111,100,105,102,105,101,100,46,10,10,32, -    32,32,32,99,2,0,0,0,0,0,0,0,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,41,7,122,154,73,110,105,116,105, -    97,108,105,122,101,32,119,105,116,104,32,116,104,101,32,112, -    97,116,104,32,116,111,32,115,101,97,114,99,104,32,111,110, -    32,97,110,100,32,97,32,118,97,114,105,97,98,108,101,32, -    110,117,109,98,101,114,32,111,102,10,32,32,32,32,32,32, -    32,32,50,45,116,117,112,108,101,115,32,99,111,110,116,97, -    105,110,105,110,103,32,116,104,101,32,108,111,97,100,101,114, -    32,97,110,100,32,116,104,101,32,102,105,108,101,32,115,117, -    102,102,105,120,101,115,32,116,104,101,32,108,111,97,100,101, -    114,10,32,32,32,32,32,32,32,32,114,101,99,111,103,110, -    105,122,101,115,46,99,1,0,0,0,0,0,0,0,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,41,1,78,114,4,0, -    0,0,41,2,114,22,0,0,0,114,225,0,0,0,41,1, -    114,127,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    227,0,0,0,157,4,0,0,115,2,0,0,0,6,0,122, -    38,70,105,108,101,70,105,110,100,101,114,46,95,95,105,110, -    105,116,95,95,46,60,108,111,99,97,108,115,62,46,60,103, -    101,110,101,120,112,114,62,114,58,0,0,0,114,29,0,0, -    0,78,114,87,0,0,0,41,7,114,149,0,0,0,218,8, -    95,108,111,97,100,101,114,115,114,35,0,0,0,218,11,95, -    112,97,116,104,95,109,116,105,109,101,218,3,115,101,116,218, -    11,95,112,97,116,104,95,99,97,99,104,101,218,19,95,114, -    101,108,97,120,101,100,95,112,97,116,104,95,99,97,99,104, -    101,41,5,114,108,0,0,0,114,35,0,0,0,218,14,108, -    111,97,100,101,114,95,100,101,116,97,105,108,115,90,7,108, -    111,97,100,101,114,115,114,166,0,0,0,114,4,0,0,0, -    41,1,114,127,0,0,0,114,5,0,0,0,114,185,0,0, -    0,151,4,0,0,115,16,0,0,0,0,4,6,1,19,1, -    36,1,9,2,15,1,9,1,12,1,122,19,70,105,108,101, -    70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,99, -    1,0,0,0,0,0,0,0,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,41,4,122,31,73,110,118,97,108,105, -    100,97,116,101,32,116,104,101,32,100,105,114,101,99,116,111, -    114,121,32,109,116,105,109,101,46,114,29,0,0,0,78,114, -    87,0,0,0,41,1,114,8,1,0,0,41,1,114,108,0, +    157,0,0,0,213,3,0,0,115,2,0,0,0,0,1,122, +    21,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, +    97,112,112,101,110,100,78,41,13,114,105,0,0,0,114,104, +    0,0,0,114,106,0,0,0,114,107,0,0,0,114,179,0, +    0,0,114,232,0,0,0,114,227,0,0,0,114,234,0,0, +    0,114,236,0,0,0,114,237,0,0,0,114,238,0,0,0, +    114,240,0,0,0,114,157,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,161,3,0,0,115,20,0,0,0,12,5,6,2, +    12,6,12,10,12,4,12,13,12,3,12,3,12,3,12,3, +    114,224,0,0,0,99,0,0,0,0,0,0,0,0,0,0, +    0,0,3,0,0,0,64,0,0,0,115,118,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,100,16,0,132,0,0,90,11, +    0,100,17,0,83,41,18,218,16,95,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,41,1,78,41, +    2,114,224,0,0,0,114,226,0,0,0,41,4,114,100,0, +    0,0,114,98,0,0,0,114,35,0,0,0,114,230,0,0, +    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    114,179,0,0,0,219,3,0,0,115,2,0,0,0,0,1, +    122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,100, +    101,114,46,95,95,105,110,105,116,95,95,99,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,41,2,122,115,82,101,116,117,114,110,32, +    114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100, +    117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104, +    101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, +    101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112, +    111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111, +    101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108, +    102,46,10,10,32,32,32,32,32,32,32,32,122,25,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,41,2,114,47,0,0,0,114,105, +    0,0,0,41,2,114,164,0,0,0,114,184,0,0,0,114, +    4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,11, +    109,111,100,117,108,101,95,114,101,112,114,222,3,0,0,115, +    2,0,0,0,0,7,122,28,95,78,97,109,101,115,112,97, +    99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,95, +    114,101,112,114,99,2,0,0,0,0,0,0,0,2,0,0, +    0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, +    0,83,41,2,78,84,114,4,0,0,0,41,2,114,100,0, +    0,0,114,119,0,0,0,114,4,0,0,0,114,4,0,0, +    0,114,5,0,0,0,114,153,0,0,0,231,3,0,0,115, +    2,0,0,0,0,1,122,27,95,78,97,109,101,115,112,97, +    99,101,76,111,97,100,101,114,46,105,115,95,112,97,99,107, +    97,103,101,99,2,0,0,0,0,0,0,0,2,0,0,0, +    1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,0, +    83,41,2,78,114,30,0,0,0,114,4,0,0,0,41,2, +    114,100,0,0,0,114,119,0,0,0,114,4,0,0,0,114, +    4,0,0,0,114,5,0,0,0,114,196,0,0,0,234,3, +    0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,101, +    115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95, +    115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,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,41,6,78,114,30,0,0,0,122,8, +    60,115,116,114,105,110,103,62,114,183,0,0,0,114,198,0, +    0,0,84,41,1,114,199,0,0,0,41,2,114,100,0,0, +    0,114,119,0,0,0,114,4,0,0,0,114,4,0,0,0, +    114,5,0,0,0,114,181,0,0,0,237,3,0,0,115,2, +    0,0,0,0,1,122,25,95,78,97,109,101,115,112,97,99, +    101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101, +    99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, +    0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,2, +    122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,101, +    109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,117, +    108,101,32,99,114,101,97,116,105,111,110,46,78,114,4,0, +    0,0,41,2,114,100,0,0,0,114,158,0,0,0,114,4, +    0,0,0,114,4,0,0,0,114,5,0,0,0,114,180,0, +    0,0,240,3,0,0,115,0,0,0,0,122,30,95,78,97, +    109,101,115,112,97,99,101,76,111,97,100,101,114,46,99,114, +    101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,0, +    0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, +    115,4,0,0,0,100,0,0,83,41,1,78,114,4,0,0, +    0,41,2,114,100,0,0,0,114,184,0,0,0,114,4,0, +    0,0,114,4,0,0,0,114,5,0,0,0,114,185,0,0, +    0,243,3,0,0,115,2,0,0,0,0,1,122,28,95,78, +    97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101, +    120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0, +    0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115, +    35,0,0,0,116,0,0,106,1,0,100,1,0,124,0,0, +    106,2,0,131,2,0,1,116,0,0,106,3,0,124,0,0, +    124,1,0,131,2,0,83,41,2,122,98,76,111,97,100,32, +    97,32,110,97,109,101,115,112,97,99,101,32,109,111,100,117, +    108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105, +    115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, +    101,99,97,116,101,100,46,32,32,85,115,101,32,101,120,101, +    99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101, +    97,100,46,10,10,32,32,32,32,32,32,32,32,122,38,110, +    97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,32, +    108,111,97,100,101,100,32,119,105,116,104,32,112,97,116,104, +    32,123,33,114,125,41,4,114,114,0,0,0,114,129,0,0, +    0,114,226,0,0,0,114,186,0,0,0,41,2,114,100,0, +    0,0,114,119,0,0,0,114,4,0,0,0,114,4,0,0, +    0,114,5,0,0,0,114,187,0,0,0,246,3,0,0,115, +    6,0,0,0,0,7,9,1,10,1,122,28,95,78,97,109, +    101,115,112,97,99,101,76,111,97,100,101,114,46,108,111,97, +    100,95,109,111,100,117,108,101,78,41,12,114,105,0,0,0, +    114,104,0,0,0,114,106,0,0,0,114,179,0,0,0,114, +    177,0,0,0,114,242,0,0,0,114,153,0,0,0,114,196, +    0,0,0,114,181,0,0,0,114,180,0,0,0,114,185,0, +    0,0,114,187,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, +    218,3,0,0,115,16,0,0,0,12,1,12,3,18,9,12, +    3,12,3,12,3,12,3,12,3,114,241,0,0,0,99,0, +    0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,64, +    0,0,0,115,160,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,101,4,0,100,10,0,100,10,0, +    100,13,0,100,14,0,132,2,0,131,1,0,90,10,0,101, +    4,0,100,10,0,100,15,0,100,16,0,132,1,0,131,1, +    0,90,11,0,100,10,0,83,41,17,218,10,80,97,116,104, +    70,105,110,100,101,114,122,62,77,101,116,97,32,112,97,116, +    104,32,102,105,110,100,101,114,32,102,111,114,32,115,121,115, +    46,112,97,116,104,32,97,110,100,32,112,97,99,107,97,103, +    101,32,95,95,112,97,116,104,95,95,32,97,116,116,114,105, +    98,117,116,101,115,46,99,1,0,0,0,0,0,0,0,2, +    0,0,0,4,0,0,0,67,0,0,0,115,55,0,0,0, +    120,48,0,116,0,0,106,1,0,106,2,0,131,0,0,68, +    93,31,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,87,100,2,0,83,41,3,122,125,67,97,108,108,32, +    116,104,101,32,105,110,118,97,108,105,100,97,116,101,95,99, +    97,99,104,101,115,40,41,32,109,101,116,104,111,100,32,111, +    110,32,97,108,108,32,112,97,116,104,32,101,110,116,114,121, +    32,102,105,110,100,101,114,115,10,32,32,32,32,32,32,32, +    32,115,116,111,114,101,100,32,105,110,32,115,121,115,46,112, +    97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99, +    104,101,115,32,40,119,104,101,114,101,32,105,109,112,108,101, +    109,101,110,116,101,100,41,46,218,17,105,110,118,97,108,105, +    100,97,116,101,95,99,97,99,104,101,115,78,41,5,114,7, +    0,0,0,218,19,112,97,116,104,95,105,109,112,111,114,116, +    101,114,95,99,97,99,104,101,218,6,118,97,108,117,101,115, +    114,108,0,0,0,114,244,0,0,0,41,2,114,164,0,0, +    0,218,6,102,105,110,100,101,114,114,4,0,0,0,114,4, +    0,0,0,114,5,0,0,0,114,244,0,0,0,8,4,0, +    0,115,6,0,0,0,0,4,22,1,15,1,122,28,80,97, +    116,104,70,105,110,100,101,114,46,105,110,118,97,108,105,100, +    97,116,101,95,99,97,99,104,101,115,99,2,0,0,0,0, +    0,0,0,3,0,0,0,12,0,0,0,67,0,0,0,115, +    107,0,0,0,116,0,0,106,1,0,100,1,0,107,9,0, +    114,41,0,116,0,0,106,1,0,12,114,41,0,116,2,0, +    106,3,0,100,2,0,116,4,0,131,2,0,1,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,51,0,4,116, +    5,0,107,10,0,114,94,0,1,1,1,119,51,0,89,113, +    51,0,88,113,51,0,87,100,1,0,83,100,1,0,83,41, +    3,122,113,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,78,122,23,115,121,115,46,112,97,116,104,95, +    104,111,111,107,115,32,105,115,32,101,109,112,116,121,41,6, +    114,7,0,0,0,218,10,112,97,116,104,95,104,111,111,107, +    115,114,60,0,0,0,114,61,0,0,0,114,118,0,0,0, +    114,99,0,0,0,41,3,114,164,0,0,0,114,35,0,0, +    0,90,4,104,111,111,107,114,4,0,0,0,114,4,0,0, +    0,114,5,0,0,0,218,11,95,112,97,116,104,95,104,111, +    111,107,115,16,4,0,0,115,16,0,0,0,0,7,25,1, +    16,1,16,1,3,1,14,1,13,1,12,2,122,22,80,97, +    116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,104, +    111,111,107,115,99,2,0,0,0,0,0,0,0,3,0,0, +    0,19,0,0,0,67,0,0,0,115,123,0,0,0,124,1, +    0,100,1,0,107,2,0,114,53,0,121,16,0,116,0,0, +    106,1,0,131,0,0,125,1,0,87,110,22,0,4,116,2, +    0,107,10,0,114,52,0,1,1,1,100,2,0,83,89,110, +    1,0,88,121,17,0,116,3,0,106,4,0,124,1,0,25, +    125,2,0,87,110,46,0,4,116,5,0,107,10,0,114,118, +    0,1,1,1,124,0,0,106,6,0,124,1,0,131,1,0, +    125,2,0,124,2,0,116,3,0,106,4,0,124,1,0,60, +    89,110,1,0,88,124,2,0,83,41,3,122,210,71,101,116, +    32,116,104,101,32,102,105,110,100,101,114,32,102,111,114,32, +    116,104,101,32,112,97,116,104,32,101,110,116,114,121,32,102, +    114,111,109,32,115,121,115,46,112,97,116,104,95,105,109,112, +    111,114,116,101,114,95,99,97,99,104,101,46,10,10,32,32, +    32,32,32,32,32,32,73,102,32,116,104,101,32,112,97,116, +    104,32,101,110,116,114,121,32,105,115,32,110,111,116,32,105, +    110,32,116,104,101,32,99,97,99,104,101,44,32,102,105,110, +    100,32,116,104,101,32,97,112,112,114,111,112,114,105,97,116, +    101,32,102,105,110,100,101,114,10,32,32,32,32,32,32,32, +    32,97,110,100,32,99,97,99,104,101,32,105,116,46,32,73, +    102,32,110,111,32,102,105,110,100,101,114,32,105,115,32,97, +    118,97,105,108,97,98,108,101,44,32,115,116,111,114,101,32, +    78,111,110,101,46,10,10,32,32,32,32,32,32,32,32,114, +    30,0,0,0,78,41,7,114,3,0,0,0,114,45,0,0, +    0,218,17,70,105,108,101,78,111,116,70,111,117,110,100,69, +    114,114,111,114,114,7,0,0,0,114,245,0,0,0,114,131, +    0,0,0,114,249,0,0,0,41,3,114,164,0,0,0,114, +    35,0,0,0,114,247,0,0,0,114,4,0,0,0,114,4, +    0,0,0,114,5,0,0,0,218,20,95,112,97,116,104,95, +    105,109,112,111,114,116,101,114,95,99,97,99,104,101,33,4, +    0,0,115,22,0,0,0,0,8,12,1,3,1,16,1,13, +    3,9,1,3,1,17,1,13,1,15,1,18,1,122,31,80, +    97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95, +    105,109,112,111,114,116,101,114,95,99,97,99,104,101,99,3, +    0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,67, +    0,0,0,115,119,0,0,0,116,0,0,124,2,0,100,1, +    0,131,2,0,114,39,0,124,2,0,106,1,0,124,1,0, +    131,1,0,92,2,0,125,3,0,125,4,0,110,21,0,124, +    2,0,106,2,0,124,1,0,131,1,0,125,3,0,103,0, +    0,125,4,0,124,3,0,100,0,0,107,9,0,114,88,0, +    116,3,0,106,4,0,124,1,0,124,3,0,131,2,0,83, +    116,3,0,106,5,0,124,1,0,100,0,0,131,2,0,125, +    5,0,124,4,0,124,5,0,95,6,0,124,5,0,83,41, +    2,78,114,117,0,0,0,41,7,114,108,0,0,0,114,117, +    0,0,0,114,176,0,0,0,114,114,0,0,0,114,173,0, +    0,0,114,154,0,0,0,114,150,0,0,0,41,6,114,164, +    0,0,0,114,119,0,0,0,114,247,0,0,0,114,120,0, +    0,0,114,121,0,0,0,114,158,0,0,0,114,4,0,0, +    0,114,4,0,0,0,114,5,0,0,0,218,16,95,108,101, +    103,97,99,121,95,103,101,116,95,115,112,101,99,55,4,0, +    0,115,18,0,0,0,0,4,15,1,24,2,15,1,6,1, +    12,1,16,1,18,1,9,1,122,27,80,97,116,104,70,105, +    110,100,101,114,46,95,108,101,103,97,99,121,95,103,101,116, +    95,115,112,101,99,78,99,4,0,0,0,0,0,0,0,9, +    0,0,0,5,0,0,0,67,0,0,0,115,243,0,0,0, +    103,0,0,125,4,0,120,230,0,124,2,0,68,93,191,0, +    125,5,0,116,0,0,124,5,0,116,1,0,116,2,0,102, +    2,0,131,2,0,115,43,0,113,13,0,124,0,0,106,3, +    0,124,5,0,131,1,0,125,6,0,124,6,0,100,1,0, +    107,9,0,114,13,0,116,4,0,124,6,0,100,2,0,131, +    2,0,114,106,0,124,6,0,106,5,0,124,1,0,124,3, +    0,131,2,0,125,7,0,110,18,0,124,0,0,106,6,0, +    124,1,0,124,6,0,131,2,0,125,7,0,124,7,0,100, +    1,0,107,8,0,114,139,0,113,13,0,124,7,0,106,7, +    0,100,1,0,107,9,0,114,158,0,124,7,0,83,124,7, +    0,106,8,0,125,8,0,124,8,0,100,1,0,107,8,0, +    114,191,0,116,9,0,100,3,0,131,1,0,130,1,0,124, +    4,0,106,10,0,124,8,0,131,1,0,1,113,13,0,87, +    116,11,0,106,12,0,124,1,0,100,1,0,131,2,0,125, +    7,0,124,4,0,124,7,0,95,8,0,124,7,0,83,100, +    1,0,83,41,4,122,63,70,105,110,100,32,116,104,101,32, +    108,111,97,100,101,114,32,111,114,32,110,97,109,101,115,112, +    97,99,101,95,112,97,116,104,32,102,111,114,32,116,104,105, +    115,32,109,111,100,117,108,101,47,112,97,99,107,97,103,101, +    32,110,97,109,101,46,78,114,175,0,0,0,122,19,115,112, +    101,99,32,109,105,115,115,105,110,103,32,108,111,97,100,101, +    114,41,13,114,137,0,0,0,114,69,0,0,0,218,5,98, +    121,116,101,115,114,251,0,0,0,114,108,0,0,0,114,175, +    0,0,0,114,252,0,0,0,114,120,0,0,0,114,150,0, +    0,0,114,99,0,0,0,114,143,0,0,0,114,114,0,0, +    0,114,154,0,0,0,41,9,114,164,0,0,0,114,119,0, +    0,0,114,35,0,0,0,114,174,0,0,0,218,14,110,97, +    109,101,115,112,97,99,101,95,112,97,116,104,90,5,101,110, +    116,114,121,114,247,0,0,0,114,158,0,0,0,114,121,0,      0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, -    0,114,250,0,0,0,165,4,0,0,115,2,0,0,0,0, -    2,122,28,70,105,108,101,70,105,110,100,101,114,46,105,110, -    118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,99, -    2,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0, -    67,0,0,0,115,59,0,0,0,124,0,0,106,0,0,124, -    1,0,131,1,0,125,2,0,124,2,0,100,1,0,107,8, -    0,114,37,0,100,1,0,103,0,0,102,2,0,83,124,2, -    0,106,1,0,124,2,0,106,2,0,112,55,0,103,0,0, -    102,2,0,83,41,2,122,197,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,10,10,32,32,32,32,32,32,32,32,84, -    104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101, -    112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,102, -    105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101, -    97,100,46,10,10,32,32,32,32,32,32,32,32,78,41,3, -    114,181,0,0,0,114,127,0,0,0,114,156,0,0,0,41, -    3,114,108,0,0,0,114,126,0,0,0,114,164,0,0,0, +    0,218,9,95,103,101,116,95,115,112,101,99,70,4,0,0, +    115,40,0,0,0,0,5,6,1,13,1,21,1,3,1,15, +    1,12,1,15,1,21,2,18,1,12,1,3,1,15,1,4, +    1,9,1,12,1,12,5,17,2,18,1,9,1,122,20,80, +    97,116,104,70,105,110,100,101,114,46,95,103,101,116,95,115, +    112,101,99,99,4,0,0,0,0,0,0,0,6,0,0,0, +    4,0,0,0,67,0,0,0,115,140,0,0,0,124,2,0, +    100,1,0,107,8,0,114,21,0,116,0,0,106,1,0,125, +    2,0,124,0,0,106,2,0,124,1,0,124,2,0,124,3, +    0,131,3,0,125,4,0,124,4,0,100,1,0,107,8,0, +    114,58,0,100,1,0,83,124,4,0,106,3,0,100,1,0, +    107,8,0,114,132,0,124,4,0,106,4,0,125,5,0,124, +    5,0,114,125,0,100,2,0,124,4,0,95,5,0,116,6, +    0,124,1,0,124,5,0,124,0,0,106,2,0,131,3,0, +    124,4,0,95,4,0,124,4,0,83,100,1,0,83,110,4, +    0,124,4,0,83,100,1,0,83,41,3,122,98,102,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, +    90,9,110,97,109,101,115,112,97,99,101,41,7,114,7,0, +    0,0,114,35,0,0,0,114,255,0,0,0,114,120,0,0, +    0,114,150,0,0,0,114,152,0,0,0,114,224,0,0,0, +    41,6,114,164,0,0,0,114,119,0,0,0,114,35,0,0, +    0,114,174,0,0,0,114,158,0,0,0,114,254,0,0,0,      114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, -    124,0,0,0,171,4,0,0,115,8,0,0,0,0,7,15, -    1,12,1,10,1,122,22,70,105,108,101,70,105,110,100,101, -    114,46,102,105,110,100,95,108,111,97,100,101,114,99,6,0, -    0,0,0,0,0,0,7,0,0,0,7,0,0,0,67,0, -    0,0,115,40,0,0,0,124,1,0,124,2,0,124,3,0, -    131,2,0,125,6,0,116,0,0,124,2,0,124,3,0,100, -    1,0,124,6,0,100,2,0,124,4,0,131,2,2,83,41, -    3,78,114,127,0,0,0,114,156,0,0,0,41,1,114,167, -    0,0,0,41,7,114,108,0,0,0,114,165,0,0,0,114, -    126,0,0,0,114,35,0,0,0,90,4,115,109,115,108,114, -    180,0,0,0,114,127,0,0,0,114,4,0,0,0,114,4, -    0,0,0,114,5,0,0,0,114,5,1,0,0,183,4,0, -    0,115,6,0,0,0,0,1,15,1,18,1,122,20,70,105, -    108,101,70,105,110,100,101,114,46,95,103,101,116,95,115,112, -    101,99,78,99,3,0,0,0,0,0,0,0,14,0,0,0, -    15,0,0,0,67,0,0,0,115,234,1,0,0,100,1,0, -    125,3,0,124,1,0,106,0,0,100,2,0,131,1,0,100, -    3,0,25,125,4,0,121,34,0,116,1,0,124,0,0,106, -    2,0,112,49,0,116,3,0,106,4,0,131,0,0,131,1, -    0,106,5,0,125,5,0,87,110,24,0,4,116,6,0,107, -    10,0,114,85,0,1,1,1,100,10,0,125,5,0,89,110, -    1,0,88,124,5,0,124,0,0,106,7,0,107,3,0,114, -    120,0,124,0,0,106,8,0,131,0,0,1,124,5,0,124, -    0,0,95,7,0,116,9,0,131,0,0,114,153,0,124,0, -    0,106,10,0,125,6,0,124,4,0,106,11,0,131,0,0, -    125,7,0,110,15,0,124,0,0,106,12,0,125,6,0,124, -    4,0,125,7,0,124,7,0,124,6,0,107,6,0,114,45, -    1,116,13,0,124,0,0,106,2,0,124,4,0,131,2,0, -    125,8,0,120,100,0,124,0,0,106,14,0,68,93,77,0, -    92,2,0,125,9,0,125,10,0,100,5,0,124,9,0,23, -    125,11,0,116,13,0,124,8,0,124,11,0,131,2,0,125, -    12,0,116,15,0,124,12,0,131,1,0,114,208,0,124,0, -    0,106,16,0,124,10,0,124,1,0,124,12,0,124,8,0, -    103,1,0,124,2,0,131,5,0,83,113,208,0,87,116,17, -    0,124,8,0,131,1,0,125,3,0,120,123,0,124,0,0, -    106,14,0,68,93,112,0,92,2,0,125,9,0,125,10,0, -    116,13,0,124,0,0,106,2,0,124,4,0,124,9,0,23, -    131,2,0,125,12,0,116,18,0,100,6,0,106,19,0,124, -    12,0,131,1,0,100,7,0,100,3,0,131,1,1,1,124, -    7,0,124,9,0,23,124,6,0,107,6,0,114,55,1,116, -    15,0,124,12,0,131,1,0,114,55,1,124,0,0,106,16, -    0,124,10,0,124,1,0,124,12,0,100,8,0,124,2,0, -    131,5,0,83,113,55,1,87,124,3,0,114,230,1,116,18, -    0,100,9,0,106,19,0,124,8,0,131,1,0,131,1,0, -    1,116,20,0,106,21,0,124,1,0,100,8,0,131,2,0, -    125,13,0,124,8,0,103,1,0,124,13,0,95,22,0,124, -    13,0,83,100,8,0,83,41,11,122,125,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,58,0,0,0,114,56, -    0,0,0,114,29,0,0,0,114,185,0,0,0,122,9,116, -    114,121,105,110,103,32,123,125,114,98,0,0,0,78,122,25, -    112,111,115,115,105,98,108,101,32,110,97,109,101,115,112,97, -    99,101,32,102,111,114,32,123,125,114,87,0,0,0,41,23, -    114,32,0,0,0,114,39,0,0,0,114,35,0,0,0,114, -    3,0,0,0,114,45,0,0,0,114,219,0,0,0,114,40, -    0,0,0,114,8,1,0,0,218,11,95,102,105,108,108,95, -    99,97,99,104,101,114,6,0,0,0,114,11,1,0,0,114, -    88,0,0,0,114,10,1,0,0,114,28,0,0,0,114,7, -    1,0,0,114,44,0,0,0,114,5,1,0,0,114,46,0, -    0,0,114,105,0,0,0,114,47,0,0,0,114,121,0,0, -    0,114,160,0,0,0,114,156,0,0,0,41,14,114,108,0, -    0,0,114,126,0,0,0,114,180,0,0,0,90,12,105,115, -    95,110,97,109,101,115,112,97,99,101,90,11,116,97,105,108, -    95,109,111,100,117,108,101,114,133,0,0,0,90,5,99,97, -    99,104,101,90,12,99,97,99,104,101,95,109,111,100,117,108, -    101,90,9,98,97,115,101,95,112,97,116,104,114,225,0,0, -    0,114,165,0,0,0,90,13,105,110,105,116,95,102,105,108, -    101,110,97,109,101,90,9,102,117,108,108,95,112,97,116,104, -    114,164,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,114,181,0,0,0,188,4,0,0,115,68,0, -    0,0,0,3,6,1,19,1,3,1,34,1,13,1,11,1, -    15,1,10,1,9,2,9,1,9,1,15,2,9,1,6,2, -    12,1,18,1,22,1,10,1,15,1,12,1,32,4,12,2, -    22,1,22,1,25,1,16,1,12,1,29,1,6,1,19,1, -    18,1,12,1,4,1,122,20,70,105,108,101,70,105,110,100, -    101,114,46,102,105,110,100,95,115,112,101,99,99,1,0,0, -    0,0,0,0,0,9,0,0,0,13,0,0,0,67,0,0, -    0,115,11,1,0,0,124,0,0,106,0,0,125,1,0,121, -    31,0,116,1,0,106,2,0,124,1,0,112,33,0,116,1, -    0,106,3,0,131,0,0,131,1,0,125,2,0,87,110,33, -    0,4,116,4,0,116,5,0,116,6,0,102,3,0,107,10, -    0,114,75,0,1,1,1,103,0,0,125,2,0,89,110,1, -    0,88,116,7,0,106,8,0,106,9,0,100,1,0,131,1, -    0,115,112,0,116,10,0,124,2,0,131,1,0,124,0,0, -    95,11,0,110,111,0,116,10,0,131,0,0,125,3,0,120, -    90,0,124,2,0,68,93,82,0,125,4,0,124,4,0,106, -    12,0,100,2,0,131,1,0,92,3,0,125,5,0,125,6, -    0,125,7,0,124,6,0,114,191,0,100,3,0,106,13,0, -    124,5,0,124,7,0,106,14,0,131,0,0,131,2,0,125, -    8,0,110,6,0,124,5,0,125,8,0,124,3,0,106,15, -    0,124,8,0,131,1,0,1,113,128,0,87,124,3,0,124, -    0,0,95,11,0,116,7,0,106,8,0,106,9,0,116,16, -    0,131,1,0,114,7,1,100,4,0,100,5,0,132,0,0, -    124,2,0,68,131,1,0,124,0,0,95,17,0,100,6,0, -    83,41,7,122,68,70,105,108,108,32,116,104,101,32,99,97, -    99,104,101,32,111,102,32,112,111,116,101,110,116,105,97,108, -    32,109,111,100,117,108,101,115,32,97,110,100,32,112,97,99, -    107,97,103,101,115,32,102,111,114,32,116,104,105,115,32,100, -    105,114,101,99,116,111,114,121,46,114,0,0,0,0,114,58, -    0,0,0,122,5,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,41,1,114,88,0,0,0,41,2,114,22, -    0,0,0,90,2,102,110,114,4,0,0,0,114,4,0,0, -    0,114,5,0,0,0,250,9,60,115,101,116,99,111,109,112, -    62,6,5,0,0,115,2,0,0,0,9,0,122,41,70,105, -    108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99, -    97,99,104,101,46,60,108,111,99,97,108,115,62,46,60,115, -    101,116,99,111,109,112,62,78,41,18,114,35,0,0,0,114, -    3,0,0,0,90,7,108,105,115,116,100,105,114,114,45,0, -    0,0,114,0,1,0,0,218,15,80,101,114,109,105,115,115, -    105,111,110,69,114,114,111,114,218,18,78,111,116,65,68,105, -    114,101,99,116,111,114,121,69,114,114,111,114,114,7,0,0, -    0,114,8,0,0,0,114,9,0,0,0,114,9,1,0,0, -    114,10,1,0,0,114,83,0,0,0,114,47,0,0,0,114, -    88,0,0,0,218,3,97,100,100,114,10,0,0,0,114,11, -    1,0,0,41,9,114,108,0,0,0,114,35,0,0,0,90, -    8,99,111,110,116,101,110,116,115,90,21,108,111,119,101,114, -    95,115,117,102,102,105,120,95,99,111,110,116,101,110,116,115, -    114,245,0,0,0,114,106,0,0,0,114,237,0,0,0,114, -    225,0,0,0,90,8,110,101,119,95,110,97,109,101,114,4, -    0,0,0,114,4,0,0,0,114,5,0,0,0,114,13,1, -    0,0,233,4,0,0,115,34,0,0,0,0,2,9,1,3, -    1,31,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,122,22,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,41,3,97,20,1,0,0,65, -    32,99,108,97,115,115,32,109,101,116,104,111,100,32,119,104, -    105,99,104,32,114,101,116,117,114,110,115,32,97,32,99,108, -    111,115,117,114,101,32,116,111,32,117,115,101,32,111,110,32, -    115,121,115,46,112,97,116,104,95,104,111,111,107,10,32,32, -    32,32,32,32,32,32,119,104,105,99,104,32,119,105,108,108, -    32,114,101,116,117,114,110,32,97,110,32,105,110,115,116,97, -    110,99,101,32,117,115,105,110,103,32,116,104,101,32,115,112, -    101,99,105,102,105,101,100,32,108,111,97,100,101,114,115,32, -    97,110,100,32,116,104,101,32,112,97,116,104,10,32,32,32, -    32,32,32,32,32,99,97,108,108,101,100,32,111,110,32,116, -    104,101,32,99,108,111,115,117,114,101,46,10,10,32,32,32, -    32,32,32,32,32,73,102,32,116,104,101,32,112,97,116,104, -    32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,99, -    108,111,115,117,114,101,32,105,115,32,110,111,116,32,97,32, -    100,105,114,101,99,116,111,114,121,44,32,73,109,112,111,114, -    116,69,114,114,111,114,32,105,115,10,32,32,32,32,32,32, -    32,32,114,97,105,115,101,100,46,10,10,32,32,32,32,32, -    32,32,32,99,1,0,0,0,0,0,0,0,1,0,0,0, -    4,0,0,0,19,0,0,0,115,43,0,0,0,116,0,0, -    124,0,0,131,1,0,115,30,0,116,1,0,100,1,0,100, -    2,0,124,0,0,131,1,1,130,1,0,136,0,0,124,0, -    0,136,1,0,140,1,0,83,41,3,122,45,80,97,116,104, -    32,104,111,111,107,32,102,111,114,32,105,109,112,111,114,116, -    108,105,98,46,109,97,99,104,105,110,101,114,121,46,70,105, -    108,101,70,105,110,100,101,114,46,122,30,111,110,108,121,32, -    100,105,114,101,99,116,111,114,105,101,115,32,97,114,101,32, -    115,117,112,112,111,114,116,101,100,114,35,0,0,0,41,2, -    114,46,0,0,0,114,107,0,0,0,41,1,114,35,0,0, -    0,41,2,114,170,0,0,0,114,12,1,0,0,114,4,0, -    0,0,114,5,0,0,0,218,24,112,97,116,104,95,104,111, -    111,107,95,102,111,114,95,70,105,108,101,70,105,110,100,101, -    114,18,5,0,0,115,6,0,0,0,0,2,12,1,18,1, -    122,54,70,105,108,101,70,105,110,100,101,114,46,112,97,116, -    104,95,104,111,111,107,46,60,108,111,99,97,108,115,62,46, -    112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,105, -    108,101,70,105,110,100,101,114,114,4,0,0,0,41,3,114, -    170,0,0,0,114,12,1,0,0,114,18,1,0,0,114,4, -    0,0,0,41,2,114,170,0,0,0,114,12,1,0,0,114, -    5,0,0,0,218,9,112,97,116,104,95,104,111,111,107,8, -    5,0,0,115,4,0,0,0,0,10,21,6,122,20,70,105, -    108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,111, -    111,107,99,1,0,0,0,0,0,0,0,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,41,2,78,122, -    16,70,105,108,101,70,105,110,100,101,114,40,123,33,114,125, -    41,41,2,114,47,0,0,0,114,35,0,0,0,41,1,114, -    108,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, -    0,0,0,114,244,0,0,0,26,5,0,0,115,2,0,0, -    0,0,1,122,19,70,105,108,101,70,105,110,100,101,114,46, -    95,95,114,101,112,114,95,95,41,15,114,112,0,0,0,114, -    111,0,0,0,114,113,0,0,0,114,114,0,0,0,114,185, -    0,0,0,114,250,0,0,0,114,130,0,0,0,114,182,0, -    0,0,114,124,0,0,0,114,5,1,0,0,114,181,0,0, -    0,114,13,1,0,0,114,183,0,0,0,114,19,1,0,0, -    114,244,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,1,0,0,142,4, -    0,0,115,20,0,0,0,12,7,6,2,12,14,12,4,6, -    2,12,12,12,5,15,45,12,31,18,18,114,6,1,0,0, -    99,4,0,0,0,0,0,0,0,6,0,0,0,11,0,0, -    0,67,0,0,0,115,195,0,0,0,124,0,0,106,0,0, -    100,1,0,131,1,0,125,4,0,124,0,0,106,0,0,100, -    2,0,131,1,0,125,5,0,124,4,0,115,99,0,124,5, -    0,114,54,0,124,5,0,106,1,0,125,4,0,110,45,0, -    124,2,0,124,3,0,107,2,0,114,84,0,116,2,0,124, -    1,0,124,2,0,131,2,0,125,4,0,110,15,0,116,3, -    0,124,1,0,124,2,0,131,2,0,125,4,0,124,5,0, -    115,126,0,116,4,0,124,1,0,124,2,0,100,3,0,124, -    4,0,131,2,1,125,5,0,121,44,0,124,5,0,124,0, -    0,100,2,0,60,124,4,0,124,0,0,100,1,0,60,124, -    2,0,124,0,0,100,4,0,60,124,3,0,124,0,0,100, -    5,0,60,87,110,18,0,4,116,5,0,107,10,0,114,190, -    0,1,1,1,89,110,1,0,88,100,0,0,83,41,6,78, -    218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95, -    115,112,101,99,95,95,114,127,0,0,0,90,8,95,95,102, -    105,108,101,95,95,90,10,95,95,99,97,99,104,101,100,95, -    95,41,6,218,3,103,101,116,114,127,0,0,0,114,223,0, -    0,0,114,218,0,0,0,114,167,0,0,0,218,9,69,120, -    99,101,112,116,105,111,110,41,6,90,2,110,115,114,106,0, -    0,0,90,8,112,97,116,104,110,97,109,101,90,9,99,112, -    97,116,104,110,97,109,101,114,127,0,0,0,114,164,0,0, +    175,0,0,0,102,4,0,0,115,26,0,0,0,0,4,12, +    1,9,1,21,1,12,1,4,1,15,1,9,1,6,3,9, +    1,24,1,4,2,7,2,122,20,80,97,116,104,70,105,110, +    100,101,114,46,102,105,110,100,95,115,112,101,99,99,3,0, +    0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0, +    0,0,115,41,0,0,0,124,0,0,106,0,0,124,1,0, +    124,2,0,131,2,0,125,3,0,124,3,0,100,1,0,107, +    8,0,114,34,0,100,1,0,83,124,3,0,106,1,0,83, +    41,2,122,170,102,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,10,10,32,32,32,32,32,32,32,32, +    84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100, +    101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32, +    102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, +    101,97,100,46,10,10,32,32,32,32,32,32,32,32,78,41, +    2,114,175,0,0,0,114,120,0,0,0,41,4,114,164,0, +    0,0,114,119,0,0,0,114,35,0,0,0,114,158,0,0, +    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    114,176,0,0,0,124,4,0,0,115,8,0,0,0,0,8, +    18,1,12,1,4,1,122,22,80,97,116,104,70,105,110,100, +    101,114,46,102,105,110,100,95,109,111,100,117,108,101,41,12, +    114,105,0,0,0,114,104,0,0,0,114,106,0,0,0,114, +    107,0,0,0,114,177,0,0,0,114,244,0,0,0,114,249, +    0,0,0,114,251,0,0,0,114,252,0,0,0,114,255,0, +    0,0,114,175,0,0,0,114,176,0,0,0,114,4,0,0,      0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, -    218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, -    32,5,0,0,115,34,0,0,0,0,2,15,1,15,1,6, -    1,6,1,12,1,12,1,18,2,15,1,6,1,21,1,3, -    1,10,1,10,1,10,1,14,1,13,2,114,24,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,41,1,122,95,82,101,116,117,114,110,115,32,97,32,108, -    105,115,116,32,111,102,32,102,105,108,101,45,98,97,115,101, -    100,32,109,111,100,117,108,101,32,108,111,97,100,101,114,115, -    46,10,10,32,32,32,32,69,97,99,104,32,105,116,101,109, -    32,105,115,32,97,32,116,117,112,108,101,32,40,108,111,97, -    100,101,114,44,32,115,117,102,102,105,120,101,115,41,46,10, -    32,32,32,32,41,7,114,224,0,0,0,114,145,0,0,0, -    218,18,101,120,116,101,110,115,105,111,110,95,115,117,102,102, -    105,120,101,115,114,218,0,0,0,114,84,0,0,0,114,223, -    0,0,0,114,74,0,0,0,41,3,90,10,101,120,116,101, -    110,115,105,111,110,115,90,6,115,111,117,114,99,101,90,8, -    98,121,116,101,99,111,100,101,114,4,0,0,0,114,4,0, -    0,0,114,5,0,0,0,114,161,0,0,0,55,5,0,0, -    115,8,0,0,0,0,5,18,1,12,1,12,1,114,161,0, -    0,0,99,1,0,0,0,0,0,0,0,12,0,0,0,12, -    0,0,0,67,0,0,0,115,70,2,0,0,124,0,0,97, -    0,0,116,0,0,106,1,0,97,1,0,116,0,0,106,2, -    0,97,2,0,116,1,0,106,3,0,116,4,0,25,125,1, -    0,120,76,0,100,26,0,68,93,68,0,125,2,0,124,2, -    0,116,1,0,106,3,0,107,7,0,114,83,0,116,0,0, -    106,5,0,124,2,0,131,1,0,125,3,0,110,13,0,116, -    1,0,106,3,0,124,2,0,25,125,3,0,116,6,0,124, -    1,0,124,2,0,124,3,0,131,3,0,1,113,44,0,87, -    100,5,0,100,6,0,103,1,0,102,2,0,100,7,0,100, -    8,0,100,6,0,103,2,0,102,2,0,102,2,0,125,4, -    0,120,149,0,124,4,0,68,93,129,0,92,2,0,125,5, -    0,125,6,0,116,7,0,100,9,0,100,10,0,132,0,0, -    124,6,0,68,131,1,0,131,1,0,115,199,0,116,8,0, -    130,1,0,124,6,0,100,11,0,25,125,7,0,124,5,0, -    116,1,0,106,3,0,107,6,0,114,241,0,116,1,0,106, -    3,0,124,5,0,25,125,8,0,80,113,156,0,121,20,0, -    116,0,0,106,5,0,124,5,0,131,1,0,125,8,0,80, -    87,113,156,0,4,116,9,0,107,10,0,114,28,1,1,1, -    1,119,156,0,89,113,156,0,88,113,156,0,87,116,9,0, -    100,12,0,131,1,0,130,1,0,116,6,0,124,1,0,100, -    13,0,124,8,0,131,3,0,1,116,6,0,124,1,0,100, -    14,0,124,7,0,131,3,0,1,116,6,0,124,1,0,100, -    15,0,100,16,0,106,10,0,124,6,0,131,1,0,131,3, -    0,1,121,19,0,116,0,0,106,5,0,100,17,0,131,1, -    0,125,9,0,87,110,24,0,4,116,9,0,107,10,0,114, -    147,1,1,1,1,100,18,0,125,9,0,89,110,1,0,88, -    116,6,0,124,1,0,100,17,0,124,9,0,131,3,0,1, -    116,0,0,106,5,0,100,19,0,131,1,0,125,10,0,116, -    6,0,124,1,0,100,19,0,124,10,0,131,3,0,1,124, -    5,0,100,7,0,107,2,0,114,238,1,116,0,0,106,5, -    0,100,20,0,131,1,0,125,11,0,116,6,0,124,1,0, -    100,21,0,124,11,0,131,3,0,1,116,6,0,124,1,0, -    100,22,0,116,11,0,131,0,0,131,3,0,1,116,12,0, -    106,13,0,116,2,0,106,14,0,131,0,0,131,1,0,1, -    124,5,0,100,7,0,107,2,0,114,66,2,116,15,0,106, -    16,0,100,23,0,131,1,0,1,100,24,0,116,12,0,107, -    6,0,114,66,2,100,25,0,116,17,0,95,18,0,100,18, -    0,83,41,27,122,205,83,101,116,117,112,32,116,104,101,32, -    112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,114, -    116,101,114,115,32,102,111,114,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,10,32,32,32,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,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,79, -    116,104,101,114,32,99,111,109,112,111,110,101,110,116,115,32, -    97,114,101,32,101,120,116,114,97,99,116,101,100,32,102,114, -    111,109,32,116,104,101,32,99,111,114,101,32,98,111,111,116, -    115,116,114,97,112,32,109,111,100,117,108,101,46,10,10,32, -    32,32,32,114,49,0,0,0,114,60,0,0,0,218,8,98, -    117,105,108,116,105,110,115,114,142,0,0,0,90,5,112,111, -    115,105,120,250,1,47,218,2,110,116,250,1,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,41,2,114,29,0,0,0,78, -    41,1,114,31,0,0,0,41,2,114,22,0,0,0,114,77, +    114,243,0,0,0,4,4,0,0,115,22,0,0,0,12,2, +    6,2,18,8,18,17,18,22,18,15,3,1,18,31,3,1, +    21,21,3,1,114,243,0,0,0,99,0,0,0,0,0,0, +    0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,133, +    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,100,10,0,100,11, +    0,100,12,0,132,1,0,90,10,0,100,13,0,100,14,0, +    132,0,0,90,11,0,101,12,0,100,15,0,100,16,0,132, +    0,0,131,1,0,90,13,0,100,17,0,100,18,0,132,0, +    0,90,14,0,100,10,0,83,41,19,218,10,70,105,108,101, +    70,105,110,100,101,114,122,172,70,105,108,101,45,98,97,115, +    101,100,32,102,105,110,100,101,114,46,10,10,32,32,32,32, +    73,110,116,101,114,97,99,116,105,111,110,115,32,119,105,116, +    104,32,116,104,101,32,102,105,108,101,32,115,121,115,116,101, +    109,32,97,114,101,32,99,97,99,104,101,100,32,102,111,114, +    32,112,101,114,102,111,114,109,97,110,99,101,44,32,98,101, +    105,110,103,10,32,32,32,32,114,101,102,114,101,115,104,101, +    100,32,119,104,101,110,32,116,104,101,32,100,105,114,101,99, +    116,111,114,121,32,116,104,101,32,102,105,110,100,101,114,32, +    105,115,32,104,97,110,100,108,105,110,103,32,104,97,115,32, +    98,101,101,110,32,109,111,100,105,102,105,101,100,46,10,10, +    32,32,32,32,99,2,0,0,0,0,0,0,0,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,41,7,122,154,73,110,105,116, +    105,97,108,105,122,101,32,119,105,116,104,32,116,104,101,32, +    112,97,116,104,32,116,111,32,115,101,97,114,99,104,32,111, +    110,32,97,110,100,32,97,32,118,97,114,105,97,98,108,101, +    32,110,117,109,98,101,114,32,111,102,10,32,32,32,32,32, +    32,32,32,50,45,116,117,112,108,101,115,32,99,111,110,116, +    97,105,110,105,110,103,32,116,104,101,32,108,111,97,100,101, +    114,32,97,110,100,32,116,104,101,32,102,105,108,101,32,115, +    117,102,102,105,120,101,115,32,116,104,101,32,108,111,97,100, +    101,114,10,32,32,32,32,32,32,32,32,114,101,99,111,103, +    110,105,122,101,115,46,99,1,0,0,0,0,0,0,0,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,41,1,78,114,4, +    0,0,0,41,2,114,22,0,0,0,114,219,0,0,0,41, +    1,114,120,0,0,0,114,4,0,0,0,114,5,0,0,0, +    114,221,0,0,0,153,4,0,0,115,2,0,0,0,6,0, +    122,38,70,105,108,101,70,105,110,100,101,114,46,95,95,105, +    110,105,116,95,95,46,60,108,111,99,97,108,115,62,46,60, +    103,101,110,101,120,112,114,62,114,58,0,0,0,114,29,0, +    0,0,78,114,87,0,0,0,41,7,114,143,0,0,0,218, +    8,95,108,111,97,100,101,114,115,114,35,0,0,0,218,11, +    95,112,97,116,104,95,109,116,105,109,101,218,3,115,101,116, +    218,11,95,112,97,116,104,95,99,97,99,104,101,218,19,95, +    114,101,108,97,120,101,100,95,112,97,116,104,95,99,97,99, +    104,101,41,5,114,100,0,0,0,114,35,0,0,0,218,14, +    108,111,97,100,101,114,95,100,101,116,97,105,108,115,90,7, +    108,111,97,100,101,114,115,114,160,0,0,0,114,4,0,0, +    0,41,1,114,120,0,0,0,114,5,0,0,0,114,179,0, +    0,0,147,4,0,0,115,16,0,0,0,0,4,6,1,19, +    1,36,1,9,2,15,1,9,1,12,1,122,19,70,105,108, +    101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95, +    99,1,0,0,0,0,0,0,0,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,41,4,122,31,73,110,118,97,108, +    105,100,97,116,101,32,116,104,101,32,100,105,114,101,99,116, +    111,114,121,32,109,116,105,109,101,46,114,29,0,0,0,78, +    114,87,0,0,0,41,1,114,2,1,0,0,41,1,114,100,      0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, -    0,0,114,227,0,0,0,91,5,0,0,115,2,0,0,0, -    6,0,122,25,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,59,0, -    0,0,122,30,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,114,3,0,0,0,114,25,0,0,0,114,21,0,0, -    0,114,30,0,0,0,90,7,95,116,104,114,101,97,100,78, -    90,8,95,119,101,97,107,114,101,102,90,6,119,105,110,114, -    101,103,114,169,0,0,0,114,6,0,0,0,122,4,46,112, -    121,119,122,6,95,100,46,112,121,100,84,41,4,122,3,95, -    105,111,122,9,95,119,97,114,110,105,110,103,115,122,8,98, -    117,105,108,116,105,110,115,122,7,109,97,114,115,104,97,108, -    41,19,114,121,0,0,0,114,7,0,0,0,114,145,0,0, -    0,114,239,0,0,0,114,112,0,0,0,90,18,95,98,117, -    105,108,116,105,110,95,102,114,111,109,95,110,97,109,101,114, -    116,0,0,0,218,3,97,108,108,218,14,65,115,115,101,114, -    116,105,111,110,69,114,114,111,114,114,107,0,0,0,114,26, -    0,0,0,114,11,0,0,0,114,229,0,0,0,114,149,0, -    0,0,114,25,1,0,0,114,84,0,0,0,114,163,0,0, -    0,114,168,0,0,0,114,173,0,0,0,41,12,218,17,95, -    98,111,111,116,115,116,114,97,112,95,109,111,100,117,108,101, -    90,11,115,101,108,102,95,109,111,100,117,108,101,90,12,98, -    117,105,108,116,105,110,95,110,97,109,101,90,14,98,117,105, -    108,116,105,110,95,109,111,100,117,108,101,90,10,111,115,95, -    100,101,116,97,105,108,115,90,10,98,117,105,108,116,105,110, -    95,111,115,114,21,0,0,0,114,25,0,0,0,90,9,111, -    115,95,109,111,100,117,108,101,90,13,116,104,114,101,97,100, -    95,109,111,100,117,108,101,90,14,119,101,97,107,114,101,102, -    95,109,111,100,117,108,101,90,13,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,218,6,95,115,101,116,117,112,66,5,0, -    0,115,82,0,0,0,0,8,6,1,9,1,9,3,13,1, -    13,1,15,1,18,2,13,1,20,3,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,1,16,1,16,1,25,3,3,1,19,1,13,2, -    11,1,16,3,15,1,16,3,12,1,15,1,16,3,19,1, -    19,1,12,1,13,1,12,1,114,33,1,0,0,99,1,0, -    0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0, -    0,0,115,116,0,0,0,116,0,0,124,0,0,131,1,0, -    1,116,1,0,131,0,0,125,1,0,116,2,0,106,3,0, -    106,4,0,116,5,0,106,6,0,124,1,0,140,0,0,103, -    1,0,131,1,0,1,116,7,0,106,8,0,100,1,0,107, -    2,0,114,78,0,116,2,0,106,9,0,106,10,0,116,11, -    0,131,1,0,1,116,2,0,106,9,0,106,10,0,116,12, -    0,131,1,0,1,116,5,0,124,0,0,95,5,0,116,13, -    0,124,0,0,95,13,0,100,2,0,83,41,3,122,41,73, -    110,115,116,97,108,108,32,116,104,101,32,112,97,116,104,45, -    98,97,115,101,100,32,105,109,112,111,114,116,32,99,111,109, -    112,111,110,101,110,116,115,46,114,28,1,0,0,78,41,14, -    114,33,1,0,0,114,161,0,0,0,114,7,0,0,0,114, -    254,0,0,0,114,149,0,0,0,114,6,1,0,0,114,19, -    1,0,0,114,3,0,0,0,114,112,0,0,0,218,9,109, -    101,116,97,95,112,97,116,104,114,163,0,0,0,114,168,0, -    0,0,114,249,0,0,0,114,218,0,0,0,41,2,114,32, -    1,0,0,90,17,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,218,8,95,105,110,115,116,97,108,108,134, -    5,0,0,115,16,0,0,0,0,2,10,1,9,1,28,1, -    15,1,16,1,16,4,9,1,114,35,1,0,0,41,3,122, -    3,119,105,110,114,1,0,0,0,114,2,0,0,0,41,57, -    114,114,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,39,0,0,0,114,43,0,0,0,114,44,0, -    0,0,114,46,0,0,0,114,55,0,0,0,218,4,116,121, -    112,101,218,8,95,95,99,111,100,101,95,95,114,144,0,0, -    0,114,15,0,0,0,114,135,0,0,0,114,14,0,0,0, -    114,18,0,0,0,90,17,95,82,65,87,95,77,65,71,73, -    67,95,78,85,77,66,69,82,114,73,0,0,0,114,72,0, -    0,0,114,84,0,0,0,114,74,0,0,0,90,23,68,69, -    66,85,71,95,66,89,84,69,67,79,68,69,95,83,85,70, -    70,73,88,69,83,90,27,79,80,84,73,77,73,90,69,68, -    95,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88, -    69,83,114,79,0,0,0,114,85,0,0,0,114,91,0,0, -    0,114,95,0,0,0,114,97,0,0,0,114,105,0,0,0, -    114,123,0,0,0,114,130,0,0,0,114,141,0,0,0,114, -    147,0,0,0,114,150,0,0,0,114,155,0,0,0,218,6, -    111,98,106,101,99,116,114,162,0,0,0,114,167,0,0,0, -    114,168,0,0,0,114,184,0,0,0,114,194,0,0,0,114, -    210,0,0,0,114,218,0,0,0,114,223,0,0,0,114,229, -    0,0,0,114,224,0,0,0,114,230,0,0,0,114,247,0, -    0,0,114,249,0,0,0,114,6,1,0,0,114,24,1,0, -    0,114,161,0,0,0,114,33,1,0,0,114,35,1,0,0, -    114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,114, -    5,0,0,0,218,8,60,109,111,100,117,108,101,62,8,0, -    0,0,115,100,0,0,0,6,17,6,3,12,12,12,5,12, -    5,12,6,12,12,12,10,12,9,12,5,12,7,15,22,15, -    110,22,1,18,2,6,1,6,2,9,2,9,2,10,2,21, -    44,12,33,12,19,12,12,12,12,18,8,12,28,12,17,21, -    55,21,12,18,10,12,14,9,3,12,1,15,65,19,64,19, -    28,22,110,19,41,25,43,25,16,6,3,25,53,19,57,19, -    41,19,134,19,146,15,23,12,11,12,68, +    0,0,114,244,0,0,0,161,4,0,0,115,2,0,0,0, +    0,2,122,28,70,105,108,101,70,105,110,100,101,114,46,105, +    110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115, +    99,2,0,0,0,0,0,0,0,3,0,0,0,2,0,0, +    0,67,0,0,0,115,59,0,0,0,124,0,0,106,0,0, +    124,1,0,131,1,0,125,2,0,124,2,0,100,1,0,107, +    8,0,114,37,0,100,1,0,103,0,0,102,2,0,83,124, +    2,0,106,1,0,124,2,0,106,2,0,112,55,0,103,0, +    0,102,2,0,83,41,2,122,197,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,10,10,32,32,32,32,32,32,32,32, +    84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100, +    101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32, +    102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, +    101,97,100,46,10,10,32,32,32,32,32,32,32,32,78,41, +    3,114,175,0,0,0,114,120,0,0,0,114,150,0,0,0, +    41,3,114,100,0,0,0,114,119,0,0,0,114,158,0,0, +    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    114,117,0,0,0,167,4,0,0,115,8,0,0,0,0,7, +    15,1,12,1,10,1,122,22,70,105,108,101,70,105,110,100, +    101,114,46,102,105,110,100,95,108,111,97,100,101,114,99,6, +    0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,67, +    0,0,0,115,40,0,0,0,124,1,0,124,2,0,124,3, +    0,131,2,0,125,6,0,116,0,0,124,2,0,124,3,0, +    100,1,0,124,6,0,100,2,0,124,4,0,131,2,2,83, +    41,3,78,114,120,0,0,0,114,150,0,0,0,41,1,114, +    161,0,0,0,41,7,114,100,0,0,0,114,159,0,0,0, +    114,119,0,0,0,114,35,0,0,0,90,4,115,109,115,108, +    114,174,0,0,0,114,120,0,0,0,114,4,0,0,0,114, +    4,0,0,0,114,5,0,0,0,114,255,0,0,0,179,4, +    0,0,115,6,0,0,0,0,1,15,1,18,1,122,20,70, +    105,108,101,70,105,110,100,101,114,46,95,103,101,116,95,115, +    112,101,99,78,99,3,0,0,0,0,0,0,0,14,0,0, +    0,15,0,0,0,67,0,0,0,115,228,1,0,0,100,1, +    0,125,3,0,124,1,0,106,0,0,100,2,0,131,1,0, +    100,3,0,25,125,4,0,121,34,0,116,1,0,124,0,0, +    106,2,0,112,49,0,116,3,0,106,4,0,131,0,0,131, +    1,0,106,5,0,125,5,0,87,110,24,0,4,116,6,0, +    107,10,0,114,85,0,1,1,1,100,10,0,125,5,0,89, +    110,1,0,88,124,5,0,124,0,0,106,7,0,107,3,0, +    114,120,0,124,0,0,106,8,0,131,0,0,1,124,5,0, +    124,0,0,95,7,0,116,9,0,131,0,0,114,153,0,124, +    0,0,106,10,0,125,6,0,124,4,0,106,11,0,131,0, +    0,125,7,0,110,15,0,124,0,0,106,12,0,125,6,0, +    124,4,0,125,7,0,124,7,0,124,6,0,107,6,0,114, +    45,1,116,13,0,124,0,0,106,2,0,124,4,0,131,2, +    0,125,8,0,120,100,0,124,0,0,106,14,0,68,93,77, +    0,92,2,0,125,9,0,125,10,0,100,5,0,124,9,0, +    23,125,11,0,116,13,0,124,8,0,124,11,0,131,2,0, +    125,12,0,116,15,0,124,12,0,131,1,0,114,208,0,124, +    0,0,106,16,0,124,10,0,124,1,0,124,12,0,124,8, +    0,103,1,0,124,2,0,131,5,0,83,113,208,0,87,116, +    17,0,124,8,0,131,1,0,125,3,0,120,120,0,124,0, +    0,106,14,0,68,93,109,0,92,2,0,125,9,0,125,10, +    0,116,13,0,124,0,0,106,2,0,124,4,0,124,9,0, +    23,131,2,0,125,12,0,116,18,0,106,19,0,100,6,0, +    124,12,0,100,7,0,100,3,0,131,2,1,1,124,7,0, +    124,9,0,23,124,6,0,107,6,0,114,55,1,116,15,0, +    124,12,0,131,1,0,114,55,1,124,0,0,106,16,0,124, +    10,0,124,1,0,124,12,0,100,8,0,124,2,0,131,5, +    0,83,113,55,1,87,124,3,0,114,224,1,116,18,0,106, +    19,0,100,9,0,124,8,0,131,2,0,1,116,18,0,106, +    20,0,124,1,0,100,8,0,131,2,0,125,13,0,124,8, +    0,103,1,0,124,13,0,95,21,0,124,13,0,83,100,8, +    0,83,41,11,122,125,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,58,0,0,0,114,56,0,0,0,114,29, +    0,0,0,114,179,0,0,0,122,9,116,114,121,105,110,103, +    32,123,125,90,9,118,101,114,98,111,115,105,116,121,78,122, +    25,112,111,115,115,105,98,108,101,32,110,97,109,101,115,112, +    97,99,101,32,102,111,114,32,123,125,114,87,0,0,0,41, +    22,114,32,0,0,0,114,39,0,0,0,114,35,0,0,0, +    114,3,0,0,0,114,45,0,0,0,114,213,0,0,0,114, +    40,0,0,0,114,2,1,0,0,218,11,95,102,105,108,108, +    95,99,97,99,104,101,114,6,0,0,0,114,5,1,0,0, +    114,88,0,0,0,114,4,1,0,0,114,28,0,0,0,114, +    1,1,0,0,114,44,0,0,0,114,255,0,0,0,114,46, +    0,0,0,114,114,0,0,0,114,129,0,0,0,114,154,0, +    0,0,114,150,0,0,0,41,14,114,100,0,0,0,114,119, +    0,0,0,114,174,0,0,0,90,12,105,115,95,110,97,109, +    101,115,112,97,99,101,90,11,116,97,105,108,95,109,111,100, +    117,108,101,114,126,0,0,0,90,5,99,97,99,104,101,90, +    12,99,97,99,104,101,95,109,111,100,117,108,101,90,9,98, +    97,115,101,95,112,97,116,104,114,219,0,0,0,114,159,0, +    0,0,90,13,105,110,105,116,95,102,105,108,101,110,97,109, +    101,90,9,102,117,108,108,95,112,97,116,104,114,158,0,0, +    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    114,175,0,0,0,184,4,0,0,115,70,0,0,0,0,3, +    6,1,19,1,3,1,34,1,13,1,11,1,15,1,10,1, +    9,2,9,1,9,1,15,2,9,1,6,2,12,1,18,1, +    22,1,10,1,15,1,12,1,32,4,12,2,22,1,22,1, +    22,1,16,1,12,1,15,1,14,1,6,1,16,1,18,1, +    12,1,4,1,122,20,70,105,108,101,70,105,110,100,101,114, +    46,102,105,110,100,95,115,112,101,99,99,1,0,0,0,0, +    0,0,0,9,0,0,0,13,0,0,0,67,0,0,0,115, +    11,1,0,0,124,0,0,106,0,0,125,1,0,121,31,0, +    116,1,0,106,2,0,124,1,0,112,33,0,116,1,0,106, +    3,0,131,0,0,131,1,0,125,2,0,87,110,33,0,4, +    116,4,0,116,5,0,116,6,0,102,3,0,107,10,0,114, +    75,0,1,1,1,103,0,0,125,2,0,89,110,1,0,88, +    116,7,0,106,8,0,106,9,0,100,1,0,131,1,0,115, +    112,0,116,10,0,124,2,0,131,1,0,124,0,0,95,11, +    0,110,111,0,116,10,0,131,0,0,125,3,0,120,90,0, +    124,2,0,68,93,82,0,125,4,0,124,4,0,106,12,0, +    100,2,0,131,1,0,92,3,0,125,5,0,125,6,0,125, +    7,0,124,6,0,114,191,0,100,3,0,106,13,0,124,5, +    0,124,7,0,106,14,0,131,0,0,131,2,0,125,8,0, +    110,6,0,124,5,0,125,8,0,124,3,0,106,15,0,124, +    8,0,131,1,0,1,113,128,0,87,124,3,0,124,0,0, +    95,11,0,116,7,0,106,8,0,106,9,0,116,16,0,131, +    1,0,114,7,1,100,4,0,100,5,0,132,0,0,124,2, +    0,68,131,1,0,124,0,0,95,17,0,100,6,0,83,41, +    7,122,68,70,105,108,108,32,116,104,101,32,99,97,99,104, +    101,32,111,102,32,112,111,116,101,110,116,105,97,108,32,109, +    111,100,117,108,101,115,32,97,110,100,32,112,97,99,107,97, +    103,101,115,32,102,111,114,32,116,104,105,115,32,100,105,114, +    101,99,116,111,114,121,46,114,0,0,0,0,114,58,0,0, +    0,122,5,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,41,1,114,88,0,0,0,41,2,114,22,0,0, +    0,90,2,102,110,114,4,0,0,0,114,4,0,0,0,114, +    5,0,0,0,250,9,60,115,101,116,99,111,109,112,62,3, +    5,0,0,115,2,0,0,0,9,0,122,41,70,105,108,101, +    70,105,110,100,101,114,46,95,102,105,108,108,95,99,97,99, +    104,101,46,60,108,111,99,97,108,115,62,46,60,115,101,116, +    99,111,109,112,62,78,41,18,114,35,0,0,0,114,3,0, +    0,0,90,7,108,105,115,116,100,105,114,114,45,0,0,0, +    114,250,0,0,0,218,15,80,101,114,109,105,115,115,105,111, +    110,69,114,114,111,114,218,18,78,111,116,65,68,105,114,101, +    99,116,111,114,121,69,114,114,111,114,114,7,0,0,0,114, +    8,0,0,0,114,9,0,0,0,114,3,1,0,0,114,4, +    1,0,0,114,83,0,0,0,114,47,0,0,0,114,88,0, +    0,0,218,3,97,100,100,114,10,0,0,0,114,5,1,0, +    0,41,9,114,100,0,0,0,114,35,0,0,0,90,8,99, +    111,110,116,101,110,116,115,90,21,108,111,119,101,114,95,115, +    117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,239, +    0,0,0,114,98,0,0,0,114,231,0,0,0,114,219,0, +    0,0,90,8,110,101,119,95,110,97,109,101,114,4,0,0, +    0,114,4,0,0,0,114,5,0,0,0,114,7,1,0,0, +    230,4,0,0,115,34,0,0,0,0,2,9,1,3,1,31, +    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,122,22,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,41,3,97,20,1,0,0,65,32,99, +    108,97,115,115,32,109,101,116,104,111,100,32,119,104,105,99, +    104,32,114,101,116,117,114,110,115,32,97,32,99,108,111,115, +    117,114,101,32,116,111,32,117,115,101,32,111,110,32,115,121, +    115,46,112,97,116,104,95,104,111,111,107,10,32,32,32,32, +    32,32,32,32,119,104,105,99,104,32,119,105,108,108,32,114, +    101,116,117,114,110,32,97,110,32,105,110,115,116,97,110,99, +    101,32,117,115,105,110,103,32,116,104,101,32,115,112,101,99, +    105,102,105,101,100,32,108,111,97,100,101,114,115,32,97,110, +    100,32,116,104,101,32,112,97,116,104,10,32,32,32,32,32, +    32,32,32,99,97,108,108,101,100,32,111,110,32,116,104,101, +    32,99,108,111,115,117,114,101,46,10,10,32,32,32,32,32, +    32,32,32,73,102,32,116,104,101,32,112,97,116,104,32,99, +    97,108,108,101,100,32,111,110,32,116,104,101,32,99,108,111, +    115,117,114,101,32,105,115,32,110,111,116,32,97,32,100,105, +    114,101,99,116,111,114,121,44,32,73,109,112,111,114,116,69, +    114,114,111,114,32,105,115,10,32,32,32,32,32,32,32,32, +    114,97,105,115,101,100,46,10,10,32,32,32,32,32,32,32, +    32,99,1,0,0,0,0,0,0,0,1,0,0,0,4,0, +    0,0,19,0,0,0,115,43,0,0,0,116,0,0,124,0, +    0,131,1,0,115,30,0,116,1,0,100,1,0,100,2,0, +    124,0,0,131,1,1,130,1,0,136,0,0,124,0,0,136, +    1,0,140,1,0,83,41,3,122,45,80,97,116,104,32,104, +    111,111,107,32,102,111,114,32,105,109,112,111,114,116,108,105, +    98,46,109,97,99,104,105,110,101,114,121,46,70,105,108,101, +    70,105,110,100,101,114,46,122,30,111,110,108,121,32,100,105, +    114,101,99,116,111,114,105,101,115,32,97,114,101,32,115,117, +    112,112,111,114,116,101,100,114,35,0,0,0,41,2,114,46, +    0,0,0,114,99,0,0,0,41,1,114,35,0,0,0,41, +    2,114,164,0,0,0,114,6,1,0,0,114,4,0,0,0, +    114,5,0,0,0,218,24,112,97,116,104,95,104,111,111,107, +    95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,15, +    5,0,0,115,6,0,0,0,0,2,12,1,18,1,122,54, +    70,105,108,101,70,105,110,100,101,114,46,112,97,116,104,95, +    104,111,111,107,46,60,108,111,99,97,108,115,62,46,112,97, +    116,104,95,104,111,111,107,95,102,111,114,95,70,105,108,101, +    70,105,110,100,101,114,114,4,0,0,0,41,3,114,164,0, +    0,0,114,6,1,0,0,114,12,1,0,0,114,4,0,0, +    0,41,2,114,164,0,0,0,114,6,1,0,0,114,5,0, +    0,0,218,9,112,97,116,104,95,104,111,111,107,5,5,0, +    0,115,4,0,0,0,0,10,21,6,122,20,70,105,108,101, +    70,105,110,100,101,114,46,112,97,116,104,95,104,111,111,107, +    99,1,0,0,0,0,0,0,0,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,41,2,78,122,16,70, +    105,108,101,70,105,110,100,101,114,40,123,33,114,125,41,41, +    2,114,47,0,0,0,114,35,0,0,0,41,1,114,100,0, +    0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, +    0,114,238,0,0,0,23,5,0,0,115,2,0,0,0,0, +    1,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95, +    114,101,112,114,95,95,41,15,114,105,0,0,0,114,104,0, +    0,0,114,106,0,0,0,114,107,0,0,0,114,179,0,0, +    0,114,244,0,0,0,114,123,0,0,0,114,176,0,0,0, +    114,117,0,0,0,114,255,0,0,0,114,175,0,0,0,114, +    7,1,0,0,114,177,0,0,0,114,13,1,0,0,114,238, +    0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0, +    0,0,114,5,0,0,0,114,0,1,0,0,138,4,0,0, +    115,20,0,0,0,12,7,6,2,12,14,12,4,6,2,12, +    12,12,5,15,46,12,31,18,18,114,0,1,0,0,99,4, +    0,0,0,0,0,0,0,6,0,0,0,11,0,0,0,67, +    0,0,0,115,195,0,0,0,124,0,0,106,0,0,100,1, +    0,131,1,0,125,4,0,124,0,0,106,0,0,100,2,0, +    131,1,0,125,5,0,124,4,0,115,99,0,124,5,0,114, +    54,0,124,5,0,106,1,0,125,4,0,110,45,0,124,2, +    0,124,3,0,107,2,0,114,84,0,116,2,0,124,1,0, +    124,2,0,131,2,0,125,4,0,110,15,0,116,3,0,124, +    1,0,124,2,0,131,2,0,125,4,0,124,5,0,115,126, +    0,116,4,0,124,1,0,124,2,0,100,3,0,124,4,0, +    131,2,1,125,5,0,121,44,0,124,5,0,124,0,0,100, +    2,0,60,124,4,0,124,0,0,100,1,0,60,124,2,0, +    124,0,0,100,4,0,60,124,3,0,124,0,0,100,5,0, +    60,87,110,18,0,4,116,5,0,107,10,0,114,190,0,1, +    1,1,89,110,1,0,88,100,0,0,83,41,6,78,218,10, +    95,95,108,111,97,100,101,114,95,95,218,8,95,95,115,112, +    101,99,95,95,114,120,0,0,0,90,8,95,95,102,105,108, +    101,95,95,90,10,95,95,99,97,99,104,101,100,95,95,41, +    6,218,3,103,101,116,114,120,0,0,0,114,217,0,0,0, +    114,212,0,0,0,114,161,0,0,0,218,9,69,120,99,101, +    112,116,105,111,110,41,6,90,2,110,115,114,98,0,0,0, +    90,8,112,97,116,104,110,97,109,101,90,9,99,112,97,116, +    104,110,97,109,101,114,120,0,0,0,114,158,0,0,0,114, +    4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,14, +    95,102,105,120,95,117,112,95,109,111,100,117,108,101,29,5, +    0,0,115,34,0,0,0,0,2,15,1,15,1,6,1,6, +    1,12,1,12,1,18,2,15,1,6,1,21,1,3,1,10, +    1,10,1,10,1,14,1,13,2,114,18,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,41, +    1,122,95,82,101,116,117,114,110,115,32,97,32,108,105,115, +    116,32,111,102,32,102,105,108,101,45,98,97,115,101,100,32, +    109,111,100,117,108,101,32,108,111,97,100,101,114,115,46,10, +    10,32,32,32,32,69,97,99,104,32,105,116,101,109,32,105, +    115,32,97,32,116,117,112,108,101,32,40,108,111,97,100,101, +    114,44,32,115,117,102,102,105,120,101,115,41,46,10,32,32, +    32,32,41,7,114,218,0,0,0,114,139,0,0,0,218,18, +    101,120,116,101,110,115,105,111,110,95,115,117,102,102,105,120, +    101,115,114,212,0,0,0,114,84,0,0,0,114,217,0,0, +    0,114,74,0,0,0,41,3,90,10,101,120,116,101,110,115, +    105,111,110,115,90,6,115,111,117,114,99,101,90,8,98,121, +    116,101,99,111,100,101,114,4,0,0,0,114,4,0,0,0, +    114,5,0,0,0,114,155,0,0,0,52,5,0,0,115,8, +    0,0,0,0,5,18,1,12,1,12,1,114,155,0,0,0, +    99,1,0,0,0,0,0,0,0,12,0,0,0,12,0,0, +    0,67,0,0,0,115,70,2,0,0,124,0,0,97,0,0, +    116,0,0,106,1,0,97,1,0,116,0,0,106,2,0,97, +    2,0,116,1,0,106,3,0,116,4,0,25,125,1,0,120, +    76,0,100,26,0,68,93,68,0,125,2,0,124,2,0,116, +    1,0,106,3,0,107,7,0,114,83,0,116,0,0,106,5, +    0,124,2,0,131,1,0,125,3,0,110,13,0,116,1,0, +    106,3,0,124,2,0,25,125,3,0,116,6,0,124,1,0, +    124,2,0,124,3,0,131,3,0,1,113,44,0,87,100,5, +    0,100,6,0,103,1,0,102,2,0,100,7,0,100,8,0, +    100,6,0,103,2,0,102,2,0,102,2,0,125,4,0,120, +    149,0,124,4,0,68,93,129,0,92,2,0,125,5,0,125, +    6,0,116,7,0,100,9,0,100,10,0,132,0,0,124,6, +    0,68,131,1,0,131,1,0,115,199,0,116,8,0,130,1, +    0,124,6,0,100,11,0,25,125,7,0,124,5,0,116,1, +    0,106,3,0,107,6,0,114,241,0,116,1,0,106,3,0, +    124,5,0,25,125,8,0,80,113,156,0,121,20,0,116,0, +    0,106,5,0,124,5,0,131,1,0,125,8,0,80,87,113, +    156,0,4,116,9,0,107,10,0,114,28,1,1,1,1,119, +    156,0,89,113,156,0,88,113,156,0,87,116,9,0,100,12, +    0,131,1,0,130,1,0,116,6,0,124,1,0,100,13,0, +    124,8,0,131,3,0,1,116,6,0,124,1,0,100,14,0, +    124,7,0,131,3,0,1,116,6,0,124,1,0,100,15,0, +    100,16,0,106,10,0,124,6,0,131,1,0,131,3,0,1, +    121,19,0,116,0,0,106,5,0,100,17,0,131,1,0,125, +    9,0,87,110,24,0,4,116,9,0,107,10,0,114,147,1, +    1,1,1,100,18,0,125,9,0,89,110,1,0,88,116,6, +    0,124,1,0,100,17,0,124,9,0,131,3,0,1,116,0, +    0,106,5,0,100,19,0,131,1,0,125,10,0,116,6,0, +    124,1,0,100,19,0,124,10,0,131,3,0,1,124,5,0, +    100,7,0,107,2,0,114,238,1,116,0,0,106,5,0,100, +    20,0,131,1,0,125,11,0,116,6,0,124,1,0,100,21, +    0,124,11,0,131,3,0,1,116,6,0,124,1,0,100,22, +    0,116,11,0,131,0,0,131,3,0,1,116,12,0,106,13, +    0,116,2,0,106,14,0,131,0,0,131,1,0,1,124,5, +    0,100,7,0,107,2,0,114,66,2,116,15,0,106,16,0, +    100,23,0,131,1,0,1,100,24,0,116,12,0,107,6,0, +    114,66,2,100,25,0,116,17,0,95,18,0,100,18,0,83, +    41,27,122,205,83,101,116,117,112,32,116,104,101,32,112,97, +    116,104,45,98,97,115,101,100,32,105,109,112,111,114,116,101, +    114,115,32,102,111,114,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,10,32,32,32,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,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,79,116,104, +    101,114,32,99,111,109,112,111,110,101,110,116,115,32,97,114, +    101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,109, +    32,116,104,101,32,99,111,114,101,32,98,111,111,116,115,116, +    114,97,112,32,109,111,100,117,108,101,46,10,10,32,32,32, +    32,114,49,0,0,0,114,60,0,0,0,218,8,98,117,105, +    108,116,105,110,115,114,136,0,0,0,90,5,112,111,115,105, +    120,250,1,47,218,2,110,116,250,1,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,41,2,114,29,0,0,0,78,41,1, +    114,31,0,0,0,41,2,114,22,0,0,0,114,77,0,0, +    0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, +    114,221,0,0,0,88,5,0,0,115,2,0,0,0,6,0, +    122,25,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,59,0,0,0, +    122,30,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, +    114,3,0,0,0,114,25,0,0,0,114,21,0,0,0,114, +    30,0,0,0,90,7,95,116,104,114,101,97,100,78,90,8, +    95,119,101,97,107,114,101,102,90,6,119,105,110,114,101,103, +    114,163,0,0,0,114,6,0,0,0,122,4,46,112,121,119, +    122,6,95,100,46,112,121,100,84,41,4,122,3,95,105,111, +    122,9,95,119,97,114,110,105,110,103,115,122,8,98,117,105, +    108,116,105,110,115,122,7,109,97,114,115,104,97,108,41,19, +    114,114,0,0,0,114,7,0,0,0,114,139,0,0,0,114, +    233,0,0,0,114,105,0,0,0,90,18,95,98,117,105,108, +    116,105,110,95,102,114,111,109,95,110,97,109,101,114,109,0, +    0,0,218,3,97,108,108,218,14,65,115,115,101,114,116,105, +    111,110,69,114,114,111,114,114,99,0,0,0,114,26,0,0, +    0,114,11,0,0,0,114,223,0,0,0,114,143,0,0,0, +    114,19,1,0,0,114,84,0,0,0,114,157,0,0,0,114, +    162,0,0,0,114,167,0,0,0,41,12,218,17,95,98,111, +    111,116,115,116,114,97,112,95,109,111,100,117,108,101,90,11, +    115,101,108,102,95,109,111,100,117,108,101,90,12,98,117,105, +    108,116,105,110,95,110,97,109,101,90,14,98,117,105,108,116, +    105,110,95,109,111,100,117,108,101,90,10,111,115,95,100,101, +    116,97,105,108,115,90,10,98,117,105,108,116,105,110,95,111, +    115,114,21,0,0,0,114,25,0,0,0,90,9,111,115,95, +    109,111,100,117,108,101,90,13,116,104,114,101,97,100,95,109, +    111,100,117,108,101,90,14,119,101,97,107,114,101,102,95,109, +    111,100,117,108,101,90,13,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,218,6,95,115,101,116,117,112,63,5,0,0,115, +    82,0,0,0,0,8,6,1,9,1,9,3,13,1,13,1, +    15,1,18,2,13,1,20,3,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,1,16,1,16,1,25,3,3,1,19,1,13,2,11,1, +    16,3,15,1,16,3,12,1,15,1,16,3,19,1,19,1, +    12,1,13,1,12,1,114,27,1,0,0,99,1,0,0,0, +    0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0, +    115,116,0,0,0,116,0,0,124,0,0,131,1,0,1,116, +    1,0,131,0,0,125,1,0,116,2,0,106,3,0,106,4, +    0,116,5,0,106,6,0,124,1,0,140,0,0,103,1,0, +    131,1,0,1,116,7,0,106,8,0,100,1,0,107,2,0, +    114,78,0,116,2,0,106,9,0,106,10,0,116,11,0,131, +    1,0,1,116,2,0,106,9,0,106,10,0,116,12,0,131, +    1,0,1,116,5,0,124,0,0,95,5,0,116,13,0,124, +    0,0,95,13,0,100,2,0,83,41,3,122,41,73,110,115, +    116,97,108,108,32,116,104,101,32,112,97,116,104,45,98,97, +    115,101,100,32,105,109,112,111,114,116,32,99,111,109,112,111, +    110,101,110,116,115,46,114,22,1,0,0,78,41,14,114,27, +    1,0,0,114,155,0,0,0,114,7,0,0,0,114,248,0, +    0,0,114,143,0,0,0,114,0,1,0,0,114,13,1,0, +    0,114,3,0,0,0,114,105,0,0,0,218,9,109,101,116, +    97,95,112,97,116,104,114,157,0,0,0,114,162,0,0,0, +    114,243,0,0,0,114,212,0,0,0,41,2,114,26,1,0, +    0,90,17,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,218,8,95,105,110,115,116,97,108,108,131,5,0, +    0,115,16,0,0,0,0,2,10,1,9,1,28,1,15,1, +    16,1,16,4,9,1,114,29,1,0,0,41,3,122,3,119, +    105,110,114,1,0,0,0,114,2,0,0,0,41,56,114,107, +    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,39,0,0,0,114,43,0,0,0,114,44,0,0,0, +    114,46,0,0,0,114,55,0,0,0,218,4,116,121,112,101, +    218,8,95,95,99,111,100,101,95,95,114,138,0,0,0,114, +    15,0,0,0,114,128,0,0,0,114,14,0,0,0,114,18, +    0,0,0,90,17,95,82,65,87,95,77,65,71,73,67,95, +    78,85,77,66,69,82,114,73,0,0,0,114,72,0,0,0, +    114,84,0,0,0,114,74,0,0,0,90,23,68,69,66,85, +    71,95,66,89,84,69,67,79,68,69,95,83,85,70,70,73, +    88,69,83,90,27,79,80,84,73,77,73,90,69,68,95,66, +    89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,83, +    114,79,0,0,0,114,85,0,0,0,114,91,0,0,0,114, +    95,0,0,0,114,97,0,0,0,114,116,0,0,0,114,123, +    0,0,0,114,135,0,0,0,114,141,0,0,0,114,144,0, +    0,0,114,149,0,0,0,218,6,111,98,106,101,99,116,114, +    156,0,0,0,114,161,0,0,0,114,162,0,0,0,114,178, +    0,0,0,114,188,0,0,0,114,204,0,0,0,114,212,0, +    0,0,114,217,0,0,0,114,223,0,0,0,114,218,0,0, +    0,114,224,0,0,0,114,241,0,0,0,114,243,0,0,0, +    114,0,1,0,0,114,18,1,0,0,114,155,0,0,0,114, +    27,1,0,0,114,29,1,0,0,114,4,0,0,0,114,4, +    0,0,0,114,4,0,0,0,114,5,0,0,0,218,8,60, +    109,111,100,117,108,101,62,8,0,0,0,115,98,0,0,0, +    6,17,6,3,12,12,12,5,12,5,12,6,12,12,12,10, +    12,9,12,5,12,7,15,22,15,111,22,1,18,2,6,1, +    6,2,9,2,9,2,10,2,21,44,12,33,12,19,12,12, +    12,12,12,28,12,17,21,55,21,12,18,10,12,14,9,3, +    12,1,15,65,19,64,19,28,22,110,19,41,25,45,25,16, +    6,3,25,53,19,57,19,42,19,134,19,147,15,23,12,11, +    12,68,  }; diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index 19259e1..3872256 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -154,7 +154,7 @@ static void *opcode_targets[256] = {      &&TARGET_BUILD_TUPLE_UNPACK,      &&TARGET_BUILD_SET_UNPACK,      &&TARGET_SETUP_ASYNC_WITH, -    &&_unknown_opcode, +    &&TARGET_FORMAT_VALUE,      &&_unknown_opcode,      &&_unknown_opcode,      &&_unknown_opcode, diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 4f5efc9..b7f6ec8 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -154,8 +154,8 @@ Py_SetStandardStreamEncoding(const char *encoding, const char *errors)      return 0;  } -/* Global initializations.  Can be undone by Py_Finalize().  Don't -   call this twice without an intervening Py_Finalize() call.  When +/* Global initializations.  Can be undone by Py_FinalizeEx().  Don't +   call this twice without an intervening Py_FinalizeEx() call.  When     initializations fail, a fatal error is issued and the function does     not return.  On return, the first thread and interpreter state have     been created. @@ -327,11 +327,11 @@ _Py_InitializeEx_Private(int install_sigs, int install_importlib)      (void) PyThreadState_Swap(tstate);  #ifdef WITH_THREAD -    /* We can't call _PyEval_FiniThreads() in Py_Finalize because +    /* We can't call _PyEval_FiniThreads() in Py_FinalizeEx because         destroying the GIL might fail when it is being referenced from         another running thread (see issue #9901).         Instead we destroy the previously created GIL here, which ensures -       that we can call Py_Initialize / Py_Finalize multiple times. */ +       that we can call Py_Initialize / Py_FinalizeEx multiple times. */      _PyEval_FiniThreads();      /* Auto-thread-state API */ @@ -477,28 +477,35 @@ file_is_closed(PyObject *fobj)      return r > 0;  } -static void +static int  flush_std_files(void)  {      PyObject *fout = _PySys_GetObjectId(&PyId_stdout);      PyObject *ferr = _PySys_GetObjectId(&PyId_stderr);      PyObject *tmp; +    int status = 0;      if (fout != NULL && fout != Py_None && !file_is_closed(fout)) {          tmp = _PyObject_CallMethodId(fout, &PyId_flush, ""); -        if (tmp == NULL) +        if (tmp == NULL) {              PyErr_WriteUnraisable(fout); +            status = -1; +        }          else              Py_DECREF(tmp);      }      if (ferr != NULL && ferr != Py_None && !file_is_closed(ferr)) {          tmp = _PyObject_CallMethodId(ferr, &PyId_flush, ""); -        if (tmp == NULL) +        if (tmp == NULL) {              PyErr_Clear(); +            status = -1; +        }          else              Py_DECREF(tmp);      } + +    return status;  }  /* Undo the effect of Py_Initialize(). @@ -515,14 +522,15 @@ flush_std_files(void)  */ -void -Py_Finalize(void) +int +Py_FinalizeEx(void)  {      PyInterpreterState *interp;      PyThreadState *tstate; +    int status = 0;      if (!initialized) -        return; +        return status;      wait_for_thread_shutdown(); @@ -547,7 +555,9 @@ Py_Finalize(void)      initialized = 0;      /* Flush sys.stdout and sys.stderr */ -    flush_std_files(); +    if (flush_std_files() < 0) { +        status = -1; +    }      /* Disable signal handling */      PyOS_FiniInterrupts(); @@ -576,7 +586,9 @@ Py_Finalize(void)      PyImport_Cleanup();      /* Flush sys.stdout and sys.stderr (again, in case more was printed) */ -    flush_std_files(); +    if (flush_std_files() < 0) { +        status = -1; +    }      /* Collect final garbage.  This disposes of cycles created by       * class definitions, for example. @@ -696,6 +708,13 @@ Py_Finalize(void)  #endif      call_ll_exitfuncs(); +    return status; +} + +void +Py_Finalize(void) +{ +    Py_FinalizeEx();  }  /* Create and initialize a new interpreter and thread, and return the @@ -803,7 +822,7 @@ handle_error:     frames, and that it is its interpreter's only remaining thread.     It is a fatal error to violate these constraints. -   (Py_Finalize() doesn't have these constraints -- it zaps +   (Py_FinalizeEx() doesn't have these constraints -- it zaps     everything, regardless.)     Locking: as above. @@ -972,6 +991,9 @@ is_valid_fd(int fd)      if (fd < 0 || !_PyVerify_fd(fd))          return 0;      _Py_BEGIN_SUPPRESS_IPH +    /* Prefer dup() over fstat(). fstat() can require input/output whereas +       dup() doesn't, there is a low risk of EMFILE/ENFILE at Python +       startup. */      fd2 = dup(fd);      if (fd2 >= 0)          close(fd2); @@ -1013,7 +1035,8 @@ create_stdio(PyObject* io,          mode = "rb";      buf = _PyObject_CallMethodId(io, &PyId_open, "isiOOOi",                                   fd, mode, buffering, -                                 Py_None, Py_None, Py_None, 0); +                                 Py_None, Py_None, /* encoding, errors */ +                                 Py_None, 0); /* newline, closefd */      if (buf == NULL)          goto error; @@ -1447,7 +1470,9 @@ call_ll_exitfuncs(void)  void  Py_Exit(int sts)  { -    Py_Finalize(); +    if (Py_FinalizeEx() < 0) { +        sts = 120; +    }      exit(sts);  } diff --git a/Python/pystate.c b/Python/pystate.c index 7e0267a..50edfbb 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -686,7 +686,7 @@ PyThreadState_IsCurrent(PyThreadState *tstate)  }  /* Internal initialization/finalization functions called by -   Py_Initialize/Py_Finalize +   Py_Initialize/Py_FinalizeEx  */  void  _PyGILState_Init(PyInterpreterState *i, PyThreadState *t) diff --git a/Python/pythonrun.c b/Python/pythonrun.c index ebedd12..1a5dab5 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -431,7 +431,7 @@ static int  parse_syntax_error(PyObject *err, PyObject **message, PyObject **filename,                     int *lineno, int *offset, PyObject **text)  { -    long hold; +    int hold;      PyObject *v;      _Py_IDENTIFIER(msg);      _Py_IDENTIFIER(filename); @@ -464,11 +464,11 @@ parse_syntax_error(PyObject *err, PyObject **message, PyObject **filename,      v = _PyObject_GetAttrId(err, &PyId_lineno);      if (!v)          goto finally; -    hold = PyLong_AsLong(v); +    hold = _PyLong_AsInt(v);      Py_DECREF(v);      if (hold < 0 && PyErr_Occurred())          goto finally; -    *lineno = (int)hold; +    *lineno = hold;      v = _PyObject_GetAttrId(err, &PyId_offset);      if (!v) @@ -477,11 +477,11 @@ parse_syntax_error(PyObject *err, PyObject **message, PyObject **filename,          *offset = -1;          Py_DECREF(v);      } else { -        hold = PyLong_AsLong(v); +        hold = _PyLong_AsInt(v);          Py_DECREF(v);          if (hold < 0 && PyErr_Occurred())              goto finally; -        *offset = (int)hold; +        *offset = hold;      }      v = _PyObject_GetAttrId(err, &PyId_text); diff --git a/Python/pytime.c b/Python/pytime.c index 7f65824..81682ca 100644 --- a/Python/pytime.c +++ b/Python/pytime.c @@ -7,6 +7,11 @@  #include <mach/mach_time.h>   /* mach_absolute_time(), mach_timebase_info() */  #endif +#define _PyTime_check_mul_overflow(a, b) \ +    (assert(b > 0), \ +     (_PyTime_t)(a) < _PyTime_MIN / (_PyTime_t)(b) \ +     || _PyTime_MAX / (_PyTime_t)(b) < (_PyTime_t)(a)) +  /* To millisecond (10^-3) */  #define SEC_TO_MS 1000 @@ -38,7 +43,7 @@ _PyLong_AsTime_t(PyObject *obj)      val = PyLong_AsLongLong(obj);  #else      long val; -    assert(sizeof(time_t) <= sizeof(long)); +    Py_BUILD_ASSERT(sizeof(time_t) <= sizeof(long));      val = PyLong_AsLong(obj);  #endif      if (val == -1 && PyErr_Occurred()) { @@ -55,55 +60,88 @@ _PyLong_FromTime_t(time_t t)  #if defined(HAVE_LONG_LONG) && SIZEOF_TIME_T == SIZEOF_LONG_LONG      return PyLong_FromLongLong((PY_LONG_LONG)t);  #else -    assert(sizeof(time_t) <= sizeof(long)); +    Py_BUILD_ASSERT(sizeof(time_t) <= sizeof(long));      return PyLong_FromLong((long)t);  #endif  } +/* Round to nearest with ties going to nearest even integer +   (_PyTime_ROUND_HALF_EVEN) */ +static double +_PyTime_RoundHalfEven(double x) +{ +    double rounded = round(x); +    if (fabs(x-rounded) == 0.5) +        /* halfway case: round to even */ +        rounded = 2.0*round(x/2.0); +    return rounded; +} + +static double +_PyTime_Round(double x, _PyTime_round_t round) +{ +    /* volatile avoids optimization changing how numbers are rounded */ +    volatile double d; + +    d = x; +    if (round == _PyTime_ROUND_HALF_EVEN) +        d = _PyTime_RoundHalfEven(d); +    else if (round == _PyTime_ROUND_CEILING) +        d = ceil(d); +    else +        d = floor(d); +    return d; +} +  static int -_PyTime_ObjectToDenominator(PyObject *obj, time_t *sec, long *numerator, +_PyTime_DoubleToDenominator(double d, time_t *sec, long *numerator,                              double denominator, _PyTime_round_t round)  { -    assert(denominator <= LONG_MAX); -    if (PyFloat_Check(obj)) { -        double d, intpart, err; -        /* volatile avoids unsafe optimization on float enabled by gcc -O3 */ -        volatile double floatpart; +    double intpart, err; +    /* volatile avoids optimization changing how numbers are rounded */ +    volatile double floatpart; -        d = PyFloat_AsDouble(obj); -        floatpart = modf(d, &intpart); -        if (floatpart < 0) { -            floatpart = 1.0 + floatpart; -            intpart -= 1.0; -        } +    floatpart = modf(d, &intpart); -        floatpart *= denominator; -        if (round == _PyTime_ROUND_CEILING) { -            floatpart = ceil(floatpart); -            if (floatpart >= denominator) { -                floatpart = 0.0; -                intpart += 1.0; -            } -        } -        else { -            floatpart = floor(floatpart); -        } +    floatpart *= denominator; +    floatpart = _PyTime_Round(floatpart, round); +    if (floatpart >= denominator) { +        floatpart -= denominator; +        intpart += 1.0; +    } +    else if (floatpart < 0) { +        floatpart += denominator; +        intpart -= 1.0; +    } +    assert(0.0 <= floatpart && floatpart < denominator); -        *sec = (time_t)intpart; -        err = intpart - (double)*sec; -        if (err <= -1.0 || err >= 1.0) { -            error_time_t_overflow(); -            return -1; -        } +    *sec = (time_t)intpart; +    *numerator = (long)floatpart; -        *numerator = (long)floatpart; -        return 0; +    err = intpart - (double)*sec; +    if (err <= -1.0 || err >= 1.0) { +        error_time_t_overflow(); +        return -1; +    } +    return 0; +} + +static int +_PyTime_ObjectToDenominator(PyObject *obj, time_t *sec, long *numerator, +                            double denominator, _PyTime_round_t round) +{ +    assert(denominator <= (double)LONG_MAX); + +    if (PyFloat_Check(obj)) { +        double d = PyFloat_AsDouble(obj); +        return _PyTime_DoubleToDenominator(d, sec, numerator, +                                           denominator, round);      }      else {          *sec = _PyLong_AsTime_t(obj); +        *numerator = 0;          if (*sec == (time_t)-1 && PyErr_Occurred())              return -1; -        *numerator = 0;          return 0;      }  } @@ -112,13 +150,12 @@ int  _PyTime_ObjectToTime_t(PyObject *obj, time_t *sec, _PyTime_round_t round)  {      if (PyFloat_Check(obj)) { -        double d, intpart, err; +        double intpart, err; +        /* volatile avoids optimization changing how numbers are rounded */ +        volatile double d;          d = PyFloat_AsDouble(obj); -        if (round == _PyTime_ROUND_CEILING) -            d = ceil(d); -        else -            d = floor(d); +        d = _PyTime_Round(d, round);          (void)modf(d, &intpart);          *sec = (time_t)intpart; @@ -141,14 +178,20 @@ int  _PyTime_ObjectToTimespec(PyObject *obj, time_t *sec, long *nsec,                           _PyTime_round_t round)  { -    return _PyTime_ObjectToDenominator(obj, sec, nsec, 1e9, round); +    int res; +    res = _PyTime_ObjectToDenominator(obj, sec, nsec, 1e9, round); +    assert(0 <= *nsec && *nsec < SEC_TO_NS); +    return res;  }  int  _PyTime_ObjectToTimeval(PyObject *obj, time_t *sec, long *usec,                          _PyTime_round_t round)  { -    return _PyTime_ObjectToDenominator(obj, sec, usec, 1e6, round); +    int res; +    res = _PyTime_ObjectToDenominator(obj, sec, usec, 1e6, round); +    assert(0 <= *usec && *usec < SEC_TO_US); +    return res;  }  static void @@ -162,12 +205,15 @@ _PyTime_t  _PyTime_FromSeconds(int seconds)  {      _PyTime_t t; +    t = (_PyTime_t)seconds;      /* ensure that integer overflow cannot happen, int type should have 32         bits, whereas _PyTime_t type has at least 64 bits (SEC_TO_MS takes 30         bits). */ -    assert((seconds >= 0 && seconds <= _PyTime_MAX / SEC_TO_NS) -           || (seconds < 0 && seconds >= _PyTime_MIN / SEC_TO_NS)); -    t = (_PyTime_t)seconds * SEC_TO_NS; +    Py_BUILD_ASSERT(INT_MAX <= _PyTime_MAX / SEC_TO_NS); +    Py_BUILD_ASSERT(INT_MIN >= _PyTime_MIN / SEC_TO_NS); +    assert((t >= 0 && t <= _PyTime_MAX / SEC_TO_NS) +           || (t < 0 && t >= _PyTime_MIN / SEC_TO_NS)); +    t *= SEC_TO_NS;      return t;  } @@ -175,7 +221,7 @@ _PyTime_t  _PyTime_FromNanoseconds(PY_LONG_LONG ns)  {      _PyTime_t t; -    assert(sizeof(PY_LONG_LONG) <= sizeof(_PyTime_t)); +    Py_BUILD_ASSERT(sizeof(PY_LONG_LONG) <= sizeof(_PyTime_t));      t = Py_SAFE_DOWNCAST(ns, PY_LONG_LONG, _PyTime_t);      return t;  } @@ -187,12 +233,15 @@ _PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts, int raise)      _PyTime_t t;      int res = 0; -    t = (_PyTime_t)ts->tv_sec * SEC_TO_NS; -    if (t / SEC_TO_NS != ts->tv_sec) { +    Py_BUILD_ASSERT(sizeof(ts->tv_sec) <= sizeof(_PyTime_t)); +    t = (_PyTime_t)ts->tv_sec; + +    if (_PyTime_check_mul_overflow(t, SEC_TO_NS)) {          if (raise)              _PyTime_overflow();          res = -1;      } +    t = t * SEC_TO_NS;      t += ts->tv_nsec; @@ -206,12 +255,15 @@ _PyTime_FromTimeval(_PyTime_t *tp, struct timeval *tv, int raise)      _PyTime_t t;      int res = 0; -    t = (_PyTime_t)tv->tv_sec * SEC_TO_NS; -    if (t / SEC_TO_NS != tv->tv_sec) { +    Py_BUILD_ASSERT(sizeof(tv->tv_sec) <= sizeof(_PyTime_t)); +    t = (_PyTime_t)tv->tv_sec; + +    if (_PyTime_check_mul_overflow(t, SEC_TO_NS)) {          if (raise)              _PyTime_overflow();          res = -1;      } +    t = t * SEC_TO_NS;      t += (_PyTime_t)tv->tv_usec * US_TO_NS; @@ -221,50 +273,59 @@ _PyTime_FromTimeval(_PyTime_t *tp, struct timeval *tv, int raise)  #endif  static int -_PyTime_FromObject(_PyTime_t *t, PyObject *obj, _PyTime_round_t round, -                   long to_nanoseconds) +_PyTime_FromFloatObject(_PyTime_t *t, double value, _PyTime_round_t round, +                        long unit_to_ns)  { -    if (PyFloat_Check(obj)) { -        /* volatile avoids unsafe optimization on float enabled by gcc -O3 */ -        volatile double d, err; +    double err; +    /* volatile avoids optimization changing how numbers are rounded */ +    volatile double d; -        /* convert to a number of nanoseconds */ -        d = PyFloat_AsDouble(obj); -        d *= to_nanoseconds; +    /* convert to a number of nanoseconds */ +    d = value; +    d *= (double)unit_to_ns; +    d = _PyTime_Round(d, round); -        if (round == _PyTime_ROUND_CEILING) -            d = ceil(d); -        else -            d = floor(d); +    *t = (_PyTime_t)d; +    err = d - (double)*t; +    if (fabs(err) >= 1.0) { +        _PyTime_overflow(); +        return -1; +    } +    return 0; +} -        *t = (_PyTime_t)d; -        err = d - (double)*t; -        if (fabs(err) >= 1.0) { -            _PyTime_overflow(); -            return -1; -        } -        return 0; +static int +_PyTime_FromObject(_PyTime_t *t, PyObject *obj, _PyTime_round_t round, +                   long unit_to_ns) +{ +    if (PyFloat_Check(obj)) { +        double d; +        d = PyFloat_AsDouble(obj); +        return _PyTime_FromFloatObject(t, d, round, unit_to_ns);      }      else {  #ifdef HAVE_LONG_LONG          PY_LONG_LONG sec; +        Py_BUILD_ASSERT(sizeof(PY_LONG_LONG) <= sizeof(_PyTime_t)); +          sec = PyLong_AsLongLong(obj); -        assert(sizeof(PY_LONG_LONG) <= sizeof(_PyTime_t));  #else          long sec; +        Py_BUILD_ASSERT(sizeof(PY_LONG_LONG) <= sizeof(_PyTime_t)); +          sec = PyLong_AsLong(obj); -        assert(sizeof(PY_LONG_LONG) <= sizeof(_PyTime_t));  #endif          if (sec == -1 && PyErr_Occurred()) {              if (PyErr_ExceptionMatches(PyExc_OverflowError))                  _PyTime_overflow();              return -1;          } -        *t = sec * to_nanoseconds; -        if (*t / to_nanoseconds != sec) { + +        if (_PyTime_check_mul_overflow(sec, unit_to_ns)) {              _PyTime_overflow();              return -1;          } +        *t = sec * unit_to_ns;          return 0;      }  } @@ -284,22 +345,31 @@ _PyTime_FromMillisecondsObject(_PyTime_t *t, PyObject *obj, _PyTime_round_t roun  double  _PyTime_AsSecondsDouble(_PyTime_t t)  { -    _PyTime_t sec, ns; -    /* Divide using integers to avoid rounding issues on the integer part. -       1e-9 cannot be stored exactly in IEEE 64-bit. */ -    sec = t / SEC_TO_NS; -    ns = t % SEC_TO_NS; -    return (double)sec + (double)ns * 1e-9; +    /* volatile avoids optimization changing how numbers are rounded */ +    volatile double d; + +    if (t % SEC_TO_NS == 0) { +        _PyTime_t secs; +        /* Divide using integers to avoid rounding issues on the integer part. +           1e-9 cannot be stored exactly in IEEE 64-bit. */ +        secs = t / SEC_TO_NS; +        d = (double)secs; +    } +    else { +        d = (double)t; +        d /= 1e9; +    } +    return d;  }  PyObject *  _PyTime_AsNanosecondsObject(_PyTime_t t)  {  #ifdef HAVE_LONG_LONG -    assert(sizeof(PY_LONG_LONG) >= sizeof(_PyTime_t)); +    Py_BUILD_ASSERT(sizeof(PY_LONG_LONG) >= sizeof(_PyTime_t));      return PyLong_FromLongLong((PY_LONG_LONG)t);  #else -    assert(sizeof(long) >= sizeof(_PyTime_t)); +    Py_BUILD_ASSERT(sizeof(long) >= sizeof(_PyTime_t));      return PyLong_FromLong((long)t);  #endif  } @@ -309,7 +379,20 @@ _PyTime_Divide(const _PyTime_t t, const _PyTime_t k,                 const _PyTime_round_t round)  {      assert(k > 1); -    if (round == _PyTime_ROUND_CEILING) { +    if (round == _PyTime_ROUND_HALF_EVEN) { +        _PyTime_t x, r, abs_r; +        x = t / k; +        r = t % k; +        abs_r = Py_ABS(r); +        if (abs_r > k / 2 || (abs_r == k / 2 && (Py_ABS(x) & 1))) { +            if (t >= 0) +                x++; +            else +                x--; +        } +        return x; +    } +    else if (round == _PyTime_ROUND_CEILING) {          if (t >= 0)              return (t + k - 1) / k;          else @@ -373,7 +456,7 @@ static int  _PyTime_AsTimevalStruct_impl(_PyTime_t t, struct timeval *tv,                               _PyTime_round_t round, int raise)  { -    _PyTime_t secs; +    _PyTime_t secs, secs2;      int us;      int res; @@ -386,7 +469,8 @@ _PyTime_AsTimevalStruct_impl(_PyTime_t t, struct timeval *tv,  #endif      tv->tv_usec = us; -    if (res < 0 || (_PyTime_t)tv->tv_sec != secs) { +    secs2 = (_PyTime_t)tv->tv_sec; +    if (res < 0 || secs2 != secs) {          if (raise)              error_time_t_overflow();          return -1; @@ -424,6 +508,7 @@ _PyTime_AsTimevalTime_t(_PyTime_t t, time_t *p_secs, int *us,      return 0;  } +  #if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_KQUEUE)  int  _PyTime_AsTimespec(_PyTime_t t, struct timespec *ts) @@ -437,13 +522,13 @@ _PyTime_AsTimespec(_PyTime_t t, struct timespec *ts)          secs -= 1;      }      ts->tv_sec = (time_t)secs; +    assert(0 <= nsec && nsec < SEC_TO_NS); +    ts->tv_nsec = nsec; +      if ((_PyTime_t)ts->tv_sec != secs) { -        _PyTime_overflow(); +        error_time_t_overflow();          return -1;      } -    ts->tv_nsec = nsec; - -    assert(0 <= ts->tv_nsec && ts->tv_nsec <= 999999999);      return 0;  }  #endif @@ -557,19 +642,20 @@ _PyTime_GetSystemClockWithInfo(_PyTime_t *t, _Py_clock_info_t *info)      return pygettimeofday(t, info, 1);  } -  static int  pymonotonic(_PyTime_t *tp, _Py_clock_info_t *info, int raise)  {  #if defined(MS_WINDOWS) -    ULONGLONG result; +    ULONGLONG ticks; +    _PyTime_t t;      assert(info == NULL || raise); -    result = GetTickCount64(); +    ticks = GetTickCount64(); +    Py_BUILD_ASSERT(sizeof(ticks) <= sizeof(_PyTime_t)); +    t = (_PyTime_t)ticks; -    *tp = result * MS_TO_NS; -    if (*tp / MS_TO_NS != result) { +    if (_PyTime_check_mul_overflow(t, MS_TO_NS)) {          if (raise) {              _PyTime_overflow();              return -1; @@ -577,6 +663,7 @@ pymonotonic(_PyTime_t *tp, _Py_clock_info_t *info, int raise)          /* Hello, time traveler! */          assert(0);      } +    *tp = t * MS_TO_NS;      if (info) {          DWORD timeAdjustment, timeIncrement; @@ -689,8 +776,5 @@ _PyTime_Init(void)      if (_PyTime_GetMonotonicClockWithInfo(&t, NULL) < 0)          return -1; -    /* check that _PyTime_FromSeconds() cannot overflow */ -    assert(INT_MAX <= _PyTime_MAX / SEC_TO_NS); -    assert(INT_MIN >= _PyTime_MIN / SEC_TO_NS);      return 0;  } diff --git a/Python/random.c b/Python/random.c index 772bfef..9b42d54 100644 --- a/Python/random.c +++ b/Python/random.c @@ -379,7 +379,7 @@ _PyRandom_Init(void)      char *env;      unsigned char *secret = (unsigned char *)&_Py_HashSecret.uc;      Py_ssize_t secret_size = sizeof(_Py_HashSecret_t); -    assert(secret_size == sizeof(_Py_HashSecret.uc)); +    Py_BUILD_ASSERT(sizeof(_Py_HashSecret_t) == sizeof(_Py_HashSecret.uc));      if (_Py_HashSecret_Initialized)          return; diff --git a/Python/symtable.c b/Python/symtable.c index 64910d8..8431d51 100644 --- a/Python/symtable.c +++ b/Python/symtable.c @@ -1439,6 +1439,14 @@ symtable_visit_expr(struct symtable *st, expr_ty e)          VISIT_SEQ(st, expr, e->v.Call.args);          VISIT_SEQ_WITH_NULL(st, keyword, e->v.Call.keywords);          break; +    case FormattedValue_kind: +        VISIT(st, expr, e->v.FormattedValue.value); +        if (e->v.FormattedValue.format_spec) +            VISIT(st, expr, e->v.FormattedValue.format_spec); +        break; +    case JoinedStr_kind: +        VISIT_SEQ(st, expr, e->v.JoinedStr.values); +        break;      case Num_kind:      case Str_kind:      case Bytes_kind: diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 334f5d0..e0aa233 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1643,15 +1643,11 @@ make_version_info(void)  /* sys.implementation values */  #define NAME "cpython"  const char *_PySys_ImplName = NAME; -#define QUOTE(arg) #arg -#define STRIFY(name) QUOTE(name) -#define MAJOR STRIFY(PY_MAJOR_VERSION) -#define MINOR STRIFY(PY_MINOR_VERSION) +#define MAJOR Py_STRINGIFY(PY_MAJOR_VERSION) +#define MINOR Py_STRINGIFY(PY_MINOR_VERSION)  #define TAG NAME "-" MAJOR MINOR  const char *_PySys_ImplCacheTag = TAG;  #undef NAME -#undef QUOTE -#undef STRIFY  #undef MAJOR  #undef MINOR  #undef TAG  | 
